Оптический поток — это изображение видимого движения объектов, поверхностей или краев сцены, получаемое в результате перемещения наблюдателя (глаз или камеры) относительно сцены. Алгоритмы, основанные на оптическом потоке, — такие как регистрация движения, сегментация объектов, кодирование движений и подсчет диспаритета в стерео, — используют это движение объектов, поверхностей и краев.
Оценка оптического потока
Последовательности упорядоченных изображений позволяют оценивать движение либо как мгновенную скорость изображения, либо как дискретное смещение.Fleet и Weiss составили учебный курс по градиентному методу оценки оптического потока.
Анализ методов вычисления оптического потока проведен в работе John L. Barron, David J. Fleet и Steven Beauchemin. Они рассматривают методы как с точки зрения точности, так и с точки зрения плотности получаемого векторного поля.
Методы, основанные на оптическом потоке, вычисляют движение между двумя кадрами, взятыми в момент времени t {displaystyle t} и t + δ t {displaystyle t+delta t} , в каждом пикселе. Эти методы называются дифференциальными, так как они основаны на приближении сигнала отрезком ряда Тейлора; таким образом, они используют частные производные по времени и пространственным координатам.
В случае размерности 2D+t (случаи большей размерности аналогичны) пиксель в позиции ( x , y , t ) {displaystyle (x,y,t)} с интенсивностью I ( x , y , t ) {displaystyle I(x,y,t)} за один кадр будет перемещен на δ x {displaystyle delta x} , δ y {displaystyle delta y} и δ t {displaystyle delta t} , и можно записать следующее уравнение:
I ( x , y , t ) ≈ I ( x + δ x , y + δ y , t + δ t ) {displaystyle I(x,y,t)approx I(x+delta x,y+delta y,t+delta t)}Считая, что перемещение мало, и используя ряд Тейлора, получаем:
I ( x + δ x , y + δ y , t + δ t ) ≈ I ( x , y , t ) + ∂ I ∂ x δ x + ∂ I ∂ y δ y + ∂ I ∂ t δ t {displaystyle I(x+delta x,y+delta y,t+delta t)approx I(x,y,t)+{frac {partial I}{partial x}}delta x+{frac {partial I}{partial y}}delta y+{frac {partial I}{partial t}}delta t} .Из этих равенств следует:
∂ I ∂ x δ x + ∂ I ∂ y δ y + ∂ I ∂ t δ t = 0 {displaystyle {frac {partial I}{partial x}}delta x+{frac {partial I}{partial y}}delta y+{frac {partial I}{partial t}}delta t=0}или
∂ I ∂ x δ x δ t + ∂ I ∂ y δ y δ t + ∂ I ∂ t δ t δ t = 0 {displaystyle {frac {partial I}{partial x}}{frac {delta x}{delta t}}+{frac {partial I}{partial y}}{frac {delta y}{delta t}}+{frac {partial I}{partial t}}{frac {delta t}{delta t}}=0}отсюда получается, что
∂ I ∂ x V x + ∂ I ∂ y V y + ∂ I ∂ t = 0 {displaystyle {frac {partial I}{partial x}}V_{x}+{frac {partial I}{partial y}}V_{y}+{frac {partial I}{partial t}}=0}где
Таким образом:
I x V x + I y V y = − I t {displaystyle I_{x}V_{x}+I_{y}V_{y}=-I_{t}}или
∇ I T ⋅ V → = − I t {displaystyle abla I^{T}cdot {vec {V}}=-I_{t}}Полученное уравнение содержит две неизвестных и не может быть однозначно разрешено. Данное обстоятельство известно как проблема апертуры. Задачу решает наложение дополнительных ограничений — регуляризация.
Методы определения оптического потока
- Фазовая корреляция — инверсия нормализованного перекрестного спектра.
- Блочные методы — минимизация суммы квадратов или суммы модулей разностей
- Дифференциальные методы оценки оптического потока, основанные на частных производных сигнала:
- Алгоритм Лукаса — Канаде — рассматриваются части изображения и аффинная модель движения
- Horn–Schunck — минимизация функционала, описывающего отклонение от предположения о постоянстве яркости и гладкость получаемого векторного поля.
- Buxton–Buxton — основан на модели движения границ объектов в последовательности изображений
- Общие вариационные методы — модификации метода Horn-Schunck, использующие другие ограничения на данные и другие ограничения на гладкость.
- Дискретные методы оптимизации — поисковое пространство квантуется, затем каждому пикселю изображения ставится в соответствие метка таким образом, чтобы расстояние между последовательными кадрами было минимальным. Оптимальное решение часто ищется с помощью алгоритмов нахождения минимального разреза и максимального потока в графе, линейного программирования или belief propagation.
Использование оптического потока
Исследования оптического потока широко ведутся в областях сжатия видео и анализа движений. Алгоритмы оптического потока не только определяют поле потока, но и используют оптический поток при анализе трехмерной сущности и структуры сцены, а также 3D-движения объектов и наблюдателя относительно сцены.
Оптический поток используется в робототехнике при распознавании объектов, слежении за объектами, определении движения и при навигации робота.
Кроме того, оптический поток используется для изучения структуры объектов. Поскольку определение движения и создание карт структуры окружающей среды являются неотъемлемой частью животного (человеческого) зрения, то реализация этой врожденной способности средствами компьютера является неотъемлемой частью компьютерного зрения.
Представьте видеоролик из пяти кадров, в котором шар движется из нижнего левого угла в правый верхний. Методы нахождения движения могут определить, что на двумерной плоскости шар движется вверх и вправо и векторы, описывающие это движение, могут быть получены из последовательности кадров. При сжатии видео это правильное описание последовательности кадров. Однако в области компьютерного зрения без дополнительной информации нельзя сказать, движется ли шар вправо, а наблюдатель стоит на месте, или шар покоится, а наблюдатель движется влево.