# Patent

## Title
Method and system for generating facial animation values based on a combination of visual and audio information

## Abstract

Facial animation values are generated using a sequence of facial image frames and synchronously captured audio data of a speaking actor. In the technique, a plurality of visual-facial-animation values are provided based on tracking of facial features in the sequence of facial image frames of the speaking actor, and a plurality of audio-facial-animation values are provided based on visemes detected using the synchronously captured audio voice data of the speaking actor. The plurality of visual facial animation values and the plurality of audio facial animation values are combined to generate output facial animation values for use in facial animation.

## Background
This is a continuation-in-part of U.S. patent application Ser. No. 09/871,370, filed May 31, 2001, which is a continuation of U.S. patent application Ser. No. 09/188,079, filed Nov. 6, 1998, now U.S. Pat. No. 6,272,231, which claims priority from U.S. Provisional Application No. 60/081,615, filed Apr. 13, 1998.


BACKGROUND OF THE INVENTION
The present invention relates to avatar animation, and more particularly, to facial feature tracking.
Virtual spaces filled with avatars are an attractive the way to allow for the experience of a shared environment. However, animation of a photo-realistic avatar often requires tedious efforts to generate realistic animation information.
Accordingly, there exists a significant need for improved techniques for generating animation information. The present invention satisfies this need.
SUMMARY OF THE INVENTION
The present invention is embodied in a method, and related apparatus, for generating facial animation values using a sequence of facial image frames and synchronously captured audio data of a speaking actor. In the method, a plurality of visual facial animation values are provided based on tracking, without using markers on the speaking actor, of facial features in the sequence of facial image frames of the speaking actor, and a plurality of audio facial animation values are provided based on visemes detected using the synchronously captured audio voice data of the speaking actor. The plurality of visual facial animation values and the plurality of audio facial animation values are combined to generate output facial animation values for use in facial animation.
In more detailed features of the invention, the output facial animation values associated with a mouth for a facial animation may be based only on the respective mouth-associated values of the plurality of audio facial animation values. Alternatively, the output facial animation values associated with a mouth for a facial animation may be based on a weighted average of the respective mouth-associated values of the plurality of visual facial animation values and the respective mouth-associated values of the plurality of audio facial animation values. Also, the output facial animation values associated with a mouth for a facial animation may be based on Kalman filtering of the respective mouth-associated values of the plurality of visual facial animation values and the respective mouth-associated values of the plurality of audio facial animation values. Further, the step of combining the plurality of visual facial animation values and the plurality of audio facial animation values to generate output facial animation values may include detecting whether speech is occurring in the synchronously captured audio voice data of the speaking actor and, while speech is detected as occurring, generating the output facial animation values associated with a mouth based only on the respective mouth-associated values of the plurality of audio facial animation values and, while speech is not detected as occurring, generating the output facial animation values associated with the mouth based only on the respective mouth-associated values of the plurality of visual facial animation values.
In other more detailed features of the invention, the tracking of facial features in the sequence of facial image frames of the speaking actor may be performed using bunch graph matching, or using transformed facial image frames generated based on wavelet transformations, such as Gabor wavelet transformations, of the facial images.
Other features and advantages of the present invention should be apparent from the following description of the preferred embodiments taken in conjunction with the accompanying drawings, which illustrate, by way of example, the principles of the invention.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a flow diagram for illustrating a method for generating facial animation values using a sequence of facial image frames and synchronously captured audio data of a speaking actor, according to the present invention.
FIG. 2 is a flow diagram for illustrating a technique for combining visual facial animation values and audio facial animation values, according to the present invention.
FIG. 3 is a block diagram for illustrating a technique for selectively combining visual facial animation values and audio facial animation values, according to the present invention.
FIG. 4 is a block diagram of a technique for detecting speech activity in audio data.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention is embodied in a method, and related apparatus, for generating facial animation values using a sequence of facial image frames and synchronously captured audio data of a speaking actor.
As shown in FIG. 1, the method includes providing a plurality of visual-facial-animation values vn (step 12) based on tracking of facial features in the sequence of facial image frames of the speaking actor (step 14), and providing a plurality of audio-facial-animation values an (step 16) based on visemes detected using the synchronously captured audio voice data of the speaking actor (step 18). The plurality of visual facial animation values and the plurality of audio facial animation values are combined to generate output facial animation values fn for use in facial animation (step 20).
The output facial animation values associated with a mouth in the facial animation may be based only on the respective mouth-associated values of the plurality of audio facial animation values. The combination of the visually generated facial animation values and the audio-based mouth animation values provides advantageous display of animated avatars.
The visemes are a visual equivalent of phonemes, i.e., visemes are related to facial expressions that are associated with temporal speech units in audio voice data. For the English language, it is generally agreed that there may be 15 visemes associated with 43 possible phomenes. Speech analysis and viseme detection may be accomplished with analysis products produced by LIPSinc, Inc., of Morrisville, N.C. (www.lipsinc.com).
The facial animation values or tags may be displacement values relative to neutral face values. Advantageously, 8 to 22 (or more) facial animation values may be used to define and animate the mouth, eyes, eyebrows, nose, and the head angle. Representative facial animation values for the mouth may include vertical mouth position, horizontal mouth position, mouth width, lip distance, and mouth corner position (left and right).
With reference to FIG. 2, the output facial animation values fn associated with a mouth in the facial animation may be based on a weighted average (Equation 1) of the respective mouth-associated values of the plurality of visual facial animation values vn and the respective mouth-associated values of the plurality of audio facial animation values an (step 22′). The visual facial animation values and the audio facial animation values may be assigned weights, σv and σa, respectively, that are proportional to an uncertainty of the animation values. The merging of the values may be memoryless, i.e., each combined value may be the result of present values, exclusively. 



  
    
      
        
          (
          
            
              
                f
                _
              
              n
            
            =
            
              
                
                  
                    
                      σ
                      _
                    
                    n
                    a
                  
                  
                    
                      
                        σ
                        _
                      
                      n
                      a
                    
                    +
                    
                      
                        σ
                        _
                      
                      n
                      v
                    
                  
                
                ·
                
                  
                    a
                    _
                  
                  n
                
              
              +
              
                
                  
                    
                      σ
                      _
                    
                    n
                    v
                  
                  
                    
                      
                        σ
                        _
                      
                      n
                      v
                    
                    +
                    
                      
                        σ
                        _
                      
                      n
                      a
                    
                  
                
                ·
                
                  
                    v
                    _
                  
                  n
                
              
            
          
          )
        
        i
      
    
    
      
        Equation
        .
        
           
        
        ⁢
        1
      
    
  




Alternatively, the combined values may be based on recursive estimates using a series of the animation values. Accordingly, the output facial animation values associated with a mouth in the facial animation are based on Kalman filtering of the respective mouth-associated values of the plurality of visual facial animation values and the respective mouth-associated values of the plurality of audio facial animation values. The Kalman filtering may be accomplished in accordance with Equations 2-7. 



  
    
      
        
          
            f
            _
          
          n
        
        =
        
          
            
              A
              
                _
                _
              
            
            
              n
              -
              q
            
          
          ·
          
            
              f
              _
            
            
              n
              -
              q
            
          
        
      
    
    
      
        Equation
        .
        
           
        
        ⁢
        2
      
    
  
  
    
      
        
          
            
              f
              ^
            
            _
          
          n
        
        =
        
          
            
              f
              _
            
            n
          
          +
          
            
              
                
                  K
                  _
                
                _
              
              n
            
            ⁡
            
              [
              
                
                  (
                  
                    
                      
                        a
                        _
                      
                      n
                    
                    -
                    
                      f
                      n
                    
                  
                  )
                
                
                  (
                  
                    
                      
                        v
                        _
                      
                      n
                    
                    -
                    
                      f
                      n
                    
                  
                  )
                
              
              ]
            
          
        
      
    
    
      
        Equation
        .
        
           
        
        ⁢
        3
      
    
  
  
    
      
        
          
            
              p
              ~
            
            
              _
              _
            
          
          n
          f
        
        =
        
          
            
              
                A
                
                  _
                  _
                
              
              
                n
                -
                q
              
            
            ·
            
              
                
                  p
                  ~
                
                
                  _
                  _
                
              
              
                n
                -
                a
              
              f
            
            ·
            
              
                A
                
                  _
                  _
                
              
              
                n
                -
                q
              
            
          
          +
          
            
              Q
              
                _
                _
              
            
            
              n
              -
              q
            
          
        
      
    
    
      
        Equation
        .
        
           
        
        ⁢
        4
      
    
  
  
    
      
        
          
            K
            
              _
              _
            
          
          n
        
        =
        
          
            
              
                
                  p
                  ~
                
                
                  _
                  _
                
              
              n
              f
            
            ⁡
            
              (
              
                
                  
                    
                      p
                      ~
                    
                    
                      _
                      _
                    
                  
                  n
                  f
                
                +
                
                  
                    R
                    
                      _
                      _
                    
                  
                  n
                
              
              )
            
          
          
            -
            q
          
        
      
    
    
      
        Equation
        .
        
           
        
        ⁢
        5
      
    
  
  
    
      
        
          
            m
            _
          
          n
        
        =
        
          
            f
            _
          
          n
        
      
    
    
      
        Equation
        .
        
           
        
        ⁢
        6
      
    
  
  
    
      
        
          
            
              p
              ~
            
            
              _
              _
            
          
          n
        
        =
        
          
            (
            
              
                I
                
                  _
                  _
                
              
              -
              
                K
                
                  _
                  _
                
              
            
            )
          
          ·
          
            
              
                p
                ~
              
              _
            
            n
            f
          
        
      
    
    
      
        Equation
        .
        
           
        
        ⁢
        7
      
    
  




