Метод Хорна-Шунка оценки оптического потока представляет собой глобальный метод, который вводит глобальное ограничение гладкости для решения проблемы апертуры ( дополнительное описание см. в разделе «Оптический поток» ).
Математические детали
Алгоритм Хорна-Шунка предполагает плавность потока по всему изображению. Таким образом, он пытается минимизировать искажения потока и предпочитает решения, которые демонстрируют большую плавность.
Поток формулируется как функционал глобальной энергии , который затем стремятся минимизировать. Эта функция задается для потоков двумерных изображений следующим образом:
![{\displaystyle E=\iint \left[(I_{x}u+I_{y}v+I_{t})^{2}+\alpha ^{2}(\lVert \nabla u\rVert ^{2 }+\lVert \nabla v\rVert ^{2})\right]{{\rm {d}}x{\rm {d}}y}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
где и являются производными значений интенсивности изображения по измерениям x, y и времени соответственно, является вектором оптического потока (который необходимо решить для ), а параметр представляет собой константу регуляризации. Большие значения приводят к более плавному потоку. Этот функционал можно минимизировать, решив связанные с ним многомерные уравнения Эйлера – Лагранжа . Это![{\displaystyle I_ {x}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle I_{y}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle I_{t}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\vec {V}}=[u(x,y),v(x,y)]^{\top }}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \альфа }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \альфа }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\frac {\partial L}{\partial u}}-{\frac {\partial }{\partial x}}{\frac {\partial L}{\partial u_{x}}}-{ \frac {\partial }{\partial y}}{\frac {\partial L}{\partial u_{y}}}=0}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\frac {\partial L}{\partial v}}-{\frac {\partial }{\partial x}}{\frac {\partial L}{\partial v_{x}}}-{ \frac {\partial }{\partial y}}{\frac {\partial L}{\partial v_{y}}}=0}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
где – подынтегральное выражение выражения энергии, дающее![{\displaystyle L}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle I_{x}(I_{x}u+I_{y}v+I_{t})-\alpha ^{2}\Delta u=0}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle I_{y}(I_{x}u+I_{y}v+I_{t})-\alpha ^{2}\Delta v=0}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
где индексы снова обозначают частное дифференцирование и обозначают оператор Лапласа . На практике лапласиан аппроксимируется численно с использованием конечных разностей и может быть записан где — средневзвешенное значение, рассчитанное в окрестности пикселя в точке (x,y). Используя эти обозначения, приведенную выше систему уравнений можно записать![{\displaystyle \Delta ={\frac {\partial ^{2}}{\partial x^{2}}}+{\frac {\partial ^{2}}{\partial y^{2}}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \Delta u(x,y)=({\overline {u}}(x,y)-u(x,y))}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\overline {u}}(x,y)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle и}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle (I_{x}^{2}+\alpha ^{2})u+I_{x}I_{y}v=\alpha ^{2}{\overline {u}}-I_{x} Это}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle I_{x}I_{y}u+(I_{y}^{2}+\alpha ^{2})v=\alpha ^{2}{\overline {v}}-I_{y}I_ {т}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
которая является линейной и может быть решена для каждого пикселя изображения. Однако, поскольку решение зависит от соседних значений поля потока, его необходимо повторить после обновления соседей. Следующая итерационная схема выведена с использованием правила Крамера :![{\displaystyle и}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle v}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle u^{k+1}={\overline {u}}^{k} - {\frac {I_ {x}(I_ {x}{\overline {u}}^{k}+I_{ y}{\overline {v}}^{k}+I_{t})}{\alpha ^{2}+I_{x}^{2}+I_{y}^{2}}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle v^{k+1}={\overline {v}}^{k} - {\frac {I_ {y}(I_ {x}{\overline {u}}^{k}+I_{ y}{\overline {v}}^{k}+I_{t})}{\alpha ^{2}+I_{x}^{2}+I_{y}^{2}}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
где верхний индекс k+1 обозначает следующую итерацию, которую необходимо вычислить, а k — последний вычисленный результат. По сути , это метод разделения матрицы , аналогичный методу Якоби , применяемый к большой разреженной системе, возникающей при решении для всех пикселей одновременно .
Характеристики
К преимуществам алгоритма Хорна–Шунка относится то, что он обеспечивает высокую плотность векторов потока, т.е. информация о потоке, недостающая во внутренних частях однородных объектов, восполняется из границ движения. С другой стороны, он более чувствителен к шуму, чем местные методы.
Смотрите также
Рекомендации
- Б.К.П. Хорн и Б.Г. Шунк, «Определение оптического потока». Искусственный интеллект , том 17, стр. 185–203, 1981. Рукопись доступна на сервере MIT.
Внешние ссылки