Перейти к содержимому
Compvision.ru

ArtemBogatov

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

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

  • Посещение

Сообщения, опубликованные пользователем ArtemBogatov


  1. В контрибах OpenCV реализовано сравнение контуров на основе дескрипторов Фурье. Вот ссылка на пример использования https://github.com/opencv/opencv_contrib/blob/master/modules/ximgproc/samples/fourier_descriptors_demo.cpp


  2. Добрый день. Возник вопрос, какие типы дефектов контуров бывают и как их оценивать. В первую очередь интересуют такие типы дефектов как размытость границ, неравномерность амплитуды в разных точках контура, и т.д.


  3. Попробуйте оптический поток. Лукаса-Канаде или Фарнебека.  Если кроме тряски у Вас нет никакого движения на видео, то просто вычисляете среднее смещение ключевых точек (в случае разреженного оп) или пикселей (в случае плотного оп). А потом по серии кадров вычисляете максимум.

    Ещё можете посмотреть варианты в исходниках OpenCV в модуле стабилизации видео ( PyrLkRobustMotionEstimator, например )


  4. Подскажите методы сопровождения людей в кадре.

    В кадре очень много движущихся объектов (не людей) поэтому вычитания фона не подходит. Использую SVM-HOG из примеров им нахожу людей и нужно сопоставить их в разных кадрах. Пробовал SURF вроди как работает но часто сбивается видимо из-за движения людей и изменения фона и вообще картина не очень качественная. также люди часто пресекаются и пропадают из виду. Вопрос быстродействия не критичен можно хоть 0,1сек потратить на это, также есть GPU.

    Посмотрите вот эту ссылку:

    http://www.robots.ox.ac.uk/ActiveVision/Publications/benfold_reid_cvpr2011/benfold_reid_cvpr2011.html, как раз Ваша задача.

    Ещё посмотрите пример blobtrack из примеров OpenCV, там используется фильтр частиц (Particle Filter) для разруливания коллизий (столкновения объектов заслон одного другим и т.д.)


  5. Наверное вопрос совсем наивный, но хочется понять в каком направлении двигаться. Мне нужно определять координаты (x,y) небольшого предмета относительно плоскости стены. Собираюсь для этого opencv использовать, хотя опыта нет. Как лучше это сделать? Какой использовать алгоритм? Я разместил на предмете светодиод и попробовал CamShift'ом его отслеживать, работает быстро, но иногда ошибается. Светодиод из-за того, что возможно понадобиться отслеживать в условиях плохой освещенности. Предмет будет двигаться относительно стены плавно и медленно. Буду рад любым рекомендациям. К примеру, лучше использовать диод или диодную ленту, имеет ли значение цвет свечения?

    Для алгоритма CamShift цвет имеет принципиальное значение. Если на фоне есть объекты с похожей гистограммой, алгоритм может ошибаться.

    Если объект, за которым Вы хотите следить имеет особенности (углы, выраженные границы, перепады яркости), то Вам скорее всего поможет детектор ключевых точек (GoodFeatureToTrack, FastFeatureDetector и т.п) и разреженный оптический поток Лукаса-Канаде (PyrOpticalFlowLK). Пример реализации можно найти в папке opencv\samples\cpp\lkdemo.cpp.

    Судя по тому, что объект движется медленно и плавно, Вам, возможно, стоит ещё посмотреть в сторону шаблонов движения. Пример реализации в opencv\samples\c\motempl.c. Где-то на форуме Smorodov выкладывал статью на русском с теорией по шаблонам движения.

    • Like 2

  6. int SampleImgHeight = 1000;
    
    int SampleImgWidth  = 1000;
    
    Mat img= Mat::zeros( Size( SampleImgWidth, SampleImgHeight ), CV_8UC3 );

    Access violation reading location

    почему нельзя так делать в самом начале программы? т.е. там где предположительно глобальные переменные.

    Такая ошибка могла возникнуть если, например, у Вас есть ещё одна статическая переменная в другом файле, зависящая от этой, т.к. по стандарту инициализация должна произойти до их использования, но порядок инициализации не определён.

    Если у Вас причина в этом, а статические переменные всё равно хочется использовать, есть пара вариантов как это сделать.


  7. ArtemBogatov

    Только больше ошибок вылезло.

    Посмотрите здесь: http://robocraft.ru/blog/computervision/460.html . Последний пример ─ то, что Вам нужно. Если OpenCV опять начнёт сопротивляться, приведите текст ошибок ─ попробую помочь.

×