Skalierungs- und Rotationsinvariante Feature-Deskriptoren


16

Können Sie einige skalierungs- und drehungsinvariante Feature-Deskriptoren zur Verwendung bei der Feature-Erkennung auflisten?

Die Anwendung dient zur Erkennung von Autos und Menschen in Videos, die von einem UAV mit einem Klassifikator für mehrere Klassen aufgenommen wurden.

Bisher habe ich mich mit SIFT und MSER befasst (was affin invariant ist). Ich habe mir auch LESH angesehen, LESH basiert auf dem lokalen Energiemodell, wird aber nicht rotationsinvariant berechnet. Ich habe versucht, eine Möglichkeit zu finden, die lokale Energie zu nutzen und eine rotationsinvariante zu erstellen Funktionsbeschreibung, ich lese hier Welche kostenlosen Alternativen zu SIFT / SURF können in kommerziellen Anwendungen verwendet werden? "Wenn Sie dem Interessenpunkt eine Orientierung zuweisen und den Bildausschnitt entsprechend drehen, erhalten Sie kostenlos eine Rotationsinvarianz", aber Sie wissen nicht, ob dies überhaupt hilfreich ist oder wie ich dies auf mein Problem anwenden könnte geschätzt, danke


Verwenden Sie ORB (Oriented FAST und Rotated BRIEF) aus der OpenCV-Bibliothek.
Harsh Wardhan

Antworten:


9

In Bezug auf Alternativen zu SIFT / SURF liefert die von Ihnen verknüpfte Frage sehr gute Antworten.

Es gab zwei weitere Fragen, die ich vorlesen konnte:

  • "Wie kann ich einen nützlichen (zB rotationsinvarianten) Feature-Deskriptor erstellen?"
  • "In Bezug auf die Aussage aus der verknüpften Frage, wie erreicht er eine freie Rotationsinvarianz?"

Erstellen von Feature-Deskriptoren

Dies ist ein gültiges Forschungsthema. Gute Feature-Deskriptoren kann nicht jeder an einem Nachmittag erstellen. Menschen veröffentlichen Artikel, wenn sie erfolgreich Feature-Deskriptoren mit wünschenswerten Eigenschaften modellieren. Dies ist ein Grund, warum derzeit nur eine Handvoll hochmoderner Deskriptoren verwendet werden, und das rate ich Ihnen auch: Suchen Sie nach einem Feature-Deskriptor, der Ihren Anforderungen entspricht .

Rotationsinvarianz "kostenlos" erreichen

Sie können den dominanten Farbverlauf oder die Ausrichtung an einem Bildausschnitt (Ihrem Funktionsbereich) bestimmen . Dann drehen sich die Bild Patch so dass der Gradient immer in der gleichen Richtung, zum Beispiel der Suche (nach oben). Wenn Sie z. B. ein und ein Bild hätten, würden ihre dominanten Verläufe nach links ( - 90 ) bzw. rechts ( 90 ) zeigen, und wenn Sie sie um diesen Betrag drehen, erhalten Sie dieselben Bilder.0|black->gray->white||white->gray->black|-9090

Auf diese Weise berechnen Sie den Deskriptor immer auf einem Bildfeld mit der gleichen dominanten Ausrichtung (dem gedrehten Feld) und erzielen so eine Rotationsinvarianz.


4

Eine andere Möglichkeit, eine Rotationsinvarianz kostenlos zu erhalten, besteht darin, rotationsinvariante Objekte auszuwählen. Zum Beispiel ist ein Kreis oder ein Ring für Rotationen unveränderlich.

Feature Extractor : Kantenerkennung ausführen. NxNBerechnen Sie für jede Nachbarschaft von Pixeln die Kantenrichtung und das 2D-Histogramm der Größe. Finden Sie alle Punkte mit hoher Gesamtgröße und großer Winkelausbreitung . Entfernen Sie alle Punkte, die keine Radialsymmetrie aufweisen.

Feature-Deskriptor : Ermitteln Sie die Mitte jedes kreisförmigen Objekts. Da das Objekt kreisförmig ist, hat es keinen dominanten Steigungswinkel. Alle Winkel sind gleich. Somit ist ein radiales Profil (Summe der Pixelwerte in Polarkoordinaten) ein winkelinvarianter Deskriptor.


