Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Flujo Óptico

Explora los fundamentos del flujo óptico en la visión artificial. Descubre cómo los vectores de movimiento impulsan la comprensión de los vídeos y mejoran el seguimiento en Ultralytics .

El flujo óptico es el patrón de movimiento aparente de objetos, superficies y bordes en una escena visual causado por el movimiento relativo entre un observador y una escena. En el campo de la visión por computadora, este concepto es fundamental para comprender la dinámica temporal dentro de las secuencias de video. Al analizar el desplazamiento de píxeles entre dos fotogramas consecutivos, los algoritmos de flujo óptico generan un campo vectorial en el que cada vector representa la dirección y la magnitud del movimiento de un punto específico. Esta señal visual de bajo nivel permite a los sistemas de inteligencia artificial percibir no solo lo que hay en una imagen, sino también cómo se mueve, lo que acorta la distancia entre el análisis de imágenes estáticas y la comprensión dinámica de vídeos.

Mecanismos básicos del flujo óptico

El cálculo del flujo óptico se basa generalmente en la suposición de la constancia del brillo, que postula que la intensidad de un píxel en un objeto permanece constante de un fotograma a otro, incluso cuando se mueve. Los algoritmos utilizan este principio para resolver los vectores de movimiento utilizando dos enfoques principales:

  • Flujo óptico disperso: Este método calcula el vector de movimiento para un subconjunto específico de características distintivas, como esquinas o bordes, detectadas mediante la extracción de características. Los algoritmos como el método Lucas-Kanade son computacionalmente eficientes e ideales para tareas de inferencia en tiempo real en las que basta con rastrear puntos de interés específicos.
  • Flujo óptico denso: Este enfoque calcula un vector de movimiento para cada píxel del fotograma. Aunque requiere muchos más recursos computacionales , proporciona un mapa de movimiento completo que resulta esencial para tareas de gran precisión, como la segmentación de imágenes y el análisis estructural. Las arquitecturas modernas de aprendizaje profundo suelen superar a los métodos matemáticos tradicionales en la estimación del flujo denso, ya que aprenden patrones de movimiento complejos a partir de grandes conjuntos de datos.

Flujo Óptico vs. Seguimiento de Objetos

Aunque a menudo se utilizan conjuntamente, es fundamental distinguir el flujo óptico del seguimiento de objetos. El flujo óptico es una operación de bajo nivel que describe el movimiento instantáneo de los píxeles; no entiende de forma inherente la identidad o la persistencia de los objetos.

Por el contrario, el seguimiento de objetos es una tarea de alto nivel que localiza entidades específicas y les asigna un identificador coherente a lo largo del tiempo. Los rastreadores avanzados, como los integrados en Ultralytics , suelen realizar la detección de objetos para encontrar el objeto y, a continuación, utilizan señales de movimiento, a veces derivadas del flujo óptico, para asociar las detecciones entre fotogramas. El flujo óptico responde a la pregunta «¿a qué velocidad se mueven estos píxeles en este momento?», mientras que el seguimiento responde a la pregunta «¿adónde ha ido el coche n.º 5?».

Aplicaciones en el mundo real

La capacidad de estimar el movimiento a nivel de píxeles impulsa una amplia gama de tecnologías sofisticadas:

  • Vehículos autónomos y robótica: El flujo óptico se utiliza para la odometría visual, lo que permite a un robot o a un coche estimar su propio movimiento en relación con el entorno. También ayuda a estimar la profundidad y a evitar obstáculos mediante el análisis de la rapidez con la que los objetos del campo visual se expanden o se mueven.
  • Estabilización de vídeo: Las cámaras y los programas de edición utilizan vectores de flujo para detect movimientos detect de la cámara. Al compensar este movimiento global, los sistemas pueden estabilizar digitalmente las imágenes. Esta es una función estándar en los dispositivos electrónicos de consumo modernos, como los teléfonos inteligentes y las cámaras de acción.
  • Reconocimiento de acciones: En el análisis deportivo y la seguridad, el análisis del flujo temporal de píxeles ayuda a los sistemas a identificar acciones humanas complejas. Por ejemplo, los modelos de estimación de posturas pueden complementarse con datos de flujo para distinguir entre una persona que camina y otra que corre basándose en la velocidad del movimiento de las extremidades.
  • Compresión de vídeo: Estándares como la codificación de vídeo MPEG dependen en gran medida de la estimación del movimiento. En lugar de almacenar cada fotograma completo, el códec almacena el flujo óptico (vectores de movimiento) y la diferencia (residual) entre fotogramas, lo que reduce significativamente el tamaño de los archivos para su transmisión y almacenamiento.

Ejemplo de aplicación

El siguiente ejemplo muestra cómo calcular el flujo óptico denso utilizando la OpenCV , una herramienta estándar en el ecosistema de la visión por ordenador . Este fragmento utiliza el algoritmo de Farneback para generar un mapa de flujo entre dos fotogramas consecutivos.

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")

Para aplicaciones de alto nivel que requieren persistencia de objetos en lugar de movimiento de píxeles sin procesar, los usuarios deben considerar los modos de seguimiento disponibles en Ultralytics YOLO11 y YOLO26. Estos modelos abstraen la complejidad del análisis de movimiento y proporcionan identificadores de objetos y trayectorias robustos y listos para usar en tareas que van desde la monitorización del tráfico hasta el análisis minorista.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora