calcOpticalFlowPyrLK понимание алгоритма - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь понять несколько частей алгоритма оптического потока Лукаса Канаде, реализованного в C ++ в функции openCV cv :: calcOpticalFlowPyrLK. Предположим, я пытаюсь рассчитать оптический поток между кадрами 1 и 2:

  1. Я понимаю, что вам нужно ввести goodFeaturesToTrack (еще одну функцию openCV, основанную на Ши Томаси ) для кадра 1, и при запуске этой функции генерируются элементы в кадре 2. В документе Ши Томаси говорится, что для получения Оптимальные функции, которые они рекомендуют использовать как перевод, используемый для двух кадров вплотную, так как они все еще находятся в такой деформации в непосредственной близости, можно считать незначительными, так и аффинное преобразование из первого кадра по сравнению с текущим кадром, чтобы гарантировать, что функция поддерживает минимальное различия в течение определенного периода времени для обеспечения оптимального отслеживания функций. В статье приводится пример того, как первый и последний кадры находятся на расстоянии около 25 кадров друг от друга, но не указывается, как это может изменяться. Итак, мои вопросы: как часто вы должны восстанавливать новые функции для кадра 1 момента - при условии, что вы находитесь на движущемся устройстве, появятся новые места, которые вам придется учитывать после определенного периода? Должно ли это вообще сочетаться со старыми функциями, которые были перенесены из кадра в кадр, чтобы вы не потеряли сравнение аффинного преобразования из последовательности, и как бы вы их объединили?

  2. calcOpticalFlowPyrLK позволяет либо отправлять изображения для оценки между двумя разными кадрами, либо отправлять пирамиды для входных переменных prevImg и nextImg. Тем не менее, он также учитывает входной параметр maxLevel, как описано здесь , где 0 обозначает просто использование изображения, или любое большее число означает использование числа изображений пирамиды, которое вы указали для расчета оптического потока. Итак, мой вопрос: если вы укажете число больше 0, будет ли вычисление выполнено для вас, если вы отправите изображение для кадра 1 и кадра 2? Есть ли разница между отправкой в ​​пирамиде из 4 слоев и указанием сделать то же самое, основываясь на int для maxLevel?

Спасибо за вклад в расширенный. Если есть какие-то другие советы и хитрости алгоритма, которые вы изучили во время его использования, я с радостью могу услышать и это.

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