1 / 25

Vortrag zum Vertieferpraktikum Photogrammetrie am IPB der Universität Bonn, im SS 2004 zum Thema Ableitung charakteristi

Vortrag zum Vertieferpraktikum Photogrammetrie am IPB der Universität Bonn, im SS 2004 zum Thema Ableitung charakteristischer Bildmerkmale Lowe-SIFT versus PCA-SIFT von Volker Schuster. Überblick. Problembeschreibung. Skizzierung der Lowe-SIFT.

presley
Télécharger la présentation

Vortrag zum Vertieferpraktikum Photogrammetrie am IPB der Universität Bonn, im SS 2004 zum Thema Ableitung charakteristi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vortrag zum Vertieferpraktikum Photogrammetrie am IPB der Universität Bonn, im SS 2004 zum Thema Ableitung charakteristischer Bildmerkmale Lowe-SIFT versus PCA-SIFT von Volker Schuster.

  2. Überblick • Problembeschreibung. • Skizzierung der Lowe-SIFT. • Beschreibung der eigenen Implementierung des • Lowe-SIFT-Keypointextraktors. • Beschreibung des Lowe-SIFT-Keypointdeskriptors sowie • des PCA-SIFT-Keypointdeskriptors. • Performancevergleich der beiden Keypointdeskriptoren. • Matchingbeispiele (PCA-Sift).

  3. Problembeschreibung

  4. Problem • Berechnung von Keypoints aus einem Bild die mit Keypoints aus • einem anderen Bild gematcht werden können. • Benötigen mehrere Hundert korrespondierende Punkte um • relative Orientierung zu bestimmen und daraus 3D-Modell abzuleiten. Lösung • Lowe-SIFT bzw. PCA-SIFT. • Robustheit gegenüber Änderungen in der Beleuchtung, projektive Verzerrungen, Aufnahmeperspektive und Bildrauschen. • Keypointdeskriptoren sind gut unterscheidbar. • Leider (vorerst) nur Grauwertbilder unterstützt.

  5. Lowe-SIFT

  6. Lowe-SIFT (Scale Invariant Feature Transform) Eingabe: Bild A. Algorithmus: 1. Extrahiere skalierungsinvariante Keypoints aus Bild A. 2. Diskretisiere die Richtungen der Bildgradienten in der Umgebung um einen Keypoint, z.B. N = 36 und berechne die Hauptrichtungen. 3. Berechne für jede Hauptrichtung des Keypoints einen Keypointdeskriptor.

  7. Implementierung der Keypointextraktion

  8. Implementierung der Keypointextraktion (Extremasuche im Skalenraum) • Es wird iterativ mit Gaussfiltern Gs gefaltet und danach verkleinert • B0 = A, B1 = Gs(B0), B2 = Gs(B1), B2‘ = Rs(B2) • B3 = Gs(B2‘), B4 = Gs(B3), B4‘ = Rs(B4), usw… • wobei s =1,5 gewählt wurde, • Gs(x, y) =1/(2ps2) * exp(-(x2+ y2) / (2s2)) • und Rs ein bilineares Resampling (incl. Antialiasing) ist. • Benachbarte Bilder B2i und B2i-1 werden (punktweise) Subtrahiert • C1 := B2- B1, C2 := B4- B3, … , Cn := B2n– B2n-1. • (Größenunterschiede der Ci werden durch bilineares Resampling angeglichen) • Die C1 bis Cnwerden DoG‘s (Difference of Gaussian‘s) genannt. • Verwendung von Bildpyramiden führt zu Laufzeitverbesserungen.

  9. Implementierung der Keypointextraktion (Extremasuche im Skalenraum) • Definieren Fenster in Bild Ci: • Fd(Ci, r, c) := Ci(r-d:r+d, c-d:c+d). • In den Bildern C2bis Cn-1werden Bildpunkte Ci(r, c) mit • lokalen Extrema innerhalb des Fensters Fd(Ci, r, c) gesucht, • wobei d fest gewählt wird. • Ist der Grauwert Ci(r, c) ein Extremum in Fd(Ci, r, c) und gilt • (Ci(r, c) > Fd(Ci-1, r, c) Ù Ci(r, c) > Fd(Ci+1, r, c)) • Ú (Ci(r, c) < Fd(Ci-1, r, c) Ù Ci(r, c) < Fd(Ci+1, r, c)) • so wird das Tripel (r, c, i) weiter untersucht, • sonst wird das Tripel verworfen.

  10. Implementierung der Keypointextraktion (Extremasuche im Skalenraum) • Beispiel für d = 1: • Es werden Extrema in 3 x 3 Fenstern • F1(Ci, r, c) := Ci(r-1:r+1, c-1:c+1) • gesucht, wobei 2 £ i £ n-1. Ci+1 Ci Ci-1

  11. Implementierung der Keypointextraktion (Extremasuche im Skalenraum) • Das Tripel (r, c, i) definiert ein Extremum im Skalenraum. • Nachverarbeitung (Filterung): • Ist Ci(r, c) < T wird das Tripel verworfen. • Durch den Schwellwert T können durch Bildrauschen entstehende Extrema • eliminiert werden. • Liegt der Punkt (r, c) auf einer Kante, so wird das Tripel verworfen, d.h. • falls für das Verhältnis der Eigenwerte der Hauptachsen der Bildgradienten • in einer Umgebung um (r,c) • lmax / lmin > Vmax • gilt. Trifft dies nicht zu, wird das Tripel beibehalten. • Die Punktkoorinaten (r,c) werden mit Subpixelgenauigkeit geschätzt, • indem das Extremum in Bild Ci an der Stelle (r, c) interpoliert wird.

  12. Lowe-SIFT-Keypointdeskriptor

  13. Der Lowe-SIFT-Keypointdeskriptor • Gegeben ist nun das Tripel (r, c, i). Sei K ÎN. • Um den Punkt (r, c) in Bild A wird ein Fenster der Größe • Z x Z gewählt, wobei Z = si * M ist und M = 4 * K. • Das Fenster wird dann auf die Größe M x M verkleinert und • bezüglich jeder Gradienten-Hauptrichtung normiert. • Da der Bildgradient aus der horizontalen und vertikalen • Ableitung besteht, ist dieser invariant gegenüber • Helligkeitsveränderungen im Bild. • Aus den Gradienten für jedes normierte Fenster • wird der Lowe-Sift-Keypointdeskriptor bestimmt.

  14. Der Lowe-SIFT-Keypointdeskriptor • Das Fenster wird in 4 x 4 Pixel Felder aufgeteilt. • Beispiel: Für M = 8 erhält man 2 x 2 Felder • Für jedes Feld wird ein Richtungshistogramm mit 8 Einträgen • (für die Richtungen der Gradienten in dem Feld) erzeugt. • Bei 2 x 2 Feldern ergibt sich so die Zahl von 2*2*8 = 32 Einträgen, • die in dem sog. Featurevektor zusammengefasst werden. • Durch Normierung der Länge dieses Vektors wird Invarianz • gegenüber Kontraständerungen erreicht.

  15. Der Lowe-SIFT-Keypointdeskriptor • Üblicherweise wird M = 16 gewählt. • Daraus ergeben sich 4 * 4 = 16 Felder und 4*4*8 = 128 Vektoreinträge. • Auch Gradienten in benachbarten Feldern haben Einfluss auf das • Richtungshistogramm eines Feldes. • Gradienten am Fensterrand werden schwächer gewichtet. • Nachteil: Optimale Schwellwerte für Gradientengewichtungen • müssen gefunden werden (bzw. sind unbekannt).

  16. PCA-SIFT-Keypointdeskriptor

  17. PCA-Sift • Fenster wird nicht in Felder unterteilt, sondern als Ganzes behandelt. • Konkrete Realisierung (im Programm): • Für ein 41 x 41 Fenster bestimme das 39 x 39 • Fenster der Gradienten. (39 * 39 = 1521) • Für jeden der 1521 Punkte bestimme • horizontale und vertikale Ableitung. • Fasse Ableitungen in einem Vektor Y zusammen • (2 * 1521 = 3042 Komponenten) und • normiere auf |Y|2 = 1. • Hat man genügend Trainingsvektoren aus einer Bildersammlung • gewonnen (z.B. 20000) dann bestimmt man die Kovarianzmatrix • Sdieser Vektoren.

  18. PCA-Sift • Principal component analysis: • Bestimme Matrix A, wobei die j-te Spalte der Eigenvektor von S, • zum j-ten Eigenwert (der Größe nach geordnet) ist. • D.h. A = (v1, …, vm) und |l1| ³ |l2| ³ … • Der Vektor Z der Hauptkomponenten zum Eingabevektor Y • wird durch folgende Gleichung bestimmt: • Z = AT * Y. • In unserem Fall ist m = 3042. • Die ersten N (Haupt-)Komponenten von Z bilden den • PCA-Sift-Featurevektor. • Der Featurevektor speichert die Anteile von Y an den Richtungen • der N größten Varianzen der Trainingsvektoren. • Für m = 3042 hat sich N = 36 als optimal erwiesen.

  19. Performancevergleich der Keypointdeskriptoren

  20. Lowe-Sift versus PCA-Sift • Lowe-Sift-Featurevektoren haben (üblicherweise) • eine Dimension von 128. • PCA-Sift-Featurevektoren hingegen nur Dimension 36. • Matching von Keypoints geschieht durch Vergleich des • eukl. Abstandes zweier Featurevektoren. • (sowohl bei Lowe–SIFT als auch bei PCA-Sift) • => PCA-Sift-Featurevektoren können schneller in DB gesucht werden. • Implementierung des PCA-Sift-Keypointdeskriptors einfacher • als Lowe-Sift-Keypointdeskriptor (da nur Matrixoperationen). • Keine Gradientenschwellwerte für PCA-Sift-Keypointdeskriptor- • Berechnung notwendig.

  21. Lowe-Sift versus PCA-Sift

  22. Matchingbeispiele (PCA-Sift)

  23. Beispiel 1 (Kirchturm aus verschiedenen Perspektiven)

  24. Beispiel 2 (nur die besten 100 Matches angezeigt)

  25. Literatur • 1. „PCA-SIFT: A More Distinctive Representation for Local Image Descriptors“ • Yan Ke, Rahul Sukthankar • School of Computer Science, Carnegie Mellon University • „Distinctive Image Features from Scale-Invariant Keypoints“ • David G. Lowe • Computer Science Department, University of British Columbia.

More Related