Flujo óptico
Técnica que representa el movimiento aparente de cada píxel entre fotogramas consecutivos como un campo vectorial. Tecnología fundamental para el análisis de vídeo, la detección de movimiento y la estabilización de imagen.
El flujo óptico estima el vector de movimiento 2D de cada píxel entre dos o más imágenes temporalmente consecutivas, capturando cómo se mueven los objetos y la cámara dentro de una escena. Es un componente fundamental del análisis de vídeo, proporcionando información de movimiento por píxel o por característica que los algoritmos posteriores utilizan para seguimiento, segmentación y predicción.
El cálculo del flujo óptico se basa en la suposición de constancia de brillo: la intensidad de un píxel no cambia entre fotogramas en intervalos de tiempo cortos. Esta suposición produce la ecuación de restricción del flujo óptico Ix*u + Iy*v + It = 0, donde Ix, Iy son gradientes espaciales, It es el gradiente temporal, y (u, v) es el vector de flujo a estimar.
- Método Lucas-Kanade: Asume flujo uniforme dentro de una ventana local y resuelve mediante mínimos cuadrados. Produce flujo disperso en puntos de características rastreados. Implementado en OpenCV como
cv2.calcOpticalFlowPyrLK(), es el estándar para seguimiento de puntos en tiempo real - Método Farneback: Aproxima la vecindad de cada píxel con un polinomio cuadrático para estimar campos de flujo denso.
cv2.calcOpticalFlowFarneback()devuelve un vector de flujo para cada píxel del fotograma - Enfoques de aprendizaje profundo: Métodos basados en CNN y Transformer como FlowNet, PWC-Net y RAFT superan significativamente a los métodos clásicos en precisión. RAFT utiliza refinamiento iterativo con un volumen de correlación para lograr resultados de vanguardia en benchmarks como Sintel y KITTI
Las aplicaciones abarcan detección de movimiento (combinada con sustracción de fondo), estabilización de vídeo (compensación de vibración de cámara), interpolación de fotogramas (generación de fotogramas intermedios para cámara lenta), reconocimiento de acciones y conducción autónoma (estimación del movimiento circundante). El despliegue en tiempo real aprovecha implementaciones en GPU y arquitecturas ligeras optimizadas para velocidad de inferencia.