Top Banner
66

Hough-Transformation

Jan 03, 2016

Download

Documents

Cynthia Nolan

Hough-Transformation. Hough-Transformation. Die Hough-Transformation ist ein Verfahren zur Detektion kollinearer Punkte. Mit ihr können Objekte erkannt werden, die sich in geschlossener parametrisierbarer Form darstellen lassen. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hough-Transformation
Page 2: Hough-Transformation

Hough-Transformation

Page 3: Hough-Transformation

Die Hough-Transformation ist ein Verfahren zur Detektion kollinearer Punkte.Mit ihr können Objekte erkannt werden, die sich in geschlossener parametrisierbarer Form darstellen lassen. Beispiele hierfür sind Kreise, Ellipsen oder Linien.Auf das Auffinden gerader Linien möchte ich hier etwas genauer eingehen.

Hough-Transformation

Definition:Unter einer Geraden versteht man im Sinne des Hough-Algorithmus eine Menge von kollinearen Punkten.

Page 4: Hough-Transformation

Mathematische Definition

Im kartesischen Koordinatensystem wird eine Gerade normalerweise durch ihre Steigung m und den y-Achsenabschnitt t beschrieben:

y = m*x + t

nach t aufgelöst ergibt das t = -m*x + y

Page 5: Hough-Transformation

Hessesche Normalform

Einen der unendlich vielen Haltepunkte der Geraden bekommt man immer durch Verlängerung (oder Stauchung) des Normalenvektors.

Es folgt:

ist der Haltepunkt und ist die Normale mit .

Aus folgt:

 

0 axn

0 npxn

a

n

1n

1n

o

nsin

cos0

0

0

0sin

cos

sin

cosoo p

y

xaxn

0sincos000 pyx

000sincos yxp

Page 6: Hough-Transformation

 

 Dieses Vorgehen nennt man „Gerade-zu-Punkt-Transformation“.

000sincos yxp

Page 7: Hough-Transformation

Die transformierten Punkte desBinärbildes im Hough-Raum.

Binärbild

Page 8: Hough-Transformation

Die Hough-Transformation arbeitet vorteilhaft auf einem Binärbild oder einem Gradientenbild.

Binärbild

Gradientenbild

Page 9: Hough-Transformation

Zielsetzung der Hough-Transformation:

• Finden von vorgegebenen geometrischen Strukturen in einem (segmentierten) Bild

• Überprüft wird, ob einzelne Segmente der Referenzstruktur ähnlich sind

• Robust gegenüber Rauschen und systematischen Fehlern

• Erkennt auch teilweise verdeckte (unvollständige) Strukturen

• Ursprünglich zur Detektion kollinearer Bildpunkte verwendet

• Referenzstruktur entsprechend eine Gerade

Page 10: Hough-Transformation

Hough-Algorithmus

Page 11: Hough-Transformation

Hough-Algorithmus

Der (r,phi)-Raum wird diskretisiert (z.B. 1° oder 5° Stufen) Die Radiusachse wird entsprechend der benötigten

Genauigkeit gewählt Daraus entsteht ein endliches, zweidimensionales Feld (r,phi) Dieses Feld wird als Akkumulator bezeichnet jedes Element

