Abschlussvortrag - Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
Technische Universität Hamburg-Harburg
The Parallel Computing Group
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
Studienarbeit im Studiengang Informatik-Ingenieurwesen
Pawel Kazakow
23.03.2007
Betreuer: Prof. Dr. Helmut Weberpals
Abschlussvortrag 23.03.2007 - Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
1. Technische Universität Hamburg-Harburg
The Parallel Computing Group
Dynamisches Hautmodell
für Muskelbasierte Gesichtsanimation
Studienarbeit im Studiengang Informatik-Ingenieurwesen
Pawel Kazakow
23.03.2007
www.muskelbasierte-gesichtsanimation.de
Betreuer: Prof. Dr. Helmut Weberpals
4. Motivation
4
Anwendungsgebiete
Künstliche Akteure für Werbe- und Spielfilme
Virtuelle Figuren in Computerspielen
Kommunikation im Internet mit Hilfe von Avataren
Ziele
Realistische Simulation der Mimik
Schnelle Anpassung an neue Gesichtsgeometrien
Wenig Rechenaufwand, am besten Echtzeitsimulation
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
5. Hauptziel
5
Hauptziel ist die realitätsnahe Simulation der Mimik, also der
sichtbaren Bewegungen des menschlichen Gesichts!
Hautbewegungen
Augenbewegungen
Zungenbewegungen
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
6. Kinematik
6
Die Kinematik ist die Lehre von der Bewegung von Punkten
und Körpern im Raum.
Die Bewegung wird beschrieben durch die Größen Weg s,
Geschwindigkeit v und Beschleunigung a:
Die Ursachen einer Bewegung werden dabei nicht
betrachtet!
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
7. Dynamik
7
Die Dynamik beschreibt die Änderung der Bewegungsgrößen
Weg, Geschwindigkeit und Beschleunigung unter Einwirkung
von Kräften im Raum.
Für Kraft F, Masse m und Beschleunigung a gilt der
Grundgesetz der Dynamik:
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
8. Gesichtsgeometrie
8
Hautgeometrie ist eine
Polygonoberfläche
Quellen
3D-Scanner
Rekonstruktion von Fotos
Manuelle Modellierung
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
10. Muskelbasierte Gesichtsanimation
10
Steuerung
Muskeln Haut
Knochen
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
11. Ansätze für Gesichtsanimation im Vergleich
11
Parametergesteuerte Gesichtsanimation
Direkte Manipulation der Hautgeometrie
Der Künstlicher modelliert den Gesichtsausdruck selbst
Ein neues Gesicht muss vollständig neu animiert werden
Hoher Aufwand, Kosten bei großen Projekten akzeptabel
Muskelbasierte Gesichtsanimation
Indirekte Manipulation durch Muskelkontraktionen
Realistischer Gesichtsausdruck durch Muskelkontraktionen
Anpassbares Muskelsystem für jedes Gesicht denkbar
Offenes Forschungsfeld
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
13. Schädel
13
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
14. Erzeugung der Schädelgeometrie
14
Erzeugung der Schädelgeometrie nach K. Kähler et al.:
Initiale Knochengeometrie ist gleich der Hautgeometrie
Augenpartien, Ohren und Nase entfernen
Unterkiefer wird extrahiert
Knochengeometrie herunterskalieren
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
17. Gesichtsmuskeln und Muskeltypen
17
Linearmuskeln (und Flächenmuskeln)
Kontrahieren auf einen Fixpunkt zu
Schließmuskeln
Haben Kontraktionszentren
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
18. Haut
18
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
24. Flächenduplikation
24
Muskelgeometrie wird
unmittelbar aus der
Hautgeometrie erzeugt
Zuordnung der Muskelpunkte
zu den Hautpunkten einfach
Für jede Hautgeometrie
müssen die Muskeln erneut
erstellt werden
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
25. Flächenduplikation
25
Muskelgeometrie wird
unmittelbar aus der
Hautgeometrie erzeugt
Zuordnung der Muskelpunkte
zu den Hautpunkten einfach
Für jede Hautgeometrie
müssen die Muskeln erneut
erstellt werden
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
26. Pfadextrusion
26
Muskelgeometrie wird durch
Extrusion eines Profils entlang
einer Pfadkurve erzeugt
Zuordnung der Muskelpunkte
zu den Hautpunkten nicht
einfach
Erzeugte Muskelgeometrie
kann durch Manipulation der
Pfadkurve an eine neue
Hautgeometrie angepasst
werden
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
27. Pfadextrusion
27
Muskelgeometrie wird durch
Extrusion eines Profils entlang
einer Pfadkurve erzeugt
Zuordnung der Muskelpunkte
zu den Hautpunkten nicht
einfach
Erzeugte Muskelgeometrie
kann durch Manipulation der
Pfadkurve an eine neue
Hautgeometrie angepasst
werden
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
28. Pfadextrusion
28
Muskelgeometrie wird durch
Extrusion eines Profils entlang
einer Pfadkurve erzeugt
Zuordnung der Muskelpunkte
zu den Hautpunkten nicht
einfach
Erzeugte Muskelgeometrie
kann durch Manipulation der
Pfadkurve an eine neue
Hautgeometrie angepasst
werden
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
30. Muskelkontraktion mit Skalierung
30
konvexer Muskel
Schädeloberfläche
Konvexer Muskel
dringt bei Skalierung
in den Schädel ein
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
31. Muskelkontraktion mit Skalierung
31
konvexer Muskel
Schädeloberfläche
Konvexer Muskel
dringt bei Skalierung
in den Schädel ein
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
32. Muskelkontraktion entlang eines Pfades
32
Muskeln kontrahieren entlang
einer Kontraktionskurve
Das Eindringen in den Schädel
ist ausgeschlossen
Kinematische
Kontraktionssteuerung
Ähnlich dem Muskelmodell
von K. Kähler et al. und Y. Lee
et al.
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
35. Muskelkontraktion mit Federkraft
35
Kontraktionssteuerung mit Federkraft dem natürlichen
Vorbild sehr ähnlich
Muskel wird nahtlos in die Dynamik des Gesichts
integriert
Geeignet für alle Muskeltypen
Modellierung von sich ineinander verflochtener Muskeln
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
36. Simulation von Federn
36
x
k : Federkonstante
d : Dämpfung
m F m : Masse
k, d F : Kraft
x : Verschiebung
Verwendung von Federn
Darstellung des elastischen Verhaltens der Gesichtshaut
Kontraktionssteuerung beim dynamischen Muskel
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
37. Muskelkontraktion mit Federkraft
37
Endkraftgewicht 1 Endkraftgewicht 2
Ruhelänge
Die Endkraftgewichte legen in Maya fest, mit welchem
Kraftanteil die Federn auf die damit verbundenen Punkte
wirken
Steuerung der Kontraktion einer Feder über Endgewichte
möglich, die Ruhelänge wird dabei auf 0 gesetzt
Für lineare Muskeln muss die Anordnung der
Kontraktionsfedern gleichgerichtet sein
Erzeugung von gleichgerichteten Kontraktionsfedern mit
Bordmitteln nicht möglich
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
43. Hautmodelle
43
Einfaches Hautmodell
Hautmodell von K. Kähler et al. (2003)
Hautmodell von Y. Lee et al. (1995)
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
44. Einfaches Hautmodell
44
Muskeln, Haut und Knochen liegen übereinander
Federn verbinden zusammenfallende Haut-, Knochen- und
Muskelpunkte
Haut
Knochen
Muskel
Sehr einfache Implementierung
Nur für einfache Experimente geeignet
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
45. Hautmodell von K. Kähler et al.
45
gespiegelte
Knochen und Muskeln
Haut
Muskel
Muskelschicht
Knochen
v : Knotenanzahl
e : Kantenanzahl
h : Anzahl der Hautfedern
h ≤ e + 2v
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
46. Hautmodell von K. Kähler et al.
46
gespiegelte
Knochen und Muskeln
Haut
Muskel
Muskelschicht
Knochen
v : Knotenanzahl
e : Kantenanzahl
h : Anzahl der Hautfedern
h ≤ e + 2v
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
47. Instabilität Hautmodell von K. Kähler et al.
47
gespiegelter
α Knochenpunkt
S S'
Knochenpunkt Hautpunkt
y
F
x
Fy =Sy + S 'y )
−(
Fy = F
Sy = 'y = α ) ⋅ S ⇒ F = sin(α ) ⋅ 2 ⋅ S
S sin( −
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
48. Instabilität Hautmodell von K. Kähler et al.
48
gespiegelter
α Knochenpunkt
S S'
Knochenpunkt Hautpunkt
y
F
x
F
lim →∞
α →0 2 ⋅ sin(α )
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
49. Vor- und Nachteile Hautmodell von K. Kähler et al.
49
Vorteile
Einfache Umsetzung
Geringer Speicherverbrauch und Rechenaufwand bei der
Simulation
Nachteile
Inhärent instabil
Nicht selbsttragend
Setzt ein kinematisches Muskelsystem voraus
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
50. Hautmodell von Y. Lee et al.
50
Epidermis
Fettgewebe
Faszieschicht
Muskelschicht
Knochenoberfläche
v : Knotenanzahl
e : Kantenanzahl
h : Anzahl der Hautfedern
h ≤ 4e + 2v
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
51. Vor- und Nachteile Hautmodell von Y. Lee et al.
51
Vorteile
Stabilisierende Federstruktur
Selbsttragend
Näher am realen Vorbild
Nachteile
Höherer Speicherverbrauch und Rechenaufwand bei der
Simulation
Erstellung von Federn mit Bordmitteln von Maya nicht
möglich
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
52. Springs-Plug-In Hautmodell von Y. Lee et al.
52
Erstellung von Federn nach dem Hautmodell von Y. Lee et
al. mit eingebauten Funktionen von Maya nicht möglich
Erstellung von Federn mit einem MEL-Skript ist bei
komplexen Hautgeometrien nicht möglich
Erstellung von Federn über C++ API nicht dokumentiert,
aufwändige Recherchen und Reverse Engineering
Plug-In implementiert, der ein Federsystem nach Y. Lee
et al. erstellt
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
53. Hautfedernetz erstellt mit dem Springs-Plug-In
53
Komplexe Hautgeometrie
mit 6000 Punkten und
17000 Kanten
Federsystem zwischen
Epidermis und Faszie mit
70000 Federn erstellt in
t<2s
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
54. Testmethoden für Hautmodelle
54
Das Verhalten der Haut kann mit dem Berührungstest und
dem Mundtest ohne eines funktionierenden
Muskelsystems getestet werden.
Berührungstest
Die Hautoberfläche mit einem starren Körper gestreift
Bei Kollision mit dem Körper verformt sich die Haut
Mundtest
Mund öffnen und schließen durch langsame Drehung des
Unterkiefers
Die Haut folgt dem Unterkiefer
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
56. Motivation
56
Erzeugung der Faszie (innere
Hautschicht) für das
Hautmodell nach Y. Lee et al.
Durch Herunterskalieren
entstehen Überschneidungen
mit der Hautoberfläche:
Ohren, Augenlieder, Lippen
Manuelle Behebung der
Überschneidungen aufwändig
Erzeugung der Faszieschicht
durch Offset
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
57. Offsetdefinition und Vergleich mit Skalierung
57
Eine Offsetgeometrie beschreibt die Form der
Originalgeometrie, versetzt um einen Offsetabstand.
Skalierung Offset
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
58. Skalierung und Offset im Vergleich
58
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
59. Direkte und indirekte Offsetmethoden
59
Indirekte Offsetmethoden
Beschreiben das Offsetproblem bei Kurven oder
Oberflächen als partielle Differentialgleichung
Numerische Lösung der Differentialgleichung liefert die
Offsetkurve oder -oberfläche
Direkte Offsetmethoden
Propagieren die Kurven und Oberflächen direkt, basierend
auf den ursprünglichen Geometriedaten
Verändert die Topologie nicht, Dadurch einfachere
Erstellung von Federverbindungen
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
60. Skalierung und Offset im Vergleich
60
Direkter Offset in 2D
In einem Punkt schneiden sich genau zwei Geraden
Parallelverschiebung der Geraden um die gleiche
Entfernung (Offsetabstand) ergibt einen neuen
Schnittpunkt, den Offsetpunkt
Direkter Offset in 3D
In einem Punkt können sich mehr als drei Ebenen
schneiden
Parallelverschiebung von Ebenen kann mehr als einen
Schnittpunkt ergeben
Offsetpunkt in 3D nicht eindeutig bestimmt!
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
61. Verschiebungsrichtung
61
Die Verschiebung in Richtung der Durchschnittsnormalen
liefert in der Praxis gute Ergebnisse
Durchschnittsnormale ist die durchschnittliche Normale
der Flächen, die mit dem Punkt verbunden sind
Schnelle Verschiebung möglich: die Durchschnittsnormale
kann in Maya direkt ausgelesen werden
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
62. Selbstüberschneidungen
62
Bei einer direkten Offsetmethode entstehen zwangsläufig
Selbstüberschneidungen
Selbstüberschneidungen müssen nachträglich entfernt
werden
d 2d
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
63. Erkennung von Selbstüberschneidungen
63
Für jeden Schwerpunkt wird der Differenzvektor zu jedem
anderen Schwerpunkt des Originalpolygons berechnet
Sein Winkel α zum entsprechenden Differenzvektor des
Offsetpolygons überschreitet bei einer
Selbstüberschneidung 90°.
B
A A
B B
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
64. Aufwand bei Überschneidungserkennung
64
Schwerpunkte im Originalpolygon können ausgelesen
werden
Offsetschwerpunkte werden berechnet (Behebung von
Selbstüberschneidungen vor der Anwendung)
Differenzvektoren für jedes Flächenpaar im Original- und
Offsetpolygon müssen berechnet und verglichen werden:
2p² Rechenschritte für p Polygonflächen
Erkennung von Selbstüberschneidungen teuer: O(p²)
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
65. Vermeidung von Selbstüberschneidungen
65
Punkte schrittweise auf die vorgegebene Offsetentfernung
verschieben
Tritt eine Selbstüberschneidung auf, werden die Punkte
der betroffenen Flächen nicht mehr verschoben
1 2 d
Gesamtkomplexität: n ⋅ (v + p ) mit n≤ +1
2 w
d : Offsetabstand
w : Schrittweite
n : Anzahl der Durchläufe
v : Anzahl der Punkte im Originalpolygon
p : Anzahl der Flächen im Originalpolygon
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
66. Vermeidung von Selbstüberschneidungen
66
Reduzierung der Durchläufe durch Bisektion des
Offsetabstands
Verschiebung auf vollen Offsetabstand, wird eine
Selbstüberschneidung erkannt, wird der Offsetabstand
solange halbiert, bis keine Selbstüberschneidungen
gefunden werden
1 2
Gesamtkomplexität: m ⋅ (v + p ) mit
2
1 ≤ m ≤ n ⋅ log2 (n)
d : Offsetabstand d
w : Schrittweite n≤ +1
n : Anzahl der Durchläufe w
v : Anzahl der Punkte im Originalpolygon
p : Anzahl der Flächen im Originalpolygon
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
67. Erzeugung der Faszie aus der Epidermis durch Offset
67
Komplexe Hautgeometrie mit
11500 Flächen und 6000
Punkten
Berechnung der Faszieschicht
durch Offset in t < 1/25 s
Berechnung der Faszieschicht
durch Offset mit Vermeidung
von Selbstüberschneidungen
(mit Bisektion) in t < 3 min
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
68. Zusammenfassung
68
Vorhandene veröffentlichte Muskel- und Hautmodelle
untersucht und Möglichkeiten vorgestellt, diese Modelle in
abgewandelter Form in Autodesk Maya zu implementieren
Dynamisches Muskelmodell vorgeschlagen, bei der die
Kontraktion mit Federkraft gesteuert wird und mit dem
alle Muskeltypen modelliert werden können
Hautmodell von K. Kähler et al. implementiert und
Schwächen des Modells untersucht
Gute Animationsergebnisse mit dem Hautmodell von Y.
Lee et al. erzielt
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
69. Zusammenfassung
69
Vorhandene Offsetmethoden untersucht und eine einfache
und schnelle direkte Offsetmethode mit Vermeidung von
Selbstüberschneidungen als Plug-In für Autodesk Maya
implementiert
Damit wurde die Erstellung des doppelschichtigen
Hautmodells nach Y. Lee et al. möglich
Direkte Federverwaltung in Maya über C++ API
dokumentiert und ein Plug-In implementiert, der ein
Federsystem nach Y. Lee et al. erstellt
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
70. Ausblick
70
Weiterentwicklung des mit Federkraft kontrahierenden
Muskels:
Automatische Erstellung gleichgerichteter Federn
Umfangänderung abhängig von der Kontraktion
Werkzeuge für die Erstellung und Verwaltung von
Federsystemen in Maya
Kombination des Hautmodells von Y. Lee et al. und des
mit Federkraft kontrahierenden Muskels
Offset: Selbstüberschneidungen schneller erkennen
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
71. Vielen Dank für die Aufmerksamkeit!
71
Fragen?
Live Demos in Maya…
www.muskelbasierte-gesichtsanimation.de
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
72. Literatur
72
Y. Lee et al.
Lee, Yuencheng; Terzopoulos, Demetri; Walters, Keith:
Realistic Modeling for Facial Animation. New York, NY :
ACM Press, 1995. – 55–62 S. – ISBN 0–89791–701–4
K. Kähler et al.
Kähler, Kolja: A Head Model with Anatomical Structure for
Facial Modeling and Animation / Universität des
Saarlandes. Saarbrücken, 2003. – Forschungsbericht
Pawel Kazakow
Dynamisches Hautmodell für Muskelbasierte Gesichtsanimation
Notes de l'éditeur
Hardware wird immer schneller, daher Rechenaufwand zweitrangig. Zur Gesichtsanimation gehören auch Augen- und Zungenbewegungen. Sie sind für einen realistischen Gesamteindruck sehr wichtig. In dieser Arbeit beschränke ich mich auf die Simulation der Hautbewegungen, denn sie stellt die größte Herausforderung dar.
Demo 1 – Dynamikanimation
Demo 2 – gegebene Hautgeometrie, Polygone
Hautgeometrie gegeben Muskeln und Knochen abgeleitet Steuerung der Muskeln Muskeln beeinflussen die Haut Knochen und Haut beeinflussen den Muskel, falls dynamisches Modell Pfeil: Abhängigkeit Kinematisches Muskel kontrahiert unabhängig vom Knochen und Haut
Parametergesteuerte Gesichtsanimation Erste Versuche um 1970 Aufwand und Kosten bei großen Projekten akzeptabel Muskelbasierte Gesichtsanimation Erste Versuche um 1990 Offenes Forschungsfeld
Von den 26 Gesichtsmuskeln des Menschen sind im wesentlichen 8 für die Mimik verantwortlich http://de.wikipedia.org/wiki/Gesichtsmuskeln
Hautdicke: 1 bis 4 mm
Hautdicke: 1 bis 4 mm
Hautdicke: 1 bis 4 mm
Hautdicke: 1 bis 4 mm
Festlager: Starrer Körper (z. B. der Schädel) Gleitlager: Elastischer Körper (z. B. Haut)
Festlager: Starrer Körper (z. B. der Schädel) Gleitlager: Elastischer Körper (z. B. Haut)
Ruhelänge der Federn zwischen Haut und Knochen ist gleich Null.
Ruhelänge der Federn zwischen Haut und Knochen ist gleich Null.
Wenig Speicherverbrauch
Jahr: 1995
Mehr Federn zusätzlich wegen der geforderten höheren Auflösung des Polygons.
Erstellung von ca. 70 000 Federn bei einem Kopf mit 60 000 Punkten Der Skript wird abgebrochen, es werden nur 16 000 Federn erstellt (Arbeitsspeicher reicht nicht aus) Erstellung von 70 000 Federn mit dem Plug-In in wenigen Sekunden möglich!