Multimodale Mensch-Maschine-Kommunikation: Unterschied zwischen den Versionen

Aus II-Wiki
Wechseln zu: Navigation, Suche
(Bewertung von binären Klassifikatoren: BER korrigiert)
(Teilbereiche eingefügt)
Zeile 3: Zeile 3:
 
[http://www.tu-ilmenau.de/fakia/fileadmin/template/startIA/neuroinformatik/lehre/ws2007_2008/results/MMK-ws07-08.pdf Klausurergebnisse] für die Klausur vom 08.02.2008
 
[http://www.tu-ilmenau.de/fakia/fileadmin/template/startIA/neuroinformatik/lehre/ws2007_2008/results/MMK-ws07-08.pdf Klausurergebnisse] für die Klausur vom 08.02.2008
  
== MMK- ein Mustererkennungsproblem ==
+
= Teilbereiche der MMK =
 +
[[Datei:MMMK-Teilbereiche.jpg|500px]]
 +
 
 +
= MMK- ein Mustererkennungsproblem =
  
 
<graphviz>
 
<graphviz>
Zeile 20: Zeile 23:
 
</graphviz>
 
</graphviz>
  
=== Sensorik ===
+
== Sensorik ==
 
* Transformation der physikalischen Welt (Kamera, Laserscanner, Mikrofone)
 
* Transformation der physikalischen Welt (Kamera, Laserscanner, Mikrofone)
 
* Erzeugen einen Satz von Messdaten (Mustervektoren)
 
* Erzeugen einen Satz von Messdaten (Mustervektoren)
 
* ggf. auch Trainingsvektoren
 
* ggf. auch Trainingsvektoren
  
=== Problemspezifische Vorverarbeitung ===
+
== Problemspezifische Vorverarbeitung ==
 
* Schwellwertoperationen
 
* Schwellwertoperationen
 
* Filteroperationen
 
* Filteroperationen
Zeile 37: Zeile 40:
 
** Größe Lage, Lautstärke, dauer, Beleuchtung,....
 
** Größe Lage, Lautstärke, dauer, Beleuchtung,....
  
=== Merkmalsexktraktion ===
+
== Merkmalsexktraktion ==
 
* Gewinnung charakteristischer Merkmale aus den Datenvektoren
 
* Gewinnung charakteristischer Merkmale aus den Datenvektoren
 
** Abstraktion der Welt zu Merkmalsvektoren
 
** Abstraktion der Welt zu Merkmalsvektoren
Zeile 46: Zeile 49:
 
** Suche nach der minimalen Menge von Datenkanälen bei bestmöglichster Beschreibung
 
** Suche nach der minimalen Menge von Datenkanälen bei bestmöglichster Beschreibung
  
=== Netzwerkein- und ausgabekodierung ===
+
== 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
 
* 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
 
** vereinfacht die Netzwerke und beschläunigt das Lernen
  
=== Klassifikation / Kategorisierung ===
+
== Klassifikation / Kategorisierung ==
 
# Wenn Klassen bekannt sind
 
# Wenn Klassen bekannt sind
 
#* Zusammenfassen der Merkmalsvektoren zu Klassen, wenn das möglich ist
 
#* Zusammenfassen der Merkmalsvektoren zu Klassen, wenn das möglich ist
Zeile 59: Zeile 62:
 
#* Attributierung der gefundenen Cluster anhand repräsentativer Beispiele
 
#* Attributierung der gefundenen Cluster anhand repräsentativer Beispiele
  
=== Funktionsapproximation ===
+
== Funktionsapproximation ==
 
* Statt Klassifikation wird eine Funktion geschätzt
 
* Statt Klassifikation wird eine Funktion geschätzt
 
* n-dimensionale Funktionen werden häufig mit neuronalen Netzen approximiert
 
* n-dimensionale Funktionen werden häufig mit neuronalen Netzen approximiert
 
* Notwendig wenn dinge "geschätzt" werden sollen (Zeige Posen)
 
* Notwendig wenn dinge "geschätzt" werden sollen (Zeige Posen)
  
=== Leistungsbewertung von Klassifikatoren ===
+
==Leistungsbewertung von Klassifikatoren ==
 
* Summe der quadratischen Fehler
 
* Summe der quadratischen Fehler
 
* Mittlerer quadratischer Fehler
 
* Mittlerer quadratischer Fehler
  
==== Crossvalidation Techniken ====
+
=== Crossvalidation Techniken ===
 
* '''Standardverfahren:'''
 
* '''Standardverfahren:'''
 
** teilen des Datensatzes in:
 
** teilen des Datensatzes in:
Zeile 84: Zeile 87:
 
** N-fold-Crossvalidation bei dem N = Anzahl der Samples und mit allen Datensätzen trainiert wird
 
** N-fold-Crossvalidation bei dem N = Anzahl der Samples und mit allen Datensätzen trainiert wird
  
==== Bewertung von binären Klassifikatoren ====
+
=== Bewertung von binären Klassifikatoren ===
 
* Konfusionsmatrix
 
* Konfusionsmatrix
 
<pre>
 
<pre>
Zeile 98: Zeile 101:
 
* Balanced Error Rate <math> BER = \frac{1}{2} ( \frac{fn}{P} + \frac{fp}{N} ) </math>
 
* Balanced Error Rate <math> BER = \frac{1}{2} ( \frac{fn}{P} + \frac{fp}{N} ) </math>
  
==== ROC -Kurve ====
+
=== ROC -Kurve ===
 
* FPR an der Abzisse
 
* FPR an der Abzisse
 
* TPR an der Ordinate
 
* TPR an der Ordinate
Zeile 116: Zeile 119:
 
* je "nordwestlicher" ein Punkt liegt desto besser ist der Klassifikator [oben links - für die Informatikerinnen ;-)]
 
* je "nordwestlicher" ein Punkt liegt desto besser ist der Klassifikator [oben links - für die Informatikerinnen ;-)]
  
