3. Überblick I
Modelaufbau
Kantendetektion
Canny-Algorithmus
Hough-Transformation
Tracking
Points of Interest
Schnittpunkte von Geraden
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 03/29
4. Überblick II
Modelaufbau
Brauchbare Bilder erstellen
Objektdetektion
Objekt erkennen und extrahieren
Objektübereinstimmung (Template-Matching)
Objekt in verschiedenen Bildern finden
Epipolargeometrie
Rektifizieren der Bilder
3D Informationen
Tiefeninformationen des Objektes ermitteln
Probleme/Fazit
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
9. Canny-Algorithmus
Sehr Robust
Verwendet den Sobel-Operator
Berechnet den Gradientenbetrag und die
Gradientenrichtung des Bildes
Optimalität für folgende Kriterien:
Erkennung: alle tatsächlichen Kanten sollen gefunden werden
Lokalisierung: Abstand zwischen tatsächlicher und erkannter Kanten soll
möglichst klein sein
Ansprechverhalten: keine Mehrfacherkennung von gleichen Kanten
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 08/29
11. Canny-Algorithmus
Sobel-Operator in X-Richtung Sobel-Operator in Y-Richtung
1. Glättung
2. Kantendetektion
Euklidischer Betrag:
3. Unterdrücken ( )
von Nicht-
Maxima
Gradientenrichtung berechnen:
4. Hysterese
0°, 45°, 90°, 135°
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 10/29
12. Canny-Algorithmus
1. Glättung
2. Kantendetektion
3. Unterdrücken
von Nicht-
Maxima
4. Hysterese
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 11/29
13. Canny-Algorithmus
non-maximum suppression
1. Glättung
• ausdünnen der Kanten
2. Kantendetektion
• vergleich der Richtung von Nachbarpunkten
3. Unterdrücken
• Pixel entlang der Gerade übernehmen,
von Nicht-
Maxima alle anderen Pixel auf Grauwert 0 setzen
4. Hysterese
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 12/29
14. Canny-Algorithmus
Ab welcher Kantenstärke wird ein Pixel
1. Glättung als Kante identifiziert?
2. Kantendetektion Hysterese:
3. Unterdrücken • Zwei Schwellenwerte T1,T2 mit T1 ≤ T2
von Nicht-
Maxima • Unterdrückt „schwache“ bzw. falsche Kanten
4. Hysterese • „Zerreißt“ weniger Kanten als einfache
Schwellenwertverfahren
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 13/29
15. Hough-Transformation
Voraussetzung: Binäres Gradientenbild
Erkennung von geometrischen Objekten
Detektiert kollineare Punkte
Erkennt Kreise und Geraden
Allgemein: Erkennt Objekte die sich in geschlossener
parametrisierbarer Form darstellen lassen
Erschaffen eines Akkumulatorraums
Dualraum
(d,Ɵ)-Raum
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 14/29
17. Hough-Transformation
Geradengleichung: y = m * x + t
Aufgelöst nach Y-Achsenabschnitt: t = -m * x + y
P(x|y) Q(m|t)
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 16/29
18. Hough-Transformation
Probleme bei Darstellung von vertikalen-Linien da Steigung ± ∞
Besser: Hessesche Normalform
Ortsvektor Abstand vom Ursprung
Normalvektor
Statt (x,y)-Koordinate des Ortsvektors genügt der Winkel Ɵ:
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 17/29
19. Hough-Transformation
Gerade-zu-Punkt-Transformation
Hessesche Normalform: Nach d aufgelöst:
Codierung in den Hough-Raum: (d,Ɵ)-Raum
Jede Gerade kann durch einen Punkt im Hough-Raum dargestellt werden
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 18/29
21. Hough-Transformation
Geradenbüschel durch P(x|y) für alle Winkel zwischen 0 und π :
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 20/29
22. Hough-Transformation
Das selbe für mehrere Punkte:
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 21/29
23. Hough-Transformation
Mehrere Punkte:
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 22/29
25. Hough-Transformation
Stellt eine Art „Brute-Force“-Algorithmus dar
Eignet sich nur für das Vorhandensein von „wenigen“
Geraden
Störanfällig bei falscher Quantisierung:
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 24/29
26. Tracking
Bestimmt Anfangs- und Endpunkt einer Strecke
Über morphologische Filter
Über Schablonen
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 25/29
27. Points of Interest
Punkte mit besonders markanten Merkmalen
Eckpunkte
Schnittpunkte von Geraden
Veränderung der Intensität der Farbwerte
Kantendetektoren
Moravec-Interest Operator
berechnet die mittleren quadratischen Gradientensummen
Harris-Kanten-Detektor
Vollständig rotationsinvariant
Naives Verfahren
Schnittpunkte von Geraden finden
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 26/29
28. Points of Interest
Markante Punkte über Schnittpunkte von Geraden
Steigung berechnen:
Auflösen nach y:
Gleichsetzen:
Nach x auflösen:
x in y1 oder y2 einsetzen
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 27/29
29. Points of Interest
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 28/29
31. Modelaufbau
Zwei Bilder zur 3D Rekonstruktion nötig
Kamerapositionen leicht versetzt oder leicht um das
Objekt rotiert
Je weiter ein Objekt entfernt ist, desto weniger
Informationen können erschlossen werden
Optionale Kalibrierung der Bilder
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
32. Modelaufbau
Leicht versetzte Kamerapositionen
C1 C2
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
33. Modelaufbau
Leicht rotierte Kamerapositionen
C2
C1
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
34. Modelaufbau
Nahaufnahmen des Objekts
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
35. Objektdetektion
Welcher Farbraum ist am besten geeignet?
RGB, Grauwert, HSV, Lab, …
Wie detektiert man das Objekt in den Bildern?
Nahaufnahmen
Markierungen
Kantendetektion
GaussianBGModel
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
37. Objektdetektion
Grauwert
Lab
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
38. Objektdetektion
Markierungen notwendig
GaussianBGModel
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
39. Objektdetektion
Kantendetektion des Objekts
Canny, Laplace, …
Problem der Parametrisierung von Algorithmen
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
40. Objektübereinstimmung
Points Of Interest in beiden Bildern suchen
Mindestens 8 Stück notwendig!
Template-Matching der POIs auf beiden Bildern
Nicht immer richtig!
Wie kann man sicher gehen, dass die gefundenen
POIs auf beiden Bildern die selben sind?
Nur manuell
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
41. Objektübereinstimmung
Braucht man die Korrespondenzpunkte überhaupt?
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
42. Epipolargeometrie
Berechnung der Fundamentalmatrix (3x3 Matrix)
anhand der Korrespondenzpunkte
Mit Hilfe von Fundamentalmatrix die Epipolarlinien
berechnen oder die Bilder rektifizieren
Was ist Epipolargeometrie und wozu werden
Epipolarlinien benötigt?
Quelle: Wikipedia
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
43. Epipolargeometrie
Quelle: Wikipedia
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
46. 3D Informationen
Erstellung des 3D Objektes
Texturierung des 3D Objektes
Originalbild Tiefenbild
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
47. 3D Informationen
Pro Textur das Eingangsbild entzerren
Mapping-Qualität abhängig vom generierten Objekt
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
48. Probleme
Viele Parameter erschweren die Automatisierung
Fehlerhaftes Template-Matching
Objektdetektion zu ungenau
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
49. Zusammenfassung Part2
Ergebnisse sind brauchbar für kleine Objekte
Schwer realisierbar für Gebäude
Hoher Aufwand
Rechenaufwand der Algorithmen
Große Bildmengen
Stark abhängig von Belichtung und Qualität der Bilddaten
Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest 29/29
50. Fazit
Tiefeninformationen können berechnet werden
Großer Funktionsumfang von OpenCV
~500 Zeilen Code
Interessantes Themengebiet
Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme
51. Bessere Verfahren
Objektrekonstruktion mittels Videodaten
Benötigt wird eine Stereoskopische Videokamera oder
andere Verfahren
Andere Verfahren:
3D Rekonstruktion mittels Microsofts Kinect
Besser: Asus Xtion
29/29
52. Warum Kinect/Asus Xtion
Liefert von Haus aus Tiefeninformationen
Videodaten ->Streaming
Sehr viele Bilder helfen alle Stellen des Objekts zu
„beleuchten“
Klein und Handlich
Ermöglicht es mit einem Laptop bequem ein Haus von
allen Seiten zu filmen
Viel bekanntes wissen aus Microsofterfahrung kann
wieder verwendet werden
Liefert schneller und bessere Ergebnisse als
einzelne Fotoaufnahmen
53. Microsoft Kinect
Veröffentlichung: November 2010
Verfahren zur Berechnung des Tiefenbildes: Light
Coding
Einschränkungen: Sonne und reflektierende
Oberflächen
Distanz: 60cm bis 10m
IR, RGB & Depth Bilder
54. OpenNI
Framework für die Kinect
Zugriff auf Joint-Informationen
Einfache Gestenerkennung, vordefinierter Gesten