Глоссарий

Оптический поток

Открой для себя мощь Optical Flow в компьютерном зрении. Узнай, как он оценивает движение, улучшает анализ видео и стимулирует инновации в области искусственного интеллекта.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Оптический поток описывает картину видимого движения объектов, поверхностей и краев в визуальной сцене, вызванную относительным движением между наблюдателем (например, камерой) и сценой. Это фундаментальная концепция компьютерного зрения (КВ), используемая для оценки движения отдельных пикселей или элементов между последовательными кадрами видеопоследовательности. Эта техника дает ценную информацию о динамике сцены, позволяя машинам понимать движение подобно тому, как биологические зрительные системы воспринимают движение. Это ключевой компонент в различных приложениях искусственного интеллекта (AI) и машинного обучения (ML), которые связаны с анализом видеоданных.

Как работает оптический поток

В основе расчета оптического потока лежит предположение о "постоянстве яркости", согласно которому интенсивность пикселя, соответствующего определенной точке объекта, остается постоянной (или предсказуемо меняется) в течение коротких временных интервалов по мере его перемещения по плоскости изображения. Алгоритмы отслеживают эти изменения интенсивности от одного кадра к другому, чтобы вычислить векторы движения для каждого пикселя или для конкретных точек интереса.

Общие методы расчета оптического потока включают в себя:

  • Разреженный оптический поток: алгоритмы вроде метода Лукаса-Канаде отслеживают движение разреженного набора существенных признаков (например, углов) по кадрам. Это эффективно с вычислительной точки зрения, но дает информацию о движении только для выбранных точек.
  • Плотный оптический поток: алгоритмы, подобные методу Хорна-Шунка, направлены на вычисление вектора движения для каждого пикселя на изображении. Это дает гораздо более богатое представление о движении, но требует больших вычислительных затрат.
  • Подходы глубокого обучения: В современных методах для оценки оптического потока часто используются конволюционные нейронные сети (КНС), обученные на больших наборах данных. Такие модели, как FlowNet и RAFT (Recurrent All-Pairs Field Transforms), показали самую современную производительность, используя возможности глубокого обучения (DL) для изучения сложных паттернов движения. Эти модели можно разработать с помощью таких фреймворков, как PyTorch или TensorFlow.

Оптический поток в сравнении со смежными понятиями

Важно отличать оптический поток от смежных задач:

  • Обнаружение объектов: Эта задача идентифицирует и определяет местоположение объектов в пределах одного кадра изображения с помощью ограничительных рамок, обычно с помощью таких моделей, как Ultralytics YOLO11. Она фокусируется на том, что и где находится, а не на движении объектов между кадрами. Ты можешь изучить сравнения между различными моделями YOLO для задач обнаружения.
  • Отслеживание объектов: Это включает в себя слежение за определенными обнаруженными объектами на протяжении нескольких кадров, сохраняя их идентичность с течением времени. Хотя оптический поток может быть компонентом, используемым в алгоритмах отслеживания (например, DeepSORT), отслеживание сосредоточено на траекториях движения объектов и сохранении их идентичности, что является задачей более высокого уровня, чем оценка движения по пикселям. Модели Ultralytics поддерживают режимы отслеживания объектов.
  • Оценка движения: Это более широкий термин, охватывающий различные техники определения движения. Оптический поток - это особый тип оценки движения, ориентированный на кажущееся двумерное движение пикселей в плоскости изображения, что часто отличается от оценки истинного трехмерного движения объектов в мире.
  • Сегментация изображения: Это разделение изображения на несколько сегментов или областей, часто для выделения объектов или областей. Хотя подсказки движения из оптического потока могут помочь в сегментации (Motion Segmentation), основной целью является пространственное разграничение, а не вычисление вектора движения. Такие задачи, как сегментация экземпляров, позволяют получить пиксельные маски для каждого экземпляра объекта.

Применение в реальном мире

Оптический поток имеет решающее значение для многих приложений, требующих понимания движения по видео:

  • Сжатие видео: Такие стандарты, как MPEG, используют технику оценки движения, похожую на оптический поток, для предсказания последующих кадров на основе предыдущих. За счет кодирования только векторов движения и ошибок предсказания (остатков) достигается значительное сжатие данных.
  • Автономные системы: Автономные транспортные средства и роботы используют оптический поток для визуальной одометрии (оценки собственного движения), обнаружения препятствий и понимания относительного движения объектов в окружающей среде. Например, это помогает самодвижущемуся автомобилю оценить свою скорость относительно дороги или отследить соседние машины. Такие компании, как Waymo, в значительной степени полагаются на восприятие движения. Изучи ИИ в самодвижущихся автомобилях, чтобы получить больше информации.
  • Распознавание действий: Понимание действий человека на видео часто включает в себя анализ паттернов движения, полученных из оптического потока.
  • Стабилизация видео: Технологии цифровой стабилизации изображения могут использовать оптический поток для оценки дрожания камеры и его компенсации, создавая более плавные видео.
  • Анализ медицинских изображений: Используется для отслеживания движения тканей, например, движения сердечной мышцы на эхокардиограммах или деформации органов во время процедур. Смотри такие ресурсы, как "Радиология: Искусственный интеллект", чтобы узнать о соответствующих достижениях.
  • Робототехника: Позволяет роботам ориентироваться, взаимодействовать с объектами и выполнять задачи на основе визуальной обратной связи о движении в окружающей среде. Интеграция с такими системами, как ROS, часто включает в себя анализ движений.

Инструменты и реализация

Библиотеки вроде OpenCV предоставляют реализацию классических алгоритмов оптического потока(OpenCV Optical Flow Tutorials). Для подходов глубокого обучения используются такие фреймворки, как PyTorch и TensorFlow широко используются, часто используя предварительно обученные модели, доступные через такие платформы, как Hugging Face. Для обучения этих моделей требуются масштабные наборы видео данных с информацией об истинном потоке, такие как наборы данных FlyingThings3D или Sintel. Платформы вроде Ultralytics HUB могут помочь в управлении наборами данных и рабочими процессами обучения моделей, хотя они в первую очередь ориентированы на такие задачи, как обнаружение и сегментация, а не непосредственно на оценку оптического потока.

Читать полностью