Facial Animation in MPEG-4 - homepages.thm.dehg10013/Lehre/MMS/WS0102/transform/misk/... · DMIF...

21
1 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.

Transcript of Facial Animation in MPEG-4 - homepages.thm.dehg10013/Lehre/MMS/WS0102/transform/misk/... · DMIF...

1

Seminarausarbeitung zum Thema

Facial Animation in MPEG-4

Bearbeitet von:

Ute von AngernStefan BredowChristian Gey

Tutor: Kai Köchy

Erstellt im Rahmen des Seminars „3D-Grafikechtzeitsysteme und Virtual Reality“ an der TUBerlin, Fachbereich Computer Grafik, im Sommersemester 2000.

2

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? ............................................................................................32.1.1 Einleitung.........................................................................................................................................32.1.2 Umfang und Merkmale des Standards.............................................................................................42.1.3 Repräsentation von Medienobjekten................................................................................................4

2.2 AUFBAU EINER SZENE IN MPEG-4 ........................................................................................................42.2.1 Manipulation einer Szene ................................................................................................................6

2.3 INTERAKTION DURCH VRML ................................................................................................................62.3.1 BIFS- Binary Format for Scenes .....................................................................................................6

2.4 MPEG-4 STRUKTUR ...............................................................................................................................6

3. FACIAL ANIMATION.................................................................................................................................7

3.1 EINLEITUNG ............................................................................................................................................73.2 FACIAL ANIMATION IN MPEG-4 .........................................................................................................103.3 DEFINITIONSPARAMETER /FEATURE POINTS (FPS) .............................................................................123.4 ANIMATIONSPARAMETER .....................................................................................................................133.5 PROPRIETÄRES GESICHTSMODELL ......................................................................................................15

3.5.1 Definition von Animationsregeln mit Hilfe von Face Animation Tables (FAT).............................173.5.2 Animationsregeln für eine Transform-Node ..................................................................................173.5.3 Animationsregeln für eine IndexedFaceSet-Node..........................................................................17

4. INTEGRATION IN MPEG-4 SYSTEME.................................................................................................20

5. ZUSAMMENFASSUNG.............................................................................................................................20

6. QUELLEN....................................................................................................................................................21

3

Seminarausarbeitung zum Thema:

Facial Animation in MPEG-4

Abstract

Die Ausarbeitung beschäftigt sich mit dem vom MPEG-4 Standard vorgegebenen System zurFacial Animation. Dabei wird kurz auf den Standard im Allgemeinen eingegangen um dannhauptsächlich den Vorgang der Decodierung von Parametern und der dabei erzeugten FaceAnimation 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 dieserRessourcen nachzudenken. Gleichzeitig wurde eine geringe Datenübertragungsrate füreinige Anwendungsgebiete, wie zum Beispiel die Videotelefonie, gefordert. Dabei verhältsich dieser Zusammenhang umgekehrt proportional zueinander: Je geringer dieDatenü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 Anwenderinteraktionenzu ermöglichen. Es soll ermöglicht werden einzelne bewegte Objekte aus dem Gesamtbildzu 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 derdamit verbundenen Qualität der Informationen. Einem Benutzer stehen zum Empfang vonInformationen über Kabel bzw. Satellit mehrere MBit/s zu Verfügung (unidirektional), bei

4

Benutzung des heimischen PC maximal 64 KBit/s (pro ISDN-Kanal), im Mobilfunk nurnoch 9,6 KBit/s. Es wird ein Standard benötigt, der den Austausch von Audio- und VideoInformationen in den drei Bereichen in einem einheitlichen Format definiert um einenreibungslosen 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

VideoinformationenIm Gegensatz zu den vorherigen Standards (MPEG-1 und MPEG-2), bei denen nur aufÄnderungen der Bildmatrix gerechnet wurde, fallen dabei rechenintensive Algorithmenan, 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-4legt kein einheitliches Kompressionsverfahren fest, sondern definiert eine Toolsammlungvon 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 sindmit Kamera und Mikrophon aufgenommen oder wurden im Computer generiert.

