# Patent

## Title
Method and system using a data-driven model for monocular face tracking

## Abstract

A method and system using a data-driven model for monocular face tracking are disclosed, which provide a versatile system for tracking three-dimensional (3D) images, e.g., a face, using a single camera. For one method, stereo data based on input image sequences is obtained. A 3D model is built using the obtained stereo data. A monocular image sequence is tracked using the built 3D model. Principal Component Analysis (PCA) can be applied to the stereo data to learn, e.g., possible facial deformations, and to build a data-driven 3D model (“3D face model”). The 3D face model can be used to approximate a generic shape (e.g., facial pose) as a linear combination of shape basis vectors based on the PCA analysis.

## Background
FIELD OF THE INVENTION
The present invention relates generally to the field of image processing. More particularly, the present invention relates to a method and system using a data-driven model for monocular face tracking.
BACKGROUND OF THE INVENTION
Monocular face tracking is the process of estimating facial motion, position, and shape based on monocular image sequences from a stationary camera. Monocular face tracking is a main process in many image processing systems such as a video conferencing system. For instance, in a video conferencing system, by estimating facial motion or position, the amount of facial data or information that needs to be exchanged or processed is reduced. That is, parameters related to the estimated facial motion, position, and shape can be exchanged or processed for outputting an image sequence instead of exchanging or processing large amounts of image data.
One type of face tracking system is a face tracking system based on markers (“marker face tracking system”). In a marker face tracking system, a user is required to wear color “markers” at known locations. The movement of the markers are thus parameterized to estimate facial position and shape. A disadvantage of the marker face tracking system is that it is invasive on the user. In particular, the user must place a number of color markers on varying positions of the face. Furthermore, the user must spend time putting on the markers, which adds a further complexity to using such a system.
Another type of face tracking system is a model-based face tracking system. A model-based face tracking system uses a parameterized face shape model that can be used to estimate facial position and motion. In prior model-based face tracking systems, parameterized models are built using a manual process, e.g., by using a 3D scanner or a computer aided design (CAD) modeler. Hence, a disadvantage of prior model-based face tracking systems is that manual building of face shape models is very ad-hoc, which leads to a trial and error approach to obtain tracking models. Such an ad-hoc process provides inaccurate and suboptimal models.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not limitation, by the figures of the accompanying drawings in which like references indicate similar elements and in which:
FIG. 1 illustrates an exemplary computing system for practicing the present invention;
FIG. 2 illustrates a flow diagram of an operation to perform monocular tracking using a data-driven model according to one embodiment;
FIG. 3 illustrates exemplary stereo input image sequences for stereo tracking to build the data-driven model of FIG. 2;
FIG. 4 illustrates a four dimensional space of exemplary deformations learned from stereo input sequences;
FIG. 5 illustrates exemplary input image sequences for monocular tracking;
FIG. 6 illustrates a flow diagram of the operation to perform stereo tracking in FIG. 2 according to one embodiment;
FIG. 7 illustrates a flow diagram to calculate principal shape vectors in FIG. 2 according to one embodiment; and
FIG. 8 illustrates a flow diagram to perform monocular tracking in FIG. 2 according to one embodiment.



