Ist sift eine gute Möglichkeit, Features aus einem Bild zu extrahieren?


13

Ich versuche, Features aus einem Bild zu extrahieren, habe jedoch nicht die Punkte erhalten, die ich extrahieren möchte, und daher stimmt mein Bild nicht mit der Vorlage überein.

Gibt es Kontrollpunkte, die ich durchlaufen muss, bevor ich SIFT auf mein Bild anwenden kann, damit ich gute Ergebnisse erhalte? Zum Beispiel ist das Vorlagenbild;
Bildbeschreibung hier eingeben

gezieltes Bild; Bildbeschreibung hier eingeben


1
Hängt von der Art des Bildes ab und wofür Sie die Funktionen verwenden möchten. Mehr Infos bitte.

Antworten:


14

Wenn Sie eine Vorlage mit Sift an ein Bild anpassen, müssen Sie Sift mit Ihrer Vorlage ausführen und dann in Ihrer Szene nach diesen Sift-Funktionen in dieser Anordnung suchen.

Faustregel: Vergleichen Sie gerne, um zu mögen.

Sieben (Vorlage) enthalten in Sieben (Bild)

Sie können Sift nicht optimieren, um die "gewünschten Funktionen" zu extrahieren. Sift * verwendet unveränderliche Kennzahlen, um Funktionen zu finden, die seiner Meinung nach am wichtigsten sind. (* Chris A)

Wenn Sie möchten, dass bestimmte Features in Ihrer Vorlage gefunden werden, erstellen Sie kleinere Vorlagen für diese Features und suchen Sie nach ihnen.

Nur ein Vorschlag. Ich weiß nicht genau, welche Art von Vorlage Sie für welche Art von Szene oder Bild verwenden möchten.


7
+1 stimme ich zu. Außer eine Sache. SIFT findet keine Features, die am unveränderlichsten sind. Es verwendet unveränderliche Kennzahlen, um Merkmale zu finden, die seiner Ansicht nach am hervorstechendsten sind.

7

Ich bin mir nicht sicher, ob Sie nur zwei Bilder zuordnen möchten (z. B. die gemeinsamen Punkte finden) oder ob Sie etwas wie CBIR (Content-based Image Retrieval) ausprobieren möchten Objekt).

Ich mache derzeit CBIR-Forschung, daher bin ich mit den aktuellen Methoden ziemlich auf dem neuesten Stand. Hier und hier sind die Links zu meinen Antworten auf ähnliche Probleme wie bei Ihnen von stackoverflow, die Sie sich ansehen sollten.

Nun, um ein wenig über SIFT zu sprechen. Wenn Wurde zuerst eingeführt von Lowe, angewendet der Begriff SIFT sowohl auf den Prozess der Merkmalserkennung und zu den Feature - Deskriptoren auf diesen detektierten interessierenden Punkte berechnet wird . Bis heute haben sich die SIFT- Deskriptoren als unglaublich großartig erwiesen. Die Deskriptoren haben einige coole Eigenschaften, die @Totero bereits erwähnt hat.

Das heutzutage immer häufiger als DoG (Difference of Gaussians) bezeichnete SIFT- Detektionsverfahren ist dagegen nicht mehr auf dem neuesten Stand der Technik. Es ist immer noch weit verbreitet, aber für den Prozess der Merkmalserkennung gibt es heutzutage mehr Methoden, von denen einige die Typen von DoG-Prozessextrakten mit invarianten Schlüsselpunkten besser oder besser ergänzen.

Die meisten aktuellen Arbeiten (siehe die Links in den Fragen zum verknüpften Stackoverflow) haben eine weitere nette Übung: Sie kombinieren mehrere Möglichkeiten zum Erkennen von Features und verwenden dann SIFT-Deskriptoren (die immer noch als Deskriptoren rocken), um die invarianten Vektordarstellungen zu berechnen. Ich arbeite derzeit mit einer Kombination aus DoG (sie konzentrieren sich auf eckenähnliche Teile von Bildern) und MSER-Regionen (sie konzentrieren sich auf blobartige unterscheidbare Punkte durch mehrere Skalen). Sie können versuchen, noch mehr Arten von Feature-Detektoren zu testen und darin zu werfen, wenn diese Kombination für Ihre spezielle Bilddatenbank nicht zufriedenstellend ist.

Wenn Sie interessiert sind, finden Sie hier auch einen Artikel, in dem die Leistung verschiedener Erkennungs- und Deskriptorkombinationen bewertet wird. Ich habe es nicht gelesen, da DoG & MSER + SIFT für mich gut funktioniert, aber ich habe es überflogen und das Papier ist ziemlich gut.

PS: Verwenden Sie Google Scholar, wenn Sie keinen Zugriff auf die IEEEXplore-Datenbank haben, mit der ich verknüpft bin.


Nur eine kleine Klarstellung: DoG steht für Differenz von Gauß (Differenz zwischen zwei Gaußschen Filterantworten)
Libor

2

Aufbauend auf früheren Antworten:

(1) Sie können SIFT (oder eine andere verbesserte Variante dieses lokalen Patch-Deskriptors) mit dichter Abtastung anstelle des eingebauten Detektors verwenden. Sie können die Größe des lokalen Patches und die Sampling-Dichte entsprechend Ihren Anforderungen an Leistung und Rechenaufwand auswählen.

(2) SIFT ist ein affiner invarianter Deskriptor für Wide Baseline Stereo Matching. Dies bedeutet, dass SIFT gut funktioniert, wenn Sie ein Bild aufnehmen und eine affine Transformation dazu einleiten, wobei die 'Vorlage' im Zielbild vorhanden sein muss, wenn auch mit Transformationen.

Vorschläge: (a) Erstellen Sie (wenn möglich) eine Datenbank mit Vorlagenbildern, um die Wahrscheinlichkeit zu erhöhen, dass das Bild erkannt wird.

(b) Sie können das BoW-Modell als Basis verwenden, wenn Sie sich für einen CBIR-Ansatz für Ihre Aufgabe entscheiden.

(c) Beschneiden Sie Ihr Vorlagenbild nur auf den relevanten Teil und verwenden Sie ein sehr dichtes SIFT. http://www.vlfeat.org/overview/dsift.html

(4) Möglicherweise möchten Sie später einen Deskriptor mit mehreren Maßstäben wie PHOG (Pyramidal Histogram of Gradients) usw. ausprobieren, der möglicherweise zu einer Verbesserung der Ergebnisse führt. http://www.vlfeat.org/overview/dsift.html#tut.dsift.phow

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.