• beschreibt die Zusammenfassung dieser Objekte zu zusammengesetztenMedienobjekten, 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 derEmpfä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 hierarchischangeordnet sind. Am unteren Ende der Hierarchie (leafs) befinden sich primitiveMedienobjekte wie:• Bilder (Hintergrund)• Videoobjekte (sprechende Person)• Audioobjekte (Stimme des Sprechers) ...In MPEG-4 werden solche primitiven Objekte standardisiert, um diese als natürliche odersynthetische 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. ImGegensatz zu den bisherigen Komprimierungsstandards steht nicht mehr die

5

Komprimierung einer Pixelmatrix im Vordergrund sondern der Szeneninhalt. Dadurchwird 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 eineskünstlichen Gesichts)

• Interaktive Änderung des Blickpunkt des User’s irgendwo in der Szene.

Ein Szenengraph, der durch einen gerichteten zyklenfreien Graphen realisiert wird, sorgtfür die korrekte räumliche und zeitliche Positionierung der einzelnen Objekte.

m u ltip lexeddo w n strea m

co n tro l / d a ta

m u ltip lexedu ps trea m

co n tro l/da ta

a u d io v isu a lp resen ta tio n

3 D o b jec ts

2 D b a ckg ro u n d

vo ice

sp r ite

h ypo th etica l v iew er

p ro jec tio n

v id eoco m p o sito r

p lan e

a u d ioco m po s ito r

scen eco o rd in a te

sys temx

y

z u se r even ts

a u d io v is u a l o b j e c t s

sp ea ke r

d isp la y

user in p u t

Bild 1 - MPEG-4 Szene

6

2.2.1 Manipulation einer Szene