Das ist übrigens einer der Gründe, warum Passermarken als Kreise auf elektrischen Leiterplatten hergestellt werden:

Bildbeschreibung hier eingeben


es handelt sich um Keypoint-Deskriptoren (Feature- Deskriptoren) . Wenn es sich um Features (Interessenpunkte) handelt , kann die Erkennung kreisförmiger Patches nützlich sein - sie sind in Kombination mit jedem Deskriptor rotationsinvariant. Aber ein Deskriptor, der auf einem kreisförmigen Feld berechnet wird, ist nicht - ein weißer Kreis mit horizontalem Durchmesser in Schwarz und mit einem vertikalen würden sich sehr unterschiedliche Deskriptoren ergeben, wenn die rotationsinvariante Methode nicht verwendet wird
penelope

@penelope, warum nicht? Betrachten Sie den folgenden Deskriptor - eine Miniaturansicht des Patches, und vergleichen Sie ihn mit anderen Deskriptoren mit normalisierter Kreuzkorrelation. Sie können es auf diese Weise nicht mit anderen Objekten verwechseln.
Andrey Rubshtein

Entschuldigung, ich verstehe nicht, was Sie unter "Miniaturansicht des Patches" verstehen. Können Sie das erklären? Und der Deskriptor: normalisierte Korsik-Korrelation Ihres Patches Ihres Patches macht es rotationsinvariant, nicht die Tatsache, dass Ihr Patch ein Ring oder ein Kreis war.
Penelope

@penelope, ich denke jetzt, dass ich nicht klar genug war. Ich werde versuchen, es morgen zu erweitern. Vielen Dank für Ihre Kommentare.
Andrey Rubshtein

Ich freue mich darauf :)
Penelope

1

Ich würde eher in KAZE / AKAZE schauen, die mit bedeutender Beschleunigung ebenso gut abschneiden. Die Verformungsfälle werden ebenfalls toleriert. OpenCV hat vor kurzem eine Implementierung durch GSoC 2014 erhalten. Sie finden sie hier .


1

Wenn Sie ein lokales Patch um einen Feature-Punkt herum neu zuordnen, um Polarkoordinaten zu protokollieren (mit dem Ursprung im interessierenden Punkt), entsprechen Skalierungsänderungen einer Verschiebung entlang der logarithmischen Radialachse, während Rotationen Verschiebungen entsprechen (mit Umlauf). entlang der Winkelachse. Wenn Sie dann die zweidimensionale Fourier-Transformation berechnen, werden die Verschiebungen in Radial- und Winkelrichtung zu Phasenverschiebungen im Frequenzbereich. Wenn Sie dann den Absolutwert der Fouriertransformation berechnen, verschwindet die Phase vollständig und Skalierungsänderungen und Rotationen des ursprünglichen Bildfelds werden nicht wahrnehmbar. Der absolute Wert der 2D-Fouriertransformation des Bildes in logarithmischen Koordinaten wäre also Ihr Feature-Deskriptor.

Zumindest theoretisch. In der Praxis müssen Sie die radiale Ausdehnung Ihres Pflasters begrenzen. Dies bedeutet, dass Sie einen großen Teil Ihrer Daten wegschneiden müssen, bevor Sie die Fourier-Transformation (die eigentlich eine Fourier-Reihe ist) berechnen. Eine Translation in log-radialer Richtung in log-Polarkoordinaten entspricht also nicht genau a Phasenverschiebung im Frequenzbereich mehr, daher ist die Methode nicht perfekt skalierungsinvariant. Ich vermute, dass, wenn Sie eine Fensterfunktion - ohne Diskontinuitäten - für die logarithmische Radiuskoordinate verwenden und diese mit der Farbintensität multiplizieren, dieses Problem etwas gemildert wird.

Der Feature-Deskriptor sollte jedoch immer noch perfekt rotationsinvariant sein.

Referenz: Skaleninvarianz ohne Skalenauswahl


0

Sie können auch FAST und BRISK überprüfen .


Soweit ich gesucht habe, ist FAST nur ein Detektor, der mit vielen verschiedenen Deskriptorkombinationen verwendet wird. Und FAST und BRISK werden bereits in der Frage erwähnt, die das OP selbst verknüpft hat. Ich nehme an, er hat bereits Informationen über die Existenz dieser Methoden.
Penelope
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.