DETAILED DESCRIPTION
A method and system using a data-driven model for monocular face tracking are described, which provide a versatile system for tracking a three-dimensional (3D) object, e.g., a face, in an image sequence acquired using a single camera. In one embodiment, stereo data based on input image sequences is obtained. A 3D model is built using the obtained stereo data. A monocular image sequence is tracked using the built 3D model. In one embodiment, Principal Component Analysis (PCA) is applied to the stereo data to learn, e.g., possible facial deformations, and to build a data-driven 3D model (“3D face model”). The 3D face model can be used to approximate a generic shape (e.g., facial pose) as a linear combination of shape basis vectors based on the PCA analysis.
By using real stereo, a small number of shape basis vectors can be computed to build the 3D model, which provides a number of advantages. For instance, only a small number (e.g., 3 or 4) of shape basis vectors can be used to span, e.g., a variety of facial expressions such as smiling, talking, raising eyebrows, and etc. Furthermore, a 3D model can be built and stored in a database using stereo data from one or more users in which, e.g., a face of a new user can be tracked even though stereo data from the new user is not stored in the database.
In addition, by building a 3D model using stereo data based on input image sequences, monocular face tracking of pose and deformation of the face can be achieved without use of invasive markers. The 3D face model described herein provides a low complexity deformable model for simultaneous tracking of pose and deformation of the face from a single image sequence (“monocular tracking”).
The following embodiments describes a system that tracks both 3D pose and shape of a facial image (“face”) in front of a single video camera without using intrusive markers. The system also provides robust and accurate monocular tracking using a data-driven model. Furthermore, the system also provides generalization properties to enable face tracking of multiple persons with the same 3D model.
In the following description, monocular tracking techniques are described with respect to tracking of a 3D facial image. Nevertheless, the monocular tracking techniques described herein are not intended to be limited to any particular type of image and can be implemented with other types of 3D images such as moving body parts or inanimate objects.
GENERAL OVERVIEW
Exemplary Computing System
FIG. 1 illustrates an exemplary computing system 100 for practicing the present invention. The 3D model building techniques and monocular tracking techniques described herein can be implemented and utilized by computing system 100. Computing system 100 can represent, for example, a general purpose computer, workstation, portable computer, hand-held computing device, or other like computing device. The components of computing system 100 are exemplary in which one or more components can be omitted or added. For example, a plurality of camera devices 128 can be used with computing system 100.
Referring to FIG. 1, computing system 100 includes a main unit 110 having a central processing unit (CPU) 102 and a co-processor 103 coupled to a display circuit 105, main memory 104, static memory 106, and flash memory 107 via bus 101. Main unit 110 of computing system 100 can also be coupled to a display 121, keypad input 122, cursor control 123, hard copy device 124, input/output (I/O) devices 125, and mass storage device 126, and camera devices 128 via bus 101.
Bus 101 is a standard system bus for communicating information and signals. CPU 102 and co-processor 103 are processing units for computing system 100. CPU 102 or co-processor 103 or both can be used to process information and/or signals for computing system 100. CPU 102 can be used to process code or instructions to perform the 3D data-driven model building techniques and monocular tracking techniques described herein. Alternatively, co-processor 103 can be used to process code or instructions to perform same techniques as CPU 102. CPU 102 includes a control unit 131, an arithmetic logic unit (ALU) 132, and several registers 133, which can be used by CPU 102 for data and information processing purposes. Co-processor 103 can also include similar components as CPU 102.
Main memory 104 can be, e.g., a random access memory (RAM) or some other dynamic storage device, for storing data, code, or instructions to be used by computing system 100. In one embodiment, main memory 104 can store data related to input stereo image sequences and/or a 3D data-driven model as will be described in further detail below. Main memory 104 may also store temporary variables or other intermediate data during execution of code or instructions by CPU 102 or co-processor 103. Static memory 106, can be, e.g., a read only memory (ROM) and/or other static storage devices, which can store data and/or code or instructions to be used by computing system 100. Flash memory 107 is a memory device that can be used to store basic input/output system (BIOS) code or instructions for computing system 100.
Display 121 can be, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD). Display device 121 can display images, information, or graphics to a user. Main unit 110 of computing system 100 can interface with display 121 via display circuit 105. Keypad input 122 is a alphanumeric input device for communicating information and command selections for computing system 100. Cursor control 123 can be, e.g., a mouse, touchpad, trackball, or cursor direction keys, for controlling movement of an object on display 121. Hard copy device 124 can be, e.g., a laser printer, for printing information on paper, film, or some other like medium. Any number of input/output (I/O) devices 125 can be coupled to computing system 100. For example, an I/O device such as a speaker can be coupled to computing system 100. Mass storage device 126 can be, e.g., a hard disk, read/writable CD or DVD player, or other large volume storage device. Camera devices 128 can be video image capturing devices, which can be used for the image processing techniques described herein. In one embodiment, camera devices 128 include DigiclopsTM camera systems, which provide an average frame rate of 4 fps with color images having a size 640×480.
In one embodiment, the 3D data-driven model building techniques and monocular tracking techniques described herein can be performed by the hardware and/or software modules contained within computing system 100. For example, CPU 102 or co-processor 103 can execute code or instructions stored in a machine-readable medium, e.g., main memory 104 or static memory 106, to process stereo input sequences to build a 3D data-driven model as described herein. Furthermore, CPU 102 or co-processor 103 can execute code or instruction to track monocular input images using the 3D data-driven model as described herein. The memory devices within main unit 110 can also be
A machine-readable medium may include a mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine such as computer or digital processing device. For example, the machine-readable medium may include a read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, or other like memory devices. The code or instructions can be represented by carrier wave signals, infrared signals, digital signals, and by other like signals. A machine-readable medium can also be used to store a database for the 3D data-driven model described herein. Furthermore, one or more machine-readable mediums can be used to store the 3D model.
Basic Operation
FIG. 2 illustrates a functional flow diagram of an operation 200 for performing monocular tracking using a data-driven model according to one embodiment. Referring to FIG. 2, operation 200 includes two stages. The first stage refers to operation block 210 or learning stage 210. Learning state 210 learns the space of possible facial deformations by applying Principal Component Analysis (PCA) processing on real stereo tracking data to build a 3D data-driven model for monocular tracking. The 3D data-driven model can be used to approximate a generic shape as a linear combination of shape basis vectors. The second stage refers to operation block 220 in which monocular tracking is performed using the 3D data-driven model built in the learning stage. By using the 3D data-driven model, pose and deformation of an image, e.g., a face, can be tracked together from a monocular or single image sequence. Initially, operation 200 begins with the learning stage 210.
Within the learning stage 210, at operation block 202, a stereo sequence is inputted. For example, camera devices 128 can include a first camera and a second camera to capture images sequences from a left perspective and a right perspective such as that shown in FIG. 3. As shown in FIG. 3, a first and second camera can capture images sequences, e.g., frame 1 to 100, of a person exhibiting varying facial movement and poses from a left and right perspective. The stereo input sequences can be inputted into computing system 100 for processing.
At operation block 204, the input stereo sequence is tracked. In particular, a low complexity face mesh (e.g., the nineteen points at varying positions of the face as shown in FIG. 3) is initialized and then tracked using standard optical flow techniques. In order to handle non-rigid deformations of a face, each point is tracked independently to obtain a facial shape trajectory.
At operation block 206, a Principal Component Analysis (PCA) processing is initiated on the shape trajectory obtained from the tracked input stereo sequences. PCA is a mathematical process for optimally estimating low-dimensional representation of data embedded in a high-dimensional space. The PCA processing is to obtain principal shape vectors for a compact deformable 3D shape model (“3D shape model”), which is used in monocular tracking.
At operation block 208, the principal shape vectors are calculated, which will be explained in further detail below. Once the principal shape vectors are calculated, any facial movement or pose during monocular tracking can be approximated as a linear combination of the principal shape vectors.
At operation 220 (second stage), monocular tracking can be performed on a monocular input sequence using the computed-model. A monocular sequence is a sequence of images from a single camera. For example, as shown in FIG. 5, at each frame of the monocular input sequence (e.g., frames 1 through 72), the shape of the face can be approximated by a linear combination of the principal shape vectors of the computed-model built in the learning stage 210. In particular, while a person changes facial expression and pose, the resulting optical flow information of the sequence can be used with the computed-model to track the changes in pose and facial expression.
The above operation can be implemented within by exemplary computing system 100. For example, CPU 102 can execute code or instructions to build the 3D model and to perform the PCA processing, which will be described in further detail below. The data-driven 3D model can also be stored within memory storage devices of computing system 100. In one embodiment, the data-driven 3D model is a “deformable face model,” which will now be described.
Deformable Face Model
The following description describes the parameterization required to create a deformable face model based on stereo tracking data and to monocular tracking the deformable face model. For instance, referring to FIG. 5, the monocular facial sequence can be tracked in 3D space using the deformable face model described herein.
Initially, let In be the nth image of the monocular facial sequence, as shown in FIG. 5, having seventy-two frames. A 3D structure of each face in each frame at time n can be represented as a collection of N points Pni(i=1, . . . , N). To perform monocular tracking, coordinate vectors of a face reference frame and a camera reference frame need to be defined. In particular, let Xi(n) and Xci(n)=[Xci(n)Yci(n)Zci(n)]T be the coordinate vectors of the point Pni in the face reference frame and camera reference frame, respectively.
The vectors Xi(n) and Xci(n) are then related to each other through a rigid body transformation characterizing the pose of the user's face with respect to a camera at time n such that:

Xci(n)=RnXi(n)+tn,

where Rn is a 3×3 rotation matrix, and tn is a translation vector. To track each face of each frame, as shown in FIG. 5, as a non-rigid object, the quantities for Xi(n) for shape and Rn and tn for pose must be estimated. Because Rn is a rotation matrix, Rn is uniquely parameterized as a 3-vector {tilde over (ω)}n, which is known as a rotation vector. The rotation matrix and rotation vector can be related to each other using standard formulas.

The data within the images In, n=1, 2, . . . , M (e.g., frames 1 through 72) can be used to estimate shape and pose for each face in each frame. In particular, let Pni be the projection of Pni on image In, and let xni be the image coordinate vector of Pni. Thus, in one embodiment, a traditional pinhole camera model can be used to determine the image coordinate vector xni for the projection of Pni such that:




  
    x
    n
    i
  
  =
  
    
      [
      
        
          
            
              x
              n
              i
            
          
        
        
          
            
              y
              n
              i
            
          
        
      
      ]
    
    =
    
      
        [
        
          
            
              
                
                  
                    X
                    c
                    i
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
                /
                
                  
                    Z
                    c
                    i
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
          
          
            
              
                
                  
                    Y
                    c
                    i
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
                /
                
                  
                    Z
                    c
                    i
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
          
        
        ]
      
      ≐
      
        
          π
          ⁡
          
            (
            
              
                
                  X
                  i
                
                ⁡
                
                  (
                  n
                  )
                
              
              ,
              
                π
                n
              
              ,
              
                t
                n
              
            
            )
          
        
        .
      
    
  




Monocular tracking can thus be equivalent to inverting the projection map π for recovering the 3D shape Xi(n) and pose {{tilde over (ω)}ntn}.

