Facial Animation in MPEG-4 - Seminarausarbeitung zum Thema
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Seminarausarbeitung zum Thema Facial Animation in MPEG-4 Bearbeitet von: Ute von Angern Stefan Bredow Christian Gey Tutor: Kai Köchy Erstellt im Rahmen des Seminars „3D-Grafikechtzeitsysteme und Virtual Reality“ an der TU Berlin, Fachbereich Computer Grafik, im Sommersemester 2000. 1
Inhaltsverzeichnis 1. MOTIVATION FÜR DEN MPEG-4 STANDARD ....................................................................................3 2. REALISIERUNG IN MPEG-4.....................................................................................................................3 2.1 WAS IST MPEG-4 UND WOZU IST ES GUT? ............................................................................................3 2.1.1 Einleitung.........................................................................................................................................3 2.1.2 Umfang und Merkmale des Standards.............................................................................................4 2.1.3 Repräsentation von Medienobjekten................................................................................................4 2.2 AUFBAU EINER SZENE IN MPEG-4 ........................................................................................................4 2.2.1 Manipulation einer Szene ................................................................................................................6 2.3 INTERAKTION DURCH VRML ................................................................................................................6 2.3.1 BIFS- Binary Format for Scenes .....................................................................................................6 2.4 MPEG-4 STRUKTUR ............................................................................................................................... 6 3. FACIAL ANIMATION.................................................................................................................................7 3.1 EINLEITUNG ............................................................................................................................................7 3.2 FACIAL ANIMATION IN MPEG-4 .........................................................................................................10 3.3 DEFINITIONSPARAMETER/FEATURE POINTS (FPS) .............................................................................12 3.4 ANIMATIONSPARAMETER .....................................................................................................................13 3.5 PROPRIETÄRES GESICHTSMODELL ......................................................................................................15 3.5.1 Definition von Animationsregeln mit Hilfe von Face Animation Tables (FAT)............................. 17 3.5.2 Animationsregeln für eine Transform-Node .................................................................................. 17 3.5.3 Animationsregeln für eine IndexedFaceSet-Node.......................................................................... 17 4. INTEGRATION IN MPEG-4 SYSTEME.................................................................................................20 5. ZUSAMMENFASSUNG.............................................................................................................................20 6. QUELLEN.................................................................................................................................................... 21 2
Seminarausarbeitung zum Thema: Facial Animation in MPEG-4 Abstract Die Ausarbeitung beschäftigt sich mit dem vom MPEG-4 Standard vorgegebenen System zur Facial Animation. Dabei wird kurz auf den Standard im Allgemeinen eingegangen um dann hauptsächlich den Vorgang der Decodierung von Parametern und der dabei erzeugten Face Animation zu beschreiben. 1. Motivation für den MPEG-4 Standard Die in den letzten Jahren hohe Zunahme der Leistungsfähigkeit von Prozessoren, Grafikkarten und sonstiger Hardware hat angeregt, über die sinnvolle Nutzung dieser Ressourcen nachzudenken. Gleichzeitig wurde eine geringe Datenübertragungsrate für einige Anwendungsgebiete, wie zum Beispiel die Videotelefonie, gefordert. Dabei verhält sich dieser Zusammenhang umgekehrt proportional zueinander: Je geringer die Datenübertragungsrate, desto höher ist in der Regel der Aufwand des Decoders. Ein weiteres Anwendungsgebiet, wo dieses Schema zutrifft, ist die Face (auch Facial) Animation, worauf später detailliert eingegangen wird. Weitere Anforderungen an den Standard waren: • inhaltsbasierter Zugriff (Video- und Audio-Objekte) und Interaktivität (Client- Server-Interaktion, aber auch Manipulation nur auf der Client-Seite möglich) • eine gute Skalierbarkeit auf En- und Decoderseite (temporal und spatial) • Komposition von natürlichen (Video: pixelbasierten) und synthetischen (Video: 2D/3D-Drahtgittermodelle) Audio- und Video-Objekten in einer Szene 2. Realisierung in MPEG-4 An dieser Stelle werden einige grundlegende Dinge zum MPEG-4 Standard gesagt die (nicht nur) für das Verständnis der Facial Animation wichtig sind. 2.1 Was ist MPEG-4 und wozu ist es gut? 2.1.1 Einleitung MPEG-4 ist ein ISO/IEC Standard definiert von der Moving Picture Expert Group (MPEG). Ziel war es, niedrige Datenübertragungsraten als auch Anwenderinteraktionen zu ermöglichen. Es soll ermöglicht werden einzelne bewegte Objekte aus dem Gesamtbild zu separieren und auf mehreren Kanälen separat zu speichern und wiederzugeben. MPEG-4 wurde erstellt, um die drei Bereiche zu ermöglichen: • Digitales Fernsehen • Interaktive Graphik Programme (künstlichen Inhalts) • Interaktive Multimedia (World Wide Web) Ein Problem ergibt sich durch die unterschiedliche Übertragungsgeschwindigkeit und der damit verbundenen Qualität der Informationen. Einem Benutzer stehen zum Empfang von Informationen über Kabel bzw. Satellit mehrere MBit/s zu Verfügung (unidirektional), bei 3
Benutzung des heimischen PC maximal 64 KBit/s (pro ISDN-Kanal), im Mobilfunk nur noch 9,6 KBit/s. Es wird ein Standard benötigt, der den Austausch von Audio- und Video Informationen in den drei Bereichen in einem einheitlichen Format definiert um einen reibungslosen Datentransfer und Wiedergabe zu gewährleisten. Wesentliche Anforderungen an MPEG-4 sind: • Gute Skalierbarkeit auf En- und Decoder Seite • Inhaltsbasierter Datenzugriff • Hohes Maß an Interaktivität • Darstellungsmöglichkeit von natürlichen und synthetischen Audio- und Videoinformationen Im Gegensatz zu den vorherigen Standards (MPEG-1 und MPEG-2), bei denen nur auf Änderungen der Bildmatrix gerechnet wurde, fallen dabei rechenintensive Algorithmen an, bei denen die Objekte lokalisiert, abgetastet und geeignet kodiert werden müssen. MPEG-4 ist kein Ersatz für MPEG-1 bzw. MPEG-2 sondern eine Ergänzung. MPEG-4 legt kein einheitliches Kompressionsverfahren fest, sondern definiert eine Toolsammlung von Audio- und Videokompressionsverfahren. 2.1.2 Umfang und Merkmale des Standards MPEG-4 • repräsentiert aurale, visuelle oder audiovisuelle Inhalte in Form von Medienobjekten. Diese können natürlichen oder synthetischen Ursprungs sein. Das bedeutet, sie sind mit Kamera und Mikrophon aufgenommen oder wurden im Computer generiert. • beschreibt die Zusammenfassung dieser Objekte zu zusammengesetzten Medienobjekten, die eine audiovisuellen Szene formen. • verbindet und synchronisiert die Daten mit den dazugehörigen Medienobjekten, so daß sie über Netzwerk oder anderen Wegen transportiert werden können und auf der Empfängerseite wiedergegeben werden kann. • ermöglicht das interaktive Eingreifen in eine Szene. 2.1.3 Repräsentation von Medienobjekten Eine MPEG-4 Szene besteht aus verschiedenen Medienobjekten, welche hierarchisch angeordnet sind. Am unteren Ende der Hierarchie (leafs) befinden sich primitive Medienobjekte wie: • Bilder (Hintergrund) • Videoobjekte (sprechende Person) • Audioobjekte (Stimme des Sprechers) ... In MPEG-4 werden solche primitiven Objekte standardisiert, um diese als natürliche oder synthetische Repräsentation darzustellen. MPEG-4 definiert diese wie folgt: • Text und Graphik • sprechender künstlicher Kopf und benutzt Sprache zum animieren eines Kopfes • synthetischer Sound 2.2 Aufbau einer Szene in MPEG-4 Es wird der prinzipielle Aufbau einer MPEG-4 Szene anhand eines Beispiels erklärt. Im Gegensatz zu den bisherigen Komprimierungsstandards steht nicht mehr die 4
Komprimierung einer Pixelmatrix im Vordergrund sondern der Szeneninhalt. Dadurch wird ein hohes Maß an Flexibilität erreicht. Ein genereller Weg zum beschreiben einer Szene in MPEG-4 ist: • plazieren von Medienobjekten irgendwo in ein gegebenen Koordinatensystem • anwenden von Transformation zum verändern der geometrischen oder akustischen äußeren Erscheinen eines Medienobjekts • gruppieren von primitiven Medienobjekten zu zusammengesetzten Medienobjekten • Änderungsdaten zu Medienobjekte senden, um diese zu modifizieren (z.B.: Sound, bewegende Texturen entlang eines Objekts, Animationsparameter zum lenken eines künstlichen Gesichts) • Interaktive Änderung des Blickpunkt des User’s irgendwo in der Szene. Ein Szenengraph, der durch einen gerichteten zyklenfreien Graphen realisiert wird, sorgt für die korrekte räumliche und zeitliche Positionierung der einzelnen Objekte. a u d i o v is u a l o b j e c t s v o ice a u d io visu a l m u ltip le xe d sp rite p re sen ta tio n d o w n strea m c o n tro l / d a ta 2 D b a c kg ro u n d y m u ltip le xe d 3 D o b je cts u p strea m sc en e co n tro l/d a ta c o o rd in a te syste m x z u se r e v en ts v id e o a u d io c o m p o sito r c o m p o sito r p ro je ctio n p la n e h y p o th etic a l view e r d isp la y sp e a ke r u ser in p u t Bild 1 - MPEG-4 Szene 5
2.2.1 Manipulation einer Szene Die Möglichkeiten zur Manipulation in MPEG-4 werden durch den Szenengraphen bestimmt. Der Autor bestimmt inwieweit in die Szene eingegriffen werden kann. Das Eingreifen in eine Szene kann vom Abschalten bis zum Ersetzen bzw. Hinzufügen primitiver Objekte gehen. Beispielsweise kann ein Audioobjekt „englische Sprache“ durch das Audioobjekt „deutsche Sprache“ ersetzt werden. Weiterhin besteht die Möglichkeit, durch Manipulation der Koordinaten der Objekte, diese beliebig im Raum zu positionieren. Eine weitere Möglichkeit besteht darin, durch Manipulation der virtuellen Kamera, den Betrachterpunkt zu verändern, um sich somit beliebig durch eine Szene zu bewegen oder die Szene aus dem Blickwinkel eines beliebigen Darstellers zu betrachten. 2.3 Interaktion durch VRML MPEG-4 wurde stark vom VRML-Standard beeinflußt. VRML ist eine Sprache zur Beschreibung von 3D-Welten und 3D-Objekten. In VRML können Objekte mit Sensoren versehen werden, welche es ermöglichen z.B. auf einen Mauszeiger zu reagieren, um dann Manipulationen am Objekt hervorrufen. Diese Sensoren können weiterhin andere Sensoren (routes) aktivieren und eine Kette von Ereignissen hervorrufen. 2.3.1 BIFS- Binary Format for Scenes BIFS ist eine binäre Sprache für die Beschreibung der Objekte im Szenengraphen. Es ist das komprimierte Format, in welchem Szenen definiert und modifiziert werden. Dazu hat es das Node-Prinzip und das Event-Modell aus VRML übernommen. MPEG-4 definiert den konkreten Bit-Stream jedoch komplett anders. Weiterhin fügt MPEG-4 verschiedene Mechanismen zum Daten-Streaming, zu Szenen-Updates und der Kompression hinzu. 2.4 MPEG-4 Struktur Die Struktur von MPEG-4 kann als ein Schichtmodel interpretiert werden, die im wesentlichen aus drei Schichten besteht • erste Schicht ist der Delivery Layer • Syncronisation Layer • Decompression Layer Der Delivery Layer, besteht im wesentlichen aus zwei Teilen. Der erste Teil sorgt dafür, dass der eingehende Datenstrom unabhängig von dem Übertragungsmedium ist. Hierfür wurde das Delivery Multimedia Integration Framework (DMIF) benutzt. DMIF: Innerhalb des DMIF-Teils des MPEG-4-Standards wird das DMIF-Application Interface (DAI) definiert, über welches die Applikation mit ihrem zugehörigen DMIF-Modul kommuniziert. DMIF kümmert sich um Dinge wie Verbindungsaufbau und -steuerung, was die übergeordnete Applikation selbst unabhängig vom verwendeten Netzwerk, Übertragungs- oder Speicher-medium macht. DMIF benutzt einen oder mehrere flexible Multiplexer, FlexMuxe. Diese statistischen Multiplexer haben die Aufgabe, Daten, die von den Encodern kommen, an das Netzwerk weiterzuleiten. Parameter wie eine Strompriorität oder Deadlines können verwendet werden, um zu entscheiden, 6
wie bei unzureichender Bandbreite vorgegangen werden soll, um die Präsentationsqualität insgesamt zu maximieren. Der zweite Teil besteht im wesentlichen aus einem Demultiplexer, der den ankommenden Datenstrom in elementare Datenströme (ES) zerlegt. Hierbei entspricht normalerweise ein elementarer Datenstrom einem primitiven Objekt. Der Szenengraph wird ebenfalls durch einen elementaren Datenstrom repräsentiert. In der Synchronisationsschicht werden die einzelnen Objekte synchronisiert und mit Zeitstempeln versehen. Bei der Synchronisierung ist zu beachten, daß nicht nur wie bisher die Synchronisation von Video und Audio sichergestellt sein muß. Besteht eine Szene aus mehreren Medienobjekten, müssen diese auch miteinander synchron dargestellt werden. Dies erfordert eine Erweiterung des bisher bei MPEG verwendeten Buffer-Managements in der Form, daß jedes Medienobjekten seine eigenen (virtuellen) Buffer-Strukturen erhält. Um die Anordnung der Medienobjekten innerhalb der 3D-Szene zu übertragen, wird ein an VRML angelehnter Binärcode übertragen, der vom Decoder entschlüsselt werden muß. Schließlich muß die Komposition der Objekte anhand der Szenenbeschreibung sowie die Darstellung für den Endbenutzer erfolgen. Weiterhin findet hier bereits ein Teil der Fehlererkennung und Korrektur statt. In der letzten Schicht, der Decompression Layer, werden die einzelnen elementaren Datenströme an den entsprechenden Decoder weitergeleitet und decodiert. Die Szene wird nun zusammengestellt und anschließend dargestellt. Elementary Streams Elementary Stream Interface SL SL SL SL SL .... SL SL Sync Layer FlexMux Channel SL-Packetized Streams DMIF Application Interface Delivery Layer FlexMux FlexMux FlexMux DMIF Layer TransMux Channel FlexMux Streams DMIF Network Interface (RTP) (PES) .... File Broad- Inter- AAL2 H223 DAB TransMux Layer cast active UDP MPEG2 ATM PSTN Mux (not specified in MPEG-4) IP TS .... TransMux Streams Bild 2 - MPEG-4 System Layer Modell 3. Facial Animation 3.1 Einleitung Facial Animation ist ein zentrales Gebiet der virtuellen Realität. Es befaßt sich mit der Aufgabe, Gesichter virtueller Akteure, sogenannter Avatare, so realistisch wie mögliche zu synthetisieren. Die glaubwürdige Animation von menschlichen Modellen und des menschlichen Gesichtes im besonderen stellt eine große Herausforderung der Computergrafik dar. Die Schwierigkeit besteht darin, daß feinste Veränderungen im Gesichtsausdruck bereits für die zwischenmenschliche Kommunikation bedeutsam sind und sie deshalb von anderen Menschen genau beobachtet und gelernt werden. Dabei ist es 7
nicht unbedingt nötig, eine möglichst naturgetreue Nachbildung zu erreichen, man kann schon mit wenigen Strichen einen Gesichtsausdruck darstellen. Es gilt, das Wesentliche eines Ausdruckes zu realisieren und darzustellen. Wenn man sich für ein detaillierteres Gesichtsmodell entscheidet, muß aber auch in Betracht gezogen werden, das die Animation desselben ebenfalls komplexer wird. Auf dem Gebiet der Facial Animation haben sich drei Kernpunkte herausgebildet: - Entwicklung von Methoden zur Analyse von realen Gesichtern. Die Extraktion der 3D-Information aus den zugrundeliegenden monokularen Bildern ist dabei der erste Schritt. Ein wichtiger Aspekt für die Verwendung eines Analyseverfahrens zur Bestimmung der Parameter ist dessen Robustheit, vor allem in bezug auf Helligkeitsänderungen und Verdeckungen, aber auch auf globale Bewegungen des Kopfes innerhalb einer Sequenz. - Entwicklung von Modellen für menschliche Gesichter. Also den Aufwand (Größe, Komplexität) des Modells zu minimieren, aber dabei das Gesicht so realistisch wie möglich zu beschreiben. - Entwicklung von Methoden zur Steuerung der Animation von Gesichtern. Also das Synthetisieren des Videos aus dem Modell und die Synchronisation mit der Sprache. Facial Animation bietet für viele Anwendungen neue Lösungsansätze und Möglichkeiten. Zum Beispiel bei der Bildtelefon oder Videokonferenz, wo die Kompression sehr wichtig ist. Bei der Videotelefonie gibt es das klassische Szenario einer Person, welche frontal mit dem Gesicht bis hinunter zum Oberkörper vor einem relativ statischen Hintergrund von einer Kamera erfaßt wird. Anstatt wie bei den klassischen Verfahren den Videostrom der Kamera durch ein im Ortsbereich blockorientiertes Verfahren zu komprimieren, kann man auch die Szene mit Hilfe von Facial Animation Methoden analysieren und nur die Änderungen übertragen. Nach der Initialisierungsphase, bei der ein 3D-Modell der Person erstellt wird, dieses und das Hintergrundbild übertragen wird, müssen dann nur noch Änderungsdaten des Modells übertragen werden. Auf der anderen Seite wird aus dem Modell unter Berücksichtigung der Änderungsdaten das Videobild synthetisiert. Mit dieser Methode erreicht man eine Datenreduktion bis auf 1 Kbit/s im Vergleich zu MPEG- 1 oder MPEG-2, wo es 64 Kbit/s sind. 8
Bei MPEG-4 wird Facial Animation auch zur Kompression der Gesichter und für das interaktive Fernsehen einsetzen. Wenn es sinnvoll ist, also das Gesicht eine gewisse Größe hat, wird es ähnlich wie bei der Videotelefonie komprimiert. Das Gesichtsmodell, das bei der Analyse des realen Gesichtes erzeugt wird, muß dabei nicht zwingend bei der Animation des synthetischen Gesichtes benutzt werden, sondern kann durch ein anderes, von einer anderen Person ersetzt werden. Dadurch kann der Zuschauer z.B. den Nachrichtensprecher oder Filmhelden durch eine andere Person ersetzen. Video 1: Analysemodell gleich dem Synthesemodell, links der originale Videostrom und rechts der synthetische Video 2: Analysemodell und Synthesemodell unterschiedlich, links der originale Videostrom und rechts der synthetische Es existieren einige Systeme mit verschiedenen Ansätzen zur Realisation der Facial Animation. Da wäre zum einen die Realisation mit Hilfe eines Parametermodells (Parke) oder auch ein auf diesem aufbauendes Modell mit Muskeln (Waters). Bevor man mit der Modellierung und Animation des Gesichts beginnen kann, benötigt man ein 3D-Modell des Kopfes bzw. des Gesichts. Natürlich gibt es sehr viele verschiedene Ansätze für die Gewinnung des 3D-Modells. Es seien nur einige Methoden stichpunktartig genannt: - 3D Scanner - Orthogonale Photos/Videos - CT und MRI - 3D Modellierungsprogramme. 9
Das ist aber mehr eine Sache des Kodierens und wird vom MPEG-4 Standard nicht vorgeschrieben, ebenso wie auch die Extrahierung der Parametern dieses 3D-Modells nicht vom Standard vorgeschrieben ist. Das ist den Entwicklern und Programmierern überlassen. 3.2 Facial Animation in MPEG-4 Der MPEG-4 Standard beschreibt ein parametrisiertes Modell sowohl für das Gesicht wie auch für den gesamten menschlichen Körper, mit denen es möglich ist Facial bzw. Body- Animation durchzuführen. Im Folgenden soll es hier nur um die Facial Animation gehen. Wie auch schon im Abstract gesagt, beschränken wir uns hier auf die Darstellung der Decodierung der standardisierten Parameter. Eine ausführliche Diskussion über die unterschiedlichen Ansätze zur Gewinnung der Parameter auf der Encoderseite würde den Rahmen dieser Ausarbeitung sprengen. Das 3D-Modell des Kopfes bzw. des Gesichts in MPEG-4 besteht aus Polygonen, welche auch Attribute wie z.B. Farbe oder Textur haben können. Durch Parameter werden sogenannte Feature Points verändert und somit eine Modellierung des Kopfes, und bei zeitlicher Veränderung der Parameter, die Animation dargestellt. Dabei werden die Eckpunkte (vertices) der Polygone indirekt durch die Parameter in ihrer Lage verändert. Die Verschiebung der Punkte ist abhängig von den Werten der Parameter. So bedeutet z.B. ein großer Wert für die Bewegung der Mundwinkel-Parameter ein breites Lächeln. Insgesamt gibt es, wie in Bild 3 angedeutet, 84 Feature Points im neutralen Modell des menschlichen Gesichts von MPEG-4. Der Hauptzweck der Feature Points ist die räumliche Referenz für die FAPs. Die FP wurden so ausgewählt, daß man durch Lageveränderung derselben, alle möglichen Gesichtsausdrücke und Animationen darstellen kann. 10
Bild 3. Feature Points in MPEG-4 11
Im Standard ist außerdem festgelegt, daß in jedem Decoder ein sogenanntes neutrales Gesicht enthalten ist. Der Kopf in seiner neutralen Position ist in Bild 4 dargestellt : Bild 4. Neutrales Gesichtsmodell mit Feature Points für die FAPUs Der Blick geht in Richtung positiver z-Achse; alle Gesichtsmuskeln sind entspannt; die Augenlider sind parallel zur Iris; die Pupille ist 1/3 vom Iris-Durchmesser; Lippen sind geschlossen; die Lippenlinie ist horizontal und in der selben Höhe wie die Lippenecken; der Mund ist geschlossen und die Zähne berühren sich, die Zunge liegt flach und berührt dabei die Grenze zwischen oberen und unteren Zähnen. Die Parameter werden aufgeteilt in zwei verschiedene Kategorien: Solche, die die Form und Struktur des Gesichtes beschreiben und somit für das unterschiedliche Aussehen des Gesichts verantwortlich sind, in MPEG-4 Face Definition Parameter (FDP) genannt und solche, die die Veränderung der Gesichtszüge ausdrücken, die Face Animation Parameter (FAP). Weil FAPs Gesichter verschiedener Größe und Proportionen animieren sollen, sind die FAP-Werte in Face Animation Parameter Units (FAPU) definiert. Sie skalieren die FAPs bei generischen Gesichtsmodellen. FAPUs werden in Einheiten von den Distanzen (ES0, MNS0 usw.) zwischen Gesichtsregionen ausgedrückt (siehe Bild 4). Dazu ist folgende Tabelle aufschlußreich: IRISD0 Iris diameter (by definition it is equal to the distance IRISD = IRISD0 / 1024 between upper ad lower eyelid) in neutral face ES0 Eye separation ES = ES0 / 1024 ENS0 Eye - nose separation ENS = ENS0 / 1024 MNS0 Mouth - nose separation MNS = MNS0 / 1024 MW0 Mouth width MW=MW0 / 1024 AU Angle unit 10E-5 rad 3.3 Definitionsparameter/Feature Points (FPs) Einige Feature Points, wie zum Beispiel die entlang der Haarlinie, werden nicht von FAPs beeinflußt. Sie werden gebraucht, um ein generisches Gesichtsmodell zu modellieren. Um ein individuelles Gesicht zu formen, bieten die Face Definition Parameter einige Hilfsmittel an. So kann eine FDP-Node (MPEG-4 BIFS-Node) aus Feature-Point- Koordinaten, Textur-Koordinaten, Texture-Typ, FaceDefTables und FaceSceneGraph bestehen. 12
Damit ist es möglich, die statische Geometrie des Gesichts in der neutralen Position mit Hilfe des FaceSceneGraph zu bestimmen, einige Oberflächenmerkmale unter Zuhilfenahme der Textur zu modellieren und Animationsregeln mit den Face Animation Tables (FAT, FaceDefTables ist eine Spezialisierung der FAT) zu bestimmen. Die FDPs können aber auch dazu benutzt werden, das proprietäre Modell des Encoders zu kalibrieren, obwohl der MPEG-4 Standard nicht spezifiziert, wie das geschehen soll. 3.4 Animationsparameter Die Face Animation Parameter basieren auf dem Studium von minimalen perceptiblen Aktionen im Gesicht und sind nahe verwandt mit Muskelbewegungen. Die 68 Parameter sind aufgeteilt in 10 Gruppen, die zu den unterschiedlichen Regionen des Gesichtes gehören. (Tabelle 1) Tabelle 1. FAP-Gruppen Tabelle 2.Viseme und zugehörige Phoneme FAPs repräsentieren ein komplettes Set von grundlegenden Gesichtsbewegungen inklusive Kopfbewegung und die Kontrolle der Zunge, Augen und des Mundes. Für jeden FAP definiert der Standard die passende FAPU, FAP Gruppe, Richtung der positiven Bewegung und wenn die eventuelle Bewegung des Feature Points unidirektional (z.B. FAP3, offener Kiefer) oder bidirektional (z.B. FAP 48, Kopfneigung) ist. FAPs können auch zur Definition von Facial Action Units benutzt werden. Wie aus Tabelle 1 ersichtlich, müssen die FAPs in Gruppe 1 ziemlich abstrakt sein, weil nur 2 FAPs zur Definition ausreichen. In der Tat sind die Beiden High-Level-Parameter. Die Viseme (FAP1) sind das visuelle Pendant zum Phonem. 14 Viseme sind klar definiert und im Standard enthalten (Tabelle 2). 13
Um gleichzeitige Animation von Sprache und Mund-Bewegung zu erreichen, ist es nötig eine geignete Methode zur Komposition von FAP-Werten zu finden. Die Mundform eines sprechenden Menschen wird auch nicht nur von dem aktuellen Phonem/Visem sondern auch von dem vorangegangenen und nachfolgenden bestimmt. Das Problem des Übergangs von einer Aktion zur anderen wird also größer, wenn mehrere High-Level Aktionen zur selben Zeit Werte für einen FAP setzen. Somit ist eine gleichzeitige Beeinflussung eines Feature Points durch 2 FAP-Werte gegeben. In MPEG-4 wird die Transition von einem Visem zum nächsten durch Blendung von nur 2 Visemen mit einem gewichteten Faktor erreicht (Bild 5). Bild 5. Transition durch gewichteten Faktor In Bild 5a ist solch eine Situation dargestellt, in Bild 5b ist der gemittelte Wert der FAP5- Intensität zu sehen. Es ist ersichtlich, daß durch die bloße Durchschnittsbildung starke Diskontontinuitäten vor allem an den Überschneidungsgrenzen auftreten können, was in ruckartigen Animationen resultieren kann. Mit einer gewichtete Kurve für jede High- Level Bewegung kann der Beitrag, den die High-Level Bewegungen an ihrem Anfang und Ende einbringen, vermindert werden (Bild 5c und 5d). Gewöhnlich wird sich der Wert der gewichteten Kurve zwischen 0 und 1 befinden (prozentualer Anteil). FAP2 definiert 6 primitive Gesichtsausdrücke – die Expressions (Tabelle 3, Bild 6). Im Gegensatz zu den Visemen werden Expressions animiert durch einen Wert (0-63), der die Ausprägung (i.S. lachen vs. schmunzeln) des Ausdrucks festlegt. Für jedes Gesichtsmodell werden diese Parameter individuell festgelegt. Tabelle 3. Expressions Expression textual description name 1 Joy The eyebrows are relaxed. The mouth is open and the mouth corners pulled back toward the ears. 2 Sadness The inner eyebrows are bent upward. The eyes are slightly closed. The mouth is relaxed. 3 Anger The inner eyebrows are pulled downward and together. The eyes are wide open. The lips are pressed against each other or opened to expose the teeth. 4 Fear The eyebrows are raised and pulled together. The inner eyebrows are bent upward. The eyes are tense and alert. 5 Disgust The eyebrows and eyelids are relaxed. The upper lip is raised and curled, often asymmetrically. 6 surprise The eyebrows are raised. The upper eyelids are wide open, the lower relaxed. The jaw is opened. 14
Bild 6. Expressions (v.l.n.r. Wut/Zorn, Freude, Ekel, traurig, Angst, Überraschung) 3.5 Proprietäres Gesichtsmodell Ein Gesichtsmodell gemäß MPEG-4 sollte mindestens soviele Vertices haben wie Feature Points, damit alle FAP angewendet werden können. Für ansprechendes Aussehen und Animation sollte das Modell aber wenigstens 500 Eckpunkte (Vertices) haben. Ein proprietäres (individuelles) Gesichtsmodell in MPEG-4 könnte man folgendermaßen entwickeln: I. Man definiert die Struktur und Umrisse des Gesichts und definiert die Feature Points gemäß Bild 3. II. Für jeden FAP bestimmt man nun, wie der Feature Point sich zu bewegen hat. Für die meisten Punkte definiert MPEG-4 leider nur Bewegungen in einer Dimension, deshalb obliegt es dem Designer, eine subjektiv ansprechende Gesichtsdeformation für jeden FAP zu implementieren. (Zum Beispiel verrückt FAP 54 die äußere rechte Lippenecke horizontal, obwohl beim Menschen gleichzeitig eine Bewegung nach hinten zu erkennen ist.) III. Nach der Bewegung der Feature Points muß noch die Auswirkung auf die angrenzenden Vertices (Eckpunkte) bestimmt werden. Dieses Mapping der Bewegung der FPs auf Vertex-Bewegung kann durch Face Animation Tables (FATs), muskelbasierte Deformation oder Distanz-Transformation geschehen. Jetzt ist unser Modell fertig für die Animation mit MPEG-4 FAPs. Berücksichtigt wird bei jeder Gesichtsanimation auch das Geschlecht des Modells, dabei wird dem MPEG-4 Terminal (Decoder) mitgeteilt ob männlich oder weiblich und er deformiert dann sein Modell entsprechend. Das verhindert die Präsentation eines weiblichen Gesichts unterlegt mit einer männliche Stimme und umgekehrt. Adaption eines proprietären Modells Durch die Definition von allen oder einigen Feature Points durch den Encoder, muß der Decoder sein eigenes Modell anpassen- adaptieren, und zwar so, das das Modell zu den Feature Point-Positionen konform ist. Aber MPEG-4 spezifiziert keine Algorithmen für diese Adaption, so das die Qualität nach der Adaption nicht voraussagbar ist. Behilflich ist aber der Download von Texturen. Für das Textur-Mapping sendet der Encoder Textur- Koordinaten für jeden Feature Point (FP). Jede Textur-Koordinate definiert die Lage eines FPs auf der Textur. Das ist aber zu ungenau an wichtigen Gesichtsmerkmalen wie den Augenlidern oder den Lippen. Um das zu berichtigen, gibt es natürlich wieder viele Ansätze von Dritten, wie z.B. einen Iterativen Ansatz oder etwa die Übertragung eines Meshes als Ergänzung zu den FPs. 15
Da aber MPEG-4 so etwas nicht von sich aus implementiert, wird die Adaption des Gesichtsmodells wahrscheinlich von vielen Encodern nicht implementiert werden. Szenengraph und neutrales Gesichtsmodell In einem Szenengraphen spezifiziert der Encoder die statische Geometrie des Gesichtsmodells. Dazu bedient sich MPEG-4 des Node-Prinzips aus VRML (MPEG-4 BIFS). Drei Typen von Nodes sind von Interesse für die Definition eines statischen Kopfmodells. Eine Group-Node ist ein Kontainer für untergeordnete Objekte, es erlaubt also ein hierarchisches Modell. Objekte, die zusammen bewegt werden sollen, müssen sich in der gleichen Transform-Gruppe befinden. Die Transform-Node definiert geometrisch affine 3D-Transformationen wie Skalierung, Rotation und Translation, die auf die untergeordneten Objekte angewendet werden. Wenn Transform-Nodes andere Transform-Nodes als Unter-Nodes enthalten, hat das kumulative Effekte. Eine IndexedFaceSet–Node definiert die Geometrie (3D-Mesh) und Oberflächenattribute (Farbe, Textur) von Polygon-Objekten. Bild 7 stellt einen vereinfachten Szenengraphen für ein Gesicht dar, dabei werden verschachtelte Transformationen benutzt, um die jeweiligen Transformationen nacheinander auszuführen. Eigenständige IndexedFaceSets definieren den Umriß und die Oberfläche des Gesichts, der Haare, der Zunge und des linken und rechten Auges, was Root G ro u p H e a d R o ta tio n X Tra n s fo m H e a d R o ta tio n Y Tra n s fo m H e a d R o ta tio n Z Tra n s fo m Fa c e H a ir To n g u e L e ftE ye Tra n s fo rm X R ig h tE ye Tra n s fo rm X In d e x e d F a c e S e t In d e x e d F a c e S e t In d e x e d F a c e S e t Tra n s fo rm Tra n s fo rm L e ftE ye Tra n s fo rm Y R ig h tE ye Tra n s fo rm Y Tra n s fo rm Tra n s fo rm L e ftE ye R ig h tE ye In d e x e d F a c e S e t In d e x e d F a c e S e t Bild 7. Vereinfachter FaceSceneGraph (Die Namen der BIFS-Nodes sind kursiv geschrieben) auch separate Texturen erlaubt. Außerdem kann man den Szenengraphen einfach erweitern, z.B. zu einem Kopf-Schulter Modell. 16
3.5.1 Definition von Animationsregeln mit Hilfe von Face Animation Tables (FAT) Unter den FATs versteht man die verschiedenen Tabellen zur Definition der Animationsregeln für FAPs. FATs definieren durch eine Funktion der Amplituden von FAPs, wie ein Modell räumlich deformiert wird. Drei BIFS-Nodes stellen diese Funktionalität bereit: FaceDefTable als Verallgemeinerung von FaceDefTransform und FaceDefMesh. Die FaceDefTable legt also für jeden Animations-Parameter fest, welche Nodes im Szenengraphen wie animiert werden. Einen Überblick über das Zusammenwirken der vielen schon genannten Nodes verschafft Bild 8. Audio Face Source T T S-Stream FDP FIT FAP FAP-Stream FaceSceneG raph FaceDef Viseme Table Expression FaceDef FaceDef M esh Transform Bild 8. Nodes eines BIFS Szenengraphen zur Definition und Animation des Gesichts in MPEG-4 (Der FaceSceneGraph enthält den Szenengraphen des statischen Gesichts, s.o.). Bei den beiden Streams wird angenommen das sie schon dekodiert sind. 3.5.2 Animationsregeln für eine Transform-Node Wenn ein Animations-Parameter eine Transformation hervorruft, so wird das von einer Transform-Node behandelt. Die FaceDefTable spezifiziert eine FaceDefTransform-Node welche den Typ (z.B. Rotation) und einen Skalierungsfaktor für die gewählte Transformation festlegt. Der Wert des Animations-Parameters, die FAPU und der Skalierungswert bestimmen bei der Animation den aktuellen Wert, um den transformiert wird. 3.5.3 Animationsregeln für eine IndexedFaceSet-Node Wenn ein FAP, wie z.B. der High-Level Parameter für Freude, eine flexible Deformation verursacht, benutzt die FaceDefTable-Node eine FaceDefMesh-Node, um die 17
Deformation von IndexedFaceSet-Nodes (wie z.B. der Zunge) zu erreichen. Die Animation resultiert aus Veränderungen der Vertex-Positionen der beeinflußten IndexedFaceSet-Node. Die flexiblen Deformationen werden durch stückweise lineare Funktionen der Amplituden der FAPs für die Vertices angenähert. Die FaceDefMesh- Node definiert für jedes Vertex seine eigene stückweise lineare Funktion durch Angabe von Intervallen für die FAP-Amplituden und 3D-Verschiebung für jeden Intervall. In Tabelle 4 ist ein simples Beispiel für solch eine FaceDefTable zu sehen. Wie sich die Position eines Vertex nach der Animation mit einem bestimmten FAP-Wert berechnet, zeigt folgender Gedankengang: Sei Pm (fett=Vektor) die Position des m-ten Vertex im neutralen Zustand (FAP=0) und Dm,k die 3D-Verschiebung die die stückweise lineare Funktion im k-ten Intervall definiert, dann errechnet sich Pm‘ (Position desselben Vertex nach der Animation) wie folgt: 1) Bestimmung des Intervalls in welchem der FAP-Wert liegt (aus dem FaceDefMesh, s. Tabelle 4). 2) Wenn der Wert im j-ten Intervall [Ij,Ij+1] ist und 0=Ik
#FaceDefMesh FAP 6 (stretch left corner lip) IndexedFaceSet: Face Interval borders: -1000, 0, 500, 1000 Displacements: Vertex 50 1 0 0, 0.9 0 0, 1.5 0 4 Vertex 51 0.8 0 0, 0.7 0 0, 2 0 0 #FaceDefTransform FAP 23 (yaw left eye ball) Transform: LeftEyeTransformX Rotation scale factor: 0 -1 0 (axis) 1 (angle) Tabelle 4. Ein einfaches Beispiel für FaceDefMesh und FaceDefTransform In Tabelle 4 sind zwei FAPs durch die Nodes FaceDefMesh und FaceDefTransform definiert. Einmal FAP 6, der die linke Lippenecke streckt (Feature Point 2.4) und FAP 23, der die horizontale Orientierung der linken Pupille manipuliert (Feature Point 3.5, siehe auch Bild 3). FAP 6 deformiert das IndexedFaceSet namens Face. Für die stückweise lineare Funktion sind drei Intervalle angegeben: [-1000,0], [0,500] und [500,1000]. 3D- Verschiebungen (Displacements) sind gegeben für die Vertices 50 und 51. Für Vertex 50 ist der Verschiebungsvektor D50,k-1=(1,0,0)T, D50,j-1=(0.9,0,0)T und D50,j=(1.5,0,4)T. Für einen angenommenen FAP-Wert von 600 wird D50,k-1 nicht betrachtet, weil der FAP-Wert größer 0 ist und somit nur eine Betrachtung des positiven Astes der Funktion vom neutralen Punkt (0) aus in Frage kommt (siehe theor. Gleichung). Der Skalierungsfaktor FAPU wird hier zur Einfachheit halber eins. Mit diesen Angaben berechnet sich die resultierende 3D-Koordinate von Vertex 50 durch: P50‘=P50+(500-0)* (0.9,0,0)T + (600-500)* (1.5,0,4)T = P50 +(600,0,400)T . FAP 23 sorgt für eine Rotation der Transform-Node LeftEyeTransformX. Die Rotationsachse ist (0,-1,0) und der neutrale Winkel ist 0 rad. Der FAP-Wert bestimmt den Rotationswinkel. Diese Animationsregeln sind nicht nur auf Gesichter anwendbar, vielmehr kann man mit ihnen alle möglichen IndexedFaceSet-Nodes und Transform-Nodes von Objekten mit bis zu 68 Animationsparametern steuern, was zum Beispiel auch eine Kopf-Schulter Animation sein könnte. Offensichtlich ist dann die Interpretation von FAPs teilweise nicht mehr konform zum Standard , weil der Standard nicht definiert wie eine Armbewegung auszusehen hat. Deshalb kann solch ein Modell nur der Encoder animieren, welcher die Interpretation der FAPs kennt. Automatische Generierung von FaceDefMeshes Die Erstellung von FaceDefMeshes für komplexe Modelle kann sehr zeitaufwendig sein. Folgender Ansatz erledigt das automatisch: (Bild 10) Das Gesichtsmodell ist als VRML File gegeben und wird in einen Modellierungstool eingelesen. Dann wird das Modell im Modellierer mit dessen Werkzeugen verändert, um das Verhalten des Modells für einen FAP darzustellen. Anschließend wird das deformierte Modell als VRML-File wieder exportiert. Der FaceMeshGenerator vergleicht das originale (Gesichtsmodell im neutralen Zustand) mit dem veränderten VRML-File, vergleicht die Vertex-Positionen und identifiziert so diejenigen, die von dem Animationsparameter verändert wurden. Der Generator berechnet für jedes veränderte Vertex die 3D-Verschiebung und schreibt das dann in die FaceDefMesh-Tabelle. Der 19
Renderer liest dann das VRML-File und die Tabelle, um die Definition des neuen Animationsparameters zu lernen. Bild 10. FaceDefMesh Interface- Der Generator berechnet einen FaceDefMesh für jeden Animationsparameter. 4. Integration in MPEG-4 Systeme Um die Face Animation in MPEG-4 Systemen benutzen zu können, muß zuerst einmal ein BIFS-Szenengraph zum Decoder übertragen werden. In diesem müßte wenigstens eine Face-Node und eine FAP-Node enthalten sein. Der Decoder muß dann die Amplituden der FAPs (aus dem dekodierten FAP-Strom) in passende Felder der FAP-Node schreiben. Wenn die FAP-Node noch High-Level Parameter verarbeiten soll, sind noch Expression- und Viseme-Nodes nötig. Dieser Szenengraph würde einen Encoder befähigen, das proprietäre Gesichtsmodell des Decoders zu animieren. Wenn das Modell durch ein Text-to-Speech System kontrolliert wird, muß noch eine Audioquelle (Node) mit der Face-Node verbunden werden. Eine FDP-Node wird gebraucht, wenn man ein Gesichtsmodell zum Decoder übertragen möchte. Diese FDP-Node enthält die Position der Feature Points des übertragenen Modells, den Szenengraphen und die FaceDefTable, FaceDefMesh und FaceDefTransform Nodes, die gebraucht werden um die Bewegungen durch die FAPs zu definieren. Eine FIT (FaceInterpolationTable) ist nötig, wenn einige nicht übertragene FAPs von den vorhandenen interpoliert werden müssen (Zum Beispiel wenn nur die FAPs für die inneren Lippen übertragen werden, kann man die der äußeren Lippen interpolieren.). Dies hat Vorteile für die Datenübertragungsrate und Nachteile für die Qualität. Zur Verdeutlichung sei auf Bild 8 verwiesen. 5. Zusammenfassung MPEG-4 integriert synthetischen und natürlichen Inhalt in multimediale Dokumente und Kommunikation. Der Standard definiert ein komplettes Set von Animationsparametern zugeschnitten auf die Animation des menschlichen Gesichts. Gesichtsmodelle können mit einer Datenrate von 300 bis 2000 bits/s animiert werden. MPEG-4 definiert ebenfalls eine Schnittstelle für einen Text-to-Speech Synthesizer, worauf wir aber nicht eingegangen sind. 20
6. Quellen Face and 2D Mesh Animation in MPEG-4 von Murat Tekalp und Jörn Ostermann http://www.cselt.it/leonardo/icjfiles/mpeg-4_si/8-SNHC_visual_paper/8-SNHC_visual_paper.htm Animation of Synthetic Faces in MPEG-4 von Jörn Ostermann (1998) MPEG-4 Compatible Faces from orthogonal Photos von W.Lee, M.Escher, G.Sannier, N. Magnenat-Thalmann (Miralab) http://miralabwww.unige.ch/ Multimodal Animation System based on the MPEG-4 Standard von S. Kshisgar, M. Escher, G. Sannier, N. Magnenat-Thalmann (Miralab) http://www.miralab.unige.ch/ Computergrafische Animation von Gesichtsausdrücken für virtuelle Akteure Diplomarbeit von Leonie Schäfer, Feb. 1996, TU-Berlin Beispiel Videos von Peter Eisert http://www.nt.e-technik.uni-erlangen.de/~eisert/ Teile zur Einleitung für Facial Animation von http://www-est.tu-ilmenau.de/pvk/bericht/5-09.htm Overview of the MPEG-4 Standard, ISO/IEC JTC1/SC29/WG11 N3444, Geneva – May/June 2000 (Final) http://www.cselt.it/mpeg/standards/mpeg-4/mpeg-4.htm Zum weiterlesen MPEG-4 Video: The MPEG-4 Video Standard Verification Model von Thomas Sikora, Heinrich-Hertz- Institut, Berlin (Übersicht der Videokomprimierung (synthetisch & natürlich) in MPEG-4) http://wwwam.hhi.de/mpeg-video/papers/sikora/final.htm MPEG-4 Tutorials: Informationen zu MPEG-4 http://www.cselt.it/leonardo/icjfiles/mpeg-4_si/index.htm 21
Sie können auch lesen