En visión por computadora , el método de Lucas-Kanade es un método diferencial ampliamente utilizado para la estimación del flujo óptico , desarrollado por Bruce D. Lucas y Takeo Kanade . Este método asume que el flujo es esencialmente constante en un entorno local del píxel considerado y resuelve las ecuaciones básicas de flujo óptico para todos los píxeles de dicho entorno, mediante el criterio de mínimos cuadrados . [ 1 ] [ 2 ]
Al combinar información de varios píxeles cercanos, el método de Lucas-Kanade suele resolver la ambigüedad inherente de la ecuación de flujo óptico. Además, es menos sensible al ruido de la imagen que los métodos puntuales. Por otro lado, al ser un método puramente local, no puede proporcionar información de flujo en el interior de regiones uniformes de la imagen.
Concepto
El método de Lucas-Kanade supone que el desplazamiento del contenido de la imagen entre dos instantes (fotogramas) cercanos es pequeño y aproximadamente constante dentro de una vecindad del punto.bajo consideración. Por lo tanto , se puede suponer que la ecuación de flujo óptico se cumple para todos los píxeles dentro de una ventana centrada en. Es decir, el vector de flujo (velocidad) de la imagen localdebe satisfacer
dóndeson los píxeles dentro de la ventana, yson las derivadas parciales de la imagencon respecto a la posicióny tiempo, evaluado en el puntoy en este momento.
Estas ecuaciones se pueden escribir en forma matricial., dónde
Este sistema tiene más ecuaciones que incógnitas y, por lo tanto, suele estar sobredeterminado. El método de Lucas-Kanade obtiene una solución de compromiso mediante el principio de mínimos cuadrados . Es decir, resuelve elsistema o dóndees la transpuesta de la matriz. Es decir, calcula donde la matriz central en la ecuación es una matriz inversa . Las sumas van desdea.
La matrizA menudo se le llama tensor de estructura de la imagen en el punto.
Ventana ponderada
La solución de mínimos cuadrados simple anterior da la misma importancia a todospíxelesen la ventana. En la práctica, suele ser mejor dar más peso a los píxeles que están más cerca del píxel central.Para ello, se utiliza la versión ponderada de la ecuación de mínimos cuadrados. o dóndees unmatriz diagonal que contiene los pesosser asignado a la ecuación del píxel. Es decir, calcula
El pesoPor lo general, se establece en una función gaussiana de la distancia entrey.
Condiciones y técnicas de uso
Para que la ecuaciónser resoluble,debe ser invertible, oLos valores propios de satisfacenPara evitar problemas de ruido, normalmenteSe requiere que no sea demasiado pequeño. Además, sies demasiado grande, esto significa que el puntoestá en un borde, y este método sufre del problema de la apertura . Por lo tanto, para que este método funcione correctamente, la condición es queyson suficientemente grandes y tienen una magnitud similar. Esta condición también se aplica a la detección de esquinas . Esta observación demuestra que se puede determinar fácilmente qué píxel es adecuado para que funcione el método de Lucas-Kanade con solo inspeccionar una sola imagen.
Una suposición principal de este método es que el movimiento es pequeño (menos de 1 píxel entre dos imágenes, por ejemplo). Si el movimiento es grande y no cumple con esta suposición, una técnica consiste en reducir primero la resolución de las imágenes y luego aplicar el método de Lucas-Kanade. [ 3 ]
Para lograr el seguimiento de movimiento con este método, el vector de flujo se puede aplicar y recalcular iterativamente hasta alcanzar un umbral cercano a cero, momento en el que se puede asumir que las ventanas de imagen son muy similares. [ 1 ] Al hacer esto con cada ventana de seguimiento sucesiva, el punto se puede rastrear a lo largo de varias imágenes en una secuencia, hasta que se oculte o salga del encuadre.
Mejoras y ampliaciones
El método de mínimos cuadrados asume implícitamente que los errores en los datos de la imagen siguen una distribución gaussiana con media cero. Si se espera que la ventana contenga un cierto porcentaje de valores atípicos (valores de datos erróneos que no siguen la distribución de error gaussiana "ordinaria"), se puede utilizar un análisis estadístico para detectarlos y reducir su ponderación en consecuencia.
El método de Lucas-Kanade en sí mismo solo puede utilizarse cuando el vector de flujo de la imagenLa distancia entre los dos fotogramas es lo suficientemente pequeña como para que se cumpla la ecuación diferencial del flujo óptico, que suele ser menor que la distancia entre píxeles. Cuando el vector de flujo puede exceder este límite, como en la correspondencia estéreo o el registro de documentos deformados, el método de Lucas-Kanade aún puede utilizarse para refinar una estimación aproximada del mismo, obtenida por otros medios; por ejemplo, extrapolando los vectores de flujo calculados para fotogramas anteriores, o ejecutando el algoritmo de Lucas-Kanade en versiones de las imágenes a escala reducida. De hecho, este último método es la base del popular algoritmo de correspondencia de características de Kanade-Lucas-Tomasi (KLT) .
Se puede utilizar una técnica similar para calcular deformaciones afines diferenciales del contenido de la imagen.
Véase también
Referencias
- 1 2 B. D. Lucas y T. Kanade (1981), Una técnica iterativa de registro de imágenes con una aplicación a la visión estéreo. Actas del Taller de Comprensión de Imágenes, páginas 121-130
- ↑ Bruce D. Lucas (1984) Coincidencia generalizada de imágenes mediante el método de diferencias (tesis doctoral)
- ↑ JY Bouguet, (2001) . Implementación piramidal de la descripción del algoritmo del rastreador de características afín de Lucas-Kanade. Intel Corporation, 5.
Enlaces externos
- El complemento estabilizador de imágenes para ImageJ basado en el método de Lucas-Kanade.
- Implementación en Matlab de la transformada inversa y normal afín de Lucas -Kanade de Mathworks Lucas-Kanade
- FolkiGPU: Implementación en GPU de un flujo óptico iterativo basado en Lucas-Kanade
- KLT : Una implementación del rastreador de características de Kanade-Lucas-Tomasi
- Takeo Kanade
- Ejemplo en C utilizando el algoritmo de flujo óptico de Lucas-Kanade.
- Ejemplo en C++ utilizando el algoritmo de flujo óptico de Lucas-Kanade.
- Ejemplo en Python utilizando el algoritmo de flujo óptico de Lucas-Kanade.
- Ejemplo en Python que utiliza el rastreador de Lucas-Kanade para la comparación de homografías.
- Ejemplo rápido en MATLAB del método de Lucas-Kanade para mostrar el campo de flujo óptico.
- Ejemplo rápido en MATLAB del método de Lucas-Kanade para mostrar el vector de velocidad de los objetos.
- Movimiento en la visión por computadora
- Inventos japoneses