Multimodale Mensch-Maschine-Kommunikation: Unterschied zwischen den Versionen

Aus II-Wiki
Wechseln zu: Navigation, Suche
(Teilbereiche eingefügt)
(Teilbereiche der MMK)
Zeile 4: Zeile 4:
  
 
= Teilbereiche der MMK =
 
= Teilbereiche der MMK =
[[Datei:MMMK-Teilbereiche.jpg|500px]]
+
[[Datei:MMMK-Teilbereiche.jpg|600px]]
  
 
= MMK- ein Mustererkennungsproblem =
 
= MMK- ein Mustererkennungsproblem =

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