# Patent

## Title
Color enhancement technique using skin color detection

## Abstract

A method for enhancing the color of an image to be displayed on a display includes receiving an image having a plurality of pixels where each of the pixels has a plurality of color components. The image is filtered using a spatial filter in such a manner that the lower frequency content of the image is enhanced in such a manner that the color gamut of the lower frequency content is increased. The filtered image is modified such that the higher frequency content of the image to obtain a modified image that includes the higher frequency content and the lower frequency content.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation-in-part of U.S. patent application Ser. No. 11/393,404 filed Mar. 30, 2006, which claims the benefit of U.S. Provisional App. No. 60/761,997, filed Jan. 24, 2006.


BACKGROUND OF THE INVENTION
The present invention relates to image enhancement.
The HSV (hue, saturation, value), or HSB (hue, saturation, brightness) model of the color space model facilitates a more intuitive modification of the colors of an image than changing the colors of an image based directly upon the modification of three primary colors model, i.e. R, G, and B. The RGB color space has the shape of a cube while the HSV color space has the shape of a hexagonal cone. The HSV cone is a non-linear transformation of the RGB cube and at times it is referred to as a perceptual model. ‘Perceptual’ means the attributes that are more akin to the way in which human-beings think of color.
HSV model facilitates modification of the range or gamut of an RGB display device using the perceptually based variables, i.e. hue, saturation and value/brightness. The HSV model is based on polar coordinates (r, e, z) rather than Cartesians coordinates used in the RGB model. Hue or tint, is represented as an angle about the z axis, ranging from 0° through 360°. Vertices of the hexagon are separated by 60° increment. Red is at H=0°, Yellow at H=60′, Green at H=120′, Cyan at H=180′, Blue at H=240′, and Magenta at H=300′. Complementary colors are 180° spaced apart from each other. Distance from the z axis represents saturation (S): the amount of color present. S typically varies from 0 to 1. It is represented in this model as the ratio of the purity of a hue. S=1 represents maximum purity of this hue. A hue is said to be one-quarter purity at S=0.25. At S=0, the gray scale is resulted. V, value of HSV, varies from 0 at the apex of the hexcone to 1 at the bottom of the hexcone. V=0 represents blackness. With V=1, color has his maximum intensity. When V=1 and S=1, we have the pure hue. Whiteness is obtained at the location of V=1 and S=0. Other color spaces have similar behavior and include YCbCr and LAB, in which the color place is Cartesian separable rather than polar separable.
Most existing current color enhancement techniques typically boosts saturation of colors while keeping the colors' hue substantially unchanged. In the hue-saturation color wheel such as the one shown in FIG. 1, a typical color enhancement technique moves colors outward on the radial direction as shown by the arrows. Essentially, the color enhancement algorithm increases the input images' color gamut by increasing the saturation of the pixels. The term “color gamut” can also be used to describe the available image of colors capable of being displayed by a given display. The color is determined by the display's primaries.
The techniques used to enhance the color enhancement of an image are based upon modification of individual pixels. When the color of a pixel is enhanced to a new color, the conversion from the old color to the new color for each pixel is a predetermined fixed adjustment for the entire image or for the entire video.
By way of example, televisions have built-in color enhancement techniques to enhance unsaturated colors in certain content and let viewers set their color preferences. Because the human eye is very sensitive to the skin color, it is important for a color enhancement technique to render skin colors properly. It is also desirable for a color enhancement technique to separately adjust skin colors and non-skin colors using different characteristics.
Some color enhancement techniques have the capability of protecting skin colors. These techniques are typically are pixel-based. When the color of a pixel is enhanced to a new color, the conversion from the old color to the new color is fixed, and is not affected by other pixels. Because pixel-based color enhancement techniques with skin color protection cannot overcome the issue that the colors of skin and non-skin are highly overlapped, these techniques cannot effectively separately enhance skin and non-skin, and thus they can only protect all skin colors in the image not to be enhanced.
The pixel-based algorithms do not work effectively. Specifically, to avoid generating visible contouring artifacts in the areas of an image where skin and neighboring non-skin colors are mixed, both the skin color region in the color space and the gradual transition region between the skin color region and the non-skin color region have to be set very wide. Typically, the skin color and transition regions cover nearly half of the color gamut, as illustrated in FIG. 2. On the other hand, some true skin colors are missed in the skin color region and therefore remain unprotected. Consequently, many non-skin colors are improperly protected while many skin colors are improperly enhanced by the enhancement techniques.



BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
FIG. 1 illustrates two adjacent colors in the hue-saturation color wheel that are not adjacent in the wheel after color enhancement.
FIG. 2 illustrates the actual skin color region and the skin region defined by a pixel based technique in a color wheel.
FIG. 3 illustrates a block diagram of the proposed technique.
FIG. 4 illustrates a look up table of skin color.
FIG. 5 illustrates a block diagram of an image driven non-linear low pass filter.
FIG. 6 illustrates a flow chart of color enhancement using skin color likelihood map.
FIG. 7 illustrates an input-output relationship of a coring process.
FIG. 8 illustrates a user interface.
FIG. 9 illustrates a color gamut mapping technique.



DETAILED DESCRIPTION OF PREFERRED EMBODIMENT
An observation was made that a typical pixel based color enhancement technique results in two similar colors before enhancement being modified to different values that are significantly less similar after enhancement. FIG. 1 illustrates two different situations. Situation 1 illustrates the case when two colors are similar but have different hues, and situation 2 illustrates the case when two colors have the same hue and similar saturations.
In both situations, the two colors are close to each other in the color plane before color enhancement. The two colors are spaced significantly apart from each other in the color plane after color enhancement, indicating that the two enhanced colors are less similar after enhancement than they were before enhancement.
Single pixel-based color enhancement techniques also enhance artifacts while it enhances colors. The pixels in spatial flat areas of the non-enhanced image tend to have similar colors, and the differences among the similar colors are not very visible to the viewer. Because the pixel-based color enhancement techniques enlarge the differences of similar colors, the resulting differences of the enhanced image may become very visible, and consequently a flat area of the image before enhancement may not be very flat anymore after enhancement. Specifically, pixel-based color enhancement techniques are prone to amplifying noise that is otherwise generally unobservable in the flat area to become readily observable after color enhancement. Also, the pixel-based color enhancement technique tends to amplify and generate quantization artifacts in the smooth regions before enhancement that become relatively noisy after enhancement. In addition, amplifying compression artifacts that are generally unobservable in the non-enhanced image become generally noticeable after enhancement. The compression artifacts include, for example, contours, which are typically due to insufficient bit-depth, blocky artifacts, which are common for block-based compression schemes, and ringing artifacts, which are due to loss of high frequency caused by compression.
In order to reduce the artifacts resulting from image enhancement, a modified technique may incorporate spatial information with the color enhancement. In addition, the spatial information may be obtained using multi-channel or two-channel decomposition of the image. More specifically, the preferred technique may decomposes an image into a base image and a residual image. The base image may incorporate a pixel-based color enhancement technique. The color enhanced base image and the non-enhanced residual image are then combined back into a single image.
The color enhancement technique for the base image results in an increased color gamut for an image, which would tend to increase the noise and artifacts that are in the image if they were occurring in the base image. However, noise and artifacts are usually contained in the high pass band, and are not enhanced in this technique since the residual image is not enhanced, or otherwise not enhanced to as great of an amount. Accordingly, it is desirable to reduce the generation of artifacts while enhancing the color of the image with an increased color gamut. While decreasing the generation of artifacts in the increased color gamut image, the technique should also preserve image details which are generally high frequency in nature and akin to ‘noise’. The technique does not necessarily need to increase the color gamut, but may rather be a redistribution of the colors in the color space.
For example, in the case that the display has a larger color gamut than the input image, it is desirable to modify the image in such a manner that the color gamut (or distribution) of the skin-tone regions and the non-skin-tone regions are separately modified in a different manner. In some cases, this will involve reducing the color gamut or otherwise modifying the color distribution in such a manner for the skin-tone regions and non-skin-tone regions so that when they are modified by the display during rending the colors appear as desired.
For example, in the case that the display has the same or substantially the same color gamut as the input image, it may be desirable to modify the image in such a manner that the color gamut (or distribution) of the skin-tone regions and the non-skin-tone regions are separately modified in a different manner. In many cases, it is desirable to increase the saturation of the non-skin tone colors while not increasing the saturation (or to a lesser extent) of the skin-tone colors. In this manner, the skin-tone regions have a more realistic appearance. Alternatively, in some cases, it is desirable to decrease the saturation of the non-skin tone colors while increasing the saturation (or to a greater extent) of the skin-tone colors.
In general it is desirable to use a blending of the modification between the skin-tone regions and the non-skin-tone regions to reduce artifacts that would have otherwise been created at the boundary.
The overall block-diagram of the preferred system is shown in FIG. 3. To reduce enhancing noise and artifacts while enhancing colors, the technique uses two-channel decomposition. Specifically, the input image is first decomposed into lowpass (e.g., base) and highpass (e.g., residual) images by preferably a sigma filter 200. The lowpass image, containing few details or artifacts, goes through the enhancement path 210. The enhancement path 210 has skin color detection 220, skin color likelihood map filtering 230 and color enhancement 240. The highpass image IHP is formed by subtraction 270 of the lowpass image ILP from the original image. The highpass image, containing details, noise, and artifacts, does not go through the enhancement path 210 (or goes through with a reduced amplitude) and will be added back to the color enhanced lowpass image 250 to generate the enhanced image 260. Therefore, the noise in the highpass imaged is not enhanced in the same manner. In addition, the highpass image can go through coring processing 280 to reduce noise and artifacts. The details of each component in the block-diagram are discussed as follows.
The sigma filter 200 decomposes the input image into the lowpass and highpass images. A suitable sigma filter is published by Lee (J. S. Lee, “Digital image enhancement and noise filtering by use of local statistics,” in IEEE Trans. Pattern Analysis and Machine Intelligence, Vol. PAMI-2, No. 2, pp. 165-168, March, 1980). The sigma filter utilizes a 1-D or 2-D rectangular window, where the current pixel I(x,y) is at the center of the window. The sigma filter compares all the pixels I(i,j) in the window with the central pixel I(x,y), and averages those pixels whose value differences with the central pixel I(x,y) is within a threshold T. Because this filter drops pixels that are not less than the threshold, one may refer to this as a sigma filter. The sigma filter is a nonlinear filter. Mathematically, the output of the sigma filter, ILP(x,y), is calculated by




  
    
      
        
          
            I
            LP
          
          ⁡
          
            (
            
              x
              ,
              y
            
            )
          
        
        =
        
          
            
              ∑
              
                
                  
                    
                      
                        (
                        
                          i
                          ,
                          j
                        
                        )
                      
                      ∈
                      E
                    
                    &
                  
                  ⁢
                  
                    
                    
                      
                        I
                        ⁡
                        
                          (
                          
                            i
                            ,
                            j
                          
                          )
                        
                      
                      -
                      
                        I
                        ⁡
                        
                          (
                          
                            x
                            ,
                            y
                          
                          )
                        
                      
                    
                    
                  
                
                <
                T
              
            
            ⁢
            
              I
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
          
          
            N
            ⁡
            
              (
              
                x
                ,
                y
              
              )
            
          
        
      
    
    
      
        (
        1
        )
      
    
  




