Optical Flow
Explora los fundamentos del flujo óptico en visión por ordenador. Descubre cómo los vectores de movimiento impulsan la comprensión de vídeo y mejoran el seguimiento en Ultralytics YOLO26.
El flujo óptico es el patrón de movimiento aparente de los objetos, las superficies y los bordes de una escena visual, causado por el movimiento relativo entre un observador y una escena. En el campo de la visión por ordenador, este concepto es fundamental para comprender la dinámica temporal dentro de las secuencias de vídeo. Al analizar el desplazamiento de los 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 qué hay en una imagen, sino también cómo se mueve, conectando el análisis de imágenes estáticas con la comprensión de vídeo dinámico.
Mecanismos principales del flujo óptico#
El cálculo del flujo óptico suele basarse en la suposición de constancia del brillo, que establece que la intensidad de un píxel de un objeto permanece constante de un fotograma al siguiente, incluso cuando se mueve. Los algoritmos utilizan este principio para calcular los vectores de movimiento mediante dos enfoques principales:
- Flujo óptico disperso: Este método calcula el vector de movimiento de un subconjunto específico de características diferenciadas, como esquinas o bordes, detectadas mediante la extracción de características. Algoritmos como el método de Lucas-Kanade son eficientes desde el punto de vista computacional e ideales para tareas de inferencia en tiempo real en las que basta con realizar el seguimiento de 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, esencial para tareas detalladas 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 frente a 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 comprende inherentemente la identidad ni la persistencia de los objetos.
En cambio, el seguimiento de objetos es una tarea de alto nivel que localiza entidades específicas y les asigna un ID coherente a lo largo del tiempo. Los rastreadores avanzados, como los integrados en Ultralytics YOLO26, suelen realizar la detección de objetos para encontrar el objeto y después utilizar señales de movimiento —a veces derivadas del flujo óptico— para asociar las detecciones entre fotogramas. El flujo óptico responde a «¿a qué velocidad se mueven estos píxeles ahora mismo?», mientras que el seguimiento responde a «¿adónde ha ido el coche n.º 5?»
Aplicaciones en el mundo real#
La capacidad de estimar el movimiento a nivel de píxel impulsa una amplia variedad 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 un coche estimar su propio movimiento con respecto al entorno. También ayuda en la estimación de profundidad y la evitación de 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 el software de edición utilizan vectores de flujo para detectar las sacudidas involuntarias de la cámara. Al compensar este movimiento global, los sistemas pueden estabilizar digitalmente las grabaciones. Esta es una función estándar en dispositivos modernos de electrónica de consumo, como smartphones y cámaras de acción.
- Reconocimiento de acciones: En el análisis deportivo y la seguridad, analizar el flujo temporal de los píxeles ayuda a los sistemas a identificar acciones humanas complejas. Por ejemplo, los modelos de estimación de la pose pueden complementarse con datos de flujo para distinguir si una persona camina o corre en función de la velocidad del movimiento de sus 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 (residuo) entre fotogramas, lo que reduce significativamente el tamaño de los archivos para la transmisión y el almacenamiento.
Ejemplo de implementación#
El siguiente ejemplo muestra cómo calcular el flujo óptico denso utilizando la biblioteca OpenCV, una herramienta estándar del 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 la persistencia de los objetos en lugar del movimiento bruto de los píxeles, se deberían considerar los modos de seguimiento disponibles en Ultralytics YOLO11 y YOLO26. Estos modelos abstraen la complejidad del análisis del movimiento y proporcionan ID y trayectorias de objetos robustos desde el primer momento para tareas que van desde la supervisión del tráfico hasta la analítica minorista.









