Vorlesung Digitale Bildverarbeitung Sommersemester 2015

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Präsentiert von Torben Pastuch
Perceptrons and the perceptron learning rule
Wilhelm-Raabe-Schule Fachbereich: Mathematik Thema: Lineare Funktionen
TECHNISCHE UNIVERSITÄT DARMSTADT Naive Bayes for Ranking
Maschinelles Lernen   Präsenzübung.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2012.
Kollisionen erkennen Kollisions- und Schnittpunkttests auf Dreieckbasis Kollisions- und Schnittpunkttests auf Viereckbasis Einsatz von achsenausgerichteten.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Übung 6.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des Busy Beaver-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tabelle.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Komplexität
Was sind Histogramme? (1)
Quaternionen Eugenia Schwamberger.
Tutorium
Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach.
Seminar: Informationstechnik in der Medizin Universität Dortmund Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Kommunikationstechnik.
Seminar: Informationstechnik in der Medizin Universität Dortmund Skin Detection Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Kommunikationstechnik.
Wiederholung und Beispiele
Bayes‘sche Verfahren (Mitchell Kap. 6), Teil 1
Machine Learning KNN und andere (Kap. 8).
Maschinelles Lernen und automatische Textklassifikation
Machine Learning Decision Trees (2).
Maschinelles Lernen und automatische Textklassifikation
Maschinelles Lernen Bayessche Verfahren (Mitchell Kap. 6), Teil 1.
Christian Schulz, Marc Thielbeer, Sebastian Boldt
Effiziente Algorithmen
Ich möchte gerne mehrere Bilder auf ein Folie
Auf Wunsch einer einzelnen Dame
in der medizinischen Bildverarbeitung
Moin. Ich benutze PPT 2002 und möchte drei Bilder nacheinander 1
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 5 SS 2001 Segmentschnitt II (n Segmente)
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Neuronale Netze.
Mehrkriterielle Optimierung mit Metaheuristiken
100 kg Wie wird’s gemacht?! Klick.
Klassifikation und Regression mittels neuronaler Netze
Das Traveling Salesman Problem (TSP)
Statistik – Regression - Korrelation
Vom graphischen Differenzieren
Gesichtsdetektion in digitalen Einzelbilder
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
SS 2009Maschinelles Lernen und Neural Computation 133 Kapitel 7: Ensemble Methoden.
Der A*-Algorithmus.
Projekt A4: „Alignment of Situation Models“ Dr. Gerd Rickheit Dr. Sven Wachsmuth Dr. Constanze Vorwerg Agnes Swadzba SFB-Kolloqium,
Gliederung der Vorlesung
Vorlesung Digitale Bildverarbeitung Sommersemester 2015
Binärbäume.
Geoinformationssysteme
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
EIN NEUES ENSEMBLE- KLASSIFIKATIONSVERFAHREN Tim Schneider Rotation Forest.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
CL Tree MW 31.1 Business Intelligence Wintersemester 2015 / 2016 Stanislav Prokupetz.
PCA Principal Component Analysis. Gliederung PCA – Warum eigentlich? PCA – Was ist zu tun? Was passiert eigentlich? Anwendungen Zusammenfassung.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
TU Darmstadt FB 20 Informatik Bayes Decision Theory von Martin Tschirsich, Shuo Yang & Zijad Maxuti Hausübung 5: Erläuterung Anwendung.
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
Independent Component Analysis: Analyse natürlicher Bilder Friedrich Rau.
Emanuel Mistretta Lukas Schönbächler
Generierung von Flächenrepräsentationen aus Punktdaten
 Präsentation transkript:

Vorlesung Digitale Bildverarbeitung Sommersemester 2015 Sebastian Houben Folien 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 dx z rmax r dy Tamaki, Yamamur: „Correcting Distortion of Image by Image Registration“ (2002)

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