where E is the window; N(x,y) is the count of the pixels in E that satisfy the condition of |I(i,j)−I(x,y)|<T. The parameters of the sigma filter, the widow E and the threshold T, are preferably chosen empirically.

The sigma filter generates the lowpass image ILP, and the highpass image is obtained by subtraction 270. Because the sigma filter is a smoothing filter preserving sharp edges, the lowpass image generated by a sigma filter contains few details but contains sharp edges, and the highpass image contains details/noises/artifacts but few sharp edges.
The skin color detection 220 uses a 3D lookup table (LUT) to generate a skin color likelihood map. The three dimensions of the LUT are R, G and B. Each element of the LUT is a scale from 0 to 1 to indicate the likelihood that a color belongs to skin colors. The LUT is built by training, using training set where skin colors are manually segmented. Every pixel of the lowpass image can be given a skin color likelihood score by the LUT and the whole image forms a skin color likelihood map a.
Assuming that R, G and B inputs are 8 bits, the size of 3D LUT is 256×256×256, which is costly to implement directly in expensive hardware. A LUT with that size is also tedious to train. Therefore, 33×33×33 3D LUT is preferably used. The 33 levels of each dimension may be 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 255. A 3D interpolation algorithm, such as tri-linear interpolation, is used to fill all the missing points in the 3D 256×256×256 grid. The 33×33×33 LUT is illustrated in FIG. 4.
The skin colors and non-skin colors are highly overlapped in the sense that any skin colors are not exclusively used by skins and non-skin colors are not exclusively used by non-skin objects either. Consequently, the skin color likelihood map of the input image generated by the above LUT can not avoid misses.
To correct some misses in the skin color likelihood map, one may use spatial information by applying an image-driven nonlinear lowpass filter to the skin color likelihood map in the preferred algorithm. The filter is motivated by the following two facts:
(a) The pixels that are spatially close likely have similar skin color likelihood scores;
(b) The pixels that are close in the color space likely have similar skin color likelihood scores.
Mathematically, the image-driven nonlinear lowpass filter may be defined as




  
    
      
        
          
            a
            LP
          
          ⁡
          
            (
            
              x
              ,
              y
            
            )
          
        
        =
        
          
            
              ∑
              
                
                  
                    
                      
                        
                          
                            
                              
                                
                                  
                                    (
                                    
                                      i
                                      ,
                                      j
                                    
                                    )
                                  
                                  ∈
                                  E
                                
                                &
                              
                              ⁢
                              
                                
                                
                                  
                                    R
                                    ⁡
                                    
                                      (
                                      
                                        i
                                        ,
                                        j
                                      
                                      )
                                    
                                  
                                  -
                                  
                                    R
                                    ⁡
                                    
                                      (
                                      
                                        x
                                        ,
                                        y
                                      
                                      )
                                    
                                  
                                
                                
                              
                            
                            <
                            T
                          
                          &
                        
                        ⁢
                        
                          
                          
                            
                              G
                              ⁡
                              
                                (
                                
                                  i
                                  ,
                                  j
                                
                                )
                              
                            
                            -
                            
                              G
                              ⁡
                              
                                (
                                
                                  x
                                  ,
                                  y
                                
                                )
                              
                            
                          
                          
                        
                      
                      <
                      T
                    
                    &
                  
                  ⁢
                  
                    
                    
                      
                        B
                        ⁡
                        
                          (
                          
                            i
                            ,
                            j
                          
                          )
                        
                      
                      -
                      
                        B
                        ⁡
                        
                          (
                          
                            x
                            ,
                            y
                          
                          )
                        
                      
                    
                    
                  
                
                <
                T
              
            
            ⁢
            
              a
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
          
          
            N
            ⁡
            
              (
              
                x
                ,
                y
              
              )
            
          
        
      
    
    
      
        (
        2
        )
      
    
  




