IMAGE and VIDEO Group for MultiMedia Communications and Applications


 
 
 

Video Cloning
Synthesis of Facial Expressions


 
      Our face model construction builds three different kinds of entities to represent a human face:
      • a set of 3D vertices that are assembled in a wireframe;
      • a cylindrical texture image;
      • and a set of texture coordinates for each 3D vertex, to define how to map the wireframe to the texture.
      However, at this point, the face models come unanimated, in a static facial expression.  There is no underlying anatomical model (like muscles) to automatically create facial expressions. Since we want the models to be manipulable in real-time, we derived some simple, but efficient, animation techniques that operate on the three different model entities: All these actions are independent from each other and define an elementary Facial Action Unit, valid in 3D, and they can be combined with different weights to build complex facial expressions.

      For future reference, the neutral face model is shown in the next image, under different points of view.
       




       

    1. 3D Vertices: Displacement Vectors

     
    One on the simplest technique to animate a wireframe is mesh morphing. It consists in interpolating the wireframe between several predefined configurations, provided all of them have the same number of vertices. This technique consequently alters the wireframe shape, and is suitable to animate for instance the eyelids or mouth.
    Eyelids and Mouth Animation by Displacement of 3D Vertices



    2. Cylindrical Texture

     
    It is also possible to operate directly into the cylindrical texture image, before the texture mapping occures, to animate some facial features independently from the point of view chosen to render the face model (because the cylindrical texture is a kind of pseudo-3D representation).

    2.a Texture Blending

    Using standard rendering functions, it is possible to gradually blend together some predefined texture portions, to mimic the shades produced by expression wrinkles, like the ones on the forehead and the mouth furrows. This technique is particularly useful for low-complexity models, since this effect is generally generated (and hard-coded) by spline deformations in much more complex wireframes, where the spline elements have to be carefully placed at locations where wrinkles are expected.

    Expression Wrinkles by Texture Blending

    2.b Texture Shifting

    Unlike most other face models found in the literature, our face model does not have any eye balls embedded into the wireframe to control the gaze direction, because it is built directly from range date representing the scanned face surface. However, realistic animations of the eyes can be obtained by embedding the iris textures via the alpha-channel of the main texture. The iris textures are shifted at rendition time, to simulate a change of the gaze direction. We will use the same technique to simulate the teeth motion behind the lips of our face models.
    Alpha Map for the Eyes Texture
    Original Eyes Texture Modified Eyes Texture
    Gaze Control by Texture Sliding




    3. Texture Coordinates: Displacement Vectors

    All facial animations do not require to alter the face shape, like the eyebrows. Physically, the motion of the eyebrows corresponds to the action of some muscles that pull the skin and make it slide over the underlying skull. This physical action can be simulated by introducing some displacement vectors for the texture coordinates, relating the 3D vertices of the wireframe to the texture pixels. Although such displacement vectors are difficult to tune for facial animations, they are visually as powerful as the other animation techniques.


    Eyebrows Control by Displacements of Texture Coordinates



     
     

Last update : 31-08-2000