660 likes | 854 Views
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.
E N D
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. Definition:Unter einer Geraden versteht man im Sinne des Hough-Algorithmus eine Menge von kollinearen Punkten.
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
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:
Dieses Vorgehen nennt man „Gerade-zu-Punkt-Transformation“.
Binärbild Die transformierten Punkte des Binärbildes im Hough-Raum.
Binärbild Gradientenbild Die Hough-Transformation arbeitet vorteilhaft auf einem Binärbild oder einem Gradientenbild.
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
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 EndpunkteTracking
Ergebnis ist ein Bild mit Geraden ohne Anfangs- und EndpunkteTracking Dabei dienen die durch die Hough-Transformation gefundenen Geraden als "Wegweiser" durch das Originalbild. 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.
Ein interessanter Effekt ist, dass parallele Geraden in einer Akkumulator-Spalte stehen, da sie den selben Winkel phi haben.
2. Modellbasierende Objekterkennung Die Objekterkennung ist das zentrale Problem der Bildverarbeitung. Es beinhaltet die Identifikation und Lokalisierung von gegebenen Objekten in einem Bild.
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.
Beispiel: Alignment im 2D Modell (2D) Bild (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!
Beispiel: Alignment im 2D Schritt 1: Verschieben der Modellpunkte, so dass bm = bi
Beispiel: Alignment im 2D Schritt 2: Rotation von am um bm, so dass die gedachten Kanten aibi und ambm aufeinander liegen.
Beispiel: Alignment im 2D Schritt 3: Skalieren, so dass ai = am und bi = bm
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. 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: Beispiel: Alignment im 2D
Die Punktepaare könnten ungünstig gewählt worden sein: Bild Modell Beispiel: Alignment im 2D
Beispiel: Alignment im 2D Die Punktepaare könnten ungünstig gewählt worden sein:
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? 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) } 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 Aufwandsersparnis durch Alignment
Gegeben ist ein Bild I mit n Punkten. ALIGNMENT Für jedes Modell M (m ist die Anzahl der Modellpunkte) Für jedes Tripel der Modellpunkte mache Fü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 Modellpunkte mache 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).
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? Im Folgenden: Alignment im Detail
Finden von charakteristischen Bild- bzw. Modellpunkten
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. 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. Finden von charakteristischen Punkten
1. Schritt: Kantenerkennung Gegeben sei ein Graustufenbild. Daraus können mit geeigneten Filtern die Kanten extrahiert werden. 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. 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. Finden 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 Klassifizierung von charakteristischen Punkten
Man betrachte das Modell nach verschiedenen Glättungen, z.B. durch einen Gauss-Filter. 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. Klassifizierung von charakteristischen Punkten
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.
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.
Man benutze die Kantensegmente der kaum gefilterten Modelle, um die der stark gefilterten Modelle zu beschreiben. Dies geschieht am einfachsten in einer Baumstruktur. 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)? 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. Klassifizierung von charakteristischen Punkten
Modell Bild Problem: Verzerrungen Perspektivische Projektion Dem Betrachter nahe Objektteile wirken größer als gleichgroße, weiter entfernte Objektteile!