# Patent

## Title
Detecting facial expressions in digital images

## Abstract

A method and system for detecting facial expressions in digital images and applications therefore are disclosed. Analysis of a digital image determines whether or not a smile and/or blink is present on a person's face. Face recognition, and/or a pose or illumination condition determination, permits application of a specific, relatively small classifier cascade.

## Background
PRIORITY CLAIM AND RELATED APPLICATIONS
This application claims benefit under 35 U.S.C. §120 as a Continuation of application Ser. No. 12/354,707, filed on Jan. 15, 2009, which claims the benefit under 35 U.S.C. §119(e) of provisional applications 61/024,508, filed Jan. 29, 2008, entitled, “Methods and Apparatuses For Detecting Facial Expressions in Digital Images and Applications Thereof”, and 61/023,855, filed Jan. 27, 2008, entitled, “Blink Detection Method”. This application is also related U.S. patent application Ser. No. 11/752,925 filed on May 24, 2007, entitled “Image Processing Method and Apparatus”. The entire contents of the above applications are hereby incorporated by reference for all purposes as if fully set forth herein. The applicant(s) hereby rescind any disclaimer of claim scope in the parent application(s) or the prosecution history thereof and advise the USPTO that the claims in this application may be broader than any claim in the parent application(s).


FIELD
Embodiments of the invention relate generally to the field of detecting facial expressions in digital images and applications thereof.
BACKGROUND
It has proven problematic to accurately and automatically identify facial expressions in digital images. Approximately 30% of facial images are images, such as snapshots, representing faces which have various facial expressions. When a conventional face classification apparatus is used to detect faces in general images, the accuracy in detection is lower compared with images which have substantially the same facial expressions. Therefore, there is a problem that the face classification apparatus of prior art schemes cannot accurately detect facial expressions and specific facial expressions-such as smiles, frowns, etc.
SUMMARY OF THE INVENTION
A technique is provided for in-camera processing of a still image including one or more faces as part of an acquisition process. The technique involves identifying a group of pixels that correspond to a face within at least one digitally-acquired image on a portable camera. A collection of relatively lower resolution images including a face are generated in-camera, captured or otherwise obtained in-camera, and the face is tracked within the collection. Cropped versions of multiple images of the collection are acquired. Smile state information of the face is accumulated over the multiple images. A statistical smile state of the face is classified based on the accumulated smile state information. One or more smile state-dependent operations are selected based upon results of the analyzing.
Face recognition may be applied to one or more of the multiple images. A relatively short classifier cascade of images may be trained that each include a specifically-recognized person's face. The relatively short classifier cascade may include different poses and illuminations of the specifically-recognized person's face. A pose and/or illumination condition is/are determined, and the relatively short classifier cascade is adjusted base on the determined pose and/or illumination. Image acquisition may be initiated or delayed when the face is or is not recognized as one of one or more specific persons and/or when the face is classified as having a smile or not having a smile.
The technique may further include determining a pose and/or illumination condition for the face, and training a specific set of face classifiers adjusted based on the determined pose and/or illumination condition.
The classifying of the statistical smile state may include assigning a chain of Haar and/or census features.
The identifying of the group of pixels that correspond to a face may include applying approximately the same Haar and/or census features as the classifying.
The cropped versions may each include substantially only a region of the image that includes the face or that only includes a mouth region of the face.
The classifying may include thresholding, such that a classifying result may be one of smile, no smile or inconclusive. The thresholding may include comparing the statistical smile state to a first threshold between 60%-90% likely to be a smile, or to a second threshold of 10%-40% likely to be a smile, or both, with the 60%-90% or more corresponding to a smile result, and with the 10%-40% or less corresponding to a no smile result, and with between the 10%-40% and the 60%-90% corresponding to an inconclusive result. The first threshold may be approximately 80% and the second threshold may be approximately 20%.
The classifying may include calculating a statistical smile difference vector between frames of the collection of relatively lower resolution images, and determining that a certain threshold or more of difference corresponds to a sudden change in pose, illumination, or other image parameter, or to a changing smile state. A particular cause of the certain threshold or more of difference may be confirmed.
Multiple faces may be identified and tracked. Smile state information for each of the multiple faces may be classified. A smile-dependent group shot operation may be initiated if more than a first threshold number of faces is classified as no smile and/or if less than a second threshold number of faces is classified as smile. The smile-dependent group shot operation may include triggering a warning signal to a user or delaying acquisition of a group shot until determining that less than the first threshold number of faces is classified as no smile and/or that more than the second threshold number of faces is classified as smile.
A best smile image may be composited by combining one or more face regions of the at least one digitally-acquired image with a best smile region of one or more of the images of the collection of relatively lower resolution images. The best smile region may include a mouth region with a highest probability of being classified as a smile.
A portable digital image acquisition device is also provided, including a lens and image sensor for acquiring digital images, a processor, and one or more processor-readable media having code embedded therein for programming the processor to perform any of the techniques as described above or below herein.
One or more processor-readable media are provided with code embedded therein for programming a processor to perform any of the techniques as described above or below herein.
A method is also provided for in-camera processing of a still image including one or more faces as part of an acquisition process. A group of pixels is identified that corresponds to a face within at least one digitally-acquired image on a portable camera. The method also includes generating in-camera, capturing or otherwise obtaining in-camera a collection of relatively lower resolution images including a face, and tracking said face within said collection of relatively lower resolution images. Cropped versions of multiple images of the collection are acquired including the face. The method also includes accumulating smile state information of the face over the multiple images. A statistical smile state of the face is classified based on the accumulated smile state information. One or more smile state-dependent operations is/are selected and/or initiated based upon results of the analyzing.
The method may include applying face recognition to one or more of the multiple images.
A pose or illumination condition, or both, may be determined for the face. A specific set of face classifiers may be adjusted based on the determined pose or illumination or both.
The classifying of the statistical smile state may include assigning a chain of Haar and/or census features.
The cropped versions may each include substantially only a region of the image that includes the face or only a region of the image that includes a mouth region of the face.
The classifying may include thresholding, such that a classifying result includes smile, no smile or inconclusive.
The classifying may include calculating a statistical smile difference vector between frames of the collection of relatively lower resolution images, and determining that a certain threshold or more of difference corresponds to a sudden change in pose, illumination, or other image parameter, or to a changing smile state. The classifying may include confirming a particular cause of the certain threshold or more of difference.
Multiple faces may be identified and tracked. Smile state information for each of the multiple faces may be classified. The method may include initiating a smile-dependent group shot operation if more than a first threshold number of faces is classified as no smile or if less than a second threshold number of faces is classified as smile, or both.
The method may further include compositing a best smile image including combining one or more face regions of the at least one digitally-acquired images with a best smile region of one or more of the images of the collection of relatively lower resolution images.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention may be best understood by referring to accompanying drawings briefly described as follows to illustrate the embodiments:
FIG. 1 illustrates a technique of processing a still image including a face.
FIG. 2 illustrates a further technique of processing a still image including a face.
FIG. 3 illustrates specific classifying and identifying processes for use with the technique of FIG. 1.
FIG. 4 illustrates an alternative embodiment for training smile and non-smile facial expression classifiers.
FIG. 5 illustrates an alternative embodiment for testing with trained classifiers whether an image includes a face with a smile.
FIG. 6 illustrates a face looking straight ahead which is classified as non-smile.
FIG. 7 illustrates a face looking down which is also classified as non-smile.



