Лукас Канаде плотный оптический поток

Можно ли использовать OpenCV для расчета плотного оптического потока с использованием метода Лукаса Канаде? Мне известно о функции в модуле gpu / ocl, которая может это сделать (gpu :: PyrLKOpticalFlow :: density), но есть ли эквивалент этой функции, отличный от gpu?

Я также знаком с Farneback и TV L1, но мне нужен LK / пирамидальный LK для моих исследований.


person Srđan    schedule 23.05.2013    source источник


Ответы (2)


Нет. На самом деле нет хорошего метода экстракции плотным оптическим потоком. У меня та же проблема (адвекция частиц в оптическом потоке, верно?)

Существует функция, которая оценивает оптический поток с помощью метода Фарнбека [1], но это дает мне плохие результаты. Он не использует ни ocl, ни gpu.

Вы можете попробовать с phaseCorrelate извлечь его с помощью алгоритма на основе сдвига. Я использовал этот метод. Когда выложу на гитхаб дам ссылку.

[РЕДАКТИРОВАТЬ]

Вот код. Я решил отделить алгоритм фазовой корреляции от всего проекта, чтобы упростить его понимание: https://github.com/MatteoRagni/OpticalFlow Пометьте его, если вы собираетесь его использовать.

person Matteo Ragni    schedule 08.01.2014
comment
Я фактически закончил тем, что использовал метод TV-L1 для расчета плотного оптического потока. В OpenCV есть хорошая реализация. Он дает лучшие результаты, чем Farneback, но со значительными затратами на производительность. - person Srđan; 09.01.2014
comment
@ barak. Сделаю до конца месяца и выложу здесь ссылку на проект. Если вам нравится, и вы думаете об этом, не могли бы вы пометить его, пожалуйста? - person Matteo Ragni; 11.01.2014
comment
@ Srđan, метод, о котором я упоминал, также требует значительных затрат на производительность. - person Matteo Ragni; 11.01.2014
comment
эй, мне просто любопытно, но, имхо, ты уже заслужил звезду за публикацию любых попыток этого! - person berak; 12.01.2014

Вы можете найти документацию по функциям анализа видео OpenCV без графических процессоров здесь

Существует реализация разреженного итеративного метода Лукаса-Канаде с пирамидами (в частности, из этой статьи ). Функция называется calcOpticalFlowPyrLK, и вы строите связанную пирамиду (пирамиды) с помощью buildOpticalFlowPyramid. Однако обратите внимание, что в нем указано, что это для разреженных наборов функций, поэтому я не знаю, насколько сильно это изменит вас, если вам понадобится плотный оптический поток.

person alrikai    schedule 23.05.2013