With reference to FIG. 3, the step of combining the plurality of visual facial animation values and the plurality of audio facial animation values to generate output facial animation values may include detecting whether speech is occurring in the synchronously captured audio voice data of the speaking actor. While speech is detected as occurring, the output facial animation values associated with a mouth may be generated based only on the respective mouth-associated values of the plurality of audio facial animation values (switch S1 open, switch S2 closed). While speech is not detected as occurring, the output facial animation values associated with a mouth may be generated based only on the respective mouth-associated values of the plurality of visual facial animation values (S1 closed, S2 open).
The switches, S1 and S2, may be controlled by a Speech Activity Detector 22 (SAD). The operation of the SAD is described with reference to FIG. 4. The audio voice data 24 is filtered by a low-pass filter (step 26), and the audio features are computed for separating speech activity from background noise (step 28). The background noise may be characterized to minimize its effect on the SAD. The noise and audio speech indications 30 are temporally smoothed to decrease the effects of spurious detections of audio speech. (step 32).
The tracking of facial features in the sequence official image frames of the speaking actor may be performed using bunch graph matching, or using transformed facial image frames generated based on wavelet transformations, such as Gabor wavelet transformations, of the facial image frames. Wavelet-based tracking techniques are described in U.S. Pat. No. 6,272,231. The wavelet-based sensing allows tracking of a person's natural characteristics without any unnatural elements to interfere with the person's natural characteristics. Existing methods of facial feature sensing typically use markers that are glued to a person's face. The use of markers for facial motion capture is cumbersome and has generally restricted the use of facial motion capture to high-cost applications such as movie production. The entire disclosure, of U.S. Pat. No. 6,272,231 is hereby incorporated herein by reference. The techniques of the invention may be accomplished using generally available image processing systems.
Although the foregoing discloses the preferred embodiments of the present invention, it is understood that those skilled in the art may make various changes to the preferred embodiments without departing from the scope of the invention. The invention is defined only by the following claims.

## Claims

1. Method for generating facial animation values using a sequence of facial image frames and synchronously captured audio data of a speaking actor, comprising the steps for:
providing a plurality of visual-facial-animation values based on tracking of facial features in the sequence of facial image frames of the speaking actor; 
providing a plurality of audio-facial-animation values based on visemes detected using the synchronously captured audio voice data of the speaking actor; and 
combining the plurality of visual facial animation values and the plurality of audio facial animation values to generate output facial animation values for use in facial animation.

2. Method for generating facial animation values as defined in claim 1, wherein the output facial animation values associated with a mouth for a facial animation are based only on the respective mouth-associated values of the plurality of audio facial animation values.

3. Method for generating facial animation values as defined in claim 1, wherein the output facial animation values associated with a mouth for a facial animation are based on a weighted average of the respective mouth-associated values of the plurality of visual facial animation values and the respective mouth-associated values of the plurality of audio facial animation values.

4. Method for generating facial animation values as defined in claim 3, wherein the output facial animation values are calculated using the following equation: 



  
    (
    
      
        
          f
          _
        
        n
      
      =
      
        
          
            
              
                σ
                _
              
              n
              a
            
            
              
                
                  σ
                  _
                
                n
                a
              
              +
              
                
                  σ
                  _
                
                n
                v
              
            
          
          ·
          
            
              a
              _
            
            n
          
        
        +
        
          
            
              
                σ
                _
              
              n
              v
            
            
              
                
                  σ
                  _
                
                n
                v
              
              +
              
                
                  σ
                  _
                
                n
                a
              
            
          
          ·
          
            
              v
              _
            
            n
          
        
      
    
    )
  
  i



where: 
fn are the output facial animation values; 
vn are the visual facial animation values; 
an are the respective mouth-associated values of the audio facial animation values; 
σna are the weights for the audio facial animation values; and 
σnv are the weights for the visual facial animation values.

5. Method for generating facial animation values as defined in claim 1, wherein the output facial animation values associated with a mouth for a facial animation are based on Kalman filtering of the respective mouth-associated values of the plurality of visual facial animation values and the respective mouth-associated values of the plurality of audio facial animation values.

