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

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

Explore how optical flow enables motion analysis in computer vision. Learn about sparse vs. dense flow, real-world applications, and integration with YOLO26.

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

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

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

  • Редкий оптический поток: Этот метод вычисляет вектор движения для определенного подмножества отличительных признаков, таких как углы или края, обнаруженных с помощью извлечения признаков. Алгоритмы, такие как метод Лукаса-Канаде, эффективны с точки зрения вычислений и идеально подходят для задач вывода в реальном времени, где достаточно отслеживать определенные точки интереса.
  • Плотный оптический поток: Этот подход вычисляет вектор движения для каждого отдельного пикселя в кадре. Хотя он значительно более вычислительно емкий, он предоставляет исчерпывающую карту движения, необходимую для таких тонких задач, как сегментация изображений и структурный анализ. Современные архитектуры глубокого обучения часто превосходят традиционные математические методы в оценке плотного потока, изучая сложные модели движения из больших наборов данных.

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

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

Напротив, отслеживание объектов — это высокоуровневая задача, которая заключается в поиске определенных объектов и присвоении им постоянного идентификатора в течение времени. Передовые трекеры, такие как те, которые интегрированы в Ultralytics , обычно выполняют обнаружение объектов, чтобы найти объект, а затем используют сигналы движения — иногда полученные из оптического потока — для сопоставления обнаружений в разных кадрах. Оптический поток отвечает на вопрос «как быстро движутся эти пиксели в данный момент», тогда как отслеживание отвечает на вопрос «куда уехал автомобиль № 5?»

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

Способность оценивать движение на уровне пикселей лежит в основе широкого спектра сложных технологий:

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

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

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

import cv2
import numpy as np

# Simulate two consecutive frames (replace with actual image paths)
frame1 = np.zeros((100, 100, 3), dtype=np.uint8)
frame2 = np.zeros((100, 100, 3), dtype=np.uint8)
cv2.rectangle(frame1, (20, 20), (40, 40), (255, 255, 255), -1)  # Object at pos 1
cv2.rectangle(frame2, (25, 25), (45, 45), (255, 255, 255), -1)  # Object moved

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

# Calculate dense optical flow
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"Max motion detected: {np.max(mag):.2f} pixels")

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

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

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

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