Anwendung 2: Kalibrierung einer Kamera Als Ähnlichkeitsmaß wird die Grauwertdifferenz verwendet, wobei ein Beleuchtungsunterschied berücksichtigt wird Sechs Parameter beschreiben die Beleuchtungskorrektur

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 Frage ans Plenum: Warum nimmt man nicht das Bild des Gitters? (Mitte unten)

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 Wert Klasse Klasse Bild zu Regression / Klassifikation Merkmal Merkmal Merkmal

Was ist ein Klassifikator? Im Rahmen dieser Vorlesung behandeln wir nur binäre Klassifikation, Label = 0 / 1 Training (Daten, Label) Vorfahrt achten / Fahrtrichtichtung links / Gefahr Baustelle Klassifikator Gesicht / kein Gesicht Unterscheidung von n Klassen, Label = 1, ..., k Heimmannschaft / Auswärtsmannschaft / Torwart / Schiedsrichter Test (Daten, ?)

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 Unterscheidung von n Klassen, Label = 1, ..., k

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 Rechts die nachbarn hervorheben

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 Rechts die nachbarn hervorheben

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) Overfitting, trainings- und testmenge, neue Folie: Trainings- und Testfehler

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 Später Hallo-Wach-Folie: Vergleich LDA, KNN

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 Hatten wir vorher schon so ähnlich

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? KNN LDA kein Training Keine Modellannahmen Gute Datentreue Langsamer Test Teils gute Generalisierung LDA Schnelles Training Starke Modellannahmen Linearer Klassifikator (schnell) Teils gute Generalisierung

Machine Learning – Hallo, wach! Wie sieht ein linearer Klassifikator aus, wenn man nur ein Feature hat? x Formel für eindimensionale Schwelle angeben

Linear Discriminant Analysis (LDA) Reicht ein linearer Klassifikator immer aus? x2 x x

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. Neue Folie(n): je größer der Feature-Raum, desto größer muss die Trainingsmenge werden

Fluch der Dimensionalität Hohe Dimensionalität => mehr Trainingsbeispiele nötig Beispiel zweiwertiger Vektor 2D: 3D: 4D: 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 Neue Folie(n): je größer der Feature-Raum, desto größer muss die Trainingsmenge werden

Fluch der Dimensionalität Für jeden Punkt sollte ein Label bekannt sein (oder der Klassifikator muss (evtl. falsche) Annahmen) treffen 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 Neue Folie(n): je größer der Feature-Raum, desto größer muss die Trainingsmenge werden

Zurück zur Bildverarbeitung Übergabe von Bilddaten an den Klassifikator Vorfahrt / Links abbiegen Klassifikator Gesicht / Kein Gesicht Heim / Auswärts

Vorfahrt / Links abbiegen Feature Extractor Bilder sind komplexe, hochdimensionale Datenstrukturen Feature Extractor Reduziert die Feature-Dimension Implementiert Vorwissen Feature Extractor Vorfahrt / Links abbiegen Klassifikator Gesicht / Kein Gesicht Binäres (!) Klassifikationsproblem!!!! Heim / Auswärts

Haar(-like) Feature Ähnlich zu den Haar-Wavelets (daher der Name) Gesichtsdetektion (2001) Heute in genereller Objektdetektion einsetzbar Referenz zu Kantendetektion (ev. Auch später)

Haar(-like) Features Definiert durch Position von zwei oder mehr Rechtecken einer Vorzeichenzuordnung dieser Rechtecke Berechnung: Summe der Helligkeitswerte unter der weißen Region minus 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 Region minus Summe der Helligkeitswerte unter der schwarzen Region Haar-Features geben also an, ob bestimmte einfache Kanten an bestimmten Stellen im 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 Nur oberes weißes Rechteck

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 Statt Jungen ein Integralbild mit allen beteiligten Rechtecken

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 Größe und Gewicht, Taillen- und Hüftumfang zur Unterscheidung von Mann und Frau

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 N über k, durchprobieren heißt einen Klassifikator mit der Feature-Menge trainieren

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 N über k, durchprobieren heißt einen Klassifikator mit der Feature-Menge trainieren

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 Zellen Berechne Orientierungshistogramme