im Akkumulator entspricht einer Geraden im (x,y)-Koordinatensystem(statt Geraden sind auch andere parametrisierte (paramterisierbare) Referenzstrukturen nutzbarz.B. Kreise -> drei Parameter (x,y,r) oder Ellipsen - fünf Parameter (x,y,r1,r2,phi)

Der Akkumaltor wird mit Null initialisiert Nun werden die Punkte des Bildes mit der Hough-

Transformation in den (r,phi)-Raum überführt und in den Akkumulator eingetragen (die betroffenen Zellen werden inkrementiert)

Jedes Maximum im Akkumulator (Zellen deren Wert einen gegebenen Schwellenwert/Genauigkeitswert überschreiten) repräsentiert genau eine Gerade im Bild (Cluster evtl. auf einen Punkt reduzieren)

Ergebnis ist ein Bild mit Geraden ohne Anfangs- und Endpunkte Tracking

Page 12: Hough-Transformation

Man fährt auf den Geraden das Originalbild ab und registriert wann die Grauwertdifferenz einen Schwellenwert überschreitet und man sich zu einer hohen Warscheinlichkeit auf einer Objektkontur befindet.

Dabei dienen die durch die Hough-Transformation gefundenen Geraden als "Wegweiser" durch das Originalbild.

Ergebnis ist ein Bild mit Geraden ohne Anfangs- und Endpunkte Tracking

Page 13: Hough-Transformation

Ein interessanter Effekt ist, dass parallele Geraden in einer Akkumulator-Spalte stehen, da sie den selben Winkel phi haben.

Page 14: Hough-Transformation

r(x,y)

Kreiserkennung

Page 15: Hough-Transformation

Ellipsenerkennung

Page 16: Hough-Transformation
Page 17: Hough-Transformation

2. Modellbasierende Objekterkennung

Die Objekterkennung ist das zentrale Problem der Bildverarbeitung. Es beinhaltet die Identifikation und Lokalisierung von gegebenen Objekten in einem Bild.

Page 18: Hough-Transformation

1. Alignment:Unter Objekterkennung verstehen wir also hiefür,

das Erkennen von Zusammenhängen zwischen einem Bild und einer bestimmten Ansicht eines

bekannten Objekts.Es wird also geprüft, inwiefern ein Objekt aus einer

Modelldatenbank mit einem Bild übereinstimmt.

Page 19: Hough-Transformation

Beispiel: Alignment im 2D

(ai,am) und (bi,bm) sind Paare von korrespondierenden charakteristischen Bild- und Modellpunkten.

Wir betrachten im Folgenden lediglich diese beiden Punktpaare! Modell und Bild oben dienen nur der Anschauung!

Modell (2D) Bild (2D)

Page 20: Hough-Transformation

Beispiel: Alignment im 2D

Schritt 1:

Verschieben der Modellpunkte, so dass bm = bi

Page 21: Hough-Transformation

Beispiel: Alignment im 2D

Schritt 2:

Rotation von am um bm, so dass die gedachten Kanten aibi und ambm aufeinander liegen.

Page 22: Hough-Transformation

Beispiel: Alignment im 2D

Schritt 3:

Skalieren, so dass ai = am und bi = bm

Page 23: Hough-Transformation

Beispiel: Alignment im 2D

Zum korrekten Alignment im 2D bedarf es also der Berechnung

eines Verschiebungsvektors,

eines Rotationswinkels,

und eines Skalierungsfaktors.

Hierzu ist das Wissen um zwei Paare korrespondierender charakteristischer Bild-

und Modellpunkte notwendig.

Page 24: Hough-Transformation

Beispiel: Alignment im 2D

Die Berechnung des Alignments für diese Punktepaare ist damit beendet.

Nun wird das ganze Modell anhand dieser Parameter transformiert, und verglichen, wie gut das Alignment

tatsächlich war.

Es wird danach bewertet, wieviel Prozent der Kanten des ausgerichteten Modells nun wirklich auf den Kanten des Bildes

liegen.

Ein erfolgreiches Alignment ist nämlich nicht automatisch die Garantie für ein sinnvolles Match:

Page 25: Hough-Transformation

Beispiel: Alignment im 2D

Die Punktepaare könnten ungünstig gewählt worden sein:

Modell Bild

Page 26: Hough-Transformation

Die Punktepaare könnten ungünstig gewählt worden sein:

Beispiel: Alignment im 2D

Page 27: Hough-Transformation

Aufwandsersparnis durch Alignment

Im Zweidimensionalen genügten zwei Punktpaare zur Berechnung des Alignments. Wir werden später zeigen, dass

im Dreidimensionalen drei Punktpaare genügen.

Dies ist der Hauptgedanke hinter der Alignment-Idee!

Was gewinnen wir, wenn wir uns auf drei Punktpaare beschränken können?

Page 28: Hough-Transformation

Aufwandsersparnis durch Alignment

Gegeben seien i charakteristische Bild-, und m charakteristische Modellpunkte. Daraus ergeben sich p = i*m mögliche Paare

von Bild- und Modellpunkten.

Welche Paare führen zum besten Alignment?

Sei A im folgenden die Menge aller möglichen Paare:

A = { (c1, d1), ... , (ci, d1),

... ,

(c1, dm), ... , (ci, dm) }

Page 29: Hough-Transformation

Aufwandsersparnis durch Alignment

naiv:

jede mögliche Kombination dieser Punktpaare bildet ein mögliches Match.

Aufwand: exponentiell

besser:

es genügen drei Punktpaare für ein mögliches Match.

Aufwand: kubisch

Page 30: Hough-Transformation

Der Alignment Algorithmus

Page 31: Hough-Transformation

Gegeben ist ein Bild I mit n Punkten.ALIGNMENTFür jedes Modell M (m ist die Anzahl der Modellpunkte)

Für jedes Tripel der Modellpunkte macheFür jedes Tripel der Bildpunkte mache

Aufstellen der Hypothese, dass diese in Korrespondenz sind und errechnen einer Transformation basierend auf der hypothetischen Korrespondenz. Für jede der verbleienden m-3 Modellpunktemache

Anwenden der Transformation. Finden einer Korrespondenz zwischen den transformierten Modellpunkten und den Bildpunkten.Messen der Qualität der Transformation(basierend auf der Anzahl der Modellpunkte, die verkuppelt sind mit den Bildpunkten).

Page 32: Hough-Transformation

Im Folgenden: Alignment im Detail

Wie findet man charakteristische Bild- bzw. Modellpunkte?

Wie kann man diese Punkte klassifizieren, um korrespondierende Bild- und Modellpunktpaare zu finden?

Wie berechnet man aus den drei Punktpaaren das Alignment, also die Parameter für Rotation, Verschiebung und Skalierung?

Page 33: Hough-Transformation

Finden von charakteristischen Bild- bzw. Modellpunkten

Page 34: Hough-Transformation

Finden von charakteristischen Punkten

Ziele:

Man versuche, möglichst Punkte mit unverwechselbaren Eigenschaften zu finden, um die Zahl der Punktepaare gering

zu halten. Dies beschleunigt den Algorithmus.

Die Eigenschaften der Punkte sollten sich auch unter Transformationen wie Rotationen möglichst wenig verändern.

Geeignete Punkte könnten z.B. Scheitelpunkte sein, oder Eckpunkte, an denen viele Kanten aufeinandertreffen.

Page 35: Hough-Transformation

Finden von charakteristischen Punkten

Vorgehensweise:

(1) Aus einem Graustufenbild extrahiere man die Kanten mittels eines geeigneten Filters.

(2) Man unterteile die Kanten an bestimmten Punkten in einzelne Segmente.

(3) Zuletzt weise man jedem Segment einen oder zwei charakteristische Punkte zu.

Page 36: Hough-Transformation

Finden von charakteristischen Punkten

1. Schritt: Kantenerkennung

Gegeben sei ein Graustufenbild. Daraus können mit geeigneten Filtern die Kanten extrahiert werden.

Page 37: Hough-Transformation

Finden von charakteristischen Punkten

2. Schritt: Kantensegmentierung

Man unterteile die Kanten an den Punkten, in denen sich die

Krümmung der Kante ändert, also Linkskurven in Rechtskurven oder

Geraden übergehen, und umgekehrt.

Im Bild sind diese Krümmungsänderungen durch

schwarze Punkte gekennzeichnet.

Page 38: Hough-Transformation

Finden von charakteristischen Punkten

3. Schritt:

Definiere charakteristische Punkte

Die Kanten sind nun in Links- und Rechtskurven sowie gerade Stücke

eingeteilt.

Einer Kurve weise man ihren Mittelpunkt als charakteristischen

Punkt zu, einem geraden Stück seine beiden Endpunkte.

Page 39: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Page 40: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Ziel:

Durch eine detaillierte Beschreibung eines Punktes kann die Anzahl der möglichen Punktepaare von Bild und Modell

reduziert werden.

Die Anzahl an charakteristischen Punkten soll recht klein bleiben, um den Algorithmus nicht zu verlangsamen.

Idee:

Beschreibung in mehreren Genauigkeitsstufen

Page 41: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Man betrachte das Modell nach verschiedenen Glättungen, z.B. durch einen Gauss-Filter.

Page 42: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Nun teile man das Modell für jede Glättungsstufe in Kantensegmente ein, wie zuvor beschrieben. Natürlich ergeben

sich jeweils andere Einteilungen.

Page 43: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Nun teile man das Modell für jede Glättungsstufe in Kantensegmente ein, wie zuvor beschrieben. Natürlich ergeben

sich jeweils andere Einteilungen.

Page 44: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Nun teile man das Modell für jede Glättungsstufe in Kantensegmente ein, wie zuvor beschrieben. Natürlich ergeben

sich jeweils andere Einteilungen.

Page 45: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Man benutze die Kantensegmente der kaum gefilterten Modelle, um die der stark gefilterten Modelle zu beschreiben.

Dies geschieht am einfachsten in einer Baumstruktur.

Page 46: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Nun wird jedes Kantensegment noch nach bestimmten Kriterien beschrieben:

Ist das Segment gerade (straight) oder gekrümmt (curved)?

Ist ein gekrümmtes Segment geöffnet (open) oder geschlossen (closed)?

Entspricht das Segment einem einzelnen Kantensegment einer schwächeren Filterung (single), oder gleich mehreren

(multiple)?

Page 47: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Page 48: Hough-Transformation

Klassifizierung von charakteristischen Punkten

Da bei starker Filterung nur wenige Punkte übrigbleiben, wählen wir diese aus, um das Alignment durchzuführen. Die

Punkte sind ja durch sehr viele Merkmale charakterisiert!

Gegebenenfalls kann es jedoch von Vorteil sein, Punkte eines schwach gefilterten Modells zu verwenden.

Mehrstufige Alignments können bessere Resultate liefern, obwohl der Aufwand kaum größer wird.

Page 49: Hough-Transformation

Berechnung des Alignments

Page 50: Hough-Transformation

Problem: Verzerrungen

Modell

PerspektivischeProjektion

Dem Betrachter nahe Objektteile wirken größer als gleichgroße, weiter entfernte Objektteile!

Bild

Page 51: Hough-Transformation

Problem: Verzerrungen

ModellSenkrechteProjektion

Bild

Das Objekt sei so weit vom Betrachter entfernt, daß Verzerrungen nicht wahrnehmbar seien. Nun wirkt lediglich das

Modell im Ganzen kleiner! Das kann leicht durch eine Skalierung modelliert werden.

Page 52: Hough-Transformation

Berechnung des Alignments

Da wir die perspektivische Projektion durch senkrechte Projektion und einen Skalierungsfaktor approximieren, sind Distanzen, die sich (z.B. bei Drehungen) in z-Richtung ändern,

nicht interessant.

Wir werden sehen, dass drei Paare von korrespondierenden Bild- und Modellpunkten ausreichen, um das Alignment zu

berechnen.

Wir berechnen also den Verschiebungsvektor, die Rotationswinkel und den Skalierungsfaktor, um die drei

Modell- auf die drei korrespondierenden Bildpunkte auszurichten.

Page 53: Hough-Transformation

Berechnung des Alignments

Das 2D- Bild befindet sich in der x-y-Ebene; das Modell darüber ist zwar ebenso zweidimensional, kann aber im Raum bewegt

werden, hat also dreidimensionale Ausdehnung.

Page 54: Hough-Transformation

Berechnung des Alignments

Verschiebung der Modellpunkte, so dass die x- und y-Komponenten von am und ai gleich sind. Der Einfachheit halber

wählen wir die von ai von Anfang an gleich Null.

Page 55: Hough-Transformation

Berechnung des Alignments

Rotation um z-Achse, so dass die Kanten aibi ambm parallel übereinanderliegen.

Page 56: Hough-Transformation

Berechnung des Alignments

Die Achsen des Koordinatensystems werden o.B.d.A so gewählt, dass die y-Komponente von bi und bm gleich Null ist.

Page 57: Hough-Transformation

Berechnung des Alignments

Rotation um die y-Achse, so dass bi und bm dieselben x- und y Koordinaten haben. Obwohl sich die z-Komponente von bm

auch ändert, interessiert sie uns nicht.

Page 58: Hough-Transformation

Berechnung des Alignments

Rotation um die x-Achse, so dass ci und cm dieselben x- und y Koordinaten haben. Obwohl sich die z-Komponente von cm

auch ändert, interessiert sie uns nicht.

Page 59: Hough-Transformation
Page 60: Hough-Transformation

2. geometrisches Hashing:Das geometrische Hashing oder allgemeiner die

Indexierungs Methode konstruiert während der Zeit des Kompilierens eine Tabelle mit verschlüsselt

Modellinformationen.Zur Laufzeit, werden die Hypothesen von den

Verbindungen zwischen einem Objekt und dem Modell mittels der Tabelle nachgeprüft und dann wird die

gefundene Lösung bewertet.

Page 61: Hough-Transformation

Algorithmusfür das geometrische Hashing

Page 62: Hough-Transformation

PreprocessingDie Hashtabelle H enthält “Kollisionslisten“Für jedes Modell A:

1. Extrahiere die Features von A, seien dies A =(A1, … ,An).2. Für jede Basis a von Features in A:

Für alle übrigen Features Ai ist nicht Element von a, i = N:

(a) Stelle das Feature Ai in Koordinaten c be- züglich des durch a defnierten Koordinatensystems

dar.(b) Quantisiere c in einen diskreten Wert c‘.Trage die Information (A,a) in die HashzelleH(c‘) ein.

Page 63: Hough-Transformation

Die Laufzeit des Preprocessings ist

O(mn d+1)

für m Modelle mit je n Features, wobei jede Basis aus d Features besteht.

Page 64: Hough-Transformation

Erkennungsphase des geomethrischen Hashing:1. Extrahiere die Features von B, seien dies B =

(B1,…,Bn).2. Wähle eine Basis b von Features in B:

Für alle übrigen Features Bi ist nicht Element von b, i=N: (a)Stelle das Feature Bi in Koordinaten c be-züglich des durch b defnierten

Koordinatensystems dar.(b) Quantisiere c in einen diskreten Wert c’.Jeder Eintrag (A, a) ist Element von H(c’) erhält eine Stimme.(c) Zähle die Stimmen aus für alle Paare vonModellen und Basen (Histogramm). Paaremit genügend vielen Stimmen entsprechenpotentiellen Treffern.(d) Für jeden potentiellen Treffer (A, b):Bestimme die optimale Transformation Tfür die gematchten Features von A und Bund bewerte die gefundene Lösung.

3. Falls keine gute Lösung gefunden wurde, wiederhole Schritt 2.

Page 65: Hough-Transformation

Die Laufzeit von Schritt 2 der Erkennungsphase ist

O(hn d+1)

wobei h die durchschnittliche Füllungsdichte der betrachteten Hashzellen ist.

In günstigen Fällen ist

h = O(1),

jedoch kann schlimmstenfalls

h = mnd+1

sein.

Hinzu kommt noch die Laufzeit für die Bearbeitung der gefundenen Treffer.

Page 66: Hough-Transformation