Bonnes fonctionnalités / algorithmes pour reconnaître les modèles de voitures dans les images

9

J'ai une question concernant la reconnaissance d'objets, en particulier la reconnaissance des modèles de voitures! Je suis au début d'un travail sur l'identification du même modèle de voiture dans différentes images. Pour le moment, je pense que l'un des meilleurs algorithmes pour la reconnaissance d'objets 3D est SIFT, mais après avoir joué un peu avec une implémentation de démonstration, j'ai l'impression étrange que cet algorithme ait quelques problèmes avec des objets métalliques brillants comme les voitures, surtout s'ils ont des couleurs différentes.

Quelqu'un connaît-il des travaux sur ce domaine en général, un algorithme approprié pour la tâche de trouver le même modèle de voiture dans différentes images?

Merci d'avance pour votre aide!

jstr
la source
2
Pouvez-vous publier des exemples d'images?
endolith
Sûr. Les images pour créer un modèle de modèles de voitures ;-) pourraient être comme: s5 coupe training 1 ou comme s5 coupe training 2 mais aussi des images 'normales'. Les images de requête pourraient ressembler à la requête de coupe s5 1 espérons que cela aide!
jstr
Quels détecteurs de fonctionnalités alternatifs comme SIFT, GLOH ou SURF existe-t-il pour identifier les points clés appropriés sur les voitures?
jstr
@jstr si vous avez fini par mettre en œuvre le schéma décrit ci-dessous, dans quelle mesure cela a-t-il fonctionné?
resolutionPuzzles

Réponses:

7

J'examinerais l'approche dite du «sac de mots» ou des «mots visuels». Il est de plus en plus utilisé pour la catégorisation et l'identification des images. Cet algorithme commence généralement par détecter des points robustes, tels que des points SIFT, dans une image. La région autour de ces points trouvés (le descripteur SIFT 128 bits dans votre cas) est utilisée.

Dans la forme la plus simple, on peut collecter toutes les données de tous les descripteurs de toutes les images et les regrouper, par exemple en utilisant k-means. Chaque image originale a alors des descripteurs qui contribuent à un certain nombre de clusters. Les centroïdes de ces grappes, c'est-à-dire les mots visuels, peuvent être utilisés comme nouveau descripteur de l'image. Fondamentalement, vous espérez que les clusters d'une image auxquels ses descripteurs contribuent, sont indicatifs de la catégorie d'image.

Encore une fois, dans le cas le plus simple, vous avez une liste de clusters, et par image, vous comptez lequel de ces clusters contenait des descripteurs de cette image et combien. Ceci est similaire à la méthode terme fréquence / fréquence de document inverse (TD / IFD) utilisée dans la récupération de texte. Voir ce script Matlab rapide et sale .

Cette approche est activement recherchée et il existe de nombreux algorithmes beaucoup plus avancés.

Le site Web VLfeat contient une belle démonstration plus avancée de cette approche, classant l'ensemble de données caltech 101. Les résultats et les logiciels de Caltech lui-même sont également à noter .

Maurits
la source
Salut Maurits, merci pour ta réponse. J'y penserai! Mais une question. Si j'ai les «mots visuels», comment mesurer la distance entre eux? Je pense que j'utiliserais les descripteurs SIFT est-ce correct? - Lowe a un article dans lequel il décrit une méthode de reconnaissance d'objets 3D en construisant des modèles de descripteurs SIFT. Quelqu'un connaît-il de bons autres articles sur ce sujet (reconnaissance d'objets 3D avec d'autres fonctionnalités)?
jstr
Dans ce cas, juste la distance euclidienne, car vous regroupez des vecteurs entiers. Je ne pense pas que vous ayez à mesurer la distance entre les centroïdes de cluster en soi, mais plutôt, lorsqu'on vous présente une image de requête (et donc des descripteurs de requête), vous mesurez à quels centroïdes ces descripteurs sont les plus proches.
Maurits
Ok, utiliser une mesure de distance est clair ;-) mais sur quelles données? Sur les descripteurs SIFT par mot visuel?
jstr
En fait, trois fois, en tant que métrique pour le clustering initial, pour déterminer à quel centroïde / mot visuel un descripteur de requête est le plus proche, et enfin, pour comparer le vecteur de requête td / idf avec ceux de la base de données.
Maurits
Ok j'ai compris ;-) mais sur quelles données fonctionne la mesure de distance? Sur les descripteurs SIFT?
jstr