Die Möglichkeiten zur Manipulation in MPEG-4 werden durch den Szenengraphenbestimmt. Der Autor bestimmt inwieweit in die Szene eingegriffen werden kann. DasEingreifen in eine Szene kann vom Abschalten bis zum Ersetzen bzw. Hinzufügenprimitiver Objekte gehen. Beispielsweise kann ein Audioobjekt „englische Sprache“durch das Audioobjekt „deutsche Sprache“ ersetzt werden. Weiterhin besteht dieMöglichkeit, durch Manipulation der Koordinaten der Objekte, diese beliebig im Raum zupositionieren. Eine weitere Möglichkeit besteht darin, durch Manipulation der virtuellenKamera, den Betrachterpunkt zu verändern, um sich somit beliebig durch eine Szene zubewegen 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 zurBeschreibung von 3D-Welten und 3D-Objekten. In VRML können Objekte mit Sensorenversehen werden, welche es ermöglichen z.B. auf einen Mauszeiger zu reagieren, um dannManipulationen am Objekt hervorrufen. Diese Sensoren können weiterhin andereSensoren (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 istdas komprimierte Format, in welchem Szenen definiert und modifiziert werden. Dazu hates das Node-Prinzip und das Event-Modell aus VRML übernommen. MPEG-4 definiertden konkreten Bit-Stream jedoch komplett anders. Weiterhin fügt MPEG-4 verschiedeneMechanismen 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 imwesentlichen 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ürwurde das Delivery Multimedia Integration Framework (DMIF) benutzt.

DMIF: Innerhalb des DMIF-Teils des MPEG-4-Standards wird das DMIF-ApplicationInterface (DAI) definiert, über welches die Applikation mit ihrem zugehörigenDMIF-Modul kommuniziert. DMIF kümmert sich um Dinge wieVerbindungsaufbau und -steuerung, was die übergeordnete Applikation selbstunabhängig vom verwendeten Netzwerk, Übertragungs- oder Speicher-mediummacht. DMIF benutzt einen oder mehrere flexible Multiplexer, FlexMuxe.Diese statistischen Multiplexer haben die Aufgabe, Daten, die von denEncodern kommen, an das Netzwerk weiterzuleiten. Parameter wie eineStrompriorität oder Deadlines können verwendet werden, um zu entscheiden,

7

wie bei unzureichender Bandbreite vorgegangen werden soll, um diePräsentationsqualität insgesamt zu maximieren.Der zweite Teil besteht im wesentlichen aus einem Demultiplexer, der denankommenden Datenstrom in elementare Datenströme (ES) zerlegt. Hierbeientspricht normalerweise ein elementarer Datenstrom einem primitiven Objekt.Der Szenengraph wird ebenfalls durch einen elementaren Datenstromrepräsentiert. In der Synchronisationsschicht werden die einzelnen Objektesynchronisiert und mit Zeitstempeln versehen.

Bei der Synchronisierung ist zu beachten, daß nicht nur wie bisher die Synchronisationvon Video und Audio sichergestellt sein muß. Besteht eine Szene aus mehrerenMedienobjekten, müssen diese auch miteinander synchron dargestellt werden. Dieserfordert eine Erweiterung des bisher bei MPEG verwendeten Buffer-Managements in derForm, daß jedes Medienobjekten seine eigenen (virtuellen) Buffer-Strukturen erhält. Umdie Anordnung der Medienobjekten innerhalb der 3D-Szene zu übertragen, wird ein anVRML angelehnter Binärcode übertragen, der vom Decoder entschlüsselt werden muß.Schließlich muß die Komposition der Objekte anhand der Szenenbeschreibung sowie dieDarstellung für den Endbenutzer erfolgen. Weiterhin findet hier bereits ein Teil derFehlererkennung und Korrektur statt.In der letzten Schicht, der Decompression Layer, werden die einzelnen elementarenDatenströme an den entsprechenden Decoder weitergeleitet und decodiert. Die Szene wirdnun zusammengestellt und anschließend dargestellt.

SL SL SL

TransMux Layer

FlexMux

TransMux Streams

FlexMux Channel

TransMux Channel FlexMux Streams DMIF Network Interface

DMIF Application Interface

Elementary Stream Interface

SL-Packetized Streams

Elementary Streams

FlexMux

Sync Layer

DMIF Layer

SL SLSL

FlexMux

SL

(RTP)UDP

IP

(PES)MPEG2

TS

AAL2ATM

H223PSTN

....

....

....DABMux

File Broad-cast

Inter-active (not specified in MPEG-4)

Del

iver

y La

yer

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 derAufgabe, Gesichter virtueller Akteure, sogenannter Avatare, so realistisch wie möglichezu synthetisieren. Die glaubwürdige Animation von menschlichen Modellen und desmenschlichen Gesichtes im besonderen stellt eine große Herausforderung derComputergrafik dar. Die Schwierigkeit besteht darin, daß feinste Veränderungen imGesichtsausdruck bereits für die zwischenmenschliche Kommunikation bedeutsam sindund sie deshalb von anderen Menschen genau beobachtet und gelernt werden. Dabei ist es

8

nicht unbedingt nötig, eine möglichst naturgetreue Nachbildung zu erreichen, man kannschon mit wenigen Strichen einen Gesichtsausdruck darstellen. Es gilt, das Wesentlicheeines Ausdruckes zu realisieren und darzustellen. Wenn man sich für ein detaillierteresGesichtsmodell entscheidet, muß aber auch in Betracht gezogen werden, das dieAnimation desselben ebenfalls komplexer wird.Auf dem Gebiet der Facial Animation haben sich drei Kernpunkte herausgebildet:

- Entwicklung von Methoden zur Analyse von realen Gesichtern. Die Extraktionder 3D-Information aus den zugrundeliegenden monokularen Bildern ist dabeider erste Schritt. Ein wichtiger Aspekt für die Verwendung einesAnalyseverfahrens zur Bestimmung der Parameter ist dessen Robustheit, vorallem in bezug auf Helligkeitsänderungen und Verdeckungen, aber auch aufglobale 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 sorealistisch wie möglich zu beschreiben.

- Entwicklung von Methoden zur Steuerung der Animation von Gesichtern. Alsodas Synthetisieren des Videos aus dem Modell und die Synchronisation mit derSprache.

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 wichtigist. Bei der Videotelefonie gibt es das klassische Szenario einer Person, welche frontal mitdem Gesicht bis hinunter zum Oberkörper vor einem relativ statischen Hintergrund voneiner Kamera erfaßt wird. Anstatt wie bei den klassischen Verfahren den Videostrom derKamera durch ein im Ortsbereich blockorientiertes Verfahren zu komprimieren, kann manauch die Szene mit Hilfe von Facial Animation Methoden analysieren und nur dieÄnderungen übertragen. Nach der Initialisierungsphase, bei der ein 3D-Modell der Personerstellt wird, dieses und das Hintergrundbild übertragen wird, müssen dann nur nochÄnderungsdaten des Modells übertragen werden. Auf der anderen Seite wird aus demModell unter Berücksichtigung der Änderungsdaten das Videobild synthetisiert. Mitdieser Methode erreicht man eine Datenreduktion bis auf 1 Kbit/s im Vergleich zu MPEG-1 oder MPEG-2, wo es 64 Kbit/s sind.

9

Bei MPEG-4 wird Facial Animation auch zur Kompression der Gesichter und für dasinteraktive Fernsehen einsetzen. Wenn es sinnvoll ist, also das Gesicht eine gewisseGröß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 derAnimation des synthetischen Gesichtes benutzt werden, sondern kann durch ein anderes,von einer anderen Person ersetzt werden. Dadurch kann der Zuschauer z.B. denNachrichtensprecher 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 FacialAnimation. 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ötigtman ein 3D-Modell des Kopfes bzw. des Gesichts. Natürlich gibt es sehr vieleverschiedene Ansätze für die Gewinnung des 3D-Modells. Es seien nur einige Methodenstichpunktartig genannt:

- 3D Scanner- Orthogonale Photos/Videos- CT und MRI- 3D Modellierungsprogramme.

10

Das ist aber mehr eine Sache des Kodierens und wird vom MPEG-4 Standard nichtvorgeschrieben, ebenso wie auch die Extrahierung der Parametern dieses 3D-Modellsnicht 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 wieauch 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 derDecodierung der standardisierten Parameter. Eine ausführliche Diskussion über dieunterschiedlichen Ansätze zur Gewinnung der Parameter auf der Encoderseite würde denRahmen dieser Ausarbeitung sprengen.

Das 3D-Modell des Kopfes bzw. des Gesichts in MPEG-4 besteht aus Polygonen, welcheauch Attribute wie z.B. Farbe oder Textur haben können. Durch Parameter werdensogenannte Feature Points verändert und somit eine Modellierung des Kopfes, und beizeitlicher Veränderung der Parameter, die Animation dargestellt. Dabei werden dieEckpunkte (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 bedeutetz.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 desmenschlichen Gesichts von MPEG-4. Der Hauptzweck der Feature Points ist dieräumliche Referenz für die FAPs. Die FP wurden so ausgewählt, daß man durchLageveränderung derselben, alle möglichen Gesichtsausdrücke und Animationendarstellen kann.

11

Bild 3. Feature Points in MPEG-4

12

Im Standard ist außerdem festgelegt, daß in jedem Decoder ein sogenanntes neutralesGesicht 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; dieAugenlider sind parallel zur Iris; die Pupille ist 1/3 vom Iris-Durchmesser; Lippen sindgeschlossen; 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ührtdabei die Grenze zwischen oberen und unteren Zähnen.

Die Parameter werden aufgeteilt in zwei verschiedene Kategorien: Solche, die die Formund Struktur des Gesichtes beschreiben und somit für das unterschiedliche Aussehen desGesichts verantwortlich sind, in MPEG-4 Face Definition Parameter (FDP) genannt undsolche, die die Veränderung der Gesichtszüge ausdrücken, die Face AnimationParameter (FAP).Weil FAPs Gesichter verschiedener Größe und Proportionen animieren sollen, sind dieFAP-Werte in Face Animation Parameter Units (FAPU) definiert. Sie skalieren die FAPsbei generischen Gesichtsmodellen. FAPUs werden in Einheiten von den Distanzen (ES0,MNS0 usw.) zwischen Gesichtsregionen ausgedrückt (siehe Bild 4). Dazu ist folgendeTabelle aufschlußreich:

IRISD0 Iris diameter (by definition it is equal to the distancebetween upper ad lower eyelid) in neutral face

IRISD = IRISD0 / 1024

ES0 Eye separation ES = ES0 / 1024ENS0 Eye - nose separation ENS = ENS0 / 1024MNS0 Mouth - nose separation MNS = MNS0 / 1024MW0 Mouth width MW=MW0 / 1024AU Angle unit 10E-5 rad

3.3 Definitionsparameter/Feature Points (FPs)

Einige Feature Points, wie zum Beispiel die entlang der Haarlinie, werden nicht von FAPsbeeinflußt. Sie werden gebraucht, um ein generisches Gesichtsmodell zu modellieren.Um ein individuelles Gesicht zu formen, bieten die Face Definition Parameter einigeHilfsmittel an. So kann eine FDP-Node (MPEG-4 BIFS-Node) aus Feature-Point-Koordinaten, Textur-Koordinaten, Texture-Typ, FaceDefTables und FaceSceneGraphbestehen.

13

Damit ist es möglich, die statische Geometrie des Gesichts in der neutralen Position mitHilfe des FaceSceneGraph zu bestimmen, einige Oberflächenmerkmale unterZuhilfenahme der Textur zu modellieren und Animationsregeln mit den Face AnimationTables (FAT, FaceDefTables ist eine Spezialisierung der FAT) zu bestimmen. Die FDPskönnen aber auch dazu benutzt werden, das proprietäre Modell des Encoders zukalibrieren, obwohl der MPEG-4 Standard nicht spezifiziert, wie das geschehen soll.

3.4 Animationsparameter

Die Face Animation Parameter basieren auf dem Studium von minimalen perceptiblenAktionen im Gesicht und sind nahe verwandt mit Muskelbewegungen. Die 68 Parametersind aufgeteilt in 10 Gruppen, die zu den unterschiedlichen Regionen des Gesichtesgehören. (Tabelle 1)

Tabelle 1. FAP-Gruppen Tabelle 2.Viseme und zugehörige Phoneme

FAPs repräsentieren ein komplettes Set von grundlegenden Gesichtsbewegungeninklusive Kopfbewegung und die Kontrolle der Zunge, Augen und des Mundes. Für jedenFAP definiert der Standard die passende FAPU, FAP Gruppe, Richtung der positivenBewegung und wenn die eventuelle Bewegung des Feature Points unidirektional (z.B.FAP3, offener Kiefer) oder bidirektional (z.B. FAP 48, Kopfneigung) ist. FAPs könnenauch zur Definition von Facial Action Units benutzt werden.Wie aus Tabelle 1 ersichtlich, müssen die FAPs in Gruppe 1 ziemlich abstrakt sein, weilnur 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 definiertund im Standard enthalten (Tabelle 2).

14

Um gleichzeitige Animation von Sprache und Mund-Bewegung zu erreichen, ist es nötigeine geignete Methode zur Komposition von FAP-Werten zu finden. Die Mundform einessprechenden Menschen wird auch nicht nur von dem aktuellen Phonem/Visem sondernauch von dem vorangegangenen und nachfolgenden bestimmt. Das Problem desÜbergangs von einer Aktion zur anderen wird also größer, wenn mehrere High-LevelAktionen zur selben Zeit Werte für einen FAP setzen. Somit ist eine gleichzeitigeBeeinflussung eines Feature Points durch 2 FAP-Werte gegeben. In MPEG-4 wird dieTransition von einem Visem zum nächsten durch Blendung von nur 2 Visemen mit einemgewichteten 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 starkeDiskontontinuitäten vor allem an den Überschneidungsgrenzen auftreten können, was inruckartigen Animationen resultieren kann. Mit einer gewichtete Kurve für jede High-Level Bewegung kann der Beitrag, den die High-Level Bewegungen an ihrem Anfang undEnde einbringen, vermindert werden (Bild 5c und 5d). Gewöhnlich wird sich der Wert dergewichteten Kurve zwischen 0 und 1 befinden (prozentualer Anteil).

FAP2 definiert 6 primitive Gesichtsausdrücke – die Expressions (Tabelle 3, Bild 6). ImGegensatz zu den Visemen werden Expressions animiert durch einen Wert (0-63), der dieAusprägung (i.S. lachen vs. schmunzeln) des Ausdrucks festlegt. Für jedesGesichtsmodell werden diese Parameter individuell festgelegt.

Tabelle 3. ExpressionsExpressionname

textual description

1 Joy The eyebrows are relaxed. The mouth is open and the mouth corners pulled back towardthe 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.

15

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 FeaturePoints, damit alle FAP angewendet werden können. Für ansprechendes Aussehen undAnimation sollte das Modell aber wenigstens 500 Eckpunkte (Vertices) haben.

Ein proprietäres (individuelles) Gesichtsmodell in MPEG-4 könnte man folgendermaßenentwickeln:

I. Man definiert die Struktur und Umrisse des Gesichts und definiert die FeaturePoints 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 einerDimension, deshalb obliegt es dem Designer, eine subjektiv ansprechendeGesichtsdeformation für jeden FAP zu implementieren. (Zum Beispiel verrücktFAP 54 die äußere rechte Lippenecke horizontal, obwohl beim Menschengleichzeitig eine Bewegung nach hinten zu erkennen ist.)

III. Nach der Bewegung der Feature Points muß noch die Auswirkung auf dieangrenzenden Vertices (Eckpunkte) bestimmt werden. Dieses Mapping derBewegung 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 beijeder Gesichtsanimation auch das Geschlecht des Modells, dabei wird dem MPEG-4Terminal (Decoder) mitgeteilt ob männlich oder weiblich und er deformiert dann seinModell entsprechend. Das verhindert die Präsentation eines weiblichen Gesichts unterlegtmit einer männliche Stimme und umgekehrt.

Adaption eines proprietären ModellsDurch die Definition von allen oder einigen Feature Points durch den Encoder, muß derDecoder sein eigenes Modell anpassen- adaptieren, und zwar so, das das Modell zu denFeature Point-Positionen konform ist. Aber MPEG-4 spezifiziert keine Algorithmen fürdiese Adaption, so das die Qualität nach der Adaption nicht voraussagbar ist. Behilflich istaber 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 einesFPs auf der Textur. Das ist aber zu ungenau an wichtigen Gesichtsmerkmalen wie denAugenlidern oder den Lippen. Um das zu berichtigen, gibt es natürlich wieder vieleAnsätze von Dritten, wie z.B. einen Iterativen Ansatz oder etwa die Übertragung einesMeshes als Ergänzung zu den FPs.

16

Da aber MPEG-4 so etwas nicht von sich aus implementiert, wird die Adaption desGesichtsmodells wahrscheinlich von vielen Encodern nicht implementiert werden.

Szenengraph und neutrales GesichtsmodellIn einem Szenengraphen spezifiziert der Encoder die statische Geometrie desGesichtsmodells. Dazu bedient sich MPEG-4 des Node-Prinzips aus VRML (MPEG-4BIFS). Drei Typen von Nodes sind von Interesse für die Definition eines statischenKopfmodells. Eine Group-Node ist ein Kontainer für untergeordnete Objekte, es erlaubtalso ein hierarchisches Modell. Objekte, die zusammen bewegt werden sollen, müssensich in der gleichen Transform-Gruppe befinden. Die Transform-Node definiertgeometrisch affine 3D-Transformationen wie Skalierung, Rotation und Translation, dieauf die untergeordneten Objekte angewendet werden. Wenn Transform-Nodes andereTransform-Nodes als Unter-Nodes enthalten, hat das kumulative Effekte. EineIndexedFaceSet–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 werdenverschachtelte Transformationen benutzt, um die jeweiligen Transformationennacheinander auszuführen. Eigenständige IndexedFaceSets definieren den Umriß und dieOberfläche des Gesichts, der Haare, der Zunge und des linken und rechten Auges, was

Bild 7. Vereinfachter FaceSceneGraph (Die Namen der BIFS-Nodes sind kursiv geschrieben)

auch separate Texturen erlaubt. Außerdem kann man den Szenengraphen einfacherweitern, z.B. zu einem Kopf-Schulter Modell.

R ootG roup

H ead R ota tionXTrans fom

H ead R ota tionYTrans fom

H ead R ota tionZTrans fom

Fac eIndexedFaceS et

H a irIndexedFaceS et

TongueIndexedFaceS et

Le ftE yeTrans fo rm XTrans fo rm

LeftE yeTrans fo rm YTrans fo rm

R igh tE yeTrans fo rm XTrans fo rm

R igh tE yeTrans fo rm YTrans fo rm

LeftE yeIndexedFaceS et

R igh tE yeIndexedFaceS et

17

3.5.1 Definition von Animationsregeln mit Hilfe von FaceAnimation Tables (FAT)

Unter den FATs versteht man die verschiedenen Tabellen zur Definition derAnimationsregeln für FAPs. FATs definieren durch eine Funktion der Amplituden vonFAPs, wie ein Modell räumlich deformiert wird. Drei BIFS-Nodes stellen dieseFunktionalität bereit: FaceDefTable als Verallgemeinerung von FaceDefTransform undFaceDefMesh. Die FaceDefTable legt also für jeden Animations-Parameter fest, welcheNodes im Szenengraphen wie animiert werden.Einen Überblick über das Zusammenwirken der vielen schon genannten Nodes verschafftBild 8.

Bild 8. Nodes eines BIFS Szenengraphen zur Definition und Animation des Gesichts in MPEG-4 (DerFaceSceneGraph enthält den Szenengraphen des statischen Gesichts, s.o.). Bei den beiden Streamswird 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 einerTransform-Node behandelt. Die FaceDefTable spezifiziert eine FaceDefTransform-Nodewelche den Typ (z.B. Rotation) und einen Skalierungsfaktor für die gewählteTransformation festlegt. Der Wert des Animations-Parameters, die FAPU und derSkalierungswert bestimmen bei der Animation den aktuellen Wert, um den transformiertwird.

3.5.3 Animationsregeln für eine IndexedFaceSet-Node

Wenn ein FAP, wie z.B. der High-Level Parameter für Freude, eine flexible Deformationverursacht, benutzt die FaceDefTable-Node eine FaceDefMesh-Node, um die

AudioSource

Face

FDP FAPFIT

Viseme

Expression

FaceDefTable

FaceDefTransform

FaceDefM esh

FaceSceneG raph

TTS-Stream

FAP-Stream

18

Deformation von IndexedFaceSet-Nodes (wie z.B. der Zunge) zu erreichen. DieAnimation resultiert aus Veränderungen der Vertex-Positionen der beeinflußtenIndexedFaceSet-Node. Die flexiblen Deformationen werden durch stückweise lineareFunktionen 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 Angabevon Intervallen für die FAP-Amplituden und 3D-Verschiebung für jeden Intervall. InTabelle 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-Wertberechnet, zeigt folgender Gedankengang:Sei Pm (fett=Vektor) die Position des m-ten Vertex im neutralen Zustand (FAP=0) undDm,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 demFaceDefMesh, s. Tabelle 4).

2) Wenn der Wert im j-ten Intervall [Ij,Ij+1] ist und 0=Ik<=Ij, so istPm‘=Pm+FAPU*((Ik+1-0)*Dm,k+(Ik+2-Ik+1)*Dm,k+1+...+(Ij-Ij-1)*Dm,j-1+(FAP-Ij)*Dm,j), wobei mit FAP der Wert desselbigen gemeint ist. Also ist derresultierende Wert eine Addition aus den vorangegangenenFunktionswerten (Displacements in den einzelnen Intervallen) bis zu demFAP-Wert. Wenn der FAP-Wert kleiner 0 ist, errechnet sich derresultierende Displacement-Wert aus der Addition der stückweisen

