Gute Funktionen / Algorithmen zum Erkennen von Automodellen in Bildern

9

Ich habe eine Frage zur Objekterkennung, insbesondere zur Erkennung von Automodellen! Ich bin am Anfang einer Arbeit über die Identifizierung des gleichen Automodells in verschiedenen Bildern. Im Moment denke ich, dass einer der besten Algorithmen für die 3D-Objekterkennung SIFT ist, aber nachdem ich ein bisschen mit einer Demo-Implementierung herumgespielt habe, habe ich das seltsame Gefühl, dass dieser Algorithmus einige Probleme mit glänzenden Metallobjekten wie Autos hat, insbesondere wenn sie unterschiedliche Farben haben.

Kennt jemand einige Arbeiten in diesem Bereich im Allgemeinen einen geeigneten Algorithmus für die Aufgabe, dasselbe Automodell in verschiedenen Bildern zu finden?

Vielen Dank im Voraus für Ihre Hilfe!

jstr
quelle
2
Können Sie einige Beispielbilder posten?
Endolith
Sicher. Bilder zum Erstellen eines Modells von Automodellen ;-) könnten sein wie: s5 Coupé Training 1 oder wie s5 Coupé Training 2, aber auch 'normale' Bilder. Abfragebilder könnten wie s5 Coupé Abfrage 1 sein, hoffe das hilft!
jstr
Welche alternativen Feature-Detektoren wie SIFT, GLOH oder SURF gibt es, um geeignete Schlüsselpunkte für Autos zu identifizieren?
jstr
@jstr Wenn Sie das unten beschriebene Schema implementiert haben, wie gut hat es funktioniert?
Lösen von Rätseln

Antworten:

7

Ich würde mir den sogenannten "Bag of Words" - oder "Visual Words" -Ansatz ansehen. Es wird zunehmend zur Kategorisierung und Identifizierung von Bildern verwendet. Dieser Algorithmus beginnt normalerweise mit der Erkennung robuster Punkte, wie z. B. SIFT-Punkte, in einem Bild. Der Bereich um diese gefundenen Punkte (in Ihrem Fall der 128-Bit-SIFT-Deskriptor) wird verwendet.

In der einfachsten Form kann man alle Daten aus allen Deskriptoren aller Bilder sammeln und gruppieren, beispielsweise mit k-means. Jedes Originalbild hat dann Deskriptoren, die zu einer Reihe von Clustern beitragen. Die Schwerpunkte dieser Cluster, dh die visuellen Wörter, können als neuer Deskriptor für das Bild verwendet werden. Grundsätzlich hoffen Sie, dass die Cluster eines Bildes, zu dem seine Deskriptoren beitragen, auf die Bildkategorie hinweisen.

Wiederum haben Sie im einfachsten Fall eine Liste von Clustern und pro Bild zählen Sie, welcher dieser Cluster Deskriptoren aus diesem Bild enthielt und wie viele. Dies ähnelt der TD / IFD-Methode (Term Frequency / Inverse Document Frequency), die beim Abrufen von Text verwendet wird. Sehen Sie sich dieses schnelle und schmutzige Matlab- Skript an.

Dieser Ansatz wird aktiv erforscht und es gibt viele viel fortgeschrittenere Algorithmen.

Die VLfeat-Website enthält eine ausführlichere Demo dieses Ansatzes, in der der Caltech 101-Datensatz klassifiziert wird. Bemerkenswert sind auch Ergebnisse und Software von Caltech .

Maurits
quelle
Hey Maurits, danke für deine Antwort. Ich werde darüber nachdenken! Aber eine Frage. Wenn ich die 'visuellen Wörter' habe, wie messe ich den Abstand zwischen ihnen? Ich denke, ich würde die SIFT-Deskriptoren verwenden. Ist das richtig? - Lowe hat einen Artikel, in dem er eine Methode zum Erkennen von 3D-Objekten beschreibt, indem er Modelle von SIFT-Deskriptoren erstellt. Kennt jemand einige gute andere Artikel zu diesem Thema (3D-Objekterkennung mit anderen Funktionen)?
jstr
In diesem Fall nur der euklidische Abstand, wenn Sie ganzzahlige Vektoren gruppieren. Ich denke nicht, dass Sie den Abstand zwischen Cluster-Schwerpunkten an sich messen müssen, sondern wenn Sie ein Abfragebild (und damit Abfrage-Deskriptoren) erhalten, messen Sie, welchen Schwerpunkten diese Deskriptoren am nächsten kommen.
Maurits
Ok mit einem Abstandsmaß ist klar ;-) aber auf welchen Daten? Auf den SIFT-Deskriptoren pro visuellem Wort?
jstr
Tatsächlich dreimal als Metrik für das anfängliche Clustering, um festzustellen, welcher Schwerpunkt / welches visuelle Wort ein Abfragedeskriptor am nächsten ist, und schließlich den Abfrage-td / idf-Vektor mit denen in der Datenbank zu vergleichen.
Maurits
Ok, das habe ich verstanden ;-) aber an welchen Daten funktioniert die Entfernungsmessung? Auf den SIFT-Deskriptoren?
jstr