Ich habe gerade SURF studiert und werde es implementieren, aber ich habe immer noch nicht verstanden, warum wir Deskriptoren verwenden.
Ich verstehe, was Schlüsselpunkte sind und wozu sie dienen, aber wenn wir die Schlüsselpunkte extrahieren, warum müssen wir dann Deskriptoren verwenden? Was ist ihre Bedeutung und Rolle bei der Anerkennung?
Antworten:
Es ist wichtig zu verstehen, dass Sie nach dem Extrahieren der Schlüsselpunkte nur Informationen über ihre Position und manchmal über ihren Erfassungsbereich (normalerweise durch einen Kreis oder eine Ellipse angenähert) im Bild erhalten. Die Informationen über die Position der Schlüsselpunkte können manchmal nützlich sein, sagen jedoch nicht viel über die Schlüsselpunkte selbst aus.
Abhängig von dem Algorithmus, der zum Extrahieren von Schlüsselpunkten verwendet wird (SIFT, Harris Corners, MSER), kennen Sie einige allgemeine Merkmale der extrahierten Schlüsselpunkte (z. B. sie sind um Kleckse, Kanten, markante Ecken zentriert ...), aber Sie wissen nicht, wie unterschiedlich sie sind oder ähnlich ist ein Schlüsselpunkt zum anderen.
Hier sind zwei einfache Beispiele, bei denen nur die Position und der Schlüsselpunktbereich uns nicht helfen:
Wenn Sie ein Bild A (eines Bären auf weißem Hintergrund) und ein anderes Bild B haben, eine exakte Kopie von A, die jedoch für einige Pixel übersetzt wurde: Die extrahierten Schlüsselpunkte sind dieselben (auf demselben Teil dieses Bären). Diese beiden Bilder sollten als gleich oder ähnlich erkannt werden.
Wenn jedoch die einzige Information, die wir haben, ihre Position ist und die sich aufgrund der Übersetzung geändert hat, können Sie die Bilder nicht vergleichen.
Wenn Sie ein Bild A (zum Beispiel dieses Mal eine Ente) und ein anderes Bild B haben, genau die gleiche Ente wie in A, mit der Ausnahme der doppelten Größe: Die extrahierten Schlüsselpunkte sind die gleichen (gleiche Teile der Ente). Das sind auch die gleichen (ähnlichen) Bilder.
Alle ihre Größen (Bereiche) sind jedoch unterschiedlich: Alle Schlüsselpunkte von Bild B sind doppelt so groß wie die von Bild A.
Also, hier kommen Deskriptoren : Sie sind die Art und Weise , die keypoints zu vergleichen. Sie fassen im Vektorformat (konstanter Länge) einige Merkmale der Schlüsselpunkte zusammen. Zum Beispiel könnte es ihre Intensität in Richtung ihrer am stärksten ausgeprägten Orientierung sein. Dem Bereich des Bildes, auf den sich der Schlüsselpunkt bezieht, wird eine numerische Beschreibung zugewiesen.
Einige wichtige Dinge für Deskriptoren sind:
Sie sollten unabhängig von der Schlüsselpunktposition sein
Wenn derselbe Schlüsselpunkt an verschiedenen Positionen extrahiert wird (z. B. wegen der Übersetzung), sollte der Deskriptor derselbe sein.
Sie sollten robust gegenüber Bildtransformationen sein
Einige Beispiele sind Kontraständerungen (z. B. das Bild desselben Ortes an einem sonnigen und bewölkten Tag) und Perspektivänderungen (Bild eines Gebäudes von Mitte rechts und Mitte links, wir möchten es dennoch als dasselbe Gebäude erkennen). .
Natürlich ist kein Deskriptor gegen alle Transformationen völlig robust (und gegen keinen einzigen, wenn er stark ist, z. B. gegen einen großen Perspektivwechsel).
Verschiedene Deskriptoren sind robust gegenüber verschiedenen Transformationen, was manchmal der Geschwindigkeit, mit der sie berechnet werden, widerspricht.
Sie sollten skalierungsunabhängig sein
Die Deskriptoren sollten berücksichtigt werden. Wenn der "markante" Teil eines Schlüsselpunkts eine vertikale Linie von 10px (innerhalb einer kreisförmigen Fläche mit einem Radius von 8px) und der markante Teil eines anderen eine vertikale Linie von 5px (innerhalb einer kreisförmigen Fläche mit einem Radius von 4px) ist - Diesen Schlüsselpunkten sollten ähnliche Deskriptoren zugewiesen werden.
Nachdem Sie die Deskriptoren für alle Schlüsselpunkte berechnet haben, können Sie diese Schlüsselpunkte vergleichen . Ein einfaches Beispiel für die Bildanpassung (wenn Sie wissen, dass die Bilder von demselben Objekt stammen und die Teile in verschiedenen Bildern identifizieren möchten, die denselben Teil der Szene darstellen, oder den Perspektivwechsel zwischen zwei Bildern identifizieren möchten) würden Sie jeden Schlüsselpunkt-Deskriptor eines Bildes mit jedem Schlüsselpunkt-Deskriptor des anderen Bildes vergleichen. Da die Deskriptoren sind Vektoren von Zahlen, können Sie sie mit etwas so einfaches wie euklidische Distanz vergleichen . Es gibt natürlich einige komplexere Entfernungen, die als Ähnlichkeitsmaß verwendet werden können. Aber am Ende würden Sie das sagenDie Schlüsselpunkte, deren Deskriptoren den geringsten Abstand voneinander haben, sind Übereinstimmungen , z. B. gleiche "Orte" oder "Teile von Objekten" in verschiedenen Bildern.
Für eine komplexere Verwendung von Schlüsselpunkten / Deskriptoren sollten Sie sich diese Frage ansehen - insbesondere den "lokalen Ansatz auf niedriger Ebene" in meiner Antwort und den "Bag-of- Word " -Ansatz in @ Maurits Antwort. Auch die in diesen Antworten enthaltenen Links sind hilfreich.
quelle
Stellen wir uns den idealen Deskriptor vor, um die Idee zu verstehen. Ein idealer Deskriptor ist eine Funktion vom Pixelraum zu einem anderen Raum, sodass dieselben Objekte dasselbe Ergebnis haben , während unterschiedliche Objekte unterschiedliche Ergebnisse haben.
Wenn Sie beispielsweise zwei Bilder mit demselben Objekt, jedoch mit unterschiedlicher Belichtungsstufe aufnehmen, erhalten Sie eine multiplizierte Version des Bildes. Ein Deskriptor, der die Pixel aufnimmt und sie anhand ihres Mittelwerts und ihrer Standardabweichung normalisiert, würde dasselbe Ergebnis erzielen und besagen, dass diese beiden Objekte identisch sind. Das ist gut so, denn es ermöglicht uns die korrekte Zuordnung
Daher wird Ihr Deskriptor benötigt, um dieselben Objekte korrekt zuzuordnen.
quelle