In the above equation, E is the window; a(i, j) is the skin color likelihood score at (i, j). R(i, j), G(i, j), and B(i, j) define the colors at (i, j). The spatial proximity is defined by window E. The pixels in E are considered to be spatially close to the pixel at (x, y). The color-space proximity is defined by threshold T. The pixels' R, G and B differences with the pixel at (x, y) are all below T are considered to be close in the color space. N(x,y) is the count of the qualified pixels in E that are both spatially close and color-wisely close.
The image-driven nonlinear lowpass filter is a variation of the sigma filter. The input of the filter is the skin color likelihood map of the image, but the selection of pixels for averaging is based on the image itself. The spatially close and color-wisely close pixels tend to have the similar skin color likelihood, and their likelihood scores, not there image colors, are averaged. The flow-chart of this filter is shown in FIG. 5.
A pixel with colors defined by [R(x, y), G(x, y), B(x, y)] in the lowpass image is enhanced using a pixel-based color enhancement algorithm with two different sets of parameters, one set for skin colors, and the other for non-skin colors. Two enhanced results from two different parameter sets, [Rs(x, y), Gs(x, y), Bs(x, y)] and [Rns(x, y), Gns(x, y), Bns(x, y)] are mixed linearly according to its skin color likelihood score aLP(x, y) to [REN(x, y), GEN(x, y), BEN(x, y)]. Specifically, the mixing equations may be

REN(x,y)=aLP(x,y)Rs(x,y)+(1−aLP(x,y))Rns(x,y)

GEN(x,y)=aLP(x,y)Gs(x,y)+(1−aLP(x,y))Gns(x,y)

BEN(x,y)=aLP(x,y)Bs(x,y)+(1−aLP(x,y))Bns(x,y)

