En visión por computadora y procesamiento de imágenes , la estimación del movimiento es el proceso de determinar vectores de movimiento que describen la transformación de una imagen 2D a otra; generalmente de fotogramas adyacentes en una secuencia de vídeo. Es un problema mal planteado ya que el movimiento ocurre en tres dimensiones (3D), pero las imágenes son una proyección de la escena 3D en un plano 2D. Los vectores de movimiento pueden referirse a la imagen completa ( estimación de movimiento global ) o a partes específicas, como bloques rectangulares, parches de formas arbitrarias o incluso por píxel . Los vectores de movimiento pueden representarse mediante un modelo traslacional o muchos otros modelos que pueden aproximarse al movimiento de una cámara de video real, como rotación y traslación en las tres dimensiones y zoom.
La mayoría de las veces, el término estimación de movimiento y el término flujo óptico se usan indistintamente. [ cita requerida ] También está relacionado conceptualmente con el registro de imágenes y la correspondencia estéreo . [1] De hecho, todos estos términos se refieren al proceso de encontrar puntos correspondientes entre dos imágenes o fotogramas de vídeo. Los puntos que se corresponden entre sí en dos vistas (imágenes o fotogramas) de una escena u objeto real "normalmente" son el mismo punto en esa escena o sobre ese objeto. Antes de realizar la estimación del movimiento, debemos definir nuestra medida de correspondencia, es decir, la métrica coincidente, que es una medida de qué tan similares son dos puntos de la imagen. Aquí no hay bien ni mal; La elección de la métrica coincidente generalmente está relacionada con para qué se utiliza el movimiento estimado final, así como con la estrategia de optimización en el proceso de estimación.
Cada vector de movimiento se utiliza para representar un macrobloque en una imagen en función de la posición de este macrobloque (o uno similar) en otra imagen, denominada imagen de referencia.
El estándar H.264/MPEG-4 AVC define el vector de movimiento como:
vector de movimiento: vector bidimensional utilizado para interpredicción que proporciona un desplazamiento desde las coordenadas de la imagen decodificada hasta las coordenadas de una imagen de referencia. [2] [3]
Los métodos para encontrar vectores de movimiento se pueden clasificar en métodos basados en píxeles ("directos") y métodos basados en características ("indirectos"). Un famoso debate dio lugar a la redacción de dos artículos de facciones opuestas para intentar establecer una conclusión. [4] [5]
Los métodos indirectos utilizan funciones, como la detección de esquinas , y hacen coincidir las funciones correspondientes entre fotogramas, normalmente con una función estadística aplicada sobre un área local o global. El objetivo de la función estadística es eliminar coincidencias que no se correspondan con la moción real.
Las funciones estadísticas que se han utilizado con éxito incluyen RANSAC .
Se puede argumentar que casi todos los métodos requieren algún tipo de definición de los criterios de comparación. La única diferencia estriba en si primero se resume una región de imagen local y luego se compara el resumen (como los métodos basados en características), o se compara cada píxel primero (como se eleva al cuadrado la diferencia) y luego se resume una región de imagen local (base de bloque). movimiento y movimiento basado en filtro). Un tipo emergente de criterio de coincidencia resume primero una región de imagen local para cada ubicación de píxel (a través de alguna transformación de características como la transformada laplaciana), compara cada píxel resumido y resume nuevamente una región de imagen local. [6] Algunos criterios de coincidencia tienen la capacidad de excluir puntos que en realidad no se corresponden entre sí, aunque producen una buena puntuación de coincidencia, otros no tienen esta capacidad, pero siguen siendo criterios de coincidencia.
La estimación de movimiento afín es una técnica utilizada en visión por computadora y procesamiento de imágenes para estimar el movimiento entre dos imágenes o fotogramas. Se supone que el movimiento se puede modelar como una transformación afín (traslación + rotación + zoom), que es una transformación lineal seguida de una traslación.
Aplicar los vectores de movimiento a una imagen para sintetizar la transformación a la siguiente imagen se llama compensación de movimiento . [7] Se aplica más fácilmente a los estándares de codificación de vídeo basados en transformada de coseno discreto (DCT) , porque la codificación se realiza en bloques. [8]
Como forma de explotar la redundancia temporal, la estimación y compensación del movimiento son partes clave de la compresión de vídeo . Casi todos los estándares de codificación de vídeo utilizan compensación y estimación de movimiento basada en bloques, como la serie MPEG , incluido el HEVC más reciente .
En localización y mapeo simultáneos , se reconstruye un modelo 3D de una escena utilizando imágenes de una cámara en movimiento. [9]