2011-04-17 11 views

Respuesta

3

Aquí hay una buena implementación del árbol de vocabulario - libvot. Utiliza la biblioteca de hilos múltiples estándar de C++ 11 para acelerar el proceso de compilación, por lo que se ejecuta bastante rápido.

Utiliza tres pasos para construir un árbol de vocabulario. El primer paso es construir un árbol kmeans usando descriptores tamiz. El segundo paso es construir una base de datos de imágenes usando el árbol de vocabulario que construyes en el primer paso. El tercer paso es consultar la imagen en la base de datos de imágenes. Algunas técnicas avanzadas como la lista invertida y la medida de distancia L1 también se reflejan en este repositorio.

0

Desea buscar una curva de relleno de espacio o un índice espacial. Un sfc reduce la complejidad 2d a una complejidad 1d aunque es solo un reordenamiento de la superficie. Un sfc recursivley subdivide la superficie en fichas más pequeñas y sigue recogiendo información de las fichas cercanas. Se puede comparar con un quadtree. Esto puede ser útil para comparar imágenes porque compara cerca de las fichas. Lo difícil es entonces hacer que las fichas sean comparables. Creo que un DCT puede ser útil aquí. Desea buscar el blog de índice espacial de hilbert curve quadtree de Nick.

+0

yo no understad cómo un espacio de llenado de la curva se relaciona con el árbol de vocabulario o cualquier parte del algoritmo mencionado en la pregunta. ¿Sugiere esto como una alternativa al algoritmo completo? ¿Podrías por favor elaborar? – cvlad

+0

Sí, sugiero que sea un método alternativo, pero no tengo experiencia con DCT pero puede buscar este método en google. He olvidado al investigador. Ya está en producción. – Bytemain

0

Creo que el Pyramid Match kernel method propuesto por Grauman y Darrell es generalmente considerado como incluso mejor. Puede obtener una implementación de biblioteca C++ here.

2

En cuanto a los árboles de vocabulario, encontré esta tesis (http://www.tango-controls.org/Members/srubio/MasterThesis-VocabularyTree-SergiRubio-2009.pdf) que los implementa en C++/python. Sin embargo, no puedo encontrar el código en ninguna parte, así que me puse en contacto con el autor para obtener el código pero sin éxito hasta esta fecha.

Además, encontré esta otra implementación (http://www.inf.ethz.ch/personal/fraundof/page2.html), sin embargo no pude ponerla a trabajar.

¿Ya lo ha implementado? Me gustaría hacer lo mismo para el reconocimiento de imágenes, pero parece una tarea muy dolorosa.

Saludos cordiales.

2

Sergio Rubio ha publicado una implementación del uso de un árbol de vocabulario para la clasificación de imágenes en http://sourceforge.net/projects/vocabularytree/. Tuve que volver a trabajar mucho del código C que publicó para que funcione en mi sistema Windows, pero en general fue un muy buen recurso para implementar las ideas presentadas en el documento original.

Cuestiones relacionadas