Bild 9. Stückweise lineare Approximation der Vertex-Bewegung als Funktion des FAP-Wertes.

Funktionswerte zwischen dem negativen FAP-Wert und 0 (neutraler FAP-Wert).Einen Spezialfall stellt natürlich die FaceDefMesh-Node mit nur einemIntervall dar: Pm‘=Pm+FAPU*FAP*Dm.

Im Bild 9 ist die Kurve nur für eine Vertex-Koordinate dargestellt. Natürlich hat jedeVertex-Koordinate ihre eigene Kurve, festgelegt durch die Dm,k im FaceDefMesh.

19

#FaceDefMeshFAP 6 (stretch left corner lip)IndexedFaceSet: FaceInterval borders: -1000, 0, 500, 1000Displacements:Vertex 50 1 0 0, 0.9 0 0, 1.5 0 4Vertex 51 0.8 0 0, 0.7 0 0, 2 0 0#FaceDefTransformFAP 23 (yaw left eye ball)Transform: LeftEyeTransformXRotation 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 FaceDefTransformdefiniert. 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, sieheauch Bild 3). FAP 6 deformiert das IndexedFaceSet namens Face. Für die stückweiselineare 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 50ist 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üreinen angenommenen FAP-Wert von 600 wird D50,k-1 nicht betrachtet, weil der FAP-Wertgrößer 0 ist und somit nur eine Betrachtung des positiven Astes der Funktion vomneutralen Punkt (0) aus in Frage kommt (siehe theor. Gleichung). Der SkalierungsfaktorFAPU wird hier zur Einfachheit halber eins. Mit diesen Angaben berechnet sich dieresultierende 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. DieRotationsachse ist (0,-1,0) und der neutrale Winkel ist 0 rad. Der FAP-Wert bestimmt denRotationswinkel.