6. Method for generating facial animation values as defined in claim 1, wherein the step of combining the plurality of visual facial animation values and the plurality of audio facial animation values to generate output facial animation values includes detecting whether speech is occurring in the synchronously captured audio voice data of the speaking actor and, while speech is detected as occurring, generating the output facial animation values associated with a mouth based only on the respective mouth-associated values of the plurality of audio facial animation values and, while speech is not detected as occurring, generating the output facial animation values associated with a mouth based only on the respective mouth-associated values of the plurality of visual facial animation values.

7. Method for generating facial animation values as defined in claim 1, wherein the tracking of facial features in the sequence of facial image frames of the speaking actor is performed using bunch graph matching.

8. Method for generating facial animation values as defined in claim 1, wherein the tracking of facial features in the sequence of facial image frames of the speaking actor is performed using transformed facial image frames generated based on wavelet transformations.

9. Method for generating facial animation values as defined in claim 1, wherein the tracking of facial features in the sequence of facial image frames of the speaking actor is performed using transformed facial image frames generated based on Gabor wavelet transformations.

10. Method for generating facial animation values as defined in claim 1, wherein the tracking of facial features in the sequence of facial image frames of the speaking actor is performed without using markers attached to the speaking actor's face.

11. Apparatus for generating facial animation values using a sequence of facial image frames and synchronously captured audio data of a speaking actor, comprising:
means for providing a plurality of visual-facial-animation values based on tracking of facial features in the sequence of facial image frames of the speaking actor; 
means for providing a plurality of audio-facial-animation values based on visemes detected using the synchronously captured audio voice data of the speaking actor; and 
means for providing a plurality of visual-facial-animation values based on tracking of facial features in the sequence of facial image frames of the speaking actor; 
means for combining the plurality of visual facial animation values and the plurality of audio facial animation values to generate output facial animation values for use in facial animation.

12. Apparatus for generating facial animation values as defined in claim 11, wherein the output facial animation values associated with a mouth for a facial animation are based only on the respective mouth-associated values of the plurality of audio facial animation values.

13. Apparatus for generating facial animation values as defined in claim 11, wherein the output facial animation values associated with a mouth for a facial animation are based on a weighted average of the respective mouth-associated values of the plurality of visual facial animation values and the respective mouth-associated values of the plurality of audio facial animation values.

14. Apparatus for generating facial animation values as defined in claim 13, wherein the output facial animation values are calculated using the following equation: 



  
    (
    
      
        
          f
          _
        
        n
      
      =
      
        
          
            
              
                σ
                _
              
              n
              a
            
            
              
                
                  σ
                  _
                
                n
                a
              
              +
              
                
                  σ
                  _
                
                n
                v
              
            
          
          ·
          
            
              a
              _
            
            n
          
        
        +
        
          
            
              
                σ
                _
              
              n
              v
            
            
              
                
                  σ
                  _
                
                n
                v
              
              +
              
                
                  σ
                  _
                
                n
                a
              
            
          
          ·
          
            
              v
              _
            
            n
          
        
      
    
    )
  
  i



where: 
fn are the output facial animation values; 
vn are the visual facial animation values; 
an are the respective mouth-associated values of the audio facial animation values; 
σna are the weights for the audio facial animation values; and 
σnv are the weights for the visual facial animation values.

15. Apparatus for generating facial animation values as defined in claim 11, wherein the output facial animation values associated with a mouth for a facial animation are based on Kalman filtering of the respective mouth-associated values of the plurality of visual facial animation values and the respective mouth-associated values of the plurality of audio facial animation values.

16. Apparatus for generating facial animation values as defined in claim 11, wherein the means for combining the plurality of visual facial animation values and the plurality of audio facial animation values to generate output facial animation values includes means for detecting whether speech is occurring in the synchronously captured audio voice data of the speaking actor and, while speech is detected as occurring, generating the output facial animation values associated with a mouth based only on the respective mouth-associated values of the plurality of audio facial animation values and, while speech is not detected as occurring, generating the output facial animation values associated with a mouth based only on the respective mouth-associated values of the plurality of visual facial animation values.

17. Apparatus for generating facial animation values as defined in claim 11, wherein the tracking of facial features in the sequence of facial image frames of the speaking actor is performed using bunch graph matching.

18. Apparatus for generating facial animation values as defined in claim 11, wherein the tracking of facial features in the sequence of facial image frames of the speaking actor is performed using transformed facial image frames generated based on wavelet transformations.

19. Apparatus for generating facial animation values as defined in claim 11, wherein the tracking of facial features in the sequence of facial image frames of the speaking actor is performed using transformed facial image frames generated based on Gabor wavelet transformations.

20. Apparatus for generating facial animation values as defined in claim 11, wherein the tracking of facial features in the sequence of facial image frames of the speaking actor is performed without using markers attached to the speaking actor's face.