MIAV1: Praktikum Active Models

Prof. Dr. W. Konen

Stand: Okt. 2006

1.   Einleitung

1.1.            Begriffsbestimmung

Active Shape Models: Will man in der Bildverarbeitung deformierbare Objekte (Gesichter, Hände, medizinische Aufnahmen) beschreiben, so kommt man mit starren Modellen nicht sehr weit. Shape Models sind flexible Konturen oder Formen (Form = shape), die "lernen", in welche Richtung sie sich leicht / schwer deformieren lassen. Active Shape Models sind Modelle, die sich automatisch auf ein vorgegebenes Bild anpassen.

 

Active Appearance Models: Weiterentwicklung der ASMs: nicht nur die Form, sondern auch die Textur, d.h. die Grauwertverteilung (Aussehen = appearance) wird gelernt. Hierdurch lassen sich mit nur wenigen Parametern aus einem Modell eine Vielzahl von Bildinstanzen erzeugen. Anwendungsfelder: Gesichtsmodellierung, -findung, z.B. Tracking bei Videotelefonie, Übertragung von Gesichtsmimik auf Avatare, Eye Tracking, modellbasierte Registrierung in medizinischen Bildern.

1.2.            Ziel des Praktikums

ASMs / AAMs praktisch erfahrbar machen, erste Erfahrungen sammeln, wobei der volle mathematisch-theoretische Hintergrund erst später in der Vorlesung / in der Seminararbeit aufgebaut wird.

Generell gilt: Sie werden mit diesem Praktikum ins "kalte Wasser" geschmissen, indem Sie mit Modellen AAM / ASM operieren, deren genaue Funktionsweise Sie (noch) nicht kennen. Trotzdem kann man aber erstmal damit arbeiten, wobei sich naturgemäß im Detail zahlreiche Fragen auftun werden. Fragen ist aber der Beginn wissenschaftlichen Arbeitens, deshalb sehr wichtig. Also: Schreiben Sie die Fragen, auf die Sie stoßen, praktikumsbegleitend auf, wir werden versuchen, sie in den Besprechungen aufzugreifen.

Ziel des Praktikums ist es nicht zuletzt, Interesse zu wecken: "Aha, jetzt weiss ich ungefähr, was ein AAM kann. Ist ja ganz erstaunlich. Jetzt will ich auch verstehen, wie es genauer funktioniert". Oder: "Ich will besser verstehen, was die einzelnen Modellparameter bedeuten und wie sie zusammenwirken". Diese Aspekte sollten dann in der sich anschließenden Vorlesung und den Seminararbeiten aufgegriffen werden.

1.3.            Formalia

  • Praktikum mit Abschlussbericht
  • Der Abschlussbericht erfüllt die Funktion eines Laborbuches: Er soll einem aussenstehenden Fachmann (oder Ihnen selbst, wenn Sie nach geraumer Zeit wieder bei dem Thema ansetzen würden) klarmachen,
    • was / welche Experimente Sie gemacht haben (Nachvollziehbarkeit!!).
    • auf welche Schwierigkeiten Sie fallweise gestoßen sind (Lessons learned),
    • Ergebnisse / Antworten auf die Aufgabenstellungen

 

 

2.   Praktikum AAM1: Experimente mit Tim Cootes' AM_TOOLS

2.1.            Task 1: Ein erstes ASM bauen

2.1.1.                  Vorbereitung

 

2.1.1.                  Anleitung

Ein Shape Model ist ein Drahtgittermodell (Graph), bestehend aus Knoten und Kanten, wobei die Kanten in der Nähe markanter Strukturen (Grauwertkanten) des Bildes verlaufen sollten.

Um ein solches Modell zu bauen, muss man zunächst definieren, aus welchen Punkten das Modell bestehen soll und wie diese zusammenhängen (gelbe Linien).

 

Ziel: Aufbau eines Modells der Augen von Tim Cootes.

 

Hierzu nehmen wir drei (beliebige) Gesichtsbilder C:/Program Files/am_tools/images als Basis-Bildmaterial (Wieso nur 3?  - Um uns erstmal mit der grundlegenden Funktionsweise der Tools vertraut zu machen. Später werden wir das Modell auf 10 Bilder erweitern, dadurch wird es flexibler und robuster)

 