== Vision-basierte Personendetektion ==
+
= Vision-basierte Personendetektion =
 
* Um Personen anhand von Gesichtern zu finden müssen Gesichter in Bildern robust gefunden werden
 
* Um Personen anhand von Gesichtern zu finden müssen Gesichter in Bildern robust gefunden werden
 
* Herrausforderungen:
 
* Herrausforderungen:
Zeile 131: Zeile 134:
 
*# Erkennung
 
*# Erkennung
  
=== Wissensbasierter Ansatz ===
+
== Wissensbasierter Ansatz ==
 
* top-down Ansatz
 
* top-down Ansatz
 
* Wir wissen wie das Gesicht eines Menschen aussieht
 
* Wir wissen wie das Gesicht eines Menschen aussieht
Zeile 138: Zeile 141:
 
** Es ist sinnvoll Regeln auf verschiedenen Auflösungen arbeiten zu lassen
 
** Es ist sinnvoll Regeln auf verschiedenen Auflösungen arbeiten zu lassen
  
=== Invariante Features ===
+
== Invariante Features ==
 
* bottom-up Ansatz
 
* bottom-up Ansatz
 
* Suche nache Invarianten Features eines Gesichtes
 
* Suche nache Invarianten Features eines Gesichtes
Zeile 155: Zeile 158:
 
*** Kombination verschiedener Features um Gesichter robuster erkennen zu können
 
*** Kombination verschiedener Features um Gesichter robuster erkennen zu können
  
=== Template Matching ===
+
== Template Matching ==
 
* ein Experte gib ein Standard Gesicht vor
 
* 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
 
* mit Hilfe der Korrelation zwischen Template und Bild kann dann entschieden werden ob es sich um ein Gesicht handelt oder nicht
Zeile 161: Zeile 164:
 
* einfache Templates haben Probleme mit Gesichtsausdrücken
 
* einfache Templates haben Probleme mit Gesichtsausdrücken
  
==== Fixed templates ====
+
=== Fixed templates ===
 
* werden anhand von Kantenmodellen erstellt
 
* werden anhand von Kantenmodellen erstellt
 
* Können auch aus untertemplates bestehen (Nur Auge, Mund, Nase ,...)
 
* Können auch aus untertemplates bestehen (Nur Auge, Mund, Nase ,...)
Zeile 167: Zeile 170:
 
** Möglichkeit bestimmt Positionsrelationen anzugeben
 
** Möglichkeit bestimmt Positionsrelationen anzugeben
  
==== Verformbare templates ====
+
=== Verformbare templates ===
 
* Verwenden von Template die Parametriert werden können
 