DETAILED DESCRIPTIONS OF SEVERAL EMBODIMENTS
Systems and methods for detecting facial expressions (e.g., smiles), as well as applications for such systems and methods are described. In this description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known, structures and techniques have not been shown in detail in order not to obscure the understanding of this description.
Reference throughout the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearance of the phrases “in one embodiment” or “in an embodiment” in various places throughout the specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Moreover, inventive aspects lie in less than all features of a single disclosed embodiment. Thus, any claims following the Detailed Description are hereby expressly incorporated into this Detailed Description, with each claim standing on its own as a separate embodiment of this invention.
Embodiments of the invention are applicable in a variety of settings in which it is desired to detect facial expressions in digital images.
For certain embodiments, a binary classifier is created and used for each face to be recognized. That is, samples of a target face are acquired through operation of a face detection algorithm and these samples are used as positive samples for the binary classifier.
FIGS. 1-3 illustrate a smile detector in accordance with an exemplary embodiment. Referring first to Figure I, a digital still image is acquired that includes a face at block 102. At block 104, a group of pixels is identified that corresponds to the face in the digital still image. At block 106, a collection of low resolution images is generated in-camera, captured or otherwise obtained in-camera including multiple instances of the face. The face is tracked at block 108 within the collection of low resolution images. At block 110, cropped versions are acquired of images of the collection including the face. Smile state information of the face is accumulated based on the cropped versions at block 112. A statistical smile state of the face is classified at block 114. One or more smile state-dependent operations is/are initiated at block 116.
FIG. 2 illustrates a technique including applying faced recognition at block 202. At ‘block 204, a relatively short classifier cascade of images is trained that includes a specifically recognized person's face. At block 206, different poses and/or illuminations of the specifically recognized person's face are selected for the relatively short classifier cascade.
FIG. 3 illustrates specific operations that may be used advantageously in the method of Figure I. At block 302, in the classifying at block 104, a chain of Haar and/or census features is assigned. At block 304, in the identifying, apply approximately the same Haar and/or census features as in the classifying at block 114.
Smile Detector Based on Face Detector Cascades
Embodiments of the invention employ in-camera training of new classifiers (i.e., instead of reusing the exact detection classifiers), that are used for separating one face from another. In certain embodiments, a binary classifier is built for faces that are and/or should be recognized. This training means that upon user request samples of the target face are acquired by employing a face detection algorithm. These samples are then used as positive samples for a binary classifier. Negative samples are either used from a small collection of generic faces and/or from other previously trained faces, which are stored locally. A relatively short classifier cascade is then trained.
In certain embodiments, the process may be repeated for faces that the user selects for future recognition. In a typical live view mode, the camera will run the tracking algorithm. A new detected face will be compared against the classifiers in the relatively short cascade in the recognition database. Depending on classifier responses and confidence accumulation, over several frames, a voting algorithm will choose one of the database faces or decide that the face does not belong to the recognition set.
In certain embodiments, information from the detection process is used to adjust the recognition process. For one such embodiment, the adjustment of the recognition process is effected dynamically based on the detector/tracker.
In accordance with various embodiments a particular face may have a number of recognition profiles, since the illumination conditions can change the classifier responses quite significantly. When a previously trained face is not correctly recognized under a certain condition, a new recognition profile can be added to that face either automatically or upon user input.
In general, certain embodiments allow the use of detection classifiers to perform recognition based on detection probability. That is, the face detector probability output is used to re-scale the classifiers for the recognizer. For one such embodiment, the detector indicates if a face is a “strong” or “weak” face and then the result is boosted or suppressed in accordance with the indication.
For certain embodiments, smile detection works as an add-on feature to the face tracking algorithm. It will receive as input the face region in the form of a polygon such as a rectangle, or alternatively a square, rhombus, triangle, circle, or otherwise, as well as the already computed integral images and other available maps.
The smile detection algorithm will run a binary classifier on each of the tracked face regions and will decide with a certain degree of confidence whether each of the faces is smiling or not smiling. If the required confidence level to provide an answer is not reached, the smiling-state of the face will be declared as uncertain or unknown. In certain embodiments, the prerequisites for the face may be that it should be frontal, with in-plane orientation close to 0, 90 or −90. However, as described below with reference to FIGS. 6 and 7, different poses can be identified and smiling states can be determined from them.
The smile classifier is the same type of chain with Haar and census features as the face detector. During the training part, it is learned to differentiate between positive smiling samples and negative non-smiling samples. The samples are face crops which are obtained by running the face detector and by automatic cropping based on manual or automatic markings on images with faces. The samples may have the same upright orientation, with slight variations.
In an alternative embodiment of the system the samples could be mouth region crops, which hold most of the useful information for smile classification. Such alternative system involves an additional identification of the mouth region prior to the actual classification. This can be done by running a feature based mouth detector, or identifying the mouth by a maximum color saturation region in the bottom half of the face or another alternative method. This general approach adds an extra level of uncertainty, but may be advantageous in utilizing less data.
The training process may provide a binary classifier chain that can decide the smiling state for a whole face region as it is delivered by the face detector. Smile detection/classification may be executed on individual frames, but the logic spans over several frames as confidence is being accumulated in order to provide a consistent response for a certain face. On a particular frame, the smile classifier runs only on face rectangles (or other polygons) coming directly from the detector, because these are best centered and fitted over the face, before the tracking algorithm re-evaluates the rectangle position. The smile classifier is also evaluated at several slightly shifted positions around the face region.
A confidence based on these neighboring classifications is summed up and thresholded. A smiling decision can be positive, negative or inconclusive. The classifier evaluation is done by the same engine as the one running the face detector, but the smile classifiers are provided instead of the face ones. During a sequence of frames, a smiling confidence parameter assigned to each tracked face, is either incremented or decremented for each positive or, respectively, negative smile response. This confidence parameter may be integer, and may be bound by upper and lower limits such that the smiling decision is responsive enough, and will not lock in a certain state. The confidence parameter is updated after each smile classification (which occurs each frame or at an interval). The final smile state output for a face may be inquired at each frame (may be continuously output), and may be based on the sign and the absolute value of the integer confidence parameter.
In accordance with certain embodiments, an algorithm is capable of detecting smiling frontal faces, as in-camera applications. The algorithm could be viewed as a standalone feature of digital cameras for facial expression detection (e.g., smile or frown detection). Certain embodiments may also be employed in apparatuses or methods involving decisions or further actions based on the presence of a smiling person and may include this algorithm as a decision algorithm.
In an alternative embodiment, Discreet Cosine Transforms (DCTs) are used.
The Training Part of the Algorithm
In certain embodiments, the facial expression to be detected is a smile. There may be two databases, one with smiles, and the other with non-smile, greyscale images. A training algorithm is applied to each database. For one embodiment, the steps of the training algorithm may be identical or substantially the same for both databases. Crops may be used including entire faces or just mouth regions or another subset at least including mouth regions, as outputted from a face detector. In alternative embodiments where blinks are being detected, then just eye region crops may be used or another subset at least including one or both eyes.
Images are read from the database (e.g., as squared crops delivered by the face detection algorithm). Then, for each image, the following steps may be performed:

    
    
        1. Re-dimension the image to 25×25 pixels. This can be effected using bilinear interpolation, or alternatively bicubic splines.
        2. Apply the 2DCT transform:
    
    






  
    F
    ⁡
    
      (
      
        u
        ,
        v
      
      )
    
  
  =
  
    
      C
      ⁡
      
        (
        u
        )
      
    
    ⁢
    
      
        C
        ⁡
        
          (
          v
          )
        
      
      ⁡
      
        [
        
          
            ∑
            
              x
              =
              0
            
            
              (
              
                N
                -
                1
              
              )
            
          
          ⁢
          
            
              ∑
              
                y
                =
                0
              
              
                (
                
                  N
                  -
                  1
                
                )
              
            
            ⁢
            
              
                f
                ⁡
                
                  (
                  
                    x
                    ,
                    y
                  
                  )
                
              
              ⁢
              cos
              ⁢
              
                
                  
                    (
                    
                      
                        2
                        ⁢
                        x
                      
                      +
                      1
                    
                    )
                  
                  ⁢
                  u
                  ⁢
                  
                    
                  
                  ⁢
                  π
                
                
                  2
                  ⁢
                  N
                
              
              ⁢
              cos
              ⁢
              
                
                  
                    (
                    
                      
                        2
                        ⁢
                        y
                      
                      +
                      1
                    
                    )
                  
                  ⁢
                  v
                  ⁢
                  
                    
                  
                  ⁢
                  π
                
                
                  2
                  ⁢
                  N
                
              
            
          
        
        ]
      
    
  




    
    
        3. Set the pixels in the upper left corner of the transformed matrix (20% of the number of pixels on Ox times 20% of the number of pixels on Oy) to 0.
    
    