Schritt 1: Folgen Sie den Schritten, die in am_tools_doc/model_building_from_scratch.html "Annotate the first image" detailliert beschrieben sind. Anmerkungen:

  • Passen Sie sie dabei sinngemäß auf unsere Aufgabenstellung an, indem Sie ein Directory eye/ mit Subdirs images/,  models/ und points/ kreieren. Die Model-Files sollen die Namen eye3.* tragen. Kopieren Sie die drei Gesichtsbilder ins passende images/-Directory. Wechseln Sie ins models/-Directory.
  • Zu am_markup start: Damit definiert man das Shape-Modell (isolierte Punkte, vor allem aber zu Kontouren verbundene Punkte (gelbe Linien, Parts). Unbedingt sowohl .pts als auch .parts speichern (damit man nachher auch gelbe Linien erhält). Mit dem Beenden einer Kontour funktionierts nicht immr so richtig im am_markup-Programm, d.h. es werden z.T. auch getrennt gemeinte Kontouren verbunden. Das kann man aber nachher im .parts-File mit Texteditor nacheditieren.[1]

Das Ergebnis sollte etwa wie folgt aussehen:

 

Schritt 2: Bauen Sie ein erstes (Shape) Modell mit am_build_apm eye3 und am_build_aam eye3.

Schritt 3: Folgen Sie den Schritten, die in am_tools_doc/model_building_from_scratch.html, "Annotate further images" detailliert beschrieben sind, startend mit am_markup eye3. Anmerkungen:

  • Tragen Sie "Ihre" drei Gesichtsbilder am Ende des .smd-Files ein

·         Startposition für Modell (gelbe Linien) transformieren: Move All und ReMaus: Man kann die gesamte Kontour vergrößern und drehen (praktisch, wenn sich das Modell beim Search mal auf einen Punkt zusammengezogen hat). Move All und LiMaus: alle Punkte verschieben.

·         Sie müssen einzelne Modellpunkte anfassen und auf korrespondierende Stellen bringen, sonst lernt das Modell nichts

Schritt 4: Bauen Sie das (Shape) Modell erneut mit am_build_apm eye3 und am_build_aam eye3.

 

Hierdurch lernt das Modell, welche Variationen / Deformationen an der Drahtgitterkonfiguration auftreten können: Es ist z.B. eher unwahrscheinlich, dass ein Auge nach unten, das andere nach oben geht; ein Hochziehen der Augenbrauen (zusammen oder einzeln) kann aber vorkommen. Das Modell lernt dieses, wenn Bilder mit hochgezogenen Augenbrauen im Datenmaterial enthalten sind.

 

Schritt 5: Betrachten des Shape Modells mit am_view_shape_model eye3 (grüne Linien auf schwarzem Grund). Das Ergebnis sollte in etwa wie folgt aussehen:

In der Mitte ist der Durchschnitts-Shape (Mean Shape). Jeder Mode stellt eine Deformierung in einer bestimmten "Richtung" dar, dabei ist Mode 1 der wichtigste, Mode 2 der zweitwichtigste usw. Links und rechts sind die Abweichungen dieses Modes dargestellt, nämlich wenn man vom Mean Shape 250% in negative "Richtung" bzw. in positive "Richtung" geht.

Beispiel: Wäre "Richtung" = "Augenbrauen hoch", dann stünde links ein Bild mit Augenbrauen tiefer als im Mean Shape, rechts ein solches mit Augenbrauen höher.

 

Schritt 6: Mit dem Modell die Augenpartie in neuen Bildern suchen gehen: einen File data_todo.smd mit den neuen Bildern vorbereiten, dann am_markup eye3 und Load Image Set ... data_todo.smd. Für jedes Bild kann man (fallweise) die initale Lage des gelben Shapes anpassen, dann mit File – Search oder Props – Search die Suche starten.

 

Idealerweise findet das Modell, auch von weit entfernten Startwerten, die Augenpartie zielgenau in ihrer jeweiligen intrinsischen Deformation. Real wird das kleine Spiel-Modell mit nur 3 Gesichtern natürlich weit hinter diesem Ideal zurückbleiben.

 

2.1.2.                  Aufgaben zu Task 1

  1. Vollziehen Sie die obigen Schritte nach!
  2. Dokumentieren Sie etwaige Auffälligkeiten, Probleme, Bugs!
  3. Bauen Sie ein Movie, mit dem man das erzeugte Shape-Modell in einem Vortrag gut visualisieren könnte!
  4. Sammeln Sie Erfahrung mit Schritt 6 und neuen Bildern: Was geht, was geht nicht?

 

2.2.            Task 2: Wissenschaftliche Untersuchung

Hypothese: Ein Shape Modell der Augenpartie basierend auf 10 Gesichtsbildern ist flexibler und robuster als ein auf nur 3 Gesichtsbildern basierendes Modell.

 

Ziel: Sie sollen eine wissenschaftliche Untersuchung durchführen, die diese Hypothese durch Experimente mit quantitativen Ergebnissen stützt oder falsifiziert. Design der Experimiente und Darstellung der Ergebnisse gehören mit zu Ihren Aufgaben.

2.2.1.                  Vorbereitung

  • Man nehme ein eye3-Modell wie in Task1
  • Nach ähnlichem Muster baue man ein eye10-Modell
  • Überlegen Sie sich schon vor dem Aufbau der eyeX-Modelle, welche Aspekte Sie beachten sollten, um ein gutes Modell zu erhalten: Welche Punkte in der Augenregion wählt man am besten aus? Wie müssen die Punkte beim Markup liegen? usw.

2.2.2.                  Aufgaben zu Tasks 2

1.      Design des Experimentes: Entwickeln Sie Kriterien, nach denen Sie "flexibel" und "robust" bewerten wollen! (gut sind auch mehrere alternative Kriterien)

1.1.   Anforderung an Kriterien:

1.1.1.     (quantitativ) meßbar,

1.1.2.     reproduzierbar,

1.1.3.     zielgenau

2.      Konzipieren Sie den Experimentablauf, um diese Kriterien messen!

2.1.   Aspekte:

2.1.1.     Wie erreicht man Reproduzierbarkeit, also wiederholbare Anfangsbedingungen?

2.1.2.     Wie stellt man aber auch sicher, dass man den Datenraum voll exploriert, also nicht ein Ergebnis erhält, das bei Variation einiger für die Hypothese nicht relevanter Parameter ganz anders ausfiele?

2.1.3.     Genau welche Experimente sind mit wieviel Durchläufen geplant?

2.1.4.     Welches Datenmaterial nehmen Sie bei welchen Schritten?

2.1.5.     Was müssen Sie, um die Ergebnisse auszuwerten?

2.1.6.     Ist also der Aufwand beherrschbar?

3.      Konzipieren Sie Darstellungsformen, mit denen man die aus den Experimenten erhaltenen Ergebnisse in einem Technical Report visualisieren kann!

3.1.   Aspekte: Tabelle, Diagramm, Beschreibung, Diskussion, ...

4.      Schreiben Sie das so erhaltene Konzept in 2 bis 5 Seiten auf und diskutieren Sie es mit dem Betreuer.

5.      Führen Sie erst jetzt die Experimente in voller Breite durch!

6.      Dokumentieren und diskutieren Sie die Ergebnisse im Bericht.

 

 

2.3.            Task 3: Das AAM eines Gesichtes bauen

2.3.1.                  Anleitung

Ein Appearance Model lernt nicht nur die Deformierbarkeit korrespondierender Punkte, sondern darüber hinaus auch den Grauwertverlauf "dazwischen". Es ist daher möglich, aus den Modellparametern nicht nur "Drahtgitter" sondern ganze Objektbilder zu generieren bzw. zu rekonstruieren.

 

Ziel: Sie sollen hier das Appearence-Modell für ein Gesicht aus einer Reihe von 8 Bildern aufbauen, visualisieren und testen.

 

Schritt 1 - 4: in analoger Weise durchzuführen wie die Schritte 1 – 4 aus Task 1.

Schritt 5: Betrachten des Appearance Modells mit am_view_aam face8. Das Ergebnis sollte in etwa wie folgt aussehen:

 

Schritt 6: Generieren eines Gesichtsbildes aus wenigen Modellparametern: Man benutze das Tool am_make_image (s. doc\am_make_image.html). Was erhält man, wenn man alle Koeffizienten in data_file auf 0.0 setzt?

TIPP: bei Abweichung von 0.0 nicht so große Zahlen (99.0) verwenden wie in doc\am_make_image.html, sondern eher Werte im Bereich -0.5 ... 0.5.

 

Ist es nicht erstaunlich, mit wie wenig Parametern man aus dem Modell Gesichtsbilder generieren kann, die verschiedene, realitätsnahe Mimikausdrücke der Person wiederspiegeln? Das ist der wichtige Aspekt des Modellbaus: In der Lage zu sein, durch wenige Parameter relativ komplexe Vorgänge bzw. Gegebenheiten zu beschreiben.

 

 

2.3.2.                  Aufgaben zu Task 3

  1. Vollziehen Sie die obigen Schritte nach!
  2. Dokumentieren Sie etwaige Auffälligkeiten, Probleme, Bugs!
  3. Versuchen Sie, sich durch Anschauen der Movies einen Reim darauf zu machen, was Mode 0,1,2,... bedeuten könnte. Bzw. was "Shape Model", "Texture Model" und "Combined Model" bedeutet.
  4. Bauen Sie ein Movie, mit dem man das erzeugte AAM in einem Vortrag gut visualisieren könnte!
  5. Sammeln Sie Erfahrung mit Schritt 6 und den generierten Bildern: Was geht, was geht nicht?

 

3.   Praktikum AAM2: Experimente mit Mikkel Stegman's AAM-API

dieser Teil wird im Laufe der ersten Semesterwochen noch genauer ausgeführt –

 

Grobe Beschreibung

 

 

ZIEL:

  • AAM auch mit Stegmann's AAM-API aufbauen

 

 

AUFGABEN:

  • Vorbereitung: AAM-API installieren, mit Bedienung vertraut machen.
  • Aufbau des Gesicht-AAMs analog zu Task 3 und Vergleich der visuellen Ergebnisse
  • Als weitere Bilddaten kommen entweder die unten genannten Quellen zum Einsatz oder aber sehr gern auch selbstgewählte Daten, die zum Konzept passen
  • Erfahrungsbericht, Lessons learned.
  • Vergleich der Softwarepakete am_tools und AAM-API aus Benutzersicht. Aspekte können sein
    • Ergonomie der Bedienung
    • Visualisierungsmöglichkeiten
    • Güte der Resultate (inwieweit sind Modelle frei von Artefakten u.ä.)
    • u.a.m.

 

 

 

 


4.   Literature

General literature on Modelling in Computer Vision

 

  • [Jähne02] B. Jähne: Bildverarbeitung. 6. Auflage, Springer, 2005.
    Chapter 16.5 and Chapter 17.

General introduction to Eigenvalue, PCA

 

 

Introductory and more advanced literature on ASM (Active Shape Models) and AAM (Active Appearance Models)

 

  • [CootesET98] T.F.Cootes, G.J. Edwards and C.J.Taylor. "Active Appearance Models", in Proc. European Conference on Computer Vision 1998 (H.Burkhardt & B. Neumann Ed.s). Vol. 2, pp. 484-498, Springer, 1998.
  • [CooTay04] T. F. Cootes and C. J Taylor. Statistical Models of Appearance for Computer Vision. Tech. Report., University of Manchester, www.isbe.man.ac.uk/~bim, Mar 2004.
  • [StegGom02] M.B. Stegman, D.D. Gomez, A Brief Introduction to Statistical Shape Analysis,Technical Report, Inst for Informatics, Technical University of Denmark, 2002.
  • http://www.isbe.man.ac.uk/~bim/ Tim Cootes' Homepage, many good papers, AM_TOOLS: binaries + datasets for own experiments with AAM
  • http://www2.imm.dtu.dk/~aam/ : Michael B. Stegmann's Webpage on AAM, very nice demo material, contains also AAM-API (C++)
    (Stegmann's Homepage:
    http://www2.imm.dtu.dk/~mbs/ )
  • http://www.ri.cmu.edu/people/baker_simon.html Simon Baker's Homepage (AAM in real time)
  • [KassWT88] M. Kass, A. Witkin, and D. Terzopoulos. Snakes: Active contour models. Int. Jour. of Computer Vision, 8(2):321–331, 1988.
  • T. F. Cootes and Taylor. Active shape models – ’smart snakes’. In Proc. British Machine Vision Conf., BMVC92, pages 266–275, 1992.
  • V. Blanz and T. Vetter, Face Recognition based on Fitting a 3D Morphable Model. IEEE Trans on Pattern Analysis and Machine Intelligence 25 (9), pp 1063-1074, 2003.
  • http://www.mpi-sb.mpg.de/~blanz/ Homepage of Volker Blanz (morphable models, facial animation examples)

 

 

 

 

5.   Kommunikation

Sprechstunde Kg       Di, 10:15-11:00

Fon                 Kg       - 275

Raum              Kg       A2603

 



[1] Um die Knoten-Nr. im Bild zuordnen zu können, kann man im am_markup-Tool "Props – Graphics– Show Model Point Numbers" einstellen.