* Verwenden von Template die Parametriert werden können
 
* Energiefunktion welche auf bestimmte Objekte im eingangsbild reagiert (Kanten, Peaks, ....)
 
* Energiefunktion welche auf bestimmte Objekte im eingangsbild reagiert (Kanten, Peaks, ....)
 
* Minimieren der Energiefunktion und so anpassen des Templates
 
* Minimieren der Energiefunktion und so anpassen des Templates
  
=== Appearancebased ===
+
== Appearancebased ==
 
* Templates werden nicht mehr von einem Experten vorgegeben
 
* Templates werden nicht mehr von einem Experten vorgegeben
 
* Templates müssen mit Hilfe von statistischen Methoden des Maschinen Lernens erst aus Beispielen, ermittelt werden
 
* Templates müssen mit Hilfe von statistischen Methoden des Maschinen Lernens erst aus Beispielen, ermittelt werden
Zeile 183: Zeile 186:
 
*** Verwendung des Bayestheorems
 
*** Verwendung des Bayestheorems
  
==== PCA/HKA ====
+
=== PCA/HKA ===
 
* Ziel ist die Dimensionsreduktion des Eingaberaums
 
* Ziel ist die Dimensionsreduktion des Eingaberaums
 
* Finden eines orthonormalen Basissystems welches die gegebene Verteilung besser beschreibt
 
* Finden eines orthonormalen Basissystems welches die gegebene Verteilung besser beschreibt
Zeile 195: Zeile 198:
 
* rein Datengetrieben (Klassenlabel werden nicht berücksichtigt) → kann das Problem verschlimmern als verbessern
 
* rein Datengetrieben (Klassenlabel werden nicht berücksichtigt) → kann das Problem verschlimmern als verbessern
  
==== Linear subspace methods ====
+
=== Linear subspace methods ===
 
* Kodierung der Gesichter mit Hilfe eines Satzes von Grundgesichtern
 
* Kodierung der Gesichter mit Hilfe eines Satzes von Grundgesichtern
 
* Suche nach einem optimalen Raum in dem die Gesichter beschrieben werden können → PCA/HKA
 
* Suche nach einem optimalen Raum in dem die Gesichter beschrieben werden können → PCA/HKA
Zeile 201: Zeile 204:
 
* Ein Distanzmaß kann dann in diesem Raum genutzt werden um Gesichter von Nichtgesichtern zu trennen
 
* Ein Distanzmaß kann dann in diesem Raum genutzt werden um Gesichter von Nichtgesichtern zu trennen
  
==== Neuronale Netzwerke ====
+
=== Neuronale Netzwerke ===
 
* Verwendung verschiedener neuronaler Netzwerkarchitekturen (MLP, RBF, Cascade Correlation,...)
 
* Verwendung verschiedener neuronaler Netzwerkarchitekturen (MLP, RBF, Cascade Correlation,...)
 
* Lernziel ist ein minimaler Klassifikationsfehler
 
* Lernziel ist ein minimaler Klassifikationsfehler
 
* Große Anzahl an möglichen Eingabe features
 
* Große Anzahl an möglichen Eingabe features
===== Rowlesy's Ansatz =====
+
 
 +
==== Rowlesy's Ansatz ====
 
* 20x20 Eingabe Pixel
 
* 20x20 Eingabe Pixel
 
* Aufteilung des Eingabebildes in verschiedene Bildregionen um Augen, Mund, Nase,..., besser Erfassen zu können
 
* Aufteilung des Eingabebildes in verschiedene Bildregionen um Augen, Mund, Nase,..., besser Erfassen zu können
Zeile 213: Zeile 217:
 
* Vorverarbeitung: Beleuchtungsausgleich, Histogrammausgleich
 
* Vorverarbeitung: Beleuchtungsausgleich, Histogrammausgleich
  
===== Netzwerktraining =====
+
==== Netzwerktraining ====
 
* exaktes Ausschneiden von Gesichtern aus einer Bilddatenbank und Labeln in Gesicht/nicht Gesicht
 
* exaktes Ausschneiden von Gesichtern aus einer Bilddatenbank und Labeln in Gesicht/nicht Gesicht
 
* Smaples durchlaufen die gleichen Vorverarbeitungsschritte wie später die richtigen Bilddaten
 