This corresponds to removing the low frequency coefficients which are related to person features

    
    
        4. Apply the 2IDCT transform:
    
    





  
    
      f
      ⁡
      
        (
        
          x
          ,
          y
        
        )
      
    
    =
    
      [
      
        
          ∑
          
            u
            =
            0
          
          
            (
            
              N
              -
              1
            
            )
          
        
        ⁢
        
          
            ∑
            
              v
              =
              0
            
            
              (
              
                N
                -
                1
              
              )
            
          
          ⁢
          
            
              C
              ⁡
              
                (
                u
                )
              
            
            ⁢
            
              C
              ⁡
              
                (
                v
                )
              
            
            ⁢
            
              F
              ⁡
              
                (
                
                  u
                  ,
                  v
                
                )
              
            
            ⁢
            cos
            ⁢
            
              
                
                  (
                  
                    
                      2
                      ⁢
                      x
                    
                    +
                    1
                  
                  )
                
                ⁢
                u
                ⁢
                
                  
                
                ⁢
                π
              
              
                2
                ⁢
                N
              
            
            ⁢
            cos
            ⁢
            
              
                
                  (
                  
                    
                      2
                      ⁢
                      y
                    
                    +
                    1
                  
                  )
                
                ⁢
                v
                ⁢
                
                  
                
                ⁢
                π
              
              
                2
                ⁢
                N
              
            
          
        
      
      ]
    
  




  
    where
    ⁢
    
      :
    
  




  
    
      
        C
        ⁡
        
          (
          u
          )
        
      
      =
      
        1
        
          N
        
      
    
    ,
    
      

    
    ⁢
    
      
        C
        ⁡
        
          (
          v
          )
        
      
      =
      
        1
        
          N
        
      
    
  




  for




  
    u
    ,
    
      
        v
        =
        0
      
      ;
    
  




  
    
      
        C
        ⁡
        
          (
          u
          )
        
      
      =
      
        
          2
        
        
          N
        
      
    
    ,
    
      

    
    ⁢
    
      
        C
        ⁡
        
          (
          v
          )
        
      
      =
      
        
          2
        
        
          N
        
      
    
  




  for




  
    u
    ,
    
      
        v
        =
        
          
            1
            ⁢
            
              
            
            ⁢
            through
            ⁢
            
              
            
            ⁢
            N
          
          -
          1
        
      
      ;
    
  



    
    
        5. Set all the negative values to 0.
    
    


