Quiero comparar los descriptores SURF en una imagen (A), con los descriptores en varias otras imágenes (B, C, D, ..) para encontrar la imagen más similar a A. Los descriptores tienen 64 dimensiones.Comparar descriptores SURF en una imagen con una lista de descriptores en otras imágenes
Usando C# y Emgu, la coincidencia se hace comparando los descriptores de A con B, luego con C, luego con D's, y así sucesivamente. Esto es muy lento cuando el recuento de imágenes supera 10, porque muchos descriptores irrelevantes deben buscarse.
Para acelerar el proceso, el camino correcto (según los artículos) parece ser construir un árbol kd para los descriptores en (B, C, D, ..) para encontrar rápidamente el descriptor en A. El árbol kd se divide en dimensiones de acuerdo con el nivel. La primera división se decide por la 1ª dimensión, la segunda división por la 2.ª dimensión, etc. Sin embargo, cuando el número de dimensiones es alto para los descriptores (64), el beneficio de usar un árbol KD se reduce.
Así que mi pregunta es: ¿qué experiencia o conocimiento tiene con el uso de un árbol KD/otro método para que coincida con los descriptores SURF de una imagen (A) a varias imágenes (B, C, D ..). ¿Qué funciona bien y no tan bien y has hecho algo como esto?
FLANN sería una opción aquí, ya que es utilizado por OpenCV, pero no puedo encontrar una versión para C#. Aproximadamente Nearest Boor también sería una opción para acelerar el árbol kd, pero ¿funciona bien con las imágenes que coinciden?
Saludos Morten
Esa página ya no funciona, aparece el mensaje "Error Trac" – mpen
http://code.opencv.org/projects/opencv/repository/entry/trunk/opencv/samples /c/find_obj.cpp – Piotr