Title: Seminar - Objekterkennung durch Alignment
1(No Transcript)
2Hough-Transformation
3Hough-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.
DefinitionUnter einer Geraden versteht man im
Sinne des Hough-Algorithmus eine Menge von
kollinearen Punkten.
4Mathematische Definition
Im kartesischen Koordinatensystem wird eine
Gerade normalerweise durch ihre Steigung m und
den y-Achsenabschnitt t beschrieben y mx
t nach t aufgelöst ergibt das t -mx y
5Hessesche 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
6 Dieses Vorgehen nennt man Gerade-zu-Punkt-Trans
formation.
7Die transformierten Punkte des Binärbildes im
Hough-Raum.
8Die Hough-Transformation arbeitet vorteilhaft auf
einem Binärbild oder einem Gradientenbild.
9- 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
10Hough-Algorithmus
11- 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 -gt 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
12- Ergebnis ist ein Bild mit Geraden ohne Anfangs-
und Endpunkte ? Tracking
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.
13Ein interessanter Effekt ist, dass parallele
Geraden in einer Akkumulator-Spalte stehen, da
sie den selben Winkel phi haben.
14Kreiserkennung
15Ellipsenerkennung
16(No Transcript)
172. Modellbasierende Objekterkennung
Die Objekterkennung ist das zentrale Problem der
Bildverarbeitung. Es beinhaltet die
Identifikation und Lokalisierung von gegebenen
Objekten in einem Bild.
181. AlignmentUnter 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.
19Modell (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!
20Schritt 1 Verschieben der Modellpunkte, so dass
bm bi
21Schritt 2 Rotation von am um bm, so dass die
gedachten Kanten aibi und ambm aufeinander
liegen.
22Schritt 3 Skalieren, so dass ai am und bi bm
23Zum korrekten Alignment im 2D bedarf es also der
Berechnung eines Verschiebungsvektors, eines
Rotationswinkels, und eines Skalierungsfaktors. H
ierzu ist das Wissen um zwei Paare
korrespondierender charakteristischer Bild- und
Modellpunkte notwendig.
24Die 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
25Die Punktepaare könnten ungünstig gewählt worden
sein
Modell
Bild
26Beispiel Alignment im 2D
Die Punktepaare könnten ungünstig gewählt worden
sein
27- 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?
28- Aufwandsersparnis durch Alignment
Gegeben seien i charakteristische Bild-, und m
charakteristische Modellpunkte. Daraus ergeben
sich p im 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)
29- 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
30 Der Alignment Algorithmus
31Gegeben 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 Anw
enden 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).
32- 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?
33Finden von charakteristischen Bild-
bzw. Modellpunkten
34- 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.
35- 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.
36- Finden von charakteristischen Punkten
1. Schritt Kantenerkennung Gegeben sei ein
Graustufenbild. Daraus können mit geeigneten
Filtern die Kanten extrahiert werden.
37- 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.
38- 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.
39Klassifizierung von
charakteristischen Punkten
40- 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
41- Klassifizierung von charakteristischen Punkten
Man betrachte das Modell nach verschiedenen
Glättungen, z.B. durch einen Gauss-Filter.
42- 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.
43Klassifizierung 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.
44Klassifizierung 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.
45- 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.
46- 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)?
47- Klassifizierung von charakteristischen Punkten
48- 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! Gegebenenfal
ls 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.
49Berechnung des Alignments
50Modell
Bild
Perspektivische Projektion
Dem Betrachter nahe Objektteile wirken größer als
gleichgroße, weiter entfernte Objektteile!
51Modell
Senkrechte Projektion
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.
52- 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.
53- 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.
54- 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.
55- Berechnung des Alignments
Rotation um z-Achse, so dass die Kanten aibi ambm
parallel übereinanderliegen.
56- 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.
57- 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.
58- 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.
59(No Transcript)
602. geometrisches HashingDas 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.
61Algorithmusfür das geometrische Hashing
62PreprocessingDie Hashtabelle H enthält
KollisionslistenFü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 Hashzelle H(c)
ein.
63Die Laufzeit des Preprocessings ist O(mn
d1) für m Modelle mit je n Features, wobei jede
Basis aus d Features besteht.
64 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, iN (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
von Modellen und Basen (Histogramm). Paare mit
genügend vielen Stimmen entsprechen potentiellen
Treffern. (d) Für jeden potentiellen Treffer (A,
b) Bestimme die optimale Transformation T für
die gematchten Features von A und B und bewerte
die gefundene Lösung. 3. Falls keine gute Lösung
gefunden wurde, wiederhole Schritt 2.
65Die Laufzeit von Schritt 2 der Erkennungsphase
ist O(hn d1)wobei h die durchschnittliche
Füllungsdichte der betrachteten Hashzellen
ist. In günstigen Fällen ist h O(1), jedoch
kann schlimmstenfalls h mnd1 sein. Hinzu
kommt noch die Laufzeit für die Bearbeitung der
gefundenen Treffer.
66(No Transcript)