Лукас Канаде Оптический поток, вектор направления

Я работаю над оптическим потоком и опираюсь на конспекты лекций. здесь и несколько примеров в Интернете, Я написал этот код на Python.

Там же находится весь код и примеры изображений. Для небольших смещений около 4-5 пикселей рассчитанное направление вектора кажется правильным, но величина вектора слишком мала (поэтому мне пришлось умножить u, v на 3 перед их построением).

Это из-за ограничения алгоритма или ошибки в коде? В примечании к лекции, опубликованном выше, также говорится, что движение должно быть небольшим: «u, v меньше 1 пикселя», возможно, поэтому. В чем причина этого ограничения?


person BBSysDyn    schedule 30.09.2011    source источник
comment
LK использует приближение первого порядка, поэтому (u, v) в идеале должно быть ‹‹ 1, в противном случае в поведении преобладают члены более высокого порядка, и вам конец. Для преодоления этой проблемы на слайдах 20 и 21 автор предлагает использовать последовательность нисходящих шагов, начиная с очень низкого разрешения, а затем увеличивая его. Однако алгоритм не полностью объяснен в вашем источнике.   -  person Dr. belisarius    schedule 30.09.2011


Ответы (2)


@belisarius говорит: «LK использует приближение первого порядка, поэтому (u, v) в идеале должно быть ‹‹ 1, в противном случае в поведении преобладают члены более высокого порядка, и вы поджарены».

person BBSysDyn    schedule 04.10.2011

Стандартный вывод из уравнения ограничения оптического потока (OFCE, слайд 5 вашей ссылки) заключается в том, что «ваше движение должно быть меньше пикселя, меньше членов более высокого порядка убьют вас». Хотя технически это верно, вы можете преодолеть это на практике, используя большие окна усреднения. Это требует, чтобы вы использовали разумную статистику, то есть не чистое среднеквадратичное значение, как предлагается на слайдах. Столь же быстрые вычисления и гораздо лучшие результаты могут быть достигнуты с помощью регуляризации по Тихонову. Это требует установки значения настройки (постоянная Тихонова). Это можно сделать как глобальную константу или позволить ей настроиться на локальную информацию в изображении (например, достоверность Ши-Томаси, также известную как детерминант тензора структуры).

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

Реализации, визуализации и код доступны в формате руководства здесь, хотя и в Matlab, а не в Python.

person Stefan Karlsson    schedule 10.12.2016