Facial Animation in MPEG-4 - Seminarausarbeitung zum Thema

Die Seite wird erstellt Yanick Dörr
 
WEITER LESEN
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