оптический поток: получить быстрое движение с Farneback невозможно? - PullRequest
0 голосов
/ 03 июля 2019

Я думаю, что некоторые из вас знают эту функцию

flow = cv2.calcOpticalFlowFarneback(prvs,next, None, 0.5, 3, 15, 3, 5, 1.2, 0)

из OpenCV, которая использует алгоритм Gunner Farneback для расчета плотного оптического потока.

У меня есть вопрос об этом алгоритме иЯ надеюсь, что кто-то может дать мне ответ.

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

Почему это не работает для быстрого движения?У кого-нибудь есть идея?Может кто-нибудь подсказать мне, почему это не сработает?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 июля 2019

calcOpticalFlowFarneback функция имеет два параметра, непосредственно связанных со смещением объекта (более быстрое перемещение приводит к большему смещению)

  1. уровень: в соответствии с оригинальным Gunner Farneback бумага :

Проблема слишком больших перемещений может быть уменьшена ... Старт в грубом масштабе, чтобы получить грубую, но разумную оценку смещения и распространить ее по более мелким шкалам, чтобы получить все более точные оценки. Недостатком является то, что нам нужно пересчитать коэффициенты полиномиального расширения для каждой шкалы, но эта стоимость может быть уменьшена путем подвыборки между шкалами.

  1. winsize: усреднение размера окна; большие значения увеличивают устойчивость алгоритма к шуму изображения и дают больше шансов для быстрого обнаружения движения, но дают более размытое поле движения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...