Vorlesung Digitale Bildverarbeitung Sommersemester 2015 Sebastian Houben Folien zu Teilen von Dr....
-
Upload
mareke-hauer -
Category
Documents
-
view
234 -
download
5
Transcript of Vorlesung Digitale Bildverarbeitung Sommersemester 2015 Sebastian Houben Folien zu Teilen von Dr....
Vorlesung Digitale BildverarbeitungSommersemester 2015
Sebastian HoubenFolien zu Teilen von Dr. Susanne Winter
Institut für Neuroinformatik
Evaluation
• 100% Studierende der AI• 100% haben das Ziell, die Prüfung abzulegen
• Zeitaufwand für Nachbereitung: 1 – 3 Stunden ok, mehr eher nicht• 91% halten Stoffmenge und Tempo für angemessen• 84% wurden die Themenzusammenhänge deutlich• 82% erkennen den Praxisbezug• > 85% bei Vortragsstil, Fragen, Lernatmosphäre, Medieneinsatz
• 50% fanden das Niveau der Übungen zu hoch• 0% fanden das Thema der Übungen für die Vorlesung „selten
hilfreich“
Evaluation
• 100% Studierende der AI• 100% haben das Ziell, die Prüfung abzulegen
• Zeitaufwand für Nachbereitung: 1 – 3 Stunden ok, mehr eher nicht• 91% halten Stoffmenge und Tempo für angemessen• 84% wurden die Themenzusammenhänge deutlich• 82% erkennen den Praxisbezug• > 85% bei Vortragsstil, Fragen, Lernatmosphäre, Medieneinsatz
• 69% halten die Folien für verständlich• 47% fanden die Folien „teilweise hilfreich“• Bei 28% war das vorausgesetzte Wissen nicht vorhanden
Evaluation
• Durchschnittliche Gesamtnote: 2,2 (1 – 5)• 50 % bewerten die Qualität im oberen, 50 % im mittleren Drittel• Konkret angesprochen:
– Folien z.T. schwer verständlich, zu wenig Erklärungen– Matlab– Fragen (vom Dozenten) zu leicht / überflüssig– Hough-Transformation intensiver behandeln
• Ideen zur Verbesserung:– Überarbeitung der Folien– Umfangreichers Matlab-Tutorial– Cheatsheet Mathematik– Voraussetzungen deutlich kommunizieren
Registrierung
Anwendung 2: Kalibrierung einer Kamera• Ziel: Es soll die Transformation gefunden werden, mit der die
Aufnahme einer beliebigen Kamera entzerrt wird
Tamaki, Yamamur: „Correcting Distortion of Image by Image Registration“ (2002)
Anwendung 2: Kalibrierung einer Kamera – Erinnerung
Tamaki, Yamamur: „Correcting Distortion of Image by Image Registration“ (2002)
dx
zrmax
rd
y
Anwendung 2: Kalibrierung einer Kamera• Bei der Registrierung einer unkalibrierten Kamera wird
folgendermaßen vorgegangen:
• Ein unverzerrtes Foto wird ausgedruckt und mit der unkalibrierten Kamera aufgenommen
• Dann werden die beiden Bilder miteinander registriert
Anwendung 2: Kalibrierung einer Kamera• Welche Transformation ist
geeignet um diese Abbildung zu lösen?
• Projektive Abbildung• Radiale Verzerrung• Unterschiede in der
Beleuchtung
Anwendung 2: Kalibrierung einer Kamera• Welches Maß ist
geeignet, um die Ähnlichkeit der Bilder bei Überlagerung zu beschreiben?
• Abs. Grauwertdifferenz?• Norm.
Kreuzkorrelationskoeffizient?
Anwendung 2: Kalibrierung einer Kamera• Die projektive Abbildung wird durch 8 Parameter bestimmt
• Die radiale Verzerrung durch 5 Parameter
2I)( 12 xPRx
xP
xx
x cdkdkscxx
4
22
11)(R
yyy cdkdkcyy 42
211)()(R
22)( yx cyscxd
),,,,( 21 skkcc yx
Anwendung 2: Kalibrierung einer Kamera• Als Ähnlichkeitsmaß wird die Grauwertdifferenz verwendet, wobei
ein Beleuchtungsunterschied berücksichtigt wird
• Sechs Parameter beschreiben die Beleuchtungskorrektur
yxIyxIH 654321 )()(),),(( xxx
),),(( 21 xxIHIe
N
iieE
1
2
61 ...
Anwendung 2: Kalibrierung einer Kamera• Bei der Registrierung werden gleichzeitig die Parameter der
Transformation und die der Beleuchtungskorrektur optimiert.Es werden also 8 + 5 + 6 = 19 Parameter optimiert
Anwendung 2: Kalibrierung einer Kamera• Das Ergebnis liefert die Transformation
und die Beleuchtungskorrektur
Registrierung
Bei einem Registrierproblem müssen Sie sich Gedanken machen über:
• Fehlermaß / Ähnlichkeitsmaß• Transformation• Optimierung
Inhalt
• Crash-Course in Machine Learning• Klassifikationsverfahren
– Grundsätzliches– K-Nearest-Neighbour-Klassifizierer (KNN)– Linear Discriminant Analysis (LDA)– Support Vector Machine (SVM)
Maschinelles Lernen: Klassifikation
Was ist maschinelles Lernen (Machine Learning)?• Nachbildung menschlicher Lern- und Verständnisleistungen
– Überwachtes Lernen (Supervised Learning)– Unüberwachtes Lernen (Unsupervised Learning)– Verstärkendes Lernen (Reinforcement Learning)– Mischformen
• Vertiefende Vorlesungen– Laurenz Wiskott:
Machine Learning: Unsupervised Methods– Tobias Glasmachers:
Machine Learning: Supervised Methods– Rolf Würtz:
Artificial Neural Networks, Sehen in Mensch und Maschine
Was ist ein Klassifikator?
• Regression vs. Klassifikation– Regression versucht einen kontinuierlichen Wert zu erlernen
(Lernen einer Funktionsvorschrift)– Klassifikation versucht einen diskreten von endlich vielen Werten
zu erlernen• Regression kann über Einführung von Schwellen in Klassifikation
umgewandelt werden
Merkmal
Wert
Merkmal
Klasse
Merkmal
Klasse
Was ist ein Klassifikator?
Klassifikator
Training(Daten, Label)
Vorfahrt achten / Fahrtrichtichtung links /
Gefahr Baustelle
Gesicht / kein Gesicht
Heimmannschaft / Auswärtsmannschaft /
Torwart / SchiedsrichterTest
(Daten, ?)
• Im Rahmen dieser Vorlesung behandeln wir nur binäre Klassifikation, Label = 0 / 1
Was ist ein Klassifikator?
• Beim Training werden an Hand von bekannten Beispielen die Parameter des Klassifikators gewählt– Der Klassifikator kann selbst mit optimalen Parametern noch
Fehler auf der Testmenge machen • Beispiele sind falsch gelabelt• Modell der Klassifkators reicht nicht aus für die
Trainingsmenge• Die Merkmale erlauben keine genaue Trennung
– Anteil der falsch klassifizierten Beispiele heißt Trainingsfehler• Beim Test wird an Hand von bekannten Beispielen die Performance
des Klassifkators ermittelt• Anteil der falsch klassifizierten Beispiele heißt Testfehler
Feature-Räume
• Zu klassifizierende Beispiele werden durch Charakteristika (Features) beschrieben
• Diese lassen sich durch Punkte in einem Vektorraum abstrahieren• Wir betrachten bis auf
Weiteres nur binäre Klassifikation (genau zwei Klassen)
Ein erster Klassifikator: K-Nearest-Neighbour
• Idee: – Merke Dir alle Beispiele aus dem Training– Gib beim Test die Klasse des Trainingsbeispiels zurück, das am
nächsten zum betrachteten liegt
Ein erster Klassifikator: K-Nearest-Neighbour
• Idee: – Merke Dir alle Beispiele aus dem Training– Gib beim Test die Klasse des Trainingsbeispiels zurück, das am
nächsten (im Feature-Raum) zum betrachteten liegt
Ein erster Klassifikator: K-Nearest-Neighbour
– Merke Dir alle Beispiele aus dem Training– Gib beim Test die Klasse DER MEHRHEIT DER K
TRAININGSBEISPIELE zurück, die am nächsten zum betrachteten liegen
Ein erster Klassifikator: K-Nearest-Neighbour
– Merke Dir alle Beispiele aus dem Training– Gib beim Test die Klasse DER MEHRHEIT DER K
TRAININGSBEISPIELE zurück, die am nächsten zum betrachteten liegen
Datentreue vs. Generalisierung
• Wie sollte man k wählen?• Je höher k ist, desto rauschunempfindlicher sollte die Klassifizierung
sein. => bessere Performance• Je höher k ist, desto größer ist der Bereich des Feature-Raums, aus
dem die Beispiele stammen. => schlechtere Performance• k zu klein => Overfitting
(Überanpassung)• k zu groß => Underfitting
(Unteranpassung)
KNN – Hallo, wach!
• Was sind Vor- und Nachteile des KNN-Klassifikators?– Einfach– Training ist schnell (bzw. nicht nötig)– Test ist langsam
• Bessere Datenstrukturen: Angepasste Suchbäume• Clustern der Trainingsmenge zu Prototypen
– In der Praxis sind die Ergebnisse brauchbar
Linear Discriminant Analysis (LDA)
• Idee:– Stelle Menge der Beispiele einer Klasse durch parametrisierte
Verteilung dar– Mehrdimensionale Normalverteilung ist parametrisiert durch
Mittelwert und Kovarianzmatrix
Linear Discriminant Analysis (LDA)
• Idee:– Stelle Menge der Beispiele einer Klasse durch parametrisierte
Verteilung dar– Mehrdimensionale Normalverteilung ist parametrisiert durch
Mittelwert und Kovarianzmatrix
Linear Discriminant Analysis (LDA)
• Mathematische Einfachheit durch Annahme gleicher Kovarianz• Es existiert dann eine Trennebene
Linear Discriminant Analysis (LDA)
• Mathematische Einfachheit durch Annahme gleicher Kovarianz• Es existiert dann eine Trennebene
Linear Discriminant Analysis (LDA)
• Gleichsetzen um Trennebene zu finden
• Gemeinsame Kovarianzmatrix– Mache Daten Mittelwertfrei
Linear Discriminant Analysis (LDA)
• Linearer Klassifizierer– Lesbar (hohe Werte in stehen für wichtige Features)– Einfach– Schnell
Einfaches Beispiel
Training
LDA – Hallo, wach!
• Was sind die Vor- und Nachteile des LDA?– Einfach– Training schnell– In der Praxis gute Ergebnisse
• Gute Generalisierung durch starke Modellannahmen• Abhängig von Wahl der Features (dazu später mehr)
– In manchen Fällen ungeeignet
LDA – Hallo, wach!
• Was sind Unterschiede zwischen LDA und KNN?
• LDA– Schnelles Training– Starke
Modellannahmen– Linearer Klassifikator
(schnell)– Teils gute
Generalisierung
• KNN– kein Training– Keine Modellannahmen– Gute Datentreue– Langsamer Test– Teils gute
Generalisierung
Machine Learning – Hallo, wach!
• Wie sieht ein linearer Klassifikator aus, wenn man nur ein Feature hat?
0 x
Linear Discriminant Analysis (LDA)
• Reicht ein linearer Klassifikator immer aus?
0 x 0 x
x2
Dimension des Feature-Raums
• Dimension => Komplexität des Klassifikators• Komplexität vs. Generalisierung• Trainings-Performance
vs. Test-Performance• Um in einem Feature-Raum
hoher Dimension zu lernen,benötigt man viele Trainings-Beispiele.
Fluch der Dimensionalität
• Hohe Dimensionalität => mehr Trainingsbeispiele nötig• Beispiel zweiwertiger Vektor• 2D:
• 3D:
• 4D:
(00)(10)(01)(11)
(000)(100)(010)(110)(001)(101)(011)(111)
Fluch der Dimensionalität
• 2D:
• 3D:
• 4D:
• Für jeden Punkt sollte ein Label bekannt sein (oder der Klassifikator muss (evtl. falsche) Annahmen) treffen
(00)(10)(01)(11)
(000)(100)(010)(110)(001)(101)(011)(111)
Zurück zur Bildverarbeitung
Klassifikator
• Übergabe von Bilddaten an den Klassifikator
Vorfahrt / Links abbiegen
Gesicht / Kein Gesicht
Heim / Auswärts
Feature Extractor
• Bilder sind komplexe, hochdimensionale Datenstrukturen• Feature Extractor
– Reduziert die Feature-Dimension– Implementiert Vorwissen
KlassifikatorVorfahrt / Links abbiegen
Gesicht / Kein Gesicht
Heim / Auswärts
Feature Extractor
Haar(-like) Feature
• Ähnlich zu den Haar-Wavelets (daher der Name)• Gesichtsdetektion (2001)• Heute in genereller Objektdetektion einsetzbar
Haar(-like) Features
• Definiert durch Position von – zwei oder mehr Rechtecken – einer Vorzeichenzuordnung dieser Rechtecke
• Berechnung: Summe der Helligkeitswerte unter der weißen Regionminus Summe der Helligkeitswerte unter der schwarzen Region
Haar(-like) Features
• Definiert durch Position von – zwei oder mehr Rechtecken – einer Vorzeichenzuordnung dieser Rechtecke
• Berechnung: Summe der Helligkeitswerte unter der weißen Regionminus Summe der Helligkeitswerte unter der schwarzen Region
• Haar-Features geben also an, ob bestimmteeinfache Kanten an bestimmten Stellenim Bild vorhanden sind
Haar(-like) Features
• Trick zur effizienten Berechnung: Integralbild• Integralbild enthält für jedes Pixel die Summe aller Helligkeitswerte,
die eine kleinere Zeile oder Spalte haben• Berechnung in O(1)
Haar(-like) Features
• Trick zur Berechnung
Haar(-like) Features
• Trick zur Berechnung
Haar(-like) Features
• Trick zur Berechnung
Haar(-like) Features
• Trick zur Berechnung
Haar(-like) Features
• Trick zur Berechnung
Haar(-like) Features
• Umformung der Rechtecksummen
Haar(-like) Features - Hallo, wach!
• Unter welchen Umständen ist der Einsatz eines Integralbildes sinnvoll?
Haar(-like) Features - Hallo, wach!
• Unter welchen Umständen ist der Einsatz eines Integralbildes sinnvoll?– Wenn man viele Haar-Features berechnen muss– Wenn die Fläche der zu berechnenden Haar-Features größer
als die Fläche des Bildes ist
Haar(-like) Feature
• Jedes Haar-Feature liefert einen skalaren Wert• Diese können zum Feature-Vektor konkateniert werden
Haar(-like) Feature
• Woher weiß man, welche Haar-Features man nehmen muss, um z.B. ein Gesicht zu erkennen?
• Dieses Problem nennt sich Feature-Selection.
Feature Selection
• Problem: Welche Features (z.B. Haar-Features) sind wichtig für mein Klassifikationsproblem?
• Zwei Features können abhängig sein, d.h., wenn man das eine Feature kennt, hat das andere weniger Information für die Klassifikation– Beispiel: Klassifikation von Männern und Frauen– Größe und Gewicht korrelieren stark, daher braucht man von
diesen Merkmalen nur eines zu nehmen• Zwei Features können einzeln wenig Information enthalten,
zusammen aber viel– Hüft- und Taillenumfang können allein nicht stark zur
Klassifikation von Männern und Frauen beitragen, erst ihr Verhältnis liefert wichtige Information
Feature Selection
• Problem: Welche Features (z.B. Haar-Features) sind wichtig für mein Klassifikationsproblem?
• Zwei Features können abhängig sein, d.h., wenn man das eine Feature kennt, hat das andere weniger Information für die Klassifikation
• Zwei Features können einzeln wenig Information enthalten, zusammen aber viel.
• Theoretisch müssen alle Kombinationen von Features durchprobiert werden
• Aufwand: Um k Features aus n auszuwählen, müsste man theoretisch auf Feature-Mengen trainieren und testen
Feature Selection
• Problem: Welche Features (z.B. Haar-Features) sind wichtig für mein Klassifikationsproblem?
• Ansätze zur Lösung dieses Problems werden später eingeführt
Haar(-like) Feature
• Vorteile:– Schnell (sehr schnell)– Skalierbarkeit
(für größere Bilder kann man die Feature entsprechend skalieren, ohne zusätzlichen Rechenaufwand)
• Nachteile:– nicht so aussagekräftig
Histogram of Oriented Gradients (HOG)
• Dalal & Triggs 2005• Zuerst bei Fußgängererkennung verwendet• Lokale Gradientenverteilung
HOG - Methodik
• Unterteile Bildausschnitt in Zellen (Cells)
HOG - Methodik
• Berechne Gradientenbilder horizontal und vertikal
HOG - Methodik
• Unterteile Bildausschnitt in ZellenBerechne Orientierungshistogramme
HOG - Methodik
• Unterteile Bildausschnitt in ZellenBerechne Orientierungshistogramme
• Orientierung des Gradientenpixels bestimmt den Balken (das Bin)Betrag des Gradientenpixelsbestimmt das Gewicht
HOG - Methodik
• Unterteile Bildausschnitt in Zellen• Fasse mehrere benachbarte Zellen
in Blöcke zusammen• Idee: Setze lokale Gradientenverteilung in
Relation zu einer größeren Umgebung
HOG - Methodik
• Unterteile Bildausschnitt in Zellen• Fasse mehrere Zellen in Blöcke zusammen• Eine Zelle wird i.d.R. von mehreren
Blöcken überlappt
HOG - Methodik
• Unterteile Bildausschnitt in Zellen• Fasse mehrere Zellen in Blöcke zusammen• Eine Zelle wird i.d.R. von mehreren
Blöcken überlappt
HOG - Methodik
• Unterteile Bildausschnitt in Zellen• Fasse mehrere Zellen in Blöcke zusammen• Eine Zelle wird i.d.R. von mehreren
Blöcken überlappt
HOG - Methodik
• Unterteile Bildausschnitt in Zellen• Fasse mehrere Zellen in Blöcke zusammen• Eine Zelle wird i.d.R. von mehreren
Blöcken überlappt• Normiere die Histogramme mit der Summe
der Gewichte aller Gradienten im Block
HOG - Methodik
HOG - Methodik
HOG - Hallo, wach!
• Wie viele Einträge hat ein Feature-Vektor eines Bildausschnitts der Größe 35 x 65, auf dem HOG-Features mit 9 Bins pro Histogramm, 8 x 8 Pixel Zellgröße und 2 x 2 Blocks gerechnet werden?
HOG - Hallo, wach!
• Wie viele Einträge hat ein Feature-Vektor eines Bildausschnitts der Größe 35 x 65, auf dem HOG-Features mit 9 Bins pro Histogramm, 8 x 8 Pixel Zellgröße und 2 x 2 Blocks gerechnet werden?
• (gehen Sie davon aus, dass die Zellen am Rand des Bildes, die nicht von 4 Blocks überdeckt werden können für die Berechnung ignoriert werden)
Hallo, wach!
• Wie viele Einträge hat ein Feature-Vektor eines Bildausschnitts der Größe 35 x 65, auf dem HOG-Features mit 9 Bins pro Histogramm, 8 x 8 Pixel Zellgröße und 2 x 2 Blocks gerechnet werden?
• (gehen Sie davon aus, dass die Zellen am Rand des Bildes, die nicht von 4 Blocks überdeckt werden können für die Berechnung ignoriert werden)
HOG - German Traffic Sign Recognition Benchmark
• 50,000 Bildausschnitte• 43 Klassen• IJCNN 2011• 0-1-loss
HOG - German Traffic Sign Detection Benchmark
• 600 Einzelbilder• IJCNN 2013• Area-Under-Curve
HOG - German Traffic Sign Detection Benchmark
• 600 Einzelbilder• IJCNN 2013• Area-Under-Curve
HOG - German Traffic Sign Detection Benchmark
• 600 Einzelbilder• IJCNN 2013• Area-Under-Curve
HOG - Interpolation
• Trilineare Interpolation: das Gewicht eines Gradientenpixels wird auf die angrenzenden Zellen und Bins verteilt
HOG - Interpolation
• Trilineare Interpolation: das Gewicht eines Gradientenpixels wird auf die angrenzenden Zellen und Bins verteilt
A1 A2
A3 A4
• Jede Zelle erhält für sein Histogramm den Betrag des Gradientenpixels gewichtet mit der Fläche des ihm gegenüber liegenden Rechtecks
HOG - Interpolation
• Trilineare Interpolation: das Gewicht eines Gradientenpixels wird auf die angrenzenden Zellen und Bins verteilt
A1 A2
A3 A4
• Jede Zelle erhält für sein Histogramm den Betrag des Gradientenpixels gewichtet mit der Fläche des ihm gegenüber liegenden Rechtecks (z.B. oben links)
HOG - Interpolation
• Trilineare Interpolation: das Gewicht eines Gradientenpixels wird auf die angrenzenden Zellen und Bins verteilt:
w2w1
HOG - Interpolation
• Trilineare Interpolation: das Gewicht eines Gradientenpixels wird auf die angrenzenden Zellen und Bins verteilt
• Trilineare Interpolation (= bilineare Interpolation zwischen angrenzenden Zellen + lineare Interpolation zwischen angrenzenden Bins) erhöht die Performance der HOG-Features
• In laufzeitkritischen Anwendungen kann sie vernachlässigt werden
w2w1
HOG – Farbe
• HOG-Features können für jeden Farbkanal (R, G ,B) einzeln berechnet werden (dies verdreifacht die Dimension des Feature-Vektors)
R G B
HOG – Pro und Contra
• Was sind Vor- und Nachteile der HOG-Features?– PRO: gute Ergebnisse– PRO: relativ einfaches Verfahren– CON: langsam (verglichen z.B. mit Haar-Features)– CON: viele Parameter (Binzahl, Zellgröße, Blockgröße)– CON: Ergebnis hängt stark von der Wahl der Parameter ab
Rückblick
• Handwerkzeug um Bildausschnitte binär (!) zu klassifizieren– Haar(-like)-Features, HOG-Features– K-Nearest-Neughbour, LDA
Klassifikator
Vorfahrt / Gefahr Baustelle
Gesicht / kein Gesicht
Heim / Auswärts
Feature Extractor
Detektion: Sliding-Window
• Klassifikation: Ordne Bildausschnitte ein• Detektion: Finde Objekte von Interesse in größeren Bildern
– (z.B.) suche Stoppschilder in Kamerabildern
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Sliding-Window
• Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem zu findenden Objekt und Gegenbeispielen
• Wende den Klassifikator auf „alle möglichen“ Bildausschnitte des Kamerabildes an
• Dies umfasst alle Positionen, Größen (und ev. Rotationen)
Detektion
• Welche Fehler kann ein Detektor machen?– Er findet ein Objekt, wo keines ist. (Falsch positiv, FP)– Er findet kein Objekt, wo eines ist. (Falsch negativ, FN)
• Bewertung über zwei Kenngrößen (TP = richtig erkannte Objekte)
• Verschiedene Einstellungen (Empfindlichkeit) des Detektors können verschiedene Precision-Recall-Wertepaare ergeben
Detektion
• Verschiedene Einstellungen (Empfindlichkeit) des Detektors können verschiedene Precision-Recall-Wertepaare ergeben
AdaBoost
• Verwende viele einfache („schwache“) Klassifikatoren, um einen sehr guten Klassifikator zu konstruieren
• AdaBoost kann auch für Feature-Selection verwendet werden• Einfachster denkbarer Klassifikator:
AdaBoost
• Verwende viele einfache („schwache“) Klassifikatoren, um einen sehr guten Klassifikator zu konstruieren
• AdaBoost kann auch für Feature-Selection verwendet werden• Einfachster denkbarer Klassifikator:
– Linearer Klassifikator im 1D-Featureraum (Schwellwert auf einem Skalar)
AdaBoost
• Idee 1: Baue den starken Klassifikator schrittweise auf, indem man den schwachen Klassifikator dazunimmt, der im aktuellen Schritt am „wertvollsten“ ist.
• Idee 2: Gebe jedem Trainingsbeispiel ein Wichtigkeit. Falls das Beispiel vom aktuellen Klassifikator richtig
klassifiziert wird, senke sein Gewicht.Falls das Beispiel vom aktuellen Klassifikator falsch
klassifiziert wird, erhöhe sein Gewicht.D.h. schwache Klassifikatoren, die aktuell falsch
klassifizierte Beispiele richtig klassifizieren, werden wertvoller.• Idee 3: Bilde (irgendwie) eine Linearkombination der schwachen
Klassifikatoren, um den starken Klassifikator zu konstruieren.
• Gegeben: Trainingsdaten mit Gewichtenund Schwache Klassifikatoren
• Initialisiere: die m positiven Trainingsbeispieledie l negativen Trainingsbeispiele
• Wiederhole: 1, ..., T– Normalisiere Gewichte– Trainiere alle Klassifikatoren, so dass
der gewichtete Trainingsfehler minimiert wird– Merke als schwachen Klassifikator mit minimalem
Trainingsfehler
AdaBoost – Pseudocode
• Gegeben: Trainingsdaten mit Gewichtenund Schwache Klassifikatoren
• Wiederhole: t = 1, ..., T– Normalisiere Gewichte– Trainiere alle Klassifikatoren, so dass
der gewichtete Trainingsfehler minimiert wird– Merke als schwachen Klassifikator mit minimalem
Trainingsfehler– Aktualisiere Gewichte für richtig klassifizierte Beispiele– Merke
• Starker Klassifikator:
AdaBoost – Pseudocode
AdaBoost - Beispiel
• Gegeben sei folgendes Klassifikationsbeispiel• Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature
AdaBoost - Beispiel
• Gegeben sei folgendes Klassifikationsbeispiel• Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature
AdaBoost - Beispiel
• Gegeben sei folgendes Klassifikationsbeispiel• Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature
Feature 1 Feature 2 Feature 3
AdaBoost - Beispiel
• Gegeben sei folgendes Klassifikationsbeispiel• Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature
Feature 1
Fehler: 0,0515Feature 2
Fehler: 0,039Feature 3
Fehler: 0,09
AdaBoost - Beispiel
• Gegeben sei folgendes Klassifikationsbeispiel• Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature
Feature 1
Fehler: 0,0515Feature 2
Fehler: 0,039Feature 3
Fehler: 0,09
1,231 1,5219 0,9658
• Gegeben sei folgendes Klassifikationsbeispiel• Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature• Fehler: • Neue Trainings-Gewichte:
• Normieren.• Klassifikator-Gewicht:
• Aktueller starker Klassifikator:
AdaBoost - Beispiel
Feature 2
Fehler: 0,039
1,5219
AdaBoost – Beispiel
• Aktueller starker Klassifikator:
AdaBoost - Beispiel
• Verbleiben zwei weitere schwache Klassifikatoren
Feature 1 Feature 3
AdaBoost - Beispiel
• Verbleiben zwei weitere schwache Klassifikatoren• Neue Gewichte!
Feature 1 Feature 3
AdaBoost - Beispiel
• Verbleiben zwei weitere schwache Klassifikatoren• Neue Gewichte!
Feature 1
Fehler: 0,0848Feature 3
Fehler: 0,1523
1,7577 1,2499
AdaBoost - Beispiel
• Verbleiben zwei weitere schwache Klassifikatoren• Neue Gewichte!
Feature 1
Fehler: 0,0848Feature 3
Fehler: 0,1523
1,7577 1,2499
• Gegeben sei folgendes Klassifikationsbeispiel• Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature• Fehler: • Neue Trainings-Gewichte:
• Normieren.• Klassifikator-Gewicht:
• Aktueller starker Klassifikator:
AdaBoost - Beispiel
Feature 1
Fehler: 0,0848
1,7577
AdaBoost – Beispiel
• Aktueller starker Klassifikator:
AdaBoost – Beispiel
• Aktueller starker Klassifikator:
• Warum sind die Ergebnisse gleich?
Vorheriger Klassifikator Aktueller Klassifikator
AdaBoost - Beispiel
• Verbleibt ein weiterer schwacher Klassifikator• Neue Gewichte!
Feature 3
Fehler: 0,0818
1.2477
AdaBoost – Beispiel
• Aktueller starker Klassifikator:
Vorheriger Klassifikator (Fehler: 7,8 %)
Aktueller Klassifikator(Fehler: 4,6 %)