The block-diagram is shown in FIG. 6. Any pixel-based technique can be used for color enhancement.
The highpass image contains details, noise and artifacts. As an option, the highpass image can go through a coring process 280 to reduce noise and artifacts. The input-output relationship of a coring processing is shown in FIG. 7.
One example of the user interface of the embodiment of the preferred embodiment is shown in FIG. 8. The interface has two sliders to let viewers separately adjust the saturation levels of the skin colors (“Flesh Tone Saturation”) and non-skin colors (“Non-flesh Tone Saturation”). Although this example only shows the separate saturation adjustments, the preferred embodiment allows other separate parameter adjustments as well, such as hue and/or brightness.
The same idea in the color enhancement technique may be used in a color gamut mapping technique to map pictorial data from a small color gamut to a big color gamut. Next-generation LCD TVs may feature a big color gamut such as the NTSC gamut. On the other hand, in the foreseeable future, the contents will still be in the HDTV/sRGB format, which is 70% of the NTSC gamut in the XYZ color space. Directly displaying the RGB values defined in the small HDTV/sRGB gamut on the TV with the big NTSC gamut will damage skin colors, resulting in red color shadows, color clipping, etc.
As the color enhancement technique, the color gamut mapping algorithm decomposes the input image into lowpass and highpass images using the same sigma filter. The same skin color likelihood map is generated and processed in the color gamut mapping algorithm. The color mapping is only applied to the lowpass mage as the color enhancement algorithm. Specifically, first, a pixel with colors defined by [R(x, y), G(x, y), B(x, y)] in the lowpass image is mapped using two sets of parameters, one parameter set preserving colors, and the other parameter set expanding colors to the extra area of the big color gamut. Then, the two mapped results [Rs(x, y), Gs(x, y), Bs(x, y)] and [Rns(x, y), Gns(x, y), Bns(x, y)] are combined linearly (or non-linearly) according to its skin color likelihood score aLP(x, y) to [REN(x, y), GEN (x, y), BEN (X, Y)].
Specifically, the mixing equations still are

REN(x,y)=aLP(x,y)Rs(x,y)+(1−aLP(x,y))Rns(x,y)

GEN(x,y)=aLP(x,y)Gs(x,y)+(1−aLP(x,y))Gns(x,y)

BEN(x,y)=aLP(x,y)Bs(x,y)+(1−aLP(x,y))Bns(x,y)

The block-diagram of lowpass image processing is shown in FIG. 9.

Finally, the highpass image is added back to generate the color-gamut-mapped image.

The terms and expressions which have been employed in the foregoing specification are used therein as terms of description and not of limitation, and there is no intention, in the use of such terms and expressions, of excluding equivalents of the features shown and described or portions thereof, it being recognized that the scope of the invention is defined and limited only by the claims which follow.

## Claims

1. A method for enhancing the color of an image to be displayed on a display comprising:
(a) a processor receiving an image having a plurality of pixels where each of said pixels has a plurality of color components;
(b) a processor filtering said image with a spatial filter to define skin regions displaying a person's skin, wherein said skin regions are enhanced such that the distribution of the colors in said skin regions is modified in a first manner, and wherein said spatial filter has a first component that associates pixels of said image with respective scores that each represent the likelihood that the pixel has a skin tone, and a second component that filters said respective scores;
(c) a processor filtering said image with a filter to enhance regions of said image other than said skin regions such that the distribution of the colors in said regions of said image other than said skin regions are modified in a second manner;
(d) whereby said image is modified to include said filtered regions of said image other than said skin regions and said filtered skin regions.

2. The method of claim 1 wherein said modified image is displayed on a display, where said display has a larger color gamut than said received image, wherein said filtering said image results in a compressing of the distribution of colors in said skin regions.

3. The method of claim 1 wherein the edge regions of said skin regions are filtered to create a graduated transition between said skin regions and said regions of said image other than said skin regions.

4. The method of claim 1 wherein said modified image is displayed on a display, where said display has substantially the same color gamut as said received image, wherein said modification distributes colors in said skin regions such that when rendered by said display the colors of said image other than said skin regions are increased in saturation, while the colors of said skin regions are not increased in saturation to the same extent as said colors of said image other than said skin regions.

5. The method of claim 1 wherein said skin regions are defined by a spatial low pass filter.

6. The method of claim 1 wherein said spatial filter is a sigma filter.

7. The method of claim 1 wherein said image is received from the output of a sigma filer filter.

8. The method of claim 1 wherein said spatial filter includes a region defined around a pixel of interest.

9. The method of claim 8 wherein said spatial filter determines pixels within said region that are sufficiently similar to said pixel of interest.

10. The method of claim 1 wherein said filtering includes a look-up table to further define said skin regions.

11. The method of claim 1 wherein said filtering includes a spatial characteristic that determines whether proximate pixels have skin-tones.

12. The method of claim 1 wherein said filtering includes a color space characteristic that determines if proximate pixels have skin-tones.

13. The method of claim 1 wherein said image is separated into a base image of low-frequency content and a residual image of high-frequency content, where said residual image is not filtered with said spatial filter and is not filtered with said filter.

14. The method of claim 13 wherein said lower frequency content is separated by edges.

15. The method of claim 13 wherein said higher frequency content includes high frequency details, noise, and artifacts.

16. The method of claim 1 wherein said filter includes a threshold.

17. The method of claim 16 wherein said threshold is based upon the content of said image.