Diese Animationsregeln sind nicht nur auf Gesichter anwendbar, vielmehr kann man mitihnen alle möglichen IndexedFaceSet-Nodes und Transform-Nodes von Objekten mit biszu 68 Animationsparametern steuern, was zum Beispiel auch eine Kopf-SchulterAnimation sein könnte. Offensichtlich ist dann die Interpretation von FAPs teilweise nichtmehr konform zum Standard , weil der Standard nicht definiert wie eine Armbewegungauszusehen hat. Deshalb kann solch ein Modell nur der Encoder animieren, welcher dieInterpretation der FAPs kennt.

Automatische Generierung von FaceDefMeshesDie 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 Modellierungstooleingelesen. Dann wird das Modell im Modellierer mit dessen Werkzeugen verändert, umdas Verhalten des Modells für einen FAP darzustellen. Anschließend wird das deformierteModell als VRML-File wieder exportiert. Der FaceMeshGenerator vergleicht dasoriginale (Gesichtsmodell im neutralen Zustand) mit dem veränderten VRML-File,vergleicht die Vertex-Positionen und identifiziert so diejenigen, die von demAnimationsparameter verändert wurden. Der Generator berechnet für jedes veränderteVertex die 3D-Verschiebung und schreibt das dann in die FaceDefMesh-Tabelle. Der