In one embodiment, to perform monocular tracking of non-rigid shapes (e.g., varying facial expressions and poses, the non-rigid shapes can be based on a linear combination of rigid shapes. By basing non-rigid shapes as a linear combination of rigid shapes, dealing with the infinite number of image projection points for varying shape and poses can be avoided. Thus, at any time n in the sequence, the shape coordinate vector Xi(n) may be the sum of a mean shape Xoi vector and a linear combination of a small number of known shape vectors Xki(k=1, . . . , p), which are the principal shape basis vectors, as shown in Equation 1 below:




  
    
      
        
          
            
              X
              i
            
            ⁡
            
              (
              n
              )
            
          
          =
          
            
              X
              o
              i
            
            +
            
              
                ∑
                
                  k
                  =
                  1
                
                p
              
              ⁢
              
                
                  α
                  n
                  k
                
                ⁢
                
                  X
                  k
                  i
                
              
            
          
        
        ,
      
    
    
      
        Equation
        ⁢
        
          
        
        ⁢
        1
      
    
  




In Equation 1, p<<3N and the p coefficients αnk represent entities that allow for non-rigidity of the 3D shape. If p=0, then the face shape Xi(n) becomes the rigid shape Xoi. Thus, “p” is referred to as the “dimensionality of the deformation space.” The image projection map can be reduced to a function of pose parameters {tilde over (ω)}n and tn and a deformation vector αn having a plurality of “deformation coefficients” such as




  
    
      α
      _
    
    n
  
  =
  
    
      
        [
        
          
            α
            n
            1
          
          ⁢
          
            α
            n
            2
          
          ⁢
          
            α
            n
            p
          
        
        ]
      
      T
    
    .
  




The image projection map can thus be calculated using Equation 2 as shown below:





  
    
      
        
          x
          n
          i
        
        ≐
        
          
            
              π
              i
            
            ⁡
            
              (
              
                
                  
                    α
                    _
                  
                  n
                
                ,
                
                  π
                  n
                
                ,
                
                  t
                  n
                
              
              )
            
          
          .
        
      
    
    
      
        Equation
        ⁢
        
          
        
        ⁢
        2
      
    
  




A monocular tracking procedure can thus be performed by combining optical flow constraints (e.g., Lucas-Kanade) with the specific form of the deformable model, which is represented by Equation 1, for simultaneous estimation of the deformation vector αn and the pose parameters {tilde over (ω)}n and tn at every frame. The monocular tracking procedure is further discussed in detail below.
Prior to performing the monocular tracking procedure, the principal shape basis vectors “Xki” of Equation 1 must be computed, which is performed in the learning stage 210 as shown in FIG. 2. By using principal shape basis vectors Xki, a data-driven model can be used that can avoid manual construction of a non-rigid model. The principal shape basis vectors are derived from real 3D tracked data, which is also performed in the learning stage 210 as shown in FIG. 2. In particular, calibrated stereo cameras are used to track in 3D varying facial expressions and poses. For example, a short stereo input sequence (e.g., as shown in FIG. 3) of approximately 100 to 150 frames can be used.
Hence, principal shape basis vectors Xki can be computed from the tracked sequence in operation blocks 202 and 204 of FIG. 2 using Principal Component Analysis (PCA) processing, which will be described in detail below. The processing of operation blocks 202 and 204 provide the necessary stereo tracking to capture 3D trajectory data for the purpose of shape deformation analysis.
Stereo Tracking
FIG. 6 illustrates a flow diagram of the operation 204 of FIG. 2 to perform stereo tracking according to one embodiment. Initially, operation 204 begins at operation block 604.
At operation block 604, a set of points on a left camera image and a right camera image is initialized. In one embodiment, a set of N=19 points Pi located on the eyes (2), nose (3), mouth (8), eyebrow (6) are initialized on the left camera image and the right camera image as shown in FIG. 2. In this operation, varying facial deformations are provided independently from pose such that the user is to maintain head pose as fixed as possible throughout the sequence while making a variety of different facial expressions, e.g., opening/closing mouth, smiling, raising eyebrows, etc. In one embodiment, the set of points are indicated by a user of computing system 100 on the first and left and right camera images. Thus, the stereo image sequence can be tracked using these points.
It should be noted that all the points do not need to fall in textured areas of the image. This is a requirement for independent feature point tracking (to declare a point “good to track,” but not for model-based tracking. For example, the point at the tip of nose falls in a totally textureless region, and the points on the outline of the mouth and on the eyebrows are edge features. All those points would be impossible to track individually using traditional optical flow techniques.
At operation block 604, the set of points is tracked by stereo triangulation. The stereo tracking is performed in 3D such that each point location Xci(n) (in the left camera reference frame) is updated so that its current left and right image projections are to match approximately a previous image projection (i.e., temporal tracking).
Image Matching Costs
In one embodiment, to maintain stereo correspondence throughout stereo tracking, the left and the right image projections are to match approximately by considering a cost function measured between left and right images. In particular, stereo tracking of the points Pi from frame n-1 to frame n is established by minimizing a cost function Ei, which is shown in Equation 3 below.




  
    
      
        
          
            
              E
              i
            
            ⁡
            
              (
              n
              )
            
          
          =
          
            
              ∑
              
                R
                ⁢
                
                  
                
                ⁢
                O
                ⁢
                
                  
                
                ⁢
                I
              
            
            ⁢
            
              {
              
                
                  
                    
                      
                        
                          γ1
                          ⁡
                          
                            (
                            
                              
                                
                                  I
                                  n
                                  L
                                
                                ⁡
                                
                                  (
                                  
                                    
                                      x
                                      L
                                      i
                                    
                                    ⁡
                                    
                                      (
                                      n
                                      )
                                    
                                  
                                  )
                                
                              
                              -
                              
                                
                                  I
                                  
                                    n
                                    -
                                    1
                                  
                                  L
                                
                                ⁡
                                
                                  (
                                  
                                    
                                      x
                                      L
                                      i
                                    
                                    ⁡
                                    
                                      (
                                      
                                        n
                                        -
                                        1
                                      
                                      )
                                    
                                  
                                  )
                                
                              
                            
                            )
                          
                        
                        2
                      
                      +
                    
                  
                
                
                  
                    
                      
                        
                          γ2
                          ⁡
                          
                            (
                            
                              
                                
                                  I
                                  n
                                  R
                                
                                ⁡
                                
                                  (
                                  
                                    
                                      x
                                      L
                                      i
                                    
                                    ⁡
                                    
                                      (
                                      n
                                      )
                                    
                                  
                                  )
                                
                              
                              -
                              
                                
                                  I
                                  
                                    n
                                    -
                                    1
                                  
                                  R
                                
                                ⁡
                                
                                  (
                                  
                                    
                                      x
                                      R
                                      i
                                    
                                    ⁡
                                    
                                      (
                                      
                                        n
                                        -
                                        1
                                      
                                      )
                                    
                                  
                                  )
                                
                              
                            
                            )
                          
                        
                        2
                      
                      +
                    
                  
                
                
                  
                    
                      
                        (
                        
                          γ3
                          ⁡
                          
                            (
                            
                              
                                
                                  I
                                  n
                                  R
                                
                                ⁡
                                
                                  (
                                  
                                    
                                      x
                                      L
                                      i
                                    
                                    ⁡
                                    
                                      (
                                      n
                                      )
                                    
                                  
                                  )
                                
                              
                              -
                              
                                
                                  I
                                  
                                    n
                                    -
                                    1
                                  
                                  L
                                
                                ⁡
                                
                                  (
                                  
                                    
                                      x
                                      R
                                      i
                                    
                                    ⁡
                                    
                                      (
                                      
                                        n
                                        -
                                        1
                                      
                                      )
                                    
                                  
                                  )
                                
                              
                            
                            )
                          
                        
                        )
                      
                      2
                    
                  
                
              
              }
            
          
        
        ,
      
    
    
      
        Equation
        ⁢
        
          
        
        ⁢
        3
      
    
  




In Equation 3, InL and InR refer to vectors for the left and the right images at time n, and xLi(n) and xRi(n) refer to coordinate vectors of the left and right image projections of Pi. The summation for Ei is performed around an image point referred to as the region of interest (ROI). The first and second terms of Equation 3 represent traditional image matching costs accounting terms for independent left and right temporal tracking. The third terms is used to maintain correspondence between the right and left images. The three coefficients (γ1, γ2, and γ3) for the three terms are fixed weighting coefficients (i.e., the same for all the points) user for variable reliability between the three terms.
Calculating Weighting Coefficients
In one embodiment, the value for the γ3 coefficient is kept smaller than the γ1 coefficient and the γ2 coefficient and the ratios γ1/γ3 and γ2/γ3 are typically kept at a ratio value of 20. The values for the γ1, γ2, γ3 coefficients can be hardcoded separately for each of the 19 points on the face mesh as shown in FIG. 2. In one embodiment, each connected pair of points in the face mesh is considered separately. The values for γ1, γ2, and γ3 can be 1, 1, 0.05, respectively, for an average image area of approximately 100 pixels.
Minimizing Energy Function
When applied to all the mesh points, the three weighting coefficients can be used to minimize the global energy function




  
    
      E
      1
    
    ⁢
    
      (
      n
      )
    
  
  =
  
    
      ∑
      
        i
        =
        1
      
      N
    
    ⁢
    
      
        E
        i
      
      ⁢
      
        (
        n
        )
      
    
  




In this form for the global energy function, stereo tracking works well over short sequences (e.g., up to 20 to 30 frames). For larger stereo sequences, regulation terms can be added to the cost function EI(n) that allow the overall 3D structure to preserve its integrity while deforming smoothly as a whole throughout the stereo sequence. The total energy cost function E(n) then becomes: E(n)=EI(n)+ET(n)+ES(n)+EA(n).

The ET(n) term is a temporal smoothing term, which is used to minimize minimizes the amplitude of 3D velocity at each point. The ES(n) term is a shape smoothing term, which is used to minimize the differences of velocities of neighboring points. This term guarantees the integrity of the model by weakly enforcing neighbor points to move together. The EA(n) term is an anthropometric energy cost term, which is used to keep segment lengths as close as possible to their values computed in the first frame and to prevent drifts over long tracking sequences. These three regularization terms are formulated as follows:



  
    
      
        E
        T
      
      ⁡
      
        (
        n
        )
      
    
    =
    
      
        ∑
        
          i
          =
          1
        
        N
      
      ⁢
      
        
          ρ
          i
        
        ⁢
        
          
            
            
              d
              ⁢
              
                
              
              ⁢
              
                
                  X
                  i
                
                ⁡
                
                  (
                  n
                  )
                
              
            
            
          
          2
        
      
    
  




  
    
      
        E
        S
      
      ⁡
      
        (
        n
        )
      
    
    =
    
      
        ∑
        
          i
          ,
          j
        
      
      ⁢
      
        
          β
          ij
        
        ⁢
        
          
            
            
              
                d
                
                  
                    X
                    i
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
              -
              
                d
                
                  
                
                ⁢
                
                  
                    X
                    j
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
            
          
          2
        
      
    
  




  
    
      
        
          E
          A
        
        ⁡
        
          (
          n
          )
        
      
      =
      
        
          ∑
          
            i
            ,
            j
          
        
        ⁢
        
          
            
              δ
              ij
            
            ⁡
            
              (
              
                
                  
                    
                      
                        
                        
                          
                            
                              X
                              c
                              i
                            
                            ⁡
                            
                              (
                              n
                              )
                            
                          
                          -
                          
                            
                              X
                              c
                              j
                            
                            ⁡
                            
                              (
                              n
                              )
                            
                          
                        
                        
                      
                      2
                    
                  
                
                
                  
                    
                      -
                      
                        
                          
                          
                            
                              
                                X
                                c
                                i
                              
                              ⁡
                              
                                (
                                1
                                )
                              
                            
                            -
                            
                              
                                X
                                c
                                j
                              
                              ⁡
                              
                                (
                                1
                                )
                              
                            
                          
                          
                        
                        2
                      
                    
                  
                
              
              )
            
          
          2
        
      
    
    ,
  



where dXi(n)=Xci(n)−Xci(n−1) and the positive coefficients ρi, βij and δij vary from point to point and from edge to edge. In one embodiment, all segments [Pi; Pj] that are subject to large stretches are assigned lower βij and δij values. In another embodiment, a point Pi on an highly deformable region of the face will be assigned a small ρi. In one embodiment, points and segments that are known to be quite rigid will be assigned higher values for ρi, βij and δij penalizing a lot any movement and stretch applied on them. For example, points and edges on the outline of the mouth will have lower coefficients than points and edges belonging to the nose and eyes. In one embodiment, values for ρi, βij and δij are approximately 20000, 20000, and 100 for an average area of image feature patch of approximately 100 pixels.

3D Shape Trajectory
The solution shape Xci(n), i=1, . . . , N that minimizes the total energy function E(n) may be calculated by using a gradient descent. That is, by setting the derivative of E(n) with respect to all differential shape coordinate vectors dXi(n) to zero such that ∂E(n)/∂dXi(n)=0. After derivation of the Jacobian matrix, the solution for shape tracking reduces to a linear equation: dX=D−1e, where dX is a 3N×1 column vector consisting of all N vectors dXi(n) and D and e are a 3N×3N matrix and a 3N×1 vector respectively. Once dX is computed, the shape Xci(n) is known. The same process is repeated throughout the stereo sequence to obtain finally a complete 3D shape trajectory.
Principal Shape Vector Calculation
FIG. 7 illustrates a flow diagram of the operation 208 of FIG. 2 to calculate principal shape vectors according to one embodiment. Initially, operation 208 begins at operation block 702.
At operation 702, the mean shape Xoi is computed. In particular, the outcome of stereo tracking is the 3D trajectory of each point Pi in the left camera reference frame: Xci(n)=[Xci(n)Yci(n)Zci(n)]T, for n=1, . . . , M where M is the number of frames in the sequence. The p+1 shape basis vectors Xki are computed using Singular Value Decomposition (SVD). First, the mean shape Xoi is computed as:




  
    X
    o
    i
  
  =
  
    
      1
      M
    
    ⁢
    
      
        ∑
        
          n
          =
          1
        
        M
      
      ⁢
      
        
          
            X
            c
            i
          
          ⁢
          
            (
            n
            )
          
        
        .
      
    
  




At operation 704, the mean shape Xoi is subtracted from the whole trajectory: Xci(n)=Xci(n)−Xoi. The resulting shape trajectory Xi(n) is then stored in a 3N×M matrix (“M”).




  M
  =
  
    
      [
      
        
          
            
              
                X
                c
                1
              
              ⁡
              
                (
                1
                )
              
            
          
          
            
              
                X
                c
                1
              
              ⁡
              
                (
                2
                )
              
            
          
          
            ...
          
          
            
              
                X
                c
                1
              
              ⁡
              
                (
                M
                )
              
            
          
        
        
          
            
              
                X
                c
                2
              
              ⁡
              
                (
                1
                )
              
            
          
          
            
              
                X
                c
                2
              
              ⁡
              
                (
                2
                )
              
            
          
          
            ...
          
          
            
              
                X
                c
                2
              
              ⁡
              
                (
                M
                )
              
            
          
        
        
          
            ⋮
          
          
            ⋮
          
          
            ⋱
          
          
            ⋮
          
        
        
          
            
              
                X
                c
                N
              
              ⁡
              
                (
                1
                )
              
            
          
          
            
              
                X
                c
                N
              
              ⁡
              
                (
                2
                )
              
            
          
          
            ...
          
          
            
              
                X
                c
                N
              
              ⁡
              
                (
                M
                )
              
            
          
        
      
      ]
    
    .
  




At operation block 706, a Singular Value Decomposition (SVD) is applied on M. In particular, applying SVD on M, a result of M=USVT is obtained in which U=[u1 u1 . . . u3N] and V=[v1 v1 . . . vM]. U and V are two unitary 3N×3N and M×M matrices and S=diag (σ1, . . . , σ3N) is the diagonal matrix of the positive and monotonically increasing singular values σk. Following this decomposition, M now becomes:




  M
  =
  
    
      ∑
      
        k
        =
        1
      
      
        3
        ⁢
        N
      
    
    ⁢
    
      
        σ
        k
      
      ⁢
      
        U
        k
      
      ⁢
      
        
          v
          k
          T
        
        .
      
    
  




At operation 708, the sum for M is truncated from 3N to p terms, which results in an optimal least squares approximation of the matrix M given a fixed budget of p vectors. This is equivalent to approximating each column vector of M (i.e. each 3D shape in the sequence) by its orthogonal projection onto the linear subspace spanned by the first p vectors u1, . . . , up. These vectors are precisely the remaining p deformation shape vectors

    
    
        Xki: for k=1, . . . , p,
    
    






  
    u
    k
  
  =
  
    
      [
      
        
          
            
              X
              k
              1
            
          
        
        
          
            
              X
              k
              2
            
          
        
        
          
            ⋮
          
        
        
          
            
              X
              k
              N
            
          
        
      
      ]
    
    .
  




The resulting model of principal shape vectors is suitable for the monocular tracking stage. For instance, if a user produces a variety of facial expressions, the facial expressions can be tracked based on facial expressions that have been exposed to the system during the learning stage 210. It should be noted that that since the vectors uk are unitary, the shape coefficients αnk appearing in Equations 1 and 2 are in units of the mean shape Xoi. In one embodiment, the units are in centimeters and four principal shape vectors are used to cover most common facial expressions (e.g., mouth and eyebrow movements). Nevertheless, the number of principal shape vectors used can change based on the diversity of facial expressions performed for tracking.
Referring back to FIG. 4, a four dimensional space of deformations 411 through 414 are illustrated in which the deformations are computed from the stereo sequence shown in FIG. 3. As shown in FIG. 4, the principal shape vectors can correspond to combinations of four main facial movements, e.g., smile, open/close mouth, left and right raised eyebrows.
Monocular Tracking
FIG. 8 illustrates a flow diagram of the operation 220 of FIG. 2 to perform monocular tracking using the computed-model in the learning stage 210 according to one embodiment. Initially, operation 220 begins at operation block 802 for an image sequence such as that shown in FIG. 5.
At operation 802, parameters for shape and pose using image measurements are estimated from the image sequence. In particular, optical flow tracking techniques can be used to compute translational displacement of every point in an image given two successive frames, e.g. frames 1 and 2. Each image point can then be processed independently. Here, for model-based tracking, all the points in the model are linked to each other through the parameterized 3D model given by Equation 1. Thus, the parameters defining the 3D model configuration are estimated all at once from image measurements. Such parameters include αn for shape and {{tilde over (ω)}n, tn} for pose.
At operation 804, an optimal shape and pose are sought using a face model that best fits the subsequent frame. For instance, assume that the face model has been tracked from the first frame of the sequence I1 to the (n-1)th frame In-1. The objective is then to find the optimal pose {{tilde over (ω)}n,tn} and deformation αn of the face model that best fit the subsequent frame In to perform monocular tracking. The following description describes how to find the optimal pose and deformation for monocular tracking.
To find the optimal pose and deformation, minimization of a cost function Cn is used in which the minimum is achieved by the following tracking solution Equations 4 and 5:




  
    C
    n
  
  =
  
    
      ∑
      
        i
        ,
        
          R
          ⁢
          
            
          
          ⁢
          O
          ⁢
          
            
          
          ⁢
          I
        
      
    
    ⁢
    
      
        {
        
          
            
              
                
                  
                    (
                    
                      1
                      -
                      e
                    
                    )
                  
                  ⁢
                  
                    
                      (
                      
                        
                          
                            I
                            n
                          
                          ⁡
                          
                            (
                            
                              x
                              n
                              i
                            
                            )
                          
                        
                        -
                        
                          
                            I
                            
                              n
                              -
                              1
                            
                          
                          ⁡
                          
                            (
                            
                              
                                x
                                n
                                i
                              
                              -
                              1
                            
                            )
                          
                        
                      
                      )
                    
                    2
                  
                
                +
              
            
          
          
            
              
                
                  e
                  ⁡
                  
                    (
                    
                      
                        
                          I
                          n
                        
                        ⁡
                        
                          (
                          
                            x
                            n
                            i
                          
                          )
                        
                      
                      -
                      
                        
                          I
                          1
                        
                        ⁡
                        
                          (
                          
                            x
                            1
                            i
                          
                          )
                        
                      
                    
                    )
                  
                
                2
              
            
          
          
            
              
                
                  
                    x
                    n
                    i
                  
                  =
                  
                    
                      π
                      i
                    
                    ⁡
                    
                      (
                      
                        
                          
                            α
                            _
                          
                          n
                        
                        ,
                        
                          π
                          n
                        
                        ,
                        
                          t
                          n
                        
                      
                      )
                    
                  
                
                ,
              
            
          
        
        }
      
      ⁢
      
        
          
            
              E
              ⁢
              
                
              
              ⁢
              q
              ⁢
              
                
              
              ⁢
              u
              ⁢
              
                
              
              ⁢
              a
              ⁢
              
                
              
              ⁢
              t
              ⁢
              
                
              
              ⁢
              i
              ⁢
              
                
              
              ⁢
              o
              ⁢
              
                
              
              ⁢
              n
              ⁢
              
                
              
              ⁢
              4
            
          
        
        
          
            
              E
              ⁢
              
                
              
              ⁢
              q
              ⁢
              
                
              
              ⁢
              u
              ⁢
              
                
              
              ⁢
              a
              ⁢
              
                
              
              ⁢
              t
              ⁢
              
                
              
              ⁢
              i
              ⁢
              
                
              
              ⁢
              o
              ⁢
              
                
              
              ⁢
              n
              ⁢
              
                
              
              ⁢
              5
            
          
        
      
    
  




where πi is the model-based image projection map defined in Equation 2. The summation for Equation 4 is performed over small pixel windows, e.g., Region of Interest (ROI), around every image point xni, xn-1i and x1i.

In one embodiment, the first term in Equation 4 is a standard matching cost term, that is, the first term measures overall image mismatch between two successive images at the model points. The second term, however, measures image mismatch between the current image In and the first image I1. This additional term weakly enforces every facial feature to appear the same on the images from the beginning to the end of the sequence (in an image neighborhood sense). As such, it avoids tracking drifts and increases robustness. It is referred to as drift monitoring energy term.
The two energy terms are weighted relative to the other by the scalar variable “e.” In one embodiment, the variable e=0.2, which is to emphasize for tracking cost over monitoring cost. Thus, tracking is equivalent to estimating the optimal pose and deformation update vectors d{tilde over (ω)}≐{tilde over (ω)}n−{tilde over (ω)}n-1, dt≐tn−tn-1 and dα≐αn−αn-1. This is achieved by setting the derivative of Cn with respect to dα, d{tilde over (ω)} and dt to zero




  
    
      
        
          
            
              ∂
              
                C
                n
              
            
            
              ∂
              s
            
          
          =
          0
        
        ,
        
          
            w
            ⁢
            
              
            
            ⁢
            h
            ⁢
            
              
            
            ⁢
            e
            ⁢
            
              
            
            ⁢
            r
            ⁢
            
              
            
            ⁢
            e
            ⁢
            
              
            
            ⁢
            s
          
          =
          
            
              [
              
                
                  
                    
                      d
                      
                        α
                        _
                      
                    
                  
                
                
                  
                    
                      d
                      π
                    
                  
                
                
                  
                    
                      d
                      t
                    
                  
                
              
              ]
            
            .
          
        
      
    
    
      
        Equation
        ⁢
        
          
        
        ⁢
        6
      
    
  




Equation 6 is thus solved for “s” while assuming small motion between two consecutive frames. Let Iti be the extended temporal derivative defined as follows:





  
    
      
        
          
            I
            
              t
              ⁢
              
                
              
              ⁢
              i
            
          
          ⁡
          
            (
            
              x
              
                n
                -
                1
              
              i
            
            )
          
        
        =
        
          
            
              I
              n
            
            ⁡
            
              (
              
                x
                
                  n
                  -
                  1
                
                i
              
              )
            
          
          -
          
            
              (
              
                
                  
                    
                      (
                      
                        
                          1
                          -
                        
                        ∈
                      
                      )
                    
                    ⁢
                    
                      
                        I
                        
                          n
                          -
                          1
                        
                      
                      ⁡
                      
                        (
                        
                          x
                          
                            n
                            -
                            1
                          
                          i
                        
                        )
                      
                    
                  
                  +
                
                ∈
                
                  
                    I
                    1
                  
                  ⁡
                  
                    (
                    
                      x
                      1
                      i
                    
                    )
                  
                
              
              )
            
            .
          
        
      
    
    
      
        Equation
        ⁢
        
          
        
        ⁢
        7
      
    
  




The temporal derivative function Iti is in fact evaluated in the neighborhood of the point xn-1i. Note that if ε=0, Equation 7 reduces to the true temporal difference Iti=In−In-1. If •>0, the image patch on the previous image In-1 is averaged with that of the first frame, i.e., second row of Equation 7. The resulting patch is used as a reference for the next image In. This process effectively helps the monocular tracking operation “remember” the original appearance of the feature as it was selected on the first image thereby improving robustness and reducing drifts.

Next, let Ixi be x and y image derivatives (image gradient) of image In in the neighborhood of xn-1i:




  
    I
    
      x
      ⁢
      
        
      
      ⁢
      i
    
  
  =
  
    
      
        
          ∂
          I
        
        ⁢
        
          
        
        ⁢
        n
      
      
        ∂
        x
      
    
    =
    
      
        [
        
          
            
              ∂
              
                I
                n
              
            
            
              ∂
              x
            
          
          ⁢
          
            
              ∂
              
                I
                n
              
            
            
              ∂
              x
            
          
        
        ]
      
      .
    
  




Let ∇Ii be the derivative of the image brightness In with respect to s in the neighborhood of xn-1i as S=0:





  
    ∇
    
      I
      i
    
  
  =
  
    
      
        ∂
        
          I
          i
        
      
      
        ∂
        s
      
    
    =
    
      
        
          
            ∂
            
              I
              n
            
          
          
            ∂
            x
          
        
        ⁢
        
          
            ∂
            
              π
              i
            
          
          
            ∂
            s
          
        
      
      =
      
        
          I
          
            x
            ⁢
            
              
            
            ⁢
            i
          
        
        ⁢
        
          
            
              ∂
              
                π
                i
              
            
            
              ∂
              s
            
          
          .
        
      
    
  




The resulting matrix ∇Ii is a size of 1×(p+6) since Ixi and





  
    ∂
    
      π
      i
    
  
  
    ∂
    s
  




are of respective sizes as 1×2 and 2×(p+6). The optimal shape and pose update vector “s” that satisfies Equation 6 is then:

s=−G−1b,  Equation 8

where the (p+6)×(p+6)matrix G and the (p+6)×1 vector b are given by:




  
    G
    =
    
      
        ∑
        
          i
          =
          1
        
        N
      
      ⁢
      
        
          ∑
          
            R
            ⁢
            
              
            
            ⁢
            O
            ⁢
            
              
            
            ⁢
            I
          
        
        ⁢
        
          
            ∇
            
              I
              i
              T
            
          
          ⁢
          
            ∇
            
              I
              i
            
          
        
      
    
  




  
    b
    =
    
      
        ∑
        
          i
          =
          1
        
        N
      
      ⁢
      
        
          ∑
          
            R
            ⁢
            
              
            
            ⁢
            O
            ⁢
            
              
            
            ⁢
            I
          
        
        ⁢
        
          
            I
            
              t
              ⁢
              
                
              
              ⁢
              i
            
          
          ⁢
          
            
              ∇
              
                I
                i
                T
              
            
            .
          
        
      
    
  



Here, a unique tracking solution “s” is computed for the overall model all at once, while in its original form, each image point is processed individually. A 3D model is used for tracking that is built from real data and parameterized with few coefficients. For s to be computable, the matrix G must be of the rank p+6. Roughly, each point in the 3D model brings either zero, one or two scalar observation constraints depending on whether it falls in a textureless region, an edge region, or a fully textured region in the images. In one embodiment, the total number of constraints collected over all the points must then be larger than or equal to p+6=10 to make the 3D model good for tracking.
Once “s” is computed, pose and deformation are known at time frame n. In one embodiment, the same procedure can be reiterated multiple times (e.g., 4 or 5 times) at the fixed time frame n to refine the estimate. The same overall process is then repeated over the subsequent frames. In one embodiment, initialization of the 3D model parameters is done manually by first localizing the N=19 facial features on the first image I1. A small optimization is then performed for computing the initial pose and deformation parameters

{{tilde over (ω)}1,tl,α1}

that make the image projection of the model match the manually selected points.

It should be noted that the region of interest (ROI) of each model point is not kept constant throughout the sequence. Instead, its size and geometry are recomputed at every frame based on the distance (depth) and orientation (local surface normal) of the point in space. The resulting regions of interest are small parallelograms as shown in FIG. 5. In particular, points that face away from the camera are declared “non visible”, have a zero-size region of interest assigned to them, and therefore do not contribute to the tracking update.
Thus, a method and two-stage system for 3D tracking of pose and deformation, e.g., of the human face in monocular image sequences without the use of invasive special markers, have been described. The first stage of the system learns the spaces of all possible facial deformations by applying Principal Component Analysis on real stereo tracking data. The resulting model approximates any generic shape as a linear combination of shape basis vectors. The second stage of the system uses this low-complexity deformable model for simultaneous estimation of pose and deformation of the face from a single image sequence. This stage is known as model-based monocular tracking.
The data-driven approach for model construction is suitable for 3D tracking of non-rigid objects and offers an elegant and practical alternative to the task of manual construction of models using 3D scanners or CAD modelers. In addition, creating a model from real data allows for a large variety of facial deformations to be tracked with less parameters than handcrafted models and leads to increased robustness and tracking accuracy. Furthermore, the system exhibits very promising generalization properties in enabling tracking of multiple persons with the same 3D model, which constitutes a major improvement over most other face tracking systems that require a different model for each user to track.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

## Claims

1. A method for image processing comprising:
obtaining stereo data based on input image sequences from of varying facial expressions:
building a three-dimensional (3D) model using the obtained stereo data to obtain principal shape vectors; and
tracking a second input image sequence using the 3D model to approximate a linear combination of the principal shape vectors of a facial expression in the second input image sequence, wherein the second input image sequence is a monocular image sequence.

2. The method of claim 1, wherein the building of the 3D model includes processing the obtained stereo data using a Principal Component Analysis (PCA).

3. The method of claim 2, wherein the processed stereo data using PCA allows the 3D model to approximate a generic shape as the linear combination of the shape basis vectors.

4. The method of claim 1, wherein the tracking of the monocular image sequence includes tracking of a monocular image sequence of facial deformations using the built 3D model.

5. A computing system comprising:
an input unit to stereo data based on input image sequences from of varying facial expressions; and
a processing unit to build a three-dimensional (3D) model using the obtained stereo data to approximate a generic shape as a linear combination of shape basis vectors and track a second input image sequence using the 3D model to approximate a linear combination of the principal shape vectors of a facial expression in the second input image sequence, wherein the second input image sequence is a monocular image sequence.

6. The computing system of claim 5, wherein the processing unit is to process the obtained stereo data using a Principal Component Analysis (PCA).

7. The computing system of claim 6, wherein the processed stereo data using PCA allows the 3D model to approximate a generic shape as the linear combination of the shape basis vectors.

8. The computing system of claim 5, wherein the processing unit is to track a monocular image sequence of facial deformations using the built 3D model.

9. A non-transitory machine-readable medium providing instructions, which if executed by a processor, causes the processor to perform an operation comprising:
obtaining stereo data based on input image sequences from of varying facial expressions:
building a three-dimensional (3D) model using the obtained stereo data to approximate a generic shape as a linear combination of shape basis vectors; and
tracking a second input image sequence using the 3D model to approximate a linear combination of the principal shape vectors of a facial expression in the second input image sequence, wherein the second input image sequence is a monocular image sequence.

10. The machine-readable medium of claim 9, further providing instructions, which if executed by the processor, causes the processor to perform an operation comprising: processing the obtained stereo data using a Principal Component Analysis (PCA).

11. The machine-readable medium of claim 10, further providing instructions, which if executed by the processor, causes the processor to perform an operation comprising:
approximate a generic shape as the linear combination of the shape basis vectors based on the processed stereo data using PCA.

12. The machine-readable medium of claim 9, further providing instructions, which if executed by the processor, causes the processor to perform an operation comprising: tracking of a monocular image sequence of facial deformations using the built 3D model.