* Smaples durchlaufen die gleichen Vorverarbeitungsschritte wie später die richtigen Bilddaten
Zeile 221: Zeile 225:
 
** Auswahl einer gleichen Anzahl von Gesichtern/nicht Gesichtern vor dem Training notwendig da die Datenbank mit der zeit unbalanciert wird
 
** Auswahl einer gleichen Anzahl von Gesichtern/nicht Gesichtern vor dem Training notwendig da die Datenbank mit der zeit unbalanciert wird
  
== Vision-basiertes Personentracking ==
+
= Vision-basiertes Personentracking =
 
* zwei Typische Ansätze
 
* zwei Typische Ansätze
 
** Analytisch → Optischer Fluss
 
** Analytisch → Optischer Fluss
Zeile 228: Zeile 232:
 
*** mehrere Hypothesen → Condensation ([[Kognitive_Robotik#Particle Filter|Patrikelfilter(KogRob)]])
 
*** mehrere Hypothesen → Condensation ([[Kognitive_Robotik#Particle Filter|Patrikelfilter(KogRob)]])
  
=== Bewegungsanalyse mit Hilfe des Optischen Flusses ===
+
== Bewegungsanalyse mit Hilfe des Optischen Flusses ==
 
* Siehe [[Robotvision#Optischer_Fluss|Optische Fluss (RoboVis)]]
 
* Siehe [[Robotvision#Optischer_Fluss|Optische Fluss (RoboVis)]]
 
* Segmentierung des Verschiebungsvektorfeldes in ähnliche Regionen
 
* Segmentierung des Verschiebungsvektorfeldes in ähnliche Regionen
Zeile 234: Zeile 238:
 
* Extraktion der Parameter für die Region
 
* Extraktion der Parameter für die Region
  
=== Probabilistisches object tracking===
+
== Probabilistisches object tracking==
 
* Ziel ist es die Bewegung des Objekte vorherzusehen um es so besser verfolgen zu können
 
* 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
 
* Verwendung einer Wahrscheinlichkeitsverteilung um die Unsicherheit der vorhersage und der Position modellieren zu können
Zeile 245: Zeile 249:
 
** sonst Funktionsweise identisch
 
** sonst Funktionsweise identisch
  
== Posen/Gestenerkennung ==
+
= Posen/Gestenerkennung =
 
* Pose
 
* Pose
 
** Eine Pose ist eine statische Geste
 
** Eine Pose ist eine statische Geste
Zeile 254: Zeile 258:
 
** eine Folge von Posen über die Zeit
 
** eine Folge von Posen über die Zeit
  
=== Herrausforderungen ===
+
== Herrausforderungen ==
 
* erkennen von spontanen Gesten ohne das, dass Erkennungssystem "vorbereitet" ist
 
* erkennen von spontanen Gesten ohne das, dass Erkennungssystem "vorbereitet" ist
 
* erkennen von Gesten sich bewegender Menschen
 
* erkennen von Gesten sich bewegender Menschen
Zeile 261: Zeile 265:
 
* zeitliche Variation der Gesten
 
* zeitliche Variation der Gesten
  
=== Gestenerkennung mit statischen HMMs ===
+
== Gestenerkennung mit statischen HMMs ==
==== HMMs ====
+
=== HMMs ===
 
* [http://de.wikipedia.org/wiki/Hidden_Markov_Model HMMs bei Wikipedia]
 
* [http://de.wikipedia.org/wiki/Hidden_Markov_Model HMMs bei Wikipedia]
 
* Funktionieren wie ein Zustandsautomat
 
* Funktionieren wie ein Zustandsautomat
Zeile 269: Zeile 273:
 
* mit HMMs ist es möglich statistische Ablaufende Prozesse zu modellieren
 
* mit HMMs ist es möglich statistische Ablaufende Prozesse zu modellieren
  
==== Ablauf der Gestenerkennung ====
+
=== Ablauf der Gestenerkennung ===
 
* Alle Gesten die erkannt werden sollen werden als HMMs modelliert
 
* Alle Gesten die erkannt werden sollen werden als HMMs modelliert
 
* Ziel ist es das HMM zu finden, welches am Wahrscheinlichsten die beobachtete Geste generieren würde
 
* Ziel ist es das HMM zu finden, welches am Wahrscheinlichsten die beobachtete Geste generieren würde
Zeile 276: Zeile 280:
 
* das HMM mit der höchsten Wahrscheinlichkeit ist die erkannte Geste
 
* das HMM mit der höchsten Wahrscheinlichkeit ist die erkannte Geste
  
=== Gestenerkennung mit neuronalen Netzwerken ===
+
== Gestenerkennung mit neuronalen Netzwerken ==
 
* haben eine gute Erkennungsrate und sind robust gegenüber von Rauschen
 
* haben eine gute Erkennungsrate und sind robust gegenüber von Rauschen
 
* lange Trainingszeiten
 
* lange Trainingszeiten
Zeile 282: Zeile 286:
 
* Gesten sind zeitliche abfolgen → Repräsentation der Zeit ist notwendig
 
* Gesten sind zeitliche abfolgen → Repräsentation der Zeit ist notwendig
  
==== Die Sliding-window Technik ====
+
=== Die Sliding-window Technik ===
 
* Zeit wird extern Repräsentiert (Die alten Inputs werden eine Inputneuronenreihe weitergeschoben)
 
* Zeit wird extern Repräsentiert (Die alten Inputs werden eine Inputneuronenreihe weitergeschoben)
 
* biologisch Motiviert durch unterschiedliche Signallaufzeiten an den Dentriten der Neuronen
 
* biologisch Motiviert durch unterschiedliche Signallaufzeiten an den Dentriten der Neuronen
Zeile 292: Zeile 296:
 
* kein globaler Zeitlicher Kontext
 
* kein globaler Zeitlicher Kontext
  
==== Partiell rekurrente Netze ====
+
=== Partiell rekurrente Netze ===
 
* Einführung von Rekurrenz zur Speicherung eines zeitlichen Kontextvektors
 
* Einführung von Rekurrenz zur Speicherung eines zeitlichen Kontextvektors
 
* implizite, interne Repräsentation der Signal- und Mustergeschichte
 
* implizite, interne Repräsentation der Signal- und Mustergeschichte
Zeile 300: Zeile 304:
 
* Instabilitäten oder suboptimale Lösungen durch Rückkopplung möglich
 
* Instabilitäten oder suboptimale Lösungen durch Rückkopplung möglich
  
===== Elman-Netz =====
+
==== Elman-Netz ====
 
* erster Hiddenlayer Koppelt auf ein kontextlayer zurück
 
* erster Hiddenlayer Koppelt auf ein kontextlayer zurück
 
* Kontextlayer ist auch als Input wieder mit dem Hiddenlayer verbunden
 
* Kontextlayer ist auch als Input wieder mit dem Hiddenlayer verbunden
 
* [[wikipedia:Elman-Netz| Elman-Netz bei Wikipedia]]
 
* [[wikipedia:Elman-Netz| Elman-Netz bei Wikipedia]]
  
===== Jordan-Netz =====
+
==== Jordan-Netz ====
 
* Outputneuronen werden auf die Kontextneuronen zurückgekoppelt
 
* Outputneuronen werden auf die Kontextneuronen zurückgekoppelt
 
* Kontextneuronen sind auf sich selbst zurückgekoppelt
 
* Kontextneuronen sind auf sich selbst zurückgekoppelt
Zeile 311: Zeile 315:
 
* [[wikipedia:Jordan-Netz| Jordan-Netz bei Wikipedia]]
 
* [[wikipedia:Jordan-Netz| Jordan-Netz bei Wikipedia]]
  
===== Mozer-Netz =====
+
==== Mozer-Netz ====
 
* Hiddenlayer werden auf sich selbst zurückgekoppelt
 
* Hiddenlayer werden auf sich selbst zurückgekoppelt
  
== Gesichtsausdruckserkennung ==
+
= Gesichtsausdruckserkennung =
 
* Grober Ablauf
 
* Grober Ablauf
 
** Vorverarbeitung (Facial Data Acquisition)
 
** Vorverarbeitung (Facial Data Acquisition)
Zeile 320: Zeile 324:
 
** Klassifikation
 
** Klassifikation
  
=== Vorverarbeitung (Facial Data Acquisition) ===
+
== Vorverarbeitung (Facial Data Acquisition) ==
 
* Gesichtsegementierung
 
* Gesichtsegementierung
 
*# Gesichtsdetektion (Siehe [[#Vision-basierte Personendetektion|Vision-basierte Personendetektion]])
 
*# Gesichtsdetektion (Siehe [[#Vision-basierte Personendetektion|Vision-basierte Personendetektion]])
Zeile 336: Zeile 340:
 
** Beleuchtung anpassen (Histogrammausgleich, Farbkorrekturen, Kontrast)
 
** Beleuchtung anpassen (Histogrammausgleich, Farbkorrekturen, Kontrast)
  
=== Merkmalsextraktion (Facial Feature Extraction) ===
+
== Merkmalsextraktion (Facial Feature Extraction) ==
==== Verformungs Extraktion ====
+
=== Verformungs Extraktion ===
 
* zur Verarbeitung von statische Bildern
 
* zur Verarbeitung von statische Bildern
 
* Konzentration auf Form und Aussehen von Gesichtsmerkmalen bzw. dem ganzen Gesicht
 
* Konzentration auf Form und Aussehen von Gesichtsmerkmalen bzw. dem ganzen Gesicht
===== Bildbasiert =====
+
==== Bildbasiert ====
 
# [[Robotvision#Gabor-Wavelet-Funktionen|Gabor Wavelets]]
 
# [[Robotvision#Gabor-Wavelet-Funktionen|Gabor Wavelets]]
 
# Local PCA
 
# Local PCA
 
# Neuronale Netzwerke (Netzwerk wird direkt trainiert die Gesichtsausdrücke zu erkennen)
 
# Neuronale Netzwerke (Netzwerk wird direkt trainiert die Gesichtsausdrücke zu erkennen)
  
===== Modellbasiert (Active Appearance Models)=====
+
==== Modellbasiert (Active Appearance Models)====
 
* schätzen der Form und des Aussehens von Gesichtsmerkmalen mit Hilfe von AAMs
 
* schätzen der Form und des Aussehens von Gesichtsmerkmalen mit Hilfe von AAMs
 
* typischer "Analyse durch Synthese" Ansatz
 
* typischer "Analyse durch Synthese" Ansatz
Zeile 357: Zeile 361:
  
  
== Personenidentifikation ==
+
= Personenidentifikation =
 
Grundidee, ist dass ich einen elastischen Graph in das Gesicht einfitte und anhand der Filterantworten an Knoten, sowie der Form des Graphen entscheide, um welche Person es sich handelt, bzw. ob die Person bekannt ist,Zutrittsrechte hat, etc.
 
Grundidee, ist dass ich einen elastischen Graph in das Gesicht einfitte und anhand der Filterantworten an Knoten, sowie der Form des Graphen entscheide, um welche Person es sich handelt, bzw. ob die Person bekannt ist,Zutrittsrechte hat, etc.
 
*Aufbau:
 
*Aufbau:
Zeile 375: Zeile 379:
 
**Berechnung der Ähnlichkeit zu den Bildern der Datenbank, als gewichtete Summe Topologieähnlichkeit und Filterantwortähnlichkeit
 
**Berechnung der Ähnlichkeit zu den Bildern der Datenbank, als gewichtete Summe Topologieähnlichkeit und Filterantwortähnlichkeit
  
== Konsultation ==
+
= Konsultation =
  
 
* 3a-29
 
* 3a-29

Version vom 29. Juli 2009, 09:59 Uhr

<hiddenlogin>login: nistudws0809 pass: WS0809N!</hiddenlogin>

Klausurergebnisse für die Klausur vom 08.02.2008

Teilbereiche der MMK

MMMK-Teilbereiche.jpg

MMK- ein Mustererkennungsproblem

Dies ist eine Grafik mit Rahmen und Knoten, die Hyperlinks enthalten könnten.

Sensorik

  • Transformation der physikalischen Welt (Kamera, Laserscanner, Mikrofone)
  • Erzeugen einen Satz von Messdaten (Mustervektoren)
  • ggf. auch Trainingsvektoren

Problemspezifische Vorverarbeitung

  • Schwellwertoperationen
  • Filteroperationen
  • Interpolation / Extrapolation
  • 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

  1. 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
  2. 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)
  • 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 [oben links - für die Informatikerinnen ;-)]

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
    1. Video Datenstrom
    2. Informations Extraktion (Hautfarbe, Eigengesichter, Kanteninformationen)
    3. Klassifikation (Mustererkennung, probabilistische Modelle, Korrelation)
    4. 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

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

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

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

  • Pose
    • Eine Pose ist eine statische Geste
    • Eine feste Position von Arm/Hand-Stellung in Bezug auf eine Kopf bzw. Körperhaltung zu einem festen Zeitpunkt
    • z.B. Zeichensprache
  • Geste
    • eine Geste ist eine dynamische Geste
    • eine Folge von Posen über die Zeit

Herrausforderungen

  • erkennen von spontanen Gesten ohne das, dass Erkennungssystem "vorbereitet" ist
  • erkennen von Gesten sich bewegender Menschen
  • Teilweiseverdecknugen oder Drehungen
  • sich verändernder Bildhintergrund
  • zeitliche Variation der Gesten

Gestenerkennung mit statischen HMMs

HMMs

  • HMMs bei Wikipedia
  • Funktionieren wie ein Zustandsautomat
  • Zwischen den Zuständen gibt es Übergangswahrscheinlichkeiten
  • Jeder Zustand kann eine oder mehrere Ausgaben erzeugen, welche auch wieder mit Wahrscheinlichkeiten gewichtet werden können
  • mit HMMs ist es möglich statistische Ablaufende Prozesse zu modellieren

Ablauf der Gestenerkennung

  • Alle Gesten die erkannt werden sollen werden als HMMs modelliert
  • Ziel ist es das HMM zu finden, welches am Wahrscheinlichsten die beobachtete Geste generieren würde
  • Zuerst müssen aber mit Hilfe einer Merkmalsextraktion die Kamerabeobachtungen in einen "Beobachtungsseuenz" überführt werden
  • Anschließend wird mit Hilfe des Vorwärtsalgorithmuses berechnet wie Wahrscheinlich es es das eines der gegebenen HMMs diese Geste produzieren würde
  • das HMM mit der höchsten Wahrscheinlichkeit ist die erkannte Geste

Gestenerkennung mit neuronalen Netzwerken

  • haben eine gute Erkennungsrate und sind robust gegenüber von Rauschen
  • lange Trainingszeiten
  • komplettes Training muss wiederholt werden, wenn eine neue Geste hinzugefügt werden soll
  • Gesten sind zeitliche abfolgen → Repräsentation der Zeit ist notwendig

Die Sliding-window Technik

  • Zeit wird extern Repräsentiert (Die alten Inputs werden eine Inputneuronenreihe weitergeschoben)
  • biologisch Motiviert durch unterschiedliche Signallaufzeiten an den Dentriten der Neuronen
  • es wird kein Einzelmuster angelegt sondern ein gleitendes Fenster von zeitlich veränderlichen Inputmustern
  • Vorteil ist es können einfach Feedforward-Netze verwendet werden
  • keine Änderungen am "normalen" lernverhalten notwendig
  • unterschiedliche Zeitskalen können auf die einfachste Weise eingebaut werden
  • Haben allerdings eine Hohe Eingabedimension
  • kein globaler Zeitlicher Kontext

Partiell rekurrente Netze

  • Einführung von Rekurrenz zur Speicherung eines zeitlichen Kontextvektors
  • implizite, interne Repräsentation der Signal- und Mustergeschichte
  • einfache Erweiterung der bekannten Feedforward-Netze (keine Verkomplizierung des Lernprozesses)
  • variable Wahl des Zeitfensters möglich (Über Rückkoppelkonstante )
  • Netze sind auf eine Zeitskala festgelegt
  • Instabilitäten oder suboptimale Lösungen durch Rückkopplung möglich

Elman-Netz

  • erster Hiddenlayer Koppelt auf ein kontextlayer zurück
  • Kontextlayer ist auch als Input wieder mit dem Hiddenlayer verbunden
  • Elman-Netz bei Wikipedia

Jordan-Netz

  • Outputneuronen werden auf die Kontextneuronen zurückgekoppelt
  • Kontextneuronen sind auf sich selbst zurückgekoppelt
  • Kontextneuronen sind als Inputneuronen auf die erste Hiddenschicht eingekoppelt
  • Jordan-Netz bei Wikipedia

Mozer-Netz

  • Hiddenlayer werden auf sich selbst zurückgekoppelt

Gesichtsausdruckserkennung

  • Grober Ablauf
    • Vorverarbeitung (Facial Data Acquisition)
    • Merkmalsextraktion (Facial Feature Extraction)
    • Klassifikation

Vorverarbeitung (Facial Data Acquisition)

  • Gesichtsegementierung
    1. Gesichtsdetektion (Siehe Vision-basierte Personendetektion)
    2. Exakte Lokalisierung
      • über Eigenfeatures
        • Berechnen der Eigennasen, Eigenaugen
        • Verwenden dieser um Augen und Nasen der Gesichter genau detektieren zu können
      • über Kantenorientierungen
        • Berechnen von Kantenkarten für Augen, Nasen
        • Verwenden dieser Karten um die Augen und Nasen der Gesichter exakt Lokalisieren zu können
      • Verwenden der gefundenen Nasen und Augen um das Gesicht zu auszuschneiden
      • Augen und Nasen können auch genutzt werden um das Gesicht in Normlage zu bekommen (Größe und Orientierung des Gesichtes wird vereinheitlicht)
  • Gesicht Normalisierung
    • Bildgeometrie anpassen (Größe, Verdrehung, Verschiebung, ....)
    • Beleuchtung anpassen (Histogrammausgleich, Farbkorrekturen, Kontrast)

Merkmalsextraktion (Facial Feature Extraction)

Verformungs Extraktion

  • zur Verarbeitung von statische Bildern
  • Konzentration auf Form und Aussehen von Gesichtsmerkmalen bzw. dem ganzen Gesicht

Bildbasiert

  1. Gabor Wavelets
  2. Local PCA
  3. Neuronale Netzwerke (Netzwerk wird direkt trainiert die Gesichtsausdrücke zu erkennen)

Modellbasiert (Active Appearance Models)

  • schätzen der Form und des Aussehens von Gesichtsmerkmalen mit Hilfe von AAMs
  • typischer "Analyse durch Synthese" Ansatz
  • AAMs bestehen aus einem
    • Formmodell
      • beschreibt die Gesichtsform mit Hilfe eines Mash aus Dreiecken (Über Eigenform Vektoren)
    • Appearance modell
      • beschreibt die Textur des Gesichtes (wieder über Eigengesichter)
  • Mit Hilfe der beiden Modelle kann nun jedes mögliche Gesicht synthetisiert werden
  • Nun muss mit Hilfe eines Gradientenabstiegsverfahren nur noch so lange an denn Parametern geschraubt werden, bis das Synthesegesicht gleich dem aufgenommenen Gesicht ist


Personenidentifikation

Grundidee, ist dass ich einen elastischen Graph in das Gesicht einfitte und anhand der Filterantworten an Knoten, sowie der Form des Graphen entscheide, um welche Person es sich handelt, bzw. ob die Person bekannt ist,Zutrittsrechte hat, etc.

  • Aufbau:
    • Mittlerer Graph, über alle Gesichter
    • An Knoten des Graphen hängen GaborJets
    • Für jedes Gesicht in Datenbank ist die Form des Graphen, sowie die Filterantworten bekannt
  • Ablauf:
    • Rektifizierung des Inputgesichtes
    • Optimale Positionierung des Durchschnittsgraphen im zu identifizierenden Gesicht (ohne den Graphen zu verzerren)
      • Entweder anhand anderweitig robust detektierter Merkmale (z.B. Augen+Nase)
      • Oder Minimierung des Fehlers der Filterantworten in den einzelnen Knoten des Graphen
    • Optimieren der Position der einzelnen Knoten des Graphen
      • Durch Minimierung der Abweichung der Gaborjet-Antworten von denen des Mittelwertgesichts
      • Unter Berücksichtigung der "Elastizität" des Graphen - Geometrische Constraints in der Bewegung der Knoten
      • Zur exakten Positionierung sowohl Betrag als auch Phasenlage der Gaborfilter berücksichtigt
    • Berechnung der Ähnlichkeit zu den Bildern der Datenbank, als gewichtete Summe Topologieähnlichkeit und Filterantwortähnlichkeit

Konsultation

  • 3a-29
    • decision surface
      • Entscheidungsoberfläche auf der dann ein Minimumgesucht werden muss
      • Seine Aussage: "Nicht so dolle --- fliegt raus"
  • 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
  • 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