Optical Flow
Explora los fundamentos del flujo óptico en la visión artificial. Aprende cómo los vectores de movimiento impulsan la comprensión de video y mejoran el seguimiento en Ultralytics YOLO26.
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 artificial, este concepto es fundamental para entender la dinámica temporal dentro de secuencias de vídeo. Al analizar el desplazamiento de píxeles entre dos fotogramas consecutivos, los algoritmos de flujo óptico generan un campo vectorial donde cada vector representa la dirección y la magnitud del movimiento para un punto específico. Este indicador visual de bajo nivel permite que los sistemas de inteligencia artificial perciban no solo lo que hay en una imagen, sino cómo se mueve, tendiendo un puente entre el análisis de imágenes estáticas y la comprensión de vídeo dinámica.
Mecanismos centrales del flujo óptico#
El cálculo del flujo óptico se basa generalmente en la asunción de constancia de brillo, la cual postula que la intensidad de un píxel en un objeto permanece constante de un fotograma al siguiente, incluso cuando se mueve. Los algoritmos utilizan este principio para resolver los vectores de movimiento mediante dos enfoques principales:
- Flujo óptico disperso: Este método calcula el vector de movimiento para un subconjunto específico de características distintas, como esquinas o bordes, detectadas mediante la extracción de características. Los 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 rastrear puntos de interés específicos.
- Flujo óptico denso: Este enfoque calcula un vector de movimiento para cada uno de los píxeles del fotograma. Aunque exige 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 de flujo denso al aprender patrones de movimiento complejos a partir de grandes conjuntos de datos.
Flujo óptico frente al seguimiento de objetos#
Aunque a menudo se usan en conjunto, 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 intrínsecamente la identidad ni la persistencia de los objetos.
En contraste, 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 luego usar pistas 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 "¿a dónde fue el coche n.º 5?"
Aplicaciones en el mundo real#
La capacidad de estimar el movimiento a nivel de píxel potencia 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 que un robot o un coche estime su propio movimiento en relación con el entorno. También ayuda en la estimación de profundidad y en la prevención de obstáculos al analizar 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 la vibración involuntaria de la cámara. Al compensar este movimiento global, los sistemas pueden estabilizar el material de archivo de forma digital. Esta es una función estándar en electrónica de consumo moderna como smartphones y cámaras de acción.
- Reconocimiento de acciones: En la analítica deportiva 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 postura se pueden complementar con datos de flujo para distinguir entre una persona que camina y una que corre basándose en la velocidad del movimiento de las extremidades.
- Compresión de vídeo: Los estándares como la codificación de vídeo MPEG dependen en gran medida de la estimación de 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 de forma significativa el tamaño de los archivos para la transmisión en continuo 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 en el ecosistema de la visión artificial. Este fragmento usa 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 en bruto, 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 IDs de objetos y trayectorias sólidos listos para usar en tareas que van desde la supervisión del tráfico hasta la analítica minorista.