This has the effect of ignoring the values outside of the value range (0 . . . 255 for gray255; 0 . . . 1 for normalized values).

    
    
        6. Apply an improved histogram equalization:
        
            a. For each pixel, compute the mean of its horizontal, vertical and diagonal neighbours;
            b. Sort pixels after their grey level, then after the computed mean;
            c. Assign new levels of grey to each pixel;
            d. Re-sort pixels in the original position.
        
        
    
    


The process will also work with conventional histogram equalization, though the quality of the results may be reduced.

    
    
        7. Reshape the image to a vector (e.g. using vectorization).
    
    


For the whole database, after all images have been reshaped to vectors, perform the following steps:

    
    
        8. Sort the vectors in 8 clusters using k-means. This is an arbitrary clustering that has been determined empirically to be sufficient to effect an advantageous concept. In general, the clustering may be different as will be appreciated by those skilled in the art.
        9. Retain the cluster's centroids.
    
    


The training algorithm may be performed offline (i.e., the cluster centroids can be computed a priori and stored in a memory unit).
FIG. 4 illustrates an example of a training component of a facial expression detection technique. At block 402, parameters are initialized for smile and nonsmile databases, and the number of clusters is set to 8, and the OCT parameter is set to 20%.
For the smile database, an image is read at block 404. Dimensions are changed at block 406. A 2DCT algorithm is applied at block 408 as set forth above. The high frequencies are kept at block 410, and the upper left corner is turned to zero. A 21 OCT algorithm is applied at block 412 as set forth above. Negative values are made zero at block 414. Histogram equalization is performed at block 416, e.g., as described above. It is determined at block 418 whether the smile database is finished. If not, then a next image is read at block 404. If so, then K-means is used to sort clusters at block 420, and means of clusters for smile are calculated at block 422.
For the non-smile database, an image is read at block 424. Dimensions are changed at block 426. A 2DCT algorithm is applied at block 428 as set forth above. The high frequencies are kept at block 430, and the upper left corner is turned to zero. A 21 DCT algorithm is applied at block 432 at set forth above. Negative values are made zero at block 434. Histogram equalization is performed at block 436, e.g., as described above. It is determined at block 438 whether the non-smile database is finished. If not, then a next image is’ read at block 424. If so, then K-means is used to sort clusters at block 440, and means of clusters for non-smile are calculated at block 442.
The Detection/Test Part of the Algorithm
The following sequence may be applied for performing detection of smile or non-smiles (or blinks, etc.).

    
    
        1. Load the 16 cluster centroids.
        2. Read the image to be classified.
        3. If necessary, turn it to a grayscale image.
        4. Re-dimension the image to 25×25 pixels.
        5. Apply the 2DCT transform.
        6. Set the pixels in the upper left corner of the transformed matrix (20% of the number of pixels on Ox times 20% of the number of pixels on Oy) to 0.
        7. Apply the 2IDCT transform.
        8. Set the negative values to 0.
        9. Apply the improved histogram equalization.
        10. Reshape the image to a vector.
        11. Compute the Euclidian distances between the vector and all the clusters centroids.
        12. Find the minimum distance.
        13. Assign to the test image the same label (Smile or NonSmile) as the images within the closest cluster.
    
    


For certain embodiments, the number of clusters (e.g., S clusters for each database) may be varied. Additionally, or alternatively, the number of pixels made 0 after 2DCT (in this case 5×5 pixels) may be varied.
FIG. 5 illustrates an example of a detection component of a facial expression detection technique. At block 502, data is input including means of the clusters from the example of FIG. 4 and a test image. The test image is read at block 504. Dimensions are changed at block 506. A 2DCT algorithm is applied at block 508 as set forth above. The high frequencies are kept at block 510, and the upper left corner is turned to zero. A 21 DCT algorithm is applied at block 512 as set forth above. Negative values are made zero at block 514. Histogram equalization is performed at block 516, e.g., as described above. Distances to the center classes are computed at block SIS. It is determined at block 520 whether minimum distances exist for a smile cluster. If not, then the image is classified as a non-smile image at block 522. If so, then the image is classified as a smile image at block 524.
Alternative Implementations
As will be appreciated by those skilled in the art, many alternative embodiments of the invention are possible. For example, the principle embodiment describes a technique that determines the smile/no-smile state of a face region within a digital image. It is implicit that a face tracking/face detector has been run on the image and that knowledge of the location of face region(s) within the analysed image is made available to the “smile detector”. This technique can be applied both within a digital camera given sufficient computing resources, and may be implemented partly within the camera (e.g. face detection) and partly outside the camera (e.g. smile detection using derived and saved face detection information), or in certain embodiments both the face detection process and the smile detection are used to post-process previously acquired images.
Where the invention is implemented entirely within the camera various improvements to the operation of the invention can be achieved. In particular, the digital camera may acquire a constant stream of preview and/or postview images, and where a face tracking algorithm is embodied within the camera, then information about the determined face regions within each frame of the preview stream is available on a real-time basis. Where the present algorithm is sufficiently optimized, it can be applied in real-time either in parallel with, or sequentially following the application of the face tracker algorithm. Such an embodiment enables (i) improvements in the smile detection process itself and (ii) additional operational features to be provided to a user of the camera.
With respect to item (i) and referring to the computing of Euclidian distances between the vector and cluster centroids, and to the finding of minimum distance per steps 11 & 12 of the above-described exemplary embodiment, where such a real-time smile detection algorithm is implemented, it is possible to compute the smile/no-smile state of a tracked face region and to accumulate this state information over multiple pre-acquisition frames. This enables statistical analysis of the smile/no-smile state of a face and is useful to avoid confounding factors such as sudden changes in illumination and/or face pose which may degrade the accuracy of the smile detection algorithm. Thus, sudden inter-frame fluctuations in the smile feature vector can be ignored until the feature vector stabilizes.
In one embodiment in addition to calculating the smile feature vector for each frame, and determining its smiled/no-smile state, the algorithm calculates a difference vector between subsequent frames of the preview/postview image stream. Where this is greater than a certain threshold it may either be interpreted as indicating a sudden change in external illumination or pose (which may be confirmed by the exposure determining subsystem of the camera for the case of illumination, or by the face-lock characterization of the face tracking algorithm) or it may be interpreted as a transition between smile and no-smile states (which may be confirmed by analysis of subsequent preview/postview frames).
In alternative embodiments, a running average of the smile feature vector may be calculated and this averaged feature vector is used to determine the smile/no-smile state of a face region over multiple preview frames.
In yet a further embodiment, the distances between the current smile feature vector and both the nearest smile centroid and the nearest no-smile centroid are calculated for each preview frame. The ratio between these two distances is analyzed statistically over several frames and used to determine a smile/no-smile’ probability measure rather than a simple smile/no-smile state measure. Thus where a smile feature vector is a normalized distance of 0.2 from the nearest smile centroid and a distance of 0.8 from the nearest no-smile centroid it is 80% likely to be a smile or 20% likely to be not a smile. In a variation on this embodiment the log of the normalized distance is used to calculate a probability rather than the normalized distance itself.
With respect to item (ii) above, where the smile detection process is operable on a preview/postview stream, it is possible to monitor state transitions of tracked face regions. This enables, for example, a camera to implement an improved “group shot” feature, where an image is captured when everyone in a preview frame is determined to be smiling.
In other embodiments, the camera could issue a warning beep if one or more people are not smiling (the “smile guarantee” feature); or acquisition could delayed until everyone (or a plurality or certain percentage or certain number) are determined to be smiling.
In embodiments where additional image reconstruction and/or compositing and/or super-resolution algorithms are available within the camera then face regions, or portions thereof, from one or more preview frames may be combined with the main acquired image to ensure that a final, composited image presents the “best smile” for each detected face. The judging of the quality of a smile may be achieved using a smile/no-smile probability as described above.
Metadata relating to the smile/no-smile state or smile probability may be stored/saved with other information relating to the relevant tracked face region.
FIGS. 6 and 7 illustrate a further embodiment. In both of the photos illustrated at FIGS. 6 and 7, the subject is not smiling and not blinking. In FIG. 6, the no smile, no blink state of the subject may be detected using a variety of geometrical and/or learning techniques. However, inferior techniques can tend to falsely detect the subject as smiling and blinking in FIG. 7, even though the subject is not smiling and not blinking. Because the subject is looking down in FIG. 7, it can appear that the subject's lips are curved upward on the outsides just like a smiling mouth would appear on a face in a frontal, non-tilted pose. The subject can also appear to be blinking or sleeping or otherwise have her eyes closed in FIG. 7, because no part of her eye balls is showing.
Based on the triangle eyes-mouth (smoothed by the face tracking algorithm on more frames), it is determined in this embodiment whether the face orientation is in the plane (RIP) and out of the plane (ROP). Based on this information, smile acceptance/rejection thresholds are adjusted dynamically in this embodiment.
The smile detection threshold may be relaxed on different rotations or plane (RIP) angles, or a smile detection may be applied on a precise angle (by rotating the crop image or the classifiers) and having stronger smile classifiers on 0(+/−5) degrees. [Note: Now they are more relaxed in the training process=>0(+/−20) degrees.]
A stronger smile detection threshold may be placed when the faces are up-down (pitch rotation). Note: Up-down faces can otherwise tend to lead to a large-percentage of false smile detections.
This same idea can also be applied to adjust dynamic blink acceptance/rejection thresholds.
Applications
As noted above, there are many applications for embodiments of the invention that detect smiles in digital images. Further applications are possible where two or more sensors are implemented within a digital image acquisition device. In accordance with one embodiment of the invention where at least one additional sensor is implemented in the device and that sensor faces the user (e.g., photographer), an image of the photographer may be acquired as the photographer is in the process of acquiring an image. Such an embodiment allows the production of a diptych which includes the photographer as well as the image acquired by the user.
When employed with facial expression detection, such an embodiment may allow the image acquisition device to acquire an image upon recognition or detection of a given facial expression (e.g., smile) of the user (e.g., photographer). This allows the motion associated with typical press-button image acquisition schemes to be reduced.
Similarly, embodiments of the invention can be employed to review and categorize acquired images or images as they are being acquired based upon the facial expressions of the user or a subsequent reviewer. For example, the facial expressions (indicating emotions) of the person(s) reviewing photos are detected. If the reviewing person(s) smile, then the image is auto tagged as a keeper or a preferred image. If the image gets multiple “smile” reviews over time, then its preferred score goes up. The list of preferred images can be used for playback on the camera where preferred images are presented first over lesser preferred images as a playback mode.
For certain embodiments, this concept of emotion determination based upon facial expression detection is broadened as follows. Smiling and other facial expressions are used for tagging on, personal computers, documents, videos, establishing entry points or tags of interest in video. Such PC applications could be effected for cameras mounted in the displays of personal computers for example.
In accordance with certain embodiments, data processing uses a digital processing system (DPS). The DPS may be configured to store, process, and communicate, a plurality of various types of digital information including digital images and video.
As discussed above, embodiments of the invention may employ a DPS or devices having digital processing capabilities. Exemplary components of such a system include a central processing unit (CPU), and a signal processor coupled to a main memory, static memory, and mass storage device. The main memory may store various applications to effect operations of the invention, while the mass storage device may store various digital content.
The DPS may also be coupled to input/output (I/O) devices and audio/visual devices. The CPU may be used to process information and/or signals for the processing system. The main memory may be a random access memory (RAM) or some other dynamic storage device, for storing information or instructions (program code), which are used by the CPU. The static memory may be a read only memory (ROM) and/or other static storage devices, for storing information or instructions, which may also be used by the CPU. The mass storage device may be, for example, a hard disk drive, optical disk drive, or firmware for storing information or instructions for the processing system.
General Matters
Embodiments of the invention provide methods and apparatuses for detecting and determining facial expressions in digital images.
Embodiments of the invention have been described as including various operations. Many of the processes are described in their most basic form, but operations can be added to or deleted from any of the processes without departing from the scope of the invention.
The operations of the invention may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the operations. Alternatively, the steps may be performed by a combination of hardware and software. The invention may be provided as a computer program product that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process according to the invention. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnet or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions. Moreover, the invention may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication cell (e.g., a modem or network connection). All operations may be performed at the same central site or, alternatively, one or more operations may be performed elsewhere.
While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.

## Claims

1. A method of in-camera processing to create a photographic record of a captured image of a group of faces by increasing smiling faces in the image, the method comprising:
acquiring the captured image with a camera having an image sensor for acquiring digital images;
providing one or more digitally-acquired first images of the group of faces in addition to the captured image;
from among the group of faces, identifying a number of non-smiling faces in one of the images;
based, at least in part, on the number of non-smiling faces, initiating a plurality of operations including, when a predetermined number of non-smiling faces are present in said one of the images:
(i) delaying acquisition and recording of the captured image to allow time for reducing non-smiling faces in the captured image relative to said number of non-smiling faces in said one of the images; and
(ii) replacing a face region in the captured image by combining a face region in at least one of the one or more digitally-acquired images into the captured image; and

storing the captured image with the replaced face region as digital content in a mass storage device.

2. The method of claim 1 wherein the operations are initiated in response to the number of non-smiling faces being above a threshold number.

3. The method of claim 1 wherein:
the method further comprises determining that a particular percentage of the plurality of faces are smiling; and
the operations are initiated in response to determining that the particular percentage is less than a threshold percentage.

4. The method of claim 1 wherein the operations include issuing a warning beep.

5. The method of claim 2 wherein delaying acquisition and recording of the captured image is until the particular number is no longer above the threshold number.

6. The method of claim 1 wherein the one or more digitally-acquired first images are a constant stream of preview images.

7. The method of claim 6, wherein the captured image is of higher resolution than the constant stream of preview images.

8. A portable digital image acquisition device for creating a photographic record of a captured image of a group of faces by increasing smiling faces in an image of a group of faces, the image acquisition device including a lens and an image sensor for acquiring digital images, a processor, and one or more processor-readable media having code embedded therein for programming the processor to perform a method of in-camera processing, wherein the method comprises:
acquiring the captured image;
providing one or more digitally-acquired first images of the group of faces in addition to the captured image;
from among the group of faces, identifying a number of non-smiling faces in one of the images;
based, at least in part, on the number of non-smiling faces in said one of the images, initiating a plurality of operations including, when at least a predetermined number of non-smiling faces are present in said one of the images:
(i) delaying acquisition and recording of the captured image to allow time for reducing non-smiling faces in the captured image relative to the number of non-smiling faces in said one of the images; and
(ii) replacing a face region in the captured image by combining a face region in at least one of the one or more digitally-acquired images into the captured image.

9. The device of claim 8 wherein the one or more operations are initiated in response to the number being above a threshold number.

10. The device of claim 8 wherein:
the method further comprises determining that a particular percentage of the plurality of faces are smiling; and
the operations are initiated in response to determining that the particular percentage is less than a threshold percentage.

