Glosario

Flujo óptico

Descubre el poder del Flujo Óptico en la visión por ordenador. Aprende cómo estima el movimiento, mejora el análisis de vídeo e impulsa las innovaciones en IA.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

El Flujo Óptico describe el patrón de movimiento aparente de objetos, superficies y bordes en una escena visual causado por el movimiento relativo entre un observador (como una cámara) y la escena. Es un concepto fundamental en visión por ordenador (VC ) que se utiliza para estimar el movimiento de píxeles individuales o características entre fotogramas consecutivos de una secuencia de vídeo. Esta técnica proporciona información valiosa sobre la dinámica de una escena, permitiendo a las máquinas comprender el movimiento de forma similar a como perciben el movimiento los sistemas visuales biológicos. Es un componente clave en diversas aplicaciones de Inteligencia Artificial (IA) y Aprendizaje Automático (AM ) que implican el análisis de datos de vídeo.

Cómo funciona el flujo óptico

La idea central que subyace al cálculo del flujo óptico es la suposición de la "constancia del brillo", que postula que la intensidad de un píxel correspondiente a un punto concreto de un objeto permanece constante (o cambia de forma predecible) a lo largo de intervalos cortos de tiempo mientras se desplaza por el plano de la imagen. Los algoritmos rastrean estos patrones de intensidad de un fotograma al siguiente para calcular los vectores de movimiento de cada píxel o de puntos de interés concretos.

Las técnicas habituales para calcular el flujo óptico incluyen

  • Flujo óptico disperso: Algoritmos como el método Lucas-Kanade rastrean el movimiento de un conjunto disperso de características destacadas (como las esquinas) a través de los fotogramas. Esto es eficiente desde el punto de vista informático, pero sólo proporciona información sobre el movimiento de los puntos seleccionados.
  • Flujo óptico denso: Algoritmos como el método Horn-Schunck intentan calcular un vector de movimiento para cada píxel de la imagen. Esto proporciona una representación mucho más rica del movimiento, pero es computacionalmente más intensivo.
  • Enfoques de aprendizaje profundo: Los métodos modernos suelen utilizar redes neuronales convolucionales (CNN) entrenadas en grandes conjuntos de datos para estimar el flujo óptico. Modelos como FlowNet y RAFT (Recurrent All-Pairs Field Transforms) han demostrado un rendimiento de vanguardia, aprovechando la potencia del aprendizaje profundo (AD) para aprender patrones de movimiento complejos. Estos modelos pueden desarrollarse utilizando marcos como PyTorch o TensorFlow.

Flujo óptico frente a conceptos relacionados

Es importante distinguir el flujo óptico de las tareas relacionadas:

  • Detección de Objetos: Esta tarea identifica y localiza objetos dentro de un único fotograma de la imagen utilizando cuadros delimitadores, normalmente con modelos como Ultralytics YOLO11. Se centra en qué y dónde están los objetos, no en su movimiento entre fotogramas. Puedes explorar comparaciones entre diferentes modelos YOLO para tareas de detección.
  • Seguimiento de objetos: Consiste en seguir objetos específicos detectados a través de múltiples fotogramas, manteniendo su identidad a lo largo del tiempo. Aunque el flujo óptico puede ser un componente utilizado en los algoritmos de seguimiento (como DeepSORT), el seguimiento se centra en las trayectorias de los objetos y la persistencia de la identidad, que es una tarea de nivel superior a la estimación del movimiento por píxeles. Los modelos Ultralytics admiten modos de seguimiento de objetos.
  • Estimación del movimiento: Se trata de un término más amplio que engloba diversas técnicas para determinar el movimiento. El flujo óptico es un tipo específico de estimación del movimiento centrado en el movimiento 2D aparente de los píxeles en el plano de la imagen, a menudo distinto de la estimación del verdadero movimiento 3D de los objetos en el mundo.
  • Segmentación de imágenes: Consiste en dividir una imagen en varios segmentos o regiones, a menudo para aislar objetos o zonas. Aunque las señales de movimiento del flujo óptico pueden ayudar a la segmentación (Segmentación por Movimiento), el objetivo principal es la delimitación espacial, no el cálculo del vector de movimiento. Tareas como la segmentación de instancias proporcionan máscaras por píxel para cada instancia de objeto.

Aplicaciones en el mundo real

El flujo óptico es crucial para muchas aplicaciones que requieren comprender el movimiento a partir del vídeo:

  • Compresión de vídeo: Las normas como MPEG utilizan técnicas de estimación del movimiento similares al flujo óptico para predecir los fotogramas posteriores basándose en los anteriores. Al codificar sólo los vectores de movimiento y los errores de predicción (residuales), se consigue una importante compresión de datos.
  • Sistemas autónomos: Los vehículos autónomos y los robots utilizan el flujo óptico para la odometría visual (estimación del movimiento propio), la detección de obstáculos y la comprensión del movimiento relativo de los objetos de su entorno. Por ejemplo, ayuda a un coche autoconducido a estimar su velocidad respecto a la carretera o a rastrear vehículos cercanos. Empresas como Waymo dependen en gran medida de la percepción del movimiento. Explora la IA en los coches autoconducidos para más contexto.
  • Reconocimiento de acciones: Comprender las acciones humanas en los vídeos a menudo implica analizar patrones de movimiento derivados del flujo óptico.
  • Estabilización de vídeo: Las técnicas de estabilización de imagen digital pueden utilizar el flujo óptico para estimar el movimiento de la cámara y compensarlo, produciendo vídeos más suaves.
  • Análisis de imágenes médicas: Se utiliza para seguir el movimiento de los tejidos, como el movimiento del músculo cardíaco en los ecocardiogramas o la deformación de los órganos durante los procedimientos. Consulta recursos como Radiología: Inteligencia Artificial para conocer los avances relacionados.
  • Robótica: Permite a los robots navegar, interactuar con objetos y realizar tareas basándose en información visual sobre el movimiento en su entorno. La integración con sistemas como ROS a menudo incorpora el análisis del movimiento.

Herramientas y aplicación

Bibliotecas como OpenCV proporcionan implementaciones de algoritmos clásicos de flujo óptico(OpenCV Optical Flow Tutorials). Para los enfoques de aprendizaje profundo, marcos como PyTorch y TensorFlow a menudo aprovechando modelos preentrenados disponibles a través de plataformas como Hugging Face. El entrenamiento de estos modelos requiere conjuntos de datos de vídeo a gran escala con información de flujo real, como los conjuntos de datos FlyingThings3D o Sintel. Plataformas como Ultralytics HUB pueden ayudar a gestionar los conjuntos de datos y los flujos de trabajo de entrenamiento de modelos, aunque se centran principalmente en tareas como la detección y la segmentación, y no directamente en la estimación del flujo óptico.

Leer todo