¿Conoce alguna implementación o mejora del método de emparejar imágenes propuesto por David Nister y Henrik Stewenius, llamado "Scalable Recognition with a Vocabulary Tree"? Estoy tratando de implementarlo y tengo problemas para entender algunas partes del algoritmo (más específicamente, calcular el puntaje).Implementaciones de coincidencia de imágenes usando "Reconocimiento escalable con un árbol de vocabulario"
Respuesta
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.
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.
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.
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.
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.
Recientemente encontré una implementación no muy buena de árbol de vocabulario en C++ llamada DBow.
El código está bien organizado y tiene muchos comentarios.
Pedido aquí: http://webdiis.unizar.es/~dorian/index.php?p=31
- 1. ¿Qué es un árbol de vocabulario y cómo construir uno?
- 2. Algoritmos/implementaciones de reconocimiento/identificación de huellas dactilares
- 3. Reconocimiento de imágenes
- 4. algoritmo de coincidencia de árbol?
- 5. Buscando un AR con la biblioteca de reconocimiento de imágenes
- 6. Ejecución escalable escalable de tareas con Redis
- 7. Preprocesamiento de imágenes para reconocimiento de texto
- 8. reconocimiento de forma php en las imágenes
- 9. Reconocimiento de imágenes y representación en 3D
- 10. no supervisado Reconocimiento de entidades con nombre (NER) con vocabulario controlado personalizado para crosslink-suggestions en Java
- 11. Reconocimiento de logotipo en las imágenes
- 12. Cola escalable de trabajo/mensaje escalable con retraso
- 13. ¿Cómo escribo un servidor de socket escalable usando C# 4.0?
- 14. Reconocimiento de imágenes de la biblioteca/API de código iPhone
- 15. ¿Hay alguna biblioteca de reconocimiento de imágenes OK para .NET?
- 16. Porcentaje de coincidencia de coincidencia con Levenshtein Coincidencia de distancia
- 17. pasos de aprendizaje para el algoritmo de reconocimiento de imágenes
- 18. Reconocimiento de imágenes para controlar la automatización de pruebas
- 19. Cómo hacer reconocimiento de gestos usando acelerómetros
- 20. ¿Construir un árbol de probabilidad usando php?
- 21. obtener ID de vocabulario por nombre
- 22. Ayuda con "Arquitectura de aplicaciones JavaScript escalable"
- 23. Reconocimiento marcador en Android (reconocimiento de cubos de Rubik)
- 24. Algoritmos de reconocimiento de patrones
- 25. Coincidencia de histograma - procesamiento de imágenes - c/C++
- 26. Enfermedad llamada reconocimiento de entidad
- 27. Reconocimiento de matrícula con OpenCV
- 28. Marco/guía para el reconocimiento de imágenes - Realidad Aumentada
- 29. ¿Computa los conteos de palabras, imágenes, videos y archivos de audio de una manera escalable?
- 30. recorte escalable máscara
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
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