Vorlesung "Echtzeitbildverarbeitung" (Sommer 2008)
Real-Time Computer Vision
Veranstalter
- Prof. Dr. Udo Frese
Sommersemester 2008
Veranstaltungskennziffer: 03-05-H-709.53 Kategorie: V (ECTS: 6, TMG: 2)
V 2 SWS : Mo von 17:00 - 18:30 MZH 7250
Ü 2 SWS : Do von 8:30 - 10:00 MZH 7210
Voraussetzung (inhaltlich): Bildverarbeitung I. Um erfolgreich an Echtzeitbildverarbeitung teilzunehmen benötigt man nicht sämtliche Details aus Bildverarbeitung I, wohl aber ein Grundverständnis für wie Bilder in den Rechner kommen, wie Perspektive funktioniert und ein Gefühl für die Probleme die durch Unschärfe, Rauschen, Beleuchtung, Reflexionen, Schatten und andere Störungen verursacht werden.
Thema
Bildverarbeitung (engl. computer vision) ist die automatische Extraktion von Informationen aus Bildern. In den meisten Fällen ist das Ziel abgebildete Objekte und deren (räumliche) Lage zu bestimmen. Industrielle Anwendungen sind Qualitätskontrolle ("ist eine Platine vollständig bestückt", "stimmen die Maße eines Bauteils"), Montage ("Lage eines Objektes zum Greifen oder Fügen") aber auch Logistik ("Lesen von Aufklebern", "Greifen von Paketen") und Sicherheit ("Personenerkennung"). In der Forschung ist ein breites Anwendungsfeld die Servicerobotik, wo Roboter zu greifende Gegenstände, Hindernisse oder ihre eigene Position im Gebäude erkennen müssen. Ein anderes Beispiel sind "Sportrobotik"-Anwendungen, z.B. der Roboterfussball RoboCup oder das Fangen zugeworfener Bälle. Viele Anwendungen sind deshalb schwierig, weil das Ergebnis in "Echtzeit", d.h. während der Vorgang abläuft vorliegen muss. Diese Veranstaltung beschäftigt sich mit Techniken für Bildverarbeitung bei denen Rechenzeit eine schwierige Beschränkung ist. Ziel ist,
- einige Methoden zur Bildverarbeitung in Echtzeit zu beherrschen
- in einer Anwendung potentiell auftretende Probleme zu erkennen
- ein Gefühl dafür zu haben, welche Methode sich für welche Anwendung eignet
Die letzten beiden Punkte werden einen grossen Raum einnehmen. Wir werden in Vorlesung und Übung ausführlich Anwendungen, Lösungsansätze ("wie könnte man es machen") und potentielle Schwierigkeiten ("was wird dabei schief gehen") diskutieren.
Übungen
Übungszettel werden im zweiwöchigen Rhythmus in Gruppen abgegeben und bestehen jeweils aus einer Implementierungsaufgabe in C++ (10 Punkte), einer Konzeptaufgabe (Lösungsansatz für eine Anwendung skizzieren, 4 Punkte) und einer Minifrage (1 Bonuspunkt).
Es gibt 6 Übungszettel. Nach zwei allein stehenden Aufgaben wollen wir uns in den Zetteln 3 bis 6 einem etwas umfassenderen Anwendungsbeispiel widmen. Wir wollen mit Bildverarbeitung die Flugbahn eines geworfenen Balles verfolgen und den Auftreffpunkt auf dem Boden vorhersagen. Das oben stehende Video illustriert, wie das Ergebnis aussehen soll. Zuerst erkennen wir den Ball als Kreis (rot) im Bild, dann die Linien der Bodenfliesen (rote Kreuze am Boden). Danach kalibrieren wir die Kamera über die Linien, d.h. wir bestimmen, wo sie sich befinden und in welche Richtung sie schaut (erster Teil des Videos). Als letztes verfolgen und wir den Ball (rote Kreuze) und sagen den Auftreffpunkt (blaue Kreuze) vorher. Die Implementierungen werden mit der freien OpenCV Bibliothek wahlweise unter LINUX, Windows oder Mac (auf eigenes Risiko) durchgeführt. Abgabe in Gruppen zu 2-3 Studenten per email. Abzugeben ist der Text der Aufgabenbearbeitung als .pdf incl. dem kompilierbaren Source Code. Bitte Namen und email aller Gruppenmitglieder angeben. Die OpenCV Bildverarbeitungsbibliothek kann direkt von SourceForge heruntergeladen und auf dem eigenen Rechner installiert werden. Informationen zur Installation unter finden sich hier. Alternativ ist die Bibliothek auch im Fachbereichsnetz unter /home/ufrese/opencv installiert. Hierzu muessen die Hinweise im Makefile bzw. unter /home/ufrese/opencv/sample/ beachtet werden.
Inhalt
Zusammenfassung des Prüfungsstoffes
07.4.
Was ist Bildverarbeitung? Was heißt Echtzeit? Industrielle Anwendungen; Forschungs Anwendungen
Erbsenzählen Lösung
14.4.
Weg des Bildes in den Rechner; Industrieller Ansatz: Schwellwert, Regionenbildung
Übungszettel 1 (05.5) Lösung
21.4.
Histogramm; Automatischer Schwellwert; charakt. Grössen, Trägheitstensor;
-
28.4.
Differenzbilder; Was ist Farbe?; Farbsegmentierung als statistische Klassifikation
Übungszettel 2 (15.5) Lösung
05.5.
k-D Tree für Farbsegmentierung; Farbsegmentierung mit Look-up-tables; Anwendung: RoboCup
-
15.5.
Faltungsoperationen; Kanten- und Liniendetektion; Houghtransformation
Übungszettel 3 (28.5) Lösung
19.5
Kreis Hough Transformation
-
26.5
Linien Hough Transformation
Übungszettel 4 (12.6) Filteroptimierung Lösung 4 Lösung Filter
02.6
Rekapitulation 2D Bildverarbeitung; Homogene Koordinaten
-
09.6
Kameragleichung in 3D, Geometrische Rekonstruktion, Parametrisierung von Drehungen
Übungszettel 5 (23.6) Lösung 5
16.6
Quadratische Ausgleichsrechnung, Downhill Simplex Algorithmus
-
23.6
Zustandsschätzer, Partikelfilter, Mess- und Dynamikmodelle
Übungszettel 6 (06.7) Lösung 6
30.6
Partikelfilter: Initialisierung, Resampling, Herleitung
-
07.7
Anwendungen von Partikel Filtern, Kognitive Bildverarbeitung, Rekapitulation des Prüfungsstoffs
-
Teilnahme
Studierende der Informatik, Digitale Medien und System Engineering im Hauptstudium. Ausserdem Studierende aller Studiengänge, die praktische Informatikscheine akzeptieren.
Prüfungen
Bitte zur Prüfung ein ausgefülltes Scheinformular mitbringen.
Wahlweise Fachgespräch oder Mündliche Prüfung. Fachgespräch: Schriftliche Abgabe von Übungsaufgaben (Programmierung:6*10, Anwendung:5*4, Bonus:6*1; Summe: 80) in Gruppen und kurzes Fachgespräch zur Beurteilung der individuellen Leistungen in einer Gruppe. Note aufgrund der Punktzahl und des Fachgespräch Ergebnisses gemäß folgender Tabelle (>=):
Note |
1.0 |
1.3 |
1.7 |
2.0 |
2.3 |
2.7 |
3.0 |
3.3 |
3.7 |
4.0 |
Punkte>= |
76 |
72 |
68 |
64 |
60 |
56 |
52 |
48 |
44 |
40 |
Mündliche Prüfung: Einzelprüfung von 20-30min. Übungsaufgaben gehen nicht in die Note ein. Prüfung beginnt mit einer kleinen Anwendungsaufgabe (ca. 3min Überlegungszeit).Übungszettel 6