Abbildung einer partiellen Realität in eine virtuelle Online-Welt, zum spielerischen Kennenlernen...

Post on 15-May-2015

1.056 views 2 download

description

Michael Kuzmin und Denis Smirnov Abschlusspräsentation Jahrgang 2010 Karl-Steinbuch-Stipendium MFG Stiftung Baden-Württemberg

Transcript of Abbildung einer partiellen Realität in eine virtuelle Online-Welt, zum spielerischen Kennenlernen...

3D Informationen aus 2D Bildern extrahieren

Michael Kuzmin | Denis Smirnov

Einführende Worte

Ü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

Ü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/FazitModelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Modelaufbau

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

04/29

Modelaufbau

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

05/29

Kantendetektion

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

06/29

Kantendetektion

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

07/29

Sobel Laplace Prewitt Canny

Canny-Algorithmus

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

08/29

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

Canny-Algorithmus

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

09/29

1. Glättung

2. Kantendetektion

3. Unterdrücken von Nicht-Maxima

4. Hysterese

Gauß’scher Glättungsfilter

• Rauschen Minimieren

Canny-Algorithmus

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

10/29

1. Glättung

2. Kantendetektion

3. Unterdrücken von Nicht-Maxima

4. Hysterese

Sobel-Operator in X-Richtung

Sobel-Operator in Y-Richtung

( )

Gradientenrichtung berechnen:

0°, 45°, 90°, 135°

Euklidischer Betrag:

Canny-Algorithmus

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

11/29

1. Glättung

2. Kantendetektion

3. Unterdrücken von Nicht-Maxima

4. Hysterese

Canny-Algorithmus

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

12/29

1. Glättung

2. Kantendetektion

3. Unterdrücken von Nicht-Maxima

4. Hysterese

non-maximum suppression

• ausdünnen der Kanten

• vergleich der Richtung von Nachbarpunkten

• Pixel entlang der Gerade übernehmen, alle anderen Pixel auf Grauwert 0 setzen

Canny-Algorithmus

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

13/29

1. Glättung

2. Kantendetektion

3. Unterdrücken von Nicht-Maxima

4. Hysterese

Ab welcher Kantenstärke wird ein Pixel als Kante identifiziert?

Hysterese:

• Zwei Schwellenwerte T1,T2 mit T1 ≤ T2

• Unterdrückt „schwache“ bzw. falsche Kanten

• „Zerreißt“ weniger Kanten als einfache Schwellenwertverfahren

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

14/29

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

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

15/29

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

16/29

Geradengleichung: y = m * x + t

Aufgelöst nach Y-Achsenabschnitt: t = -m * x + y

P(x|y) Q(m|t)

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

17/29

Probleme bei Darstellung von vertikalen-Linien da Steigung ± ∞

Besser: Hessesche Normalform

Ortsvektor

Normalvektor

Abstand vom Ursprung

Statt (x,y)-Koordinate des Ortsvektors genügt der Winkel Ɵ:

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

18/29

Codierung in den Hough-Raum: (d,Ɵ)-Raum

Jede Gerade kann durch einen Punkt im Hough-Raum dargestellt werden

Hessesche Normalform: Nach d aufgelöst:

Gerade-zu-Punkt-Transformation

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

19/29

Akkululatorraum „säubern“ Cluster bilden Störeinflüsse beseitigen

Akkululatorraum analysieren Maximas auslesen Schwellenwerte überprüfen

Rücktransformation nach

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

20/29

Geradenbüschel durch P(x|y) für alle Winkel zwischen 0 und π :

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

21/29

Das selbe für mehrere Punkte:

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

22/29

Mehrere Punkte:

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

23/29

Hough-Transformation

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

24/29

Stellt eine Art „Brute-Force“-Algorithmus dar Eignet sich nur für das Vorhandensein von

„wenigen“ Geraden

Störanfällig bei falscher Quantisierung:

Tracking

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

25/29

Bestimmt Anfangs- und Endpunkt einer Strecke Über morphologische Filter Über Schablonen

Points of Interest

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

26/29

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

Points of Interest

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

27/29

Markante Punkte über Schnittpunkte von Geraden Steigung berechnen:

Auflösen nach y:

Gleichsetzen:

Nach x auflösen:

x in y1 oder y2 einsetzen

Points of Interest

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

28/29

Zusammenfassung Part1

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

29/29

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

Modelaufbau

Leicht versetzte Kamerapositionen

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

C1 C2

Modelaufbau

Leicht rotierte Kamerapositionen

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

C1C2

Modelaufbau

Nahaufnahmen des Objekts

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

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

Objektdetektion

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

RGB

Objektdetektion

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Lab

Grauwert

Objektdetektion

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

GaussianBGModel

Markierungen notwendig

Objektdetektion

Kantendetektion des Objekts Canny, Laplace, …

Problem der Parametrisierung von Algorithmen

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

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

Objektübereinstimmung

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Braucht man die Korrespondenzpunkte überhaupt?

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?

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Quelle: Wikipedia

Epipolargeometrie

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Quelle: Wikipedia

Epipolargeometrie

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Rektifiziertes Bild

Epipolargeometrie

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Epipolarlinien in rektifizierten Bildern

3D Informationen

Erstellung des 3D Objektes Texturierung des 3D Objektes

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Originalbild Tiefenbild

3D Informationen

Pro Textur das Eingangsbild entzerren Mapping-Qualität abhängig vom generierten

Objekt

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Probleme

Viele Parameter erschweren die Automatisierung

Fehlerhaftes Template-Matching

Objektdetektion zu ungenau

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Zusammenfassung Part2

Überblick | Modelaufbau | Kantendetektion | Hough-Transformation | Tracking | Points of Interest

29/29

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

Fazit

Tiefeninformationen können berechnet werden

Großer Funktionsumfang von OpenCV

~500 Zeilen Code

Interessantes Themengebiet

Modelaufbau | Objektdetektion | Objektübereinstimmung | Epipolargeometrie | 3D Informationen | Probleme

Bessere Verfahren

29/29

Objektrekonstruktion mittels Videodaten Benötigt wird eine Stereoskopische Videokamera

oder andere Verfahren Andere Verfahren:

3D Rekonstruktion mittels Microsofts Kinect Besser: Asus Xtion

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

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

OpenNI Framework für die Kinect Zugriff auf Joint-Informationen Einfache Gestenerkennung, vordefinierter

Gesten