20

Renderer liest dann das VRML-File und die Tabelle, um die Definition des neuenAnimationsparameters zu lernen.

Bild 10. FaceDefMesh Interface- Der Generator berechnet einen FaceDefMesh für jedenAnimationsparameter.

4. Integration in MPEG-4 Systeme

Um die Face Animation in MPEG-4 Systemen benutzen zu können, muß zuerst einmal einBIFS-Szenengraph zum Decoder übertragen werden. In diesem müßte wenigstens eineFace-Node und eine FAP-Node enthalten sein. Der Decoder muß dann die Amplituden derFAPs (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 desDecoders zu animieren. Wenn das Modell durch ein Text-to-Speech System kontrolliertwird, muß noch eine Audioquelle (Node) mit der Face-Node verbunden werden.Eine FDP-Node wird gebraucht, wenn man ein Gesichtsmodell zum Decoder übertragenmöchte. Diese FDP-Node enthält die Position der Feature Points des übertragenenModells, den Szenengraphen und die FaceDefTable, FaceDefMesh undFaceDefTransform Nodes, die gebraucht werden um die Bewegungen durch die FAPs zudefinieren.Eine FIT (FaceInterpolationTable) ist nötig, wenn einige nicht übertragene FAPs von denvorhandenen interpoliert werden müssen (Zum Beispiel wenn nur die FAPs für dieinneren Lippen übertragen werden, kann man die der äußeren Lippen interpolieren.). Dieshat 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 undKommunikation.Der Standard definiert ein komplettes Set von Animationsparametern zugeschnitten aufdie 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.

21

6. Quellen

� Face and 2D Mesh Animation in MPEG-4von Murat Tekalp und Jörn Ostermannhttp://www.cselt.it/leonardo/icjfiles/mpeg-4_si/8-SNHC_visual_paper/8-SNHC_visual_paper.htm

� Animation of Synthetic Faces in MPEG-4von Jörn Ostermann (1998)

� MPEG-4 Compatible Faces from orthogonal Photosvon W.Lee, M.Escher, G.Sannier, N. Magnenat-Thalmann (Miralab)http://miralabwww.unige.ch/

� Multimodal Animation System based on the MPEG-4 Standardvon S. Kshisgar, M. Escher, G. Sannier, N. Magnenat-Thalmann (Miralab)http://www.miralab.unige.ch/

� Computergrafische Animation von Gesichtsausdrücken für virtuelle AkteureDiplomarbeit von Leonie Schäfer, Feb. 1996, TU-Berlin

� Beispiel Videos von Peter Eiserthttp://www.nt.e-technik.uni-erlangen.de/~eisert/

� Teile zur Einleitung für Facial Animation vonhttp://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 Modelvon 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-4http://www.cselt.it/leonardo/icjfiles/mpeg-4_si/index.htm