Buenas características / algoritmos para reconocer modelos de automóviles en imágenes

9

Tengo una pregunta sobre el reconocimiento de objetos, ¡especialmente el reconocimiento de modelos de automóviles! Estoy al comienzo de un trabajo sobre la identificación del mismo modelo de automóvil en diferentes imágenes. Por el momento, creo que uno de los mejores algoritmos para el reconocimiento de objetos 3D es SIFT, pero después de jugar un poco con una implementación de demostración, tengo la extraña sensación de que este algoritmo tiene algunos problemas con objetos metálicos brillantes como los automóviles, especialmente si tienen colores diferentes.

¿Alguien sabe algún trabajo en esta área en general algún algoritmo adecuado para la tarea de encontrar el mismo modelo de automóvil en diferentes imágenes?

¡Gracias de antemano por tu ayuda!

jstr
fuente
2
¿Puedes publicar algunas imágenes de ejemplo?
endolito
Por supuesto. Las imágenes para crear un modelo de modelos de automóviles ;-) podrían ser como: s5 coupe training 1 o como s5 coupe training 2 pero también imágenes 'normales'. Las imágenes de consulta podrían ser como s5 coupe query 1 ¡ espero que ayude!
jstr
¿Qué detectores de características alternativos como SIFT, GLOH o SURF existen para identificar los puntos clave adecuados en los automóviles?
jstr
@jstr si terminó implementando el esquema que se describe a continuación, ¿qué tan bien funcionó?
resolvePuzzles

Respuestas:

7

Echaría un vistazo al llamado enfoque de "bolsa de palabras" o "palabras visuales". Se utiliza cada vez más para la categorización e identificación de imágenes. Este algoritmo generalmente comienza detectando puntos robustos, como los puntos SIFT, en una imagen. Se utiliza la región alrededor de estos puntos encontrados (el descriptor SIFT de 128 bits en su caso).

En la forma más simple, uno puede recopilar todos los datos de todos los descriptores de todas las imágenes y agruparlos, por ejemplo, utilizando k-means. Cada imagen original tiene descriptores que contribuyen a varios grupos. Los centroides de estos grupos, es decir, las palabras visuales, se pueden usar como un nuevo descriptor para la imagen. Básicamente, espera que los grupos de una imagen a la que contribuyen sus descriptores, sea indicativo de la categoría de la imagen.

Nuevamente, en el caso más simple, tiene una lista de grupos y, por imagen, cuenta cuáles de estos grupos contenían descriptores de esa imagen y cuántos. Esto es similar al método de frecuencia de término / frecuencia de documento inversa (TD / IFD) utilizado en la recuperación de texto. Vea este rápido y sucio script de Matlab .

Este enfoque se investiga activamente y existen muchos algoritmos mucho más avanzados.

El sitio web VLfeat contiene una demostración más avanzada de este enfoque, clasificando el conjunto de datos caltech 101. También son dignos de mención los resultados y el software de Caltech .

Maurits
fuente
Hola Maurits, gracias por tu respuesta. ¡Pensaré sobre eso! Pero una pregunta. Si tengo las 'palabras visuales', ¿cómo mido la distancia entre ellas? Creo que usaría los descriptores SIFT, ¿es correcto? - Lowe tiene un artículo en el que describe un método para reconocer objetos 3D mediante la construcción de modelos de descriptores SIFT. ¿Alguien sabe algunos otros buenos documentos sobre este tema (reconocimiento de objetos 3D con otras características)?
jstr
En este caso, solo la distancia euclidiana, ya que está agrupando vectores enteros. No creo que tenga que medir la distancia entre los centroides del clúster per se, sino que, cuando se le presenta una imagen de consulta (y, por lo tanto, los descriptores de consulta), mide a qué centroides estos descriptores son los más cercanos.
Maurits
Ok, usar una medida de distancia es claro ;-) pero ¿en qué datos? En los descriptores SIFT por palabra visual?
jstr
De hecho, tres veces, como una métrica para el agrupamiento inicial, para determinar a qué centroide / palabra visual es más cercano un descriptor de consulta y, finalmente, comparar el vector td / idf de consulta con los de la base de datos.
Maurits
Ok, tengo eso ;-) pero ¿en qué datos funciona la medida de distancia? En los descriptores SIFT?
jstr