Multimodale Mensch-Maschine-Kommunikation
Version vom 21. Februar 2009, 17:37 Uhr von DarkGhost (Diskussion | Beiträge) (→Vision-basiertes Personentracking)
<hiddenlogin>login: nistudws0809 pass: WS0809N!</hiddenlogin>
Klausurergebnisse für die Klausur vom 08.02.2008
MMK- ein Mustererkennungsproblem
<graphviz> digraph G {
subgraph cluster0 {
Vorverarbeitung -> Merkmalsextraktion -> "Netzwerkein- und \n ausgabekodierung" label = "Problemabhängige und netzwerkbezogene Datenaufbareitung"
}
Sensorik -> Vorverarbeitung "Netzwerkein- und \n ausgabekodierung" -> Klassifikation "Netzwerkein- und \n ausgabekodierung" -> Funktionsappriximation
} </graphviz>
Sensorik
- Transformation der physikalischen Welt (Kamera, Laserscanner, Mikrofone)
- Erzeugen einen Satz von Messdaten (Mustervektoren)
- ggf. auch Trainingsvektoren
Problemspezifische Vorverarbeitung
- Schwellwertoperationen
- Filteroperationen
- Interpolation / Extrapolation
- Fehlende Abstastwerte
- Randbehandlung
- Auflösungspyramiden
- Dekorrelation der vorhandenen Datenvektoren
- Dimensionsreduktion (PCA,ICA)
- Normierung
- Größe Lage, Lautstärke, dauer, Beleuchtung,....
Merkmalsexktraktion
- Gewinnung charakteristischer Merkmale aus den Datenvektoren
- Abstraktion der Welt zu Merkmalsvektoren
- Einsatz von Techniken zur Merkmalstransofrmation
- Einführung und Verwendung dekorrelierter orthonormaler Basissysteme im Merkmalsraum
- Bestimmung der orthogonalen Raumrichtungen entlang der größten Varianz
- Merkmalsselektion (Signifikanzanalyse)
- Suche nach der minimalen Menge von Datenkanälen bei bestmöglichster Beschreibung
Netzwerkein- und ausgabekodierung
- zur Vereinfachung des Lernproblems wird die Dimension der merkmalsraumes erhöht damit z.B. eine lineare Seperation der Klassen möglich wird
- vereinfacht die Netzwerke und beschläunigt das Lernen
Klassifikation / Kategorisierung
- Wenn Klassen bekannt sind
- Zusammenfassen der Merkmalsvektoren zu Klassen, wenn das möglich ist
- dazu müssen die Klassen separierbar sein
- Nicht alle Netzwerke können alle "Klassenformen" separieren
- Zusammenfassen der Merkmalsvektoren zu Klassen, wenn das möglich ist
- Wenn keine Klassen bekannt sind
- Quantisieren des Eingaberaums (Cluster-Bildung) → Voronoi Parzellierung (SOFM, NG, GNG, ART, LVQ)
- Attributierung der gefundenen Cluster anhand repräsentativer Beispiele
Funktionsapproximation
- Statt Klassifikation wird eine Funktion geschätzt
- n-dimensionale Funktionen werden häufig mit neuronalen Netzen approximiert
- Notwendig wenn dinge "geschätzt" werden sollen (Zeige Posen)
Leistungsbewertung von Klassifikatoren
- Summe der quadratischen Fehler
- Mittlerer quadratischer Fehler
Crossvalidation Techniken
- Standardverfahren:
- teilen des Datensatzes in:
- 50% Lernstichprobe
- 25% Testdaten (zum Testen nach dem Lernen)
- 25% Validierungsdatensatz (zum Verhindern von Überspezialisierung)
- teilen des Datensatzes in:
- N-fold-Crossvalidation:
- Teilen des Datensatzes in N Mengen
- Training mit N-1 Mengen 1 Menge zum Test
- alle möglichen Permutationen durchgehen
- Fehler wird über alle N-Datensätze ermittelt
- Leave-one-out:
- N-fold-Crossvalidation bei dem N = Anzahl der Samples
- Virtual Leave-one-out:
- N-fold-Crossvalidation bei dem N = Anzahl der Samples und mit allen Datensätzen trainiert wird
Bewertung von binären Klassifikatoren
- Konfusionsmatrix
| Klasse 1 Klasse 2 Sum --------+--------------------+---------------------+---- Klasse 1|True Positives (tp) | False Negatives (fn)| P +--------------------+--*------------------+---- Klasse2 |False Positives (fp)| True Negatives (tn) | N
- False Positive Rate
- True Positive Rate
- Precision
- Balanced Error Rate
ROC -Kurve
- FPR an der Abzisse
- TPR an der Ordinate
TPR ↑ 1-. . . . . | /. | / . | / . | / . |/ . +---------|-→ FPR 0 1
- Diagonale ist raten
- je "nordwestlicher" ein Punkt liegt desto besser ist der Klassifikator
Vision-basierte Personendetektion
- Um Personen anhand von Gesichtern zu finden müssen Gesichter in Bildern robust gefunden werden
- Herrausforderungen:
- Variable Positionen der Gesichter (schauen nicht immer direkt in die Kamera)
- Vorhandensein von zusätzlichen Komponenten (Brille, Bart, Mikrofone, Hüte)
- Sich verändernde Gesichtsausdrücke
- Verdeckungen (Haare, Hände, ...)
- Kameraorientierung (Rotationen um die optische Achse)
- Bildverhälnisse (Rauschen, Helligkeit,...)
- Typische Verarbeitungsschritte
- Video Datenstrom
- Informations Extraktion (Hautfarbe, Eigengesichter, Kanteninformationen)
- Klassifikation (Mustererkennung, probabilistische Modelle, Korrelation)
- Erkennung
Wissensbasierter Ansatz
- top-down Ansatz
- Wir wissen wie das Gesicht eines Menschen aussieht
- Aufstellen von regeln um dieses Wissen zu repräsentieren
- Beschreiben von Verhältnissen zwischen Postionen und Entfernungen
- Es ist sinnvoll Regeln auf verschiedenen Auflösungen arbeiten zu lassen
Invariante Features =
- bottom-up Ansatz
- Suche nache Invarianten Features eines Gesichtes
- Anhand der Features wird ein statistisches Modell des Gesichts erstellt
- Verwendete Features
- Kanten
- Finden von Charakteristischen Kanten eines Gesichtes (Augenbraun, Auge, Nase, Mund,...)
- Die Kanten müssen immer in Gruppen auftreten
- Zwei Ebenen der Verarbeitung (1. Interrestoperator 2. Eigentlicher Gesichtserkenner)
- Gesichts-Textur
- Gesichter haben eine charakterischtische Textur im vergleich zu anderen Objekten
- Hautfarbe
- Verwenden eines Farbraums in dem die Hautfarbe gut separiert werden kann
- Erstellung eines Hautfarbmodells für verschiedene Beleuchtungen
- Kombinationen von verschiedenen Features
- Kombination verschiedener Features um Gesichter robuster erkennen zu können
- Kanten
Template Matching
- ein Experte gib ein Standard Gesicht vor
- mit Hilfe der Korrelation zwischen Template und Bild kann dann entschieden werden ob es sich um ein Gesicht handelt oder nicht
- um die Position eines Gesichtes zu finden muss das Template über das ganze Bild geschoben werden
- einfache Templates haben Probleme mit Gesichtsausdrücken
Fixed templates
- werden anhand von Kantenmodellen erstellt
- Können auch aus untertemplates bestehen (Nur Auge, Mund, Nase ,...)
- diese Untertemplates müssen denn Gruppiert werden zu einem globalen Template
- Möglichkeit bestimmt Positionsrelationen anzugeben
Verformbare templates
- Verwenden von Template die Parametriert werden können
- Energiefunktion welche auf bestimmte Objekte im eingangsbild reagiert (Kanten, Peaks, ....)
- Minimieren der Energiefunktion und so anpassen des Templates
Appearancebased
- Templates werden nicht mehr von einem Experten vorgegeben
- Templates müssen mit Hilfe von statistischen Methoden des Maschinen Lernens erst aus Beispielen, ermittelt werden
- Es gibt zwei Ansätze die Unterscheidung zwischen Gesichter und nicht Gesichter zu lernen
- Discriminative Ansatz
- Verwendet eine Funktion die die beiden Klassen separiert
- Nutzt meistens Neuronale Netzwerke, Fuzzy-Regeln
- Generativer Ansatz
- Versucht die beiden Klassen mit Hilfe von Verteilungsmodellen zu trennen
- Verwendung des Bayestheorems
- Discriminative Ansatz
PCA/HKA
- Ziel ist die Dimensionsreduktion des Eingaberaums
- Finden eines orthonormalen Basissystems welches die gegebene Verteilung besser beschreibt
- Bestimmen der orthonormalen Raumrichtungen entlang derer die Varianz der Verteilung am größten ist
- Können aus den Eigenwerten der Kovarianzmatrix der Verteilung berechnet werden
- Nicht aussagekräftige Achsen können weggelassen werden
- Bestimmung der Eigenvektoren mit Hilfe von:
- Numerischen Methoden
- neuronalen Verfahren
- Geht nur für lineare Unterräume
- rein Datengetrieben (Klassenlabel werden nicht berücksichtigt) → kann das Problem verschlimmern als verbessern
Linear subspace methods
- Kodierung der Gesichter mit Hilfe eines Satzes von Grundgesichtern
- Suche nach einem optimalen Raum in dem die Gesichter beschrieben werden können → PCA/HKA
- Die Eigenvektoren des erstellten Unterraums werden auch als Eigengesichter bezeichnet
- Ein Distanzmaß kann dann in diesem Raum genutzt werden um Gesichter von Nichtgesichtern zu trennen
Neuronale Netzwerke
- Verwendung verschiedener neuronaler Netzwerkarchitekturen (MLP, RBF, Cascade Correlation,...)
- Lernziel ist ein minimaler Klassifikationsfehler
- Große Anzahl an möglichen Eingabe features
Rowlesy's Ansatz
- 20x20 Eingabe Pixel
- Aufteilung des Eingabebildes in verschiedene Bildregionen um Augen, Mund, Nase,..., besser Erfassen zu können
- Jede der Bildregion projeziert auf ein hidden neuron
- Ein Ausgabeneuron
- Auflösungspyramiede um verschiedene Größen von Gesichtern zu erkennen
- Vorverarbeitung: Beleuchtungsausgleich, Histogrammausgleich
Netzwerktraining
- exaktes Ausschneiden von Gesichtern aus einer Bilddatenbank und Labeln in Gesicht/nicht Gesicht
- Smaples durchlaufen die gleichen Vorverarbeitungsschritte wie später die richtigen Bilddaten
- Zufälliges Samples aus garantierten Nichtgesichtern
- Künstlich erstellte Musster die auch keine Gesichter sind
- Test mit nichtgesichtern .... bei fehldetektion wird das Nichtgesicht mit in die Trainingsdatenbank aufgenommen (Bootstrapping)
- Auswahl einer gleichen Anzahl von Gesichtern/nicht Gesichtern vor dem Training notwendig da die Datenbank mit der zeit unbalanciert wird
Vision-basiertes Personentracking
- zwei Typische Ansätze
- Analytisch → Optischer Fluss
- Probabilistisch
- nur eine Hypothese → Kalman-Filter(KogRob)
- mehrere Hypothesen → Condensation (Patrikelfilter(KogRob))
Bewegungsanalyse mit Hilfe des Optischen Flusses
- Siehe Optische Fluss (RoboVis)
- Segmentierung des Verschiebungsvektorfeldes in ähnliche Regionen
- Gleiche Gebiete werden mit dem selben Label versehen
- Extraktion der Parameter für die Region
Probabilistisches object tracking
- Ziel ist es die Bewegung des Objekte vorherzusehen um es so besser verfolgen zu können
- Verwendung einer Wahrscheinlichkeitsverteilung um die Unsicherheit der vorhersage und der Position modellieren zu können
- Gleiches Problem wie bei der Selbstlokalisation nur das jetzt ein Objekt in einem Bild Lokalisiert werden muss
- Tracken nur einer Hypothese kann mit Kalmanfiltern erfolgen
- Condensation → Spielart des Patrikelfilter
- Das Bewegungsmodell des Partikelfilter modelliert die möglichen Bewegungn des Objektes im Kamerabild
- Das Sensormodell modelliert die Genauigkeit der Erkennung des Objektes im Bild
- sonst Funktionsweise identisch
Posen/Gestenerkennung
Gesichtsausdruckserkennung
Personenidentifikation
Konsultation
- 3a-29
- decision surface
- Entscheidungsoberfläche auf der dann ein Minimumgesucht werden muss
- Seine Aussage: "Nicht so dolle --- fliegt raus"
- decision surface
- Boostrapping
- Gesichter und nicht Gesichter im initial Trainingssatz
- Fehlerhafte "nicht Gesichter" werden dann hinzugefügt falls sie fehlerhaft erkannt wurden
- 3a - 68
- Kopien der Hiddenschicht .... mehr Hiddenneuronen
- Hiddenmarkovmodelle
- MoG
- Flexieblere Variante gegenüber von Vorenoi Regionen
- Gaußverteilung muss aber auch erst gelernt werden
- Vorenoi Regionen
- Zu einem Hiddenmarkovneuron können mehrere Regionen gehören
- MoG
- 6a-26
- S_I und S_M müssen beide größer Minimum (da Winkel instabil wird für kleine Intensitäten)sein da S_I und S_M immer größer 0 sind
- 6b-3
- nicht Signifikant und kommt nicht dran
- 6b-16
- Prediktorbild zur Beschleunigung des Gradientenabstiegs