HOG - Methodik Unterteile Bildausschnitt in Zellen Berechne Orientierungshistogramme Orientierung des Gradientenpixels bestimmt den Balken (das Bin) Betrag des Gradientenpixels bestimmt 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 Cell = Zelle

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 Idee: Zelle in Relation zu verschiedenen Blöcken betrachten

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) Fehler in Rechung, korrigieren

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 Formel, Flächen statt Strecken einzeichnen

HOG - Interpolation Trilineare Interpolation: das Gewicht eines Gradientenpixels wird auf die angrenzenden Zellen und Bins verteilt Jede Zelle erhält für sein Histogramm den Betrag des Gradientenpixels gewichtet mit der Fläche des ihm gegenüber liegenden Rechtecks A1 A2 A3 A4 Formel, Flächen statt Strecken einzeichnen

HOG - Interpolation Trilineare Interpolation: das Gewicht eines Gradientenpixels wird auf die angrenzenden Zellen und Bins verteilt 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) A1 A2 A3 A4 Formel, Flächen statt Strecken einzeichnen

HOG - Interpolation Trilineare Interpolation: das Gewicht eines Gradientenpixels wird auf die angrenzenden Zellen und Bins verteilt: w1 w2 Kann weggelassen werden, bringt aber ganz gut was

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 Kann weggelassen werden, bringt aber ganz gut was w1 w2

HOG – Farbe HOG-Features können für jeden Farbkanal (R, G ,B) einzeln berechnet werden (dies verdreifacht die Dimension des Feature-Vektors) Bildunterschrift R, G, B 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

Vorfahrt / Gefahr Baustelle Rückblick Handwerkzeug um Bildausschnitte binär (!) zu klassifizieren Haar(-like)-Features, HOG-Features K-Nearest-Neughbour, LDA Feature Extractor Vorfahrt / Gefahr Baustelle Klassifikator Gesicht / kein Gesicht Heim / Auswärts

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) Beispiel mit einem Haar-Feature, Haar-Feature-Junge

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.

AdaBoost – Pseudocode Gegeben: Trainingsdaten mit Gewichten und Schwache Klassifikatoren Initialisiere: die m positiven Trainingsbeispiele die 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 Gewichten und 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 - 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,0515 Feature 2 Fehler: 0,039 Feature 3 Fehler: 0,09

AdaBoost - Beispiel Gegeben sei folgendes Klassifikationsbeispiel Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature 1,231 1,5219 0,9658 Feature 1 Fehler: 0,0515 Feature 2 Fehler: 0,039 Feature 3 Fehler: 0,09

AdaBoost - Beispiel Gegeben sei folgendes Klassifikationsbeispiel Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature Fehler: Neue Trainings-Gewichte: Normieren. Klassifikator-Gewicht: Aktueller starker Klassifikator: 1,5219 Feature 2 Fehler: 0,039

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! 1,7577 1,2499 Feature 1 Fehler: 0,0848 Feature 3 Fehler: 0,1523

AdaBoost - Beispiel Verbleiben zwei weitere schwache Klassifikatoren Neue Gewichte! 1,7577 1,2499 Feature 1 Fehler: 0,0848 Feature 3 Fehler: 0,1523

AdaBoost - Beispiel Gegeben sei folgendes Klassifikationsbeispiel Schwache Klassifikatoren sind 1D-Schwellwerte für jedes Feature Fehler: Neue Trainings-Gewichte: Normieren. Klassifikator-Gewicht: Aktueller starker Klassifikator: 1,7577 Beide male x im starken Klassifikator, ersetzen x_2 und x_1 Feature 1 Fehler: 0,0848

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! 1.2477 Feature 3 Fehler: 0,0818

AdaBoost – Beispiel Aktueller starker Klassifikator: Vorheriger Klassifikator (Fehler: 7,8 %) Aktueller Klassifikator (Fehler: 4,6 %) Globalen Fehler ausrechenen