Оптический поток
Оптический поток — это метод анализа последовательностей изображений (видео), основанный на оценке видимого движения объектов, поверхностей или краёв сцены между последовательными кадрами. Оптический поток представляет собой векторное поле, в котором каждый вектор указывает направление и скорость смещения соответствующей точки (пикселя) изображения от одного кадра к другому. Данный метод широко применяется в компьютерном зрении, обработке видеоданных, робототехнике и навигации.
История
Идея оптического потока восходит к исследованиям в области физиологии зрения и психофизики. В 1940-х годах американский психолог Джеймс Дж. Гибсон (James J. Gibson) ввёл понятие «оптический поток» для описания визуальной информации, которую получает движущийся наблюдатель. Гибсон показал, что поток точек на сетчатке глаза позволяет воспринимать глубину, скорость и направление собственного движения.
С развитием вычислительной техники в 1980-х годах начались попытки алгоритмической реализации оптического потока. В 1981 году Брюс Д. Лукас (Bruce D. Lucas) и Такео Канаде (Takeo Kanade) предложили один из первых и наиболее известных методов — метод Лукаса-Канаде, основанный на локальном градиентном подходе. В том же году Берндт Хорн (Berthold Horn) и Брайан Шанк (Brian Schunck) разработали глобальный вариационный метод, минимизирующий функционал ошибки. Эти работы заложили основу для большинства последующих алгоритмов.
В 1990-2000-х годах появились более точные и устойчивые методы, включая иерархические (пирамидальные) подходы, методы на основе фазовой корреляции и нейросетевые архитектуры. С 2010-х годов доминирующим направлением стало использование свёрточных нейронных сетей (CNN), таких как FlowNet (2015) и PWC-Net (2017), которые значительно повысили скорость и точность оценки.
Физическая и математическая основа
Оптический поток основан на предположении о постоянстве яркости (или цвета) точки изображения при её малом перемещении. Формально это выражается уравнением оптического потока:
\[ I(x, y, t) = I(x + dx, y + dy, t + dt) \]
где \(I\) — яркость в точке с координатами \((x, y)\) в момент времени \(t\). Разлагая в ряд Тейлора и пренебрегая членами высшего порядка, получают:
\[ \frac{\partial I}{\partial x} u + \frac{\partial I}{\partial y} v + \frac{\partial I}{\partial t} = 0 \]
где \(u = \frac{dx}{dt}\) и \(v = \frac{dy}{dt}\) — компоненты искомого вектора оптического потока. Это одно уравнение с двумя неизвестными, поэтому для его решения требуются дополнительные ограничения (например, гладкость поля или локальная однородность).
Классификация методов
Методы вычисления оптического потока делятся на несколько основных категорий:
По типу ограничений
- Градиентные (дифференциальные) методы — основаны на решении уравнения оптического потока с использованием пространственно-временных производных. Примеры: метод Лукаса-Канаде (локальный), метод Хорна-Шанка (глобальный).
- Корреляционные (блочные) методы — сравнивают блоки пикселей между кадрами, ища наилучшее совпадение по критерию (например, сумма квадратов разностей). Используются в видеокодеках (MPEG, H.264).
- Фазовые методы — используют фазовую корреляцию в частотной области (преобразование Фурье). Устойчивы к шуму и изменениям освещения, но менее точны для сложных движений.
- Нейросетевые методы — применяют глубокие свёрточные сети, обученные на больших наборах данных (например, Flying Chairs, KITTI). Позволяют получать плотный поток в реальном времени.
По плотности поля
- Плотный оптический поток — вычисляется для каждого пикселя изображения. Даёт полную картину движения, но требует больших вычислительных ресурсов.
- Разреженный оптический поток — вычисляется только для набора характерных точек (углов, краёв). Быстрее, но менее информативен.
По иерархии
- Одноуровневые методы — работают с исходным разрешением.
- Пирамидальные (многоуровневые) методы — строят пирамиду изображений с уменьшающимся разрешением, что позволяет обрабатывать большие смещения и повышает устойчивость.
Применение
Оптический поток используется в широком спектре задач:
Компьютерное зрение и обработка видео
- Отслеживание объектов — разреженный поток позволяет следить за движением выбранных точек (например, в системах видеонаблюдения).
- Сегментация движения — выделение областей, движущихся независимо от фона.
- Сжатие видео — межкадровое предсказание в стандартах MPEG-2, H.264, H.265, AV1.
- Стабилизация видео — компенсация дрожания камеры путём выравнивания кадров.
- Интерполяция кадров — создание промежуточных кадров для повышения частоты смены кадров (например, в технологиях Motion Smoothing).
Робототехника и навигация
- Визуальная одометрия — оценка собственного движения робота или беспилотного автомобиля по видеопотоку.
- Избегание препятствий — анализ расхождения оптического потока для обнаружения приближающихся объектов.
- Посадка дронов — использование оптического потока для стабилизации и расчёта высоты (например, в квадрокоптерах DJI, Parrot).
Медицина и биология
- Анализ движения клеток — отслеживание миграции и деления клеток в микроскопии.
- Оценка кровотока — в ангиографии и допплеровской визуализации.
- Анализ походки — в реабилитации и спортивной медицине.
Автомобильная промышленность
- Системы помощи водителю (ADAS) — обнаружение пешеходов, велосипедистов, других транспортных средств.
- Автономное вождение — оценка движения окружения и собственного положения.
Ограничения и проблемы
Несмотря на широкое применение, оптический поток имеет ряд фундаментальных ограничений:
- Апертурная проблема — в однородных областях или на прямых линиях невозможно определить истинное направление движения (видна только компонента, перпендикулярная градиенту).
- Нарушение постоянства яркости — изменение освещения, блики, тени приводят к ошибкам.
- Большие смещения — при быстром движении точки могут смещаться на десятки пикселей, что требует иерархических методов.
- Разрывы поля — на границах движущихся объектов поток может быть негладким, что затрудняет глобальные методы.
- Вычислительная сложность — плотный поток в реальном времени на высоком разрешении требует мощных GPU или специализированных нейросетей.
Интересные факты
- В биологии оптический поток используется для объяснения механизмов зрения насекомых (например, пчёл и мух), которые оценивают скорость и направление полёта по расхождению потока.
- В 2014 году на базе оптического потока была создана система FlowCam, позволяющая отслеживать движение планктона в океане.
- Алгоритмы оптического потока лежат в основе технологии «потоковое видео» (motion compensation) в современных видеокодеках, что позволяет сжимать видео в десятки раз без потери качества.
Источники
- Horn, B. K. P., & Schunck, B. G. (1981). Determining Optical Flow. Artificial Intelligence, 17(1-3), 185–203.
- Lucas, B. D., & Kanade, T. (1981). An Iterative Image Registration Technique with an Application to Stereo Vision. Proceedings of the 7th International Joint Conference on Artificial Intelligence, 674–679.
- Gibson, J. J. (1950). The Perception of the Visual World. Houghton Mifflin.
- Fleet, D. J., & Weiss, Y. (2006). Optical Flow Estimation. In Handbook of Mathematical Models in Computer Vision (pp. 237–257). Springer.
- Ilg, E., Mayer, N., Saikia, T., et al. (2017). FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2462–2470.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →