es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Derivada espacial en el algoritmo de Lucas-Kanade

Implementando el algoritmo Lucas-Kanade, me quedé atascado en encontrar la derivada espacial de las imágenes. En mi implementación, la encuentro utilizando esta fórmula:

Ix(i, j) = I(i + 1, j) – I(i – 1, j), Iy(i, j) = I(i, j + 1) – I(i, j – 1)

El resultado es muy ruidoso y no parece ser correcto:

Veo la realización en MATLAB con conv2, pero no puedo entender cómo calcular la derivada espacial con una convolución.

Tal vez alguien conozca una realización de código abierto de esta conv2 u otra forma de calcular esto.

También estoy abierto a cualquier otra crítica de mi implementación.

Mi realización: https://github.com/bhankey/TRSPK-2/tree/main/LucasKanade

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en algoritmos, procesamiento de imágenes, visión por computadora, derivadas y flujo óptico, puedo sugerir las siguientes soluciones para el problema de encontrar la derivada espacial de imágenes en la implementación del algoritmo de Lucas-Kanade:

    1. En lugar de utilizar la fórmula mencionada en la pregunta, se puede intentar utilizar métodos más sofisticados para calcular la derivada espacial de imágenes, como filtros de derivadas gaussianas o filtros de Sobel. Estos métodos son más robustos frente al ruido y producen mejores resultados.
    2. Para calcular la derivada espacial de imágenes utilizando convolución, se puede utilizar los siguientes núcleos:

    Dx = [-1 0 1; -1 0 1; -1 0 1];
    Dy = [-1 -1 -1; 0 0 0; 1 1 1];
    Ix = conv2(double(I), Dx, 'same');
    Iy = conv2(double(I), Dy, 'same');
    

    En estos núcleos, Dx y Dy representan los filtros para calcular las derivadas en las direcciones x e y, respectivamente. La función conv2 en MATLAB realiza una convolución 2-D en la imagen de entrada I con los núcleos del filtro.

    1. En la implementación proporcionada en el repositorio de GitHub, hay varios problemas que podrían estar causando los resultados ruidosos e incorrectos. Estos incluyen el uso de un tamaño de ventana fijo y un umbral constante para la selección de características, lo cual puede llevar a un bajo rendimiento de seguimiento en ciertos escenarios. Sería recomendable utilizar métodos de ajuste de tamaño de ventana y selección de umbral adaptativos, como el algoritmo Kanade-Lucas-Tomasi (KLT), para mejorar la precisión del seguimiento.

    En general, mejorar el cálculo de la derivada espacial y abordar otros problemas en la implementación puede llevar a mejores resultados en el algoritmo de Lucas-Kanade.

Comments are closed.