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 dicha escena. En el campo de la visión artificial, este concepto es fundamental para comprender la dinámica temporal dentro de 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 donde cada vector representa la dirección y magnitud del movimiento para un punto específico. Esta señal visual de bajo nivel permite que los sistemas de inteligencia artificial perciban no solo qué hay en una imagen, sino cómo se mueve, cerrando la brecha entre el análisis de imágenes estáticas y la comprensión de vídeo dinámica.
Link to this sectionMecanismos 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 distintivas, tales como esquinas o bordes, detectadas mediante extracción de características. Algoritmos como el método Lucas-Kanade son computacionalmente eficientes e ideales para tareas de inferencia en tiempo real donde basta con realizar el seguimiento de puntos de interés específicos.
- Flujo óptico denso: Este enfoque computa un vector de movimiento para cada uno de los píxeles del fotograma. Aunque es mucho más intensivo computacionalmente, 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 deep learning a menudo superan 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.
Link to this sectionFlujo óptico frente al seguimiento de objetos#
Aunque a menudo se utilizan conjuntamente, es vital 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 o la persistencia de un objeto.
Por el contrario, 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 detección de objetos para encontrar el objeto y luego utilizan 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 fue el coche n.º 5?"
Link to this sectionAplicaciones 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 a un robot o vehículo estimar su propio movimiento en relación con el entorno. También ayuda en la estimación de profundidad y en la evitación de obstáculos al analizar la rapidez con la que los objetos en el 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 sacudidas involuntarias de la cámara. Al compensar este movimiento global, los sistemas pueden estabilizar el metraje digitalmente. Esta es una característica estándar en electrónica de consumo moderna, como smartphones y 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 poses pueden enriquecerse con datos de flujo para distinguir entre una persona que camina y una que corre según 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 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, reduciendo significativamente el tamaño de los archivos para streaming y almacenamiento.
Link to this sectionEjemplo de implementación#
El siguiente ejemplo demuestra 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 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 bruto de píxeles, deberías considerar los modos de seguimiento disponibles en Ultralytics YOLO11 y YOLO26. Estos modelos abstraen la complejidad del análisis de movimiento, proporcionando IDs de objetos y trayectorias robustas desde el primer momento para tareas que van desde la monitorización de tráfico hasta la analítica minorista.






