maxfashko

Пользователи
  • Количество публикаций

    86
  • Зарегистрирован

  • Посещение

  • Days Won

    2

maxfashko last won the day on March 15

maxfashko had the most liked content!

Репутация

5 Новичек

О maxfashko

  • Звание
    Эксперт

Посетители профиля

360 просмотров профиля
  1. Добрый день. Подскажите пожалуйста, имеется ли достоверная информация на тему сравнения точности обученных моделей на grayscale и RGB изображениях. Может личный опыт в данном вопросе? Насколько может различаться точность при классификации объектов сверточными сетями, в зависимости от используемого цветового пространства? Понимаю, что вопрос затрагивает множество факторов, относящихся к самим данным, но есть ли что-то от чего можно отталкиваться в данном вопросе?
  2. Похоже, что понял, как это дело должно выглядеть: FOV(w) = arctan(W / fy) FOV(h) = arctan(H / fx), где: H - будет размер картинки fx - значение из матрицы калибровки внутренних параметров 2.3815068922917403e+03 0. 1920 0. 2.3815068922917403e+03 1080 0. 0. 1. Вот и получается, что мой угол обзора камеры равен 77,4 и 48,78. Вот только в даташите указано, что FOV = 94 (это я как понимаю диагональ), если посчитать мои значения, выйдет 91.7. Это нормально?
  3. Имеется отснятое видео шахматной доски, камерой, которая будет использоваться (видео очень долго обрабатывает, пришлось взять только часть изображений из отснятого). Воспользовался программой для калибровки, расположенной по адресу: opencv_dir/samples/cpp/tutorial_code/calib3d/camera_calibration/ https://yadi.sk/i/Bv0iUR9j3GahHm Изменил конфиг только для расположения изображений калибровки. Настройки доски не менял. Получил на выходе xml файлик с конфигом https://yadi.sk/d/56EX60qE3Gagqp Камера используется в Phantom 4 (4к) В спецификациях производитель пишет: То есть теперь для того чтобы мне найти вертикальный и горизонтальный углы обзора необходимо воспользоваться формулой: H = 2*arctan(35/2*2.8)= arctan(12.5) = 85 Что-то не похоже на правду. Мне необходимо для расчета FOV брать данные, которые получены при калибровке? Если да, то как будет выглядеть процедура определения углов зрения?
  4. Спасибо!
  5. Не до конца понял, как вычислить тангаж по Вашему методу. С креном все ясно: Берем две точки прямой, характеризующую линию горизонта, отнимаем их и вычисляем arctan, переводя в градусы. В случае расчета тангажа известно только расстояние между двумя прямыми: линией горизонта, которую мы получили аппроксимацией (неба, земли) и линией, характеризующей продольную ось бпла. По каким формулам происходит расчет?
  6. С креном понятно, разобрался, а что насчет тангажа? Как коеффицент угловой меры от пикселя выразить? Как расстояние пересчитать на угол раствора?
  7. Да, отклонения по крену
  8. В целом то, что у меня получилось похоже на правду, но со странностями. Я что-то упустил? # -*- coding: utf-8 -*- import numpy as np import cv2 image = cv2.imread('../data/segment_video/igm_0.jpg') img = cv2.dilate(image, np.ones((8,8), np.uint8), iterations = 1) img = cv2.blur(img,(3,3)) img = cv2.Sobel(img,cv2.CV_8U,1,1,ksize=5) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret, thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY) _, contours, _ = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) cnt = contours[0] # then apply fitline() function [vx,vy,x,y] = cv2.fitLine(cnt,cv2.DIST_L2,0,0.01,0.01) # Now find two extreme points on the line to draw line lefty = int((-x*vy/vx) + y) righty = int(((gray.shape[1]-x)*vy/vx)+y) #Finally draw the line cv2.line(img,(gray.shape[1]-1,righty),(0,lefty),255,2) cv2.imshow('result',img) cv2.imshow('img',image) cv2.waitKey(0) cv2.destroyAllWindows() Линия вписывается в зависимости от blur, чем выше значение, тем точнее. Исходное, blur(3,3), blur (10,10)
  9. Мы все это проделываем ведь с исходным изображением? Получается, что в результате работы Sobel у меня не будет тогда контуров захватывающих границы изображения (верх, левая, правая)? Как то это все тянет на долгие вычисления...
  10. Я думал сделать это через контур,а затем у scipy есть sp.polyfit(). И если взять полином первой степени то получу прямую. Как реализовать Ваш метод не допонимаю
  11. Да, глупости пишу... Мне вот что не понятно, как выбрать определенный отрезок от найденного контура на изображении, чтобы затем с ним работать? Например отрезок обведенный красным. Или есть гораздо более простой способ получить линию, разделяющую два цвета, для последующей аппроксимации?
  12. День добрый. Ситуация поставила меня в тупик: # имеем изображение cv2.LUT(img_3ch,label_colours,result) result = result.astype(float)/255 #теперь, чтобы работать с изображением его необходимо перевести в int result_int = result.astype(int) #в конечном итоге, какими бы преобразованиями я не пользовался, np заполняем массив нулями result_int = result.astype(np.int64) #конечной целью служит выделить контур на изображении gray_image = cv2.cvtColor(result_int, cv2.COLOR_BGR2GRAY) ret, thresh = cv2.threshold(gray_image, 127, 255, 0) im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
  13. Самое смешное, что мне необходимо не брать в учет показания датчиков, а выстраивать свои показания, опираясь только на картинку
  14. Кстати, насчет областей. на данный момент у меня всего два класса на изображениях. В будущем я захочу добавить к примеру воду, леса и т.д. Придется выкидывать тренировочную выборку, которая используется сейчас? Так как на данных изображениях могут быть: вода, лес, дома. Они будут вносить ошибку? Или есть способ использовать в последующем данную выборку совместно с расширенной (многоклассово-размеченной)
  15. Расскажите подробнее пожалуйста об этом. Как вариант, стоит рассмотреть данный вариант. Тут суперпиксели? А сетка потом будет больше областей распознавать, пока два класса только. Поэтому ее взял, и на небе с землей стал обучать пока. Кстати, каким образом можно задать заранее сегменты неба (синий) и земли (зеленый), если предварительно не известно, что на изображении?