11. The device of claim 8 wherein the operations include issuing a warning beep.

12. The device of claim 9 wherein delaying acquisition and recording of the captured image is until the particular number is no longer above the threshold number.

13. The device of claim 8 wherein the one or more digitally-acquired first images are a constant stream of preview images.

14. The device of claim 13, wherein the captured image is of higher resolution than the constant stream of preview images.

15. One or more non-transitory processor-readable media having code embedded therein for programming a processor to create a captured image of a group of faces with an image acquisition device according to a method of in-camera processing, the method comprising:
acquiring the captured image;
providing one or more digitally-acquired first images of the group of faces in addition to the captured image;
from among the group of faces, identifying a number of non-smiling faces in one of the images;
based, at least in part, on the number of non-smiling faces in said one of the images, initiating a plurality of operations including, when at least a predetermined number of non-smiling faces are present in said one of the first images:
(i) delaying acquisition and recording of the captured image to allow time for reducing non-smiling faces in the captured image relative to the number of non-smiling faces in said one of the images; and
(ii) replacing a face region in the captured image by combining a face region in at least one of the one or more digitally-acquired images into the captured image.

16. The one or more processor-readable media of claim 15 wherein the operations are initiated in response to said number being above a threshold number.

17. The one or more processor-readable media of claim 15 wherein:
the method further comprises determining that a particular percentage of the plurality of faces are smiling; and
the operations are initiated in response to determining that the particular percentage is less than a threshold percentage.

18. The one or more processor-readable media of claim 15 wherein the operations include issuing a warning beep.

19. The one or more processor-readable media of claim 16 wherein delaying acquisition of an image and recording of the captured image is until the particular number is no longer above the threshold number.

20. The one or more processor-readable media of claim 15 wherein the one or more digitally-acquired first images are a constant stream of preview images.

21. The one or more processor-readable media of claim 13, wherein the captured image is of higher resolution than the constant stream of preview images.

22. The method of claim 6 wherein the face region of said at least one digitally-acquired image includes a mouth region with a higher calculated probability of being classified as a smile than the replaced face region.

23. The portable digital image acquisition device of claim 8 wherein the face region of said at least one digitally-acquired image includes a mouth region with a higher calculated probability of being classified as a smile than the replaced face region.

24. The one or more non-transitory processor-readable media of claim 15 wherein the face region of said at least one digitally-acquired image includes a mouth region with a higher calculated probability of being classified as a smile than the replaced face region.