En la visión artificial y el procesamiento de imágenes , la estimación de movimiento es el proceso de determinar vectores de movimiento que describen la transformación de una imagen 2D a otra; generalmente a partir 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 relacionarse con toda la imagen ( estimación de movimiento global ) o partes específicas, como bloques rectangulares, parches de forma arbitraria o incluso por píxel . Los vectores de movimiento pueden representarse mediante un modelo de traslación o muchos otros modelos que pueden aproximarse al movimiento de una cámara de vídeo real, como la rotación y la traslación en las tres dimensiones y el 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 en concepto 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 video. Los puntos que se corresponden entre sí en dos vistas (imágenes o fotogramas) de una escena u objeto real son "normalmente" el mismo punto en esa escena o en ese objeto. Antes de hacer una estimación de movimiento, debemos definir nuestra medida de correspondencia, es decir, la métrica de coincidencia, que es una medida de cuán similares son dos puntos de la imagen. Aquí no hay nada correcto o incorrecto; la elección de la métrica de coincidencia suele estar relacionada con el uso que se le da al 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, llamada imagen de referencia.
El estándar H.264/MPEG-4 AVC define el vector de movimiento como:
vector de movimiento: un vector bidimensional utilizado para la predicción interdimensional que proporciona un desplazamiento entre las coordenadas de la imagen decodificada y 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 elaboración de dos artículos de las facciones opuestas para intentar llegar a una conclusión. [4] [5]
Los métodos indirectos utilizan características, como la detección de esquinas , y hacen coincidir las características correspondientes entre fotogramas, generalmente con una función estadística aplicada sobre un área local o global. El propósito de la función estadística es eliminar las coincidencias que no corresponden al movimiento 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 coincidencia. La única diferencia es si se resume primero sobre una región de imagen local y luego se compara el resumen (como los métodos basados en características), o se compara primero cada píxel (como elevar al cuadrado la diferencia) y luego se resume sobre una región de imagen local (movimiento basado en bloques y movimiento basado en filtros). Un tipo emergente de criterios 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 sobre una región de imagen local. [6] Algunos criterios de coincidencia tienen la capacidad de excluir puntos que en realidad no corresponden entre sí, aunque produzcan 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 la visión artificial y el procesamiento de imágenes para estimar el movimiento entre dos imágenes o fotogramas. 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.
La aplicación de vectores de movimiento a una imagen para sintetizar la transformación de la siguiente imagen se denomina compensación de movimiento . [7] Se aplica más fácilmente a los estándares de codificación de video basados en la transformada de coseno discreta (DCT) , porque la codificación se realiza en bloques. [8]
Como forma de aprovechar la redundancia temporal, la estimación y compensación de movimiento son partes clave de la compresión de video . Casi todos los estándares de codificación de video utilizan estimación y compensación de movimiento basadas en bloques, como la serie MPEG , incluida la más reciente HEVC .
En la localización y mapeo simultáneos , se reconstruye un modelo 3D de una escena utilizando imágenes de una cámara en movimiento. [9]