Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

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

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

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

Основные механизмы оптического потока

Расчет оптического потока обычно основывается на предположении "постоянства яркости". Этот принцип утверждает, что интенсивность пикселей в определенной точке объекта остается постоянной между последовательными кадрами, даже когда даже при его перемещении. Алгоритмы используют это предположение для track перемещений. Существует два основных подхода к определению этих поля движения:

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

Оптический поток vs. Отслеживание объектов

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

В отличие от этого, отслеживание объектов - это высокоуровневая задача, которая определяет местоположение конкретных объектов и присваивает им последовательный идентификатор во всех кадрах. Продвинутые режимы отслеживания, такие как те, что доступны в Ultralytics YOLO11обычно выполняют обнаружение объектов сначала, а затем используют сигналы движения, чтобы связать обнаруженные объекты. В то время как трекер может использовать оптический поток для предсказания положения, целью трекера является сохранение идентичности ("Куда поехала машина № 4?"), в то время как целью оптического потока является отображение движения отображение движения ("С какой скоростью эти пиксели движутся вправо?").

Приложения реального мира в искусственном интеллекте

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

  • Автономные системы и робототехника: В области автономные транспортные средстваоптический поток используется для визуальной одометрии - оценки собственного движения транспортного средства относительно окружающего мира. Это помогает в обнаружении движущихся препятствий, которые могут быть пропущены при статическом обнаружении, что способствует более безопасной навигации. Аналогично, в робототехникеагенты используют поток для манипулирования объектами и навигации в динамических средах, используя такие механизмы, как ROS.
  • Распознавание действий: Анализ временных моделей движения позволяет системам ИИ распознавать сложные человеческие действия. Например, в интеллектуальные фитнес-технологииоптический поток может помочь уточнить оценка позы гарантируя, что движения конечностей Движения конечностей отслеживаются плавно между кадрами, определяя такие упражнения, как приседания или теннисные качели.
  • Стабилизация и сжатие видео: Потребительская электроника в значительной степени опирается на оценку потока. Электронная стабилизация изображения (EIS) использует векторы потока для компенсации дрожания камеры. Кроме того, стандарты сжатия видео стандарты сжатия видео, такие как MPEG используют оценку движения для уменьшения размера файлов за счет кодирования только разницы (остатков) между кадрами, а не полных кадров самих кадров.
  • Медицинская визуализация: In анализ медицинских изображенийоптический поток применяется для track деформации тканей, например, биения сердца на эхокардиограмме. Это помогает врачам количественно оценить работу органов и обнаружить аномалии, невидимые на статичных изображениях.

Пример реализации

Следующий пример на Python демонстрирует, как вычислить плотный оптический поток, используя OpenCV библиотеки. Здесь используется алгоритм Гуннара Фарнебека, популярный метод оценки плотного потока.

import cv2
import numpy as np

# Load two consecutive frames (ensure these files exist)
frame1 = cv2.imread("frame1.jpg")
frame2 = cv2.imread("frame2.jpg")

# Convert frames to grayscale
prvs = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
next = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)

# Calculate dense optical flow using Farneback's algorithm
flow = cv2.calcOpticalFlowFarneback(prvs, next, None, 0.5, 3, 15, 3, 5, 1.2, 0)

# Compute magnitude and angle of 2D vectors
mag, ang = cv2.cartToPolar(flow[..., 0], flow[..., 1])

print(f"Flow shape: {flow.shape}")  # Output: (Height, Width, 2)
print(f"Max motion magnitude: {np.max(mag):.2f} pixels")

Для пользователей, желающих интегрировать анализ движения с обнаружением объектов, Модели обнаруженияUltralytics могут быть объединены с алгоритмами потока для создания надежных аналитических конвейеров. В то время как оптический поток предоставляет исходные данные о движении, модели более высокого уровня, такие как YOLO11 обеспечивают семантическое понимание, необходимое для эффективной интерпретации движения. Продолжающиеся исследования и разработки таких моделей, как YOLO26 направлены на дальнейшее объединение пространственного и временного понимания для еще более быстрого сквозного анализа видео.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас