Abstract:
In the method, the membership image is produced through a multi-stage process that contemplates a first punctual classification stage generating a rough membership image, followed by a low-pass filtering of regionalization of the image through a down-sampling of the image followed by an up-sampling of the image, and in a further step of merging the regions that overcomes the superposition effects induced by the low-pass filtering operation. The so generated membership image contains semantic information of the input image that may be used for effectively implementing an adaptive correction/improvement of the color of the input image. For an adaptive correction/improvement of the color, the encoded data of the generated membership image is fed in parallel to the data of the real image to an adaptive modification block of the color of the image pixels.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates generally to image processing including techniques for acquiring and processing color images, and, more specifically to an adaptive technique for color correction.  
       BACKGROUND OF THE INVENTION  
       [0002]     The popularity of imaging consumer devices such as digital still cameras, imaging phones and the like and of digital image processing techniques have led to a proliferation of new enhancement processes of color images both in global or semantic terms, as discussed, for example, in S. Battiato, A. Castorina, M. Guarnera, P. Vivirito “A Global Enhancement Pipeline for Low-cost Imaging Devices”, IEEE Transactions on Consumer Electronics, Vol. 49, Issue 3, pp. 670-675, August 2003 and/or S. Battiato, A. Bosco, A. Castorina, G. Messina “Automatic Global Image Enhancement by Skin Dependent Exposure Correction” Proc. of IEEE-EURASIP Workshop on Nonlinear Signal and Image Processing, NSIP 2003, Grado, Italy, June 2003.  
         [0003]     For still pictures of natural scenes, landscapes, portraits etc., a widely accepted assumption is that colors related to a small number of classes have a major perceptive impact on the human visual system. This is discussed, for example, in S. N. Yendrikhovskij, F. J. J. Blommaert, H. de Ridder, “Optimizing color reproduction of natural images”, Proc. Of Sixth Color Imaging Conference: Color Science, Systems and Applications, pp. 140-145, 1998; E. J. Lee, Y. H. Ha, “Favorite Color Correction for Favorite Colors”, IEEE Trans. On Consumer Electronics, vol. 44, No. 1, pp. 10-15, February 1998; and U.S. Pat. No. 6,738,510, “Image Processing Apparatus”, 2001.  
         [0004]     Studies show that basic chromatic classes are essentially: skin (complexion), vegetation, sky/sea. These classes seem to have a predominant perceptive impact on the human visual system. Classical global techniques (histogram equalization, contrast enhancement) work in an unsupervised way, that is without taking into account specific peculiarities of each of the color classes of an image to be processed, as discussed in R. C. Gonzalez, R. E. Woods, “Digital Image Processing”, Addison Wesley, 1993.  
         [0005]     Other approaches of color correction are known. For example, PaintShopPro8: http://www.jasc.com, Jasc Software Inc. or ICorrect: http://www.picto.com, Pictographics Inc., allow an automatic color enhancement. The first technique allows to perform an automatic saturation enhancement, by correcting the whole image in the same way without implementing any adaptive control. By contrast, the second technique performs a manually driven color correction, in a semi-automatic way. The user must specify the color targets for real classes and then a global correction is performed on the whole image, often producing unpleasant color cast artifacts. In both cases a global correction is performed on the whole image.  
         [0006]     The U.S. Pat. No. 6,738,510 describes a possible approach for a color class guided correction. Other patents, such as U.S. Pat. No. 6,721,000, “Adaptive Pixel-level color enhancement for a digital camera”, Apr. 13, 2004, U.S. Pat. No. 6,611,618, “Wide-Band Image Enhancement”, Aug. 26, 2003, and/or U.S. Pat. No. 6,081,653, “Color Imaging”, Jun. 27, 2000 describe techniques of color correction in a general or adaptive way.  
         [0007]     The techniques for image correction/improvement according to an adaptive approach, even if potentially effective, so far are not widely used because of the intrinsic difficulties of adequately filtering the large amount of statistical data that may be gathered from an image to be processed containing many details of different colors without requiring a burdensome amount of computing resources.  
       SUMMARY OF THE INVENTION  
       [0008]     The present invention overcomes these difficulties and drawbacks of known systems for adaptive image processing based on the definition of a certain number of classes of colors of major visual impact.  
         [0009]     The present invention provides a method for correcting/improving each color of an image that does not require large computational resources, though producing improved results in terms of objective improvement of the image when compared with comparable commercially known systems.  
         [0010]     The method of the invention is based on the generation of a membership image of the pixels of the input image to one or proportionately to more classes of a plurality of pre-established classes of chromaticity or hues representative of certain real objects, for instance skin (complexion), vegetation, sky/sea, etc., through a fully automated processing based on the definition of a look-up table of target values of chromaticity or hue for each of the classes to which each pixel of the input image is to be discriminately assigned.  
         [0011]     Any number of classes of chromaticity may be pre-established as a function of the type of input images or of certain requirements of the application of correction/improvement of the color or even of other applications.  
         [0012]     According to an aspect of the invention, the membership image is produced through a multi-stage process that contemplates a first punctual classification stage generating a rough membership image, followed by a low-pass filtering of regionalization of the image through a down-sampling of the image followed by an up-sampling of the image, and in a further step of merging the regions that overcomes the superposition effects induced by the low-pass filtering operation.  
         [0013]     The so generated membership image according to the invention contains semantic information of the input image that may be used for effectively implementing an adaptive correction/improvement of the color of the input image, but the same information is also useful for other selection and semantic analysis applications of color images. For an adaptive correction/improvement of the color, the encoded data of the so generated membership image are fed in parallel to the data of the real image to a block of adaptive modification of the color of the image pixels.  
         [0014]     Therefore, the adaptive color correction/improvement process of each pixel of the input image, the pertinence of which to one or the other of pre-established chromaticity classes corresponding to specific objects of the scene is established by the membership image and includes: defining a table of chromaticity target values (r, g t ) for each established class of colors of specific objects (skin, vegetation, sky/sea); converting the triplet of RGB values of each pixel (i) of an image to be processed, by mapping the values of the triplet in the red-green chromaticity plane (r i , g i ), through a normalization step of the pixel intensity; calculating for each cluster of pixels belonging to a certain class (c) of colors of one of the specific objects (skin, vegetation, sky/sea) a pair of statistical values (Δ rc , μ gc ) locating all classified clusters of the image in the red-green chromatic plane; calculating for each cluster the distance (Δ rc , Δ gc ) to the respective target chromaticity value (r tc , g tc ); determining for each pixel (i) of the image, belonging to a certain class (c) a triplet of target values (r i ′, g′ i , b′ i ) in function of the mapping coordinates (r i , g i ) of the triplet of original values in the red-green plane and of the distance of the relative cluster (Δ rc , Δ gc ) from the relative target color; and carrying out a modulated correction of the color of the pixel through a weighted linear combination of the original triplet of values (R i , G i , B i ) and of the target triplet (R′ i , G′ i , B′ i ), using two constants a and b for modulating the part of the original image that is preserved after the color correction.  
         [0015]     The method of this invention may be implemented via software or by using a hardware device (acceleration card or pipeline). 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]      FIG. 1  depicts an input image and the corresponding segmented image wherein the samples of sky and of vegetation have been gathered;  
         [0017]      FIG. 2  shows respective graphs of samples gathered on planes HL and HS wherein the vertical clusters H may be easily located;  
         [0018]      FIG. 3  is a block diagram illustrating the process for generating the final mask;  
         [0019]      FIG. 4  depicts an input image and its punctual classification;  
         [0020]      FIG. 5  is a block diagram showing the sequence of undersampling, filtering and upsampling steps;  
         [0021]      FIG. 6  depicts a low-pass mask;  
         [0022]      FIG. 7  is a color representation of the final mask;  
         [0023]      FIG. 8  is a block diagram of the adaptive process of color correction;  
         [0024]      FIGS. 9A-9D  depict A) the original image, B) the improved image, C) the classified image, and D) the weighted correction image; and  
         [0025]      FIGS. 10A-10B  show A) a membership image, and B) a difference image. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0026]     Tto generate the color statistics, suitable to be reliably used for image analysis and classification, a huge database of color images has been used. The database was composed of 450 true color (24 bits per pixel), high quality, and well balanced images that were chosen according to subjectively perceived naturalness. Images affected by severe and/or anomalous color distortions, according to a common sense of expected color/scene pairing, were discarded.  
         [0027]     As a preprocessing step, all the selected images were segmented via a known process to avoid collecting statistics on excessively scattered color samples. To this aim, the process described in D. Comaniciu, D. Meer, “Robust Analysis of Feature Spaces: Color Image Segmentation”, Proc. IEEE Conf. Computer Vision and Pattern Recognition, pp. 750-755, 1997 was used, although other alternative approaches may be satisfactorily used.  
         [0028]      FIG. 1  shows an example of segmentation. The left image is the real image while the segmented image, in which the sky and vegetation pixels have been extracted, is shown at the right. All the collected sample pixels of sky and vegetation were converted from the RGB format, or better from the RGB color space, to the HSL (Hue Saturation Lightness) color space using the following formulas:  
             H   =       cos     -   1       ⁢     {         1   2     ⁡     [       (     R   -   G     )     +     (     R   -   B     )       ]           [         (     R   -   G     )     2     +       (     R   -   B     )     ⁢     (     G   -   B     )         ]       1   2         }               (   1   )               S   =     1   -       3     R   +   G   +   B       ·     min   ⁡     (     R   ,   G   ,   B     )                   (   2   )               L   =       1   3     ·     (     R   +   G   +   B     )               (   3   )               
         [0029]     All the collected samples where plotted both in the HS and HL planes as shown in  FIG. 2 , at the left and at the right, respectively. Even a simple visual inspection clearly shows how well the H component defines narrow, non overlapping vertical clusters that are ideally suited for a very reliable classification.  
         [0030]     The process for generating a membership mask is driven by the collected color statistics, leading from a classification of the input image to generate a “pseudo image” representing the membership mask. The rank of membership of each pixel to the pre-established various classes of certain real objects (skin, vegetation, sky/sea), is determined through an analysis process that can be outlined as including the distinct steps: Punctual classification; Regionalization; and Regions merging. A block description of the process is depicted in  FIG. 3 .  
         [0031]     Punctual Classification: In this block the image is analyzed on a per pixel basis, and after the H and S values are extracted from the RGB color triplet using the equations (1) (2), the pixel P(x, y) is assigned as belonging (or not belonging) to one of the contemplated color classes using the following rules, that have been derived in a straightforward manner from the collected database of images. If ((S(x,y)&gt;TS and L(x,y)&gt;TL) and (H(x,y)&lt;=Lskin or H(x,y)&gt;=Rskin)) then P(x,y) belongs to skin; if ((S(x,y)&gt;TS and L(x,y)&gt;TL) and (H(x,y)&gt;=Lsky or H(x,y)&lt;=Rsky)) then P(x,y) belongs to sky; and if ((S(x,y)&gt;TS and L(x,y)&gt;TL) and (H(x,y)&gt;=Lveg or H(x,y)&lt;=Rveg)) then P(x,y) belongs to vegetation.  
         [0032]     The left-hand side conditions on S and L have been introduced to avoid dealing with misleading values coming from de-saturated and/or low-lightness pixels, while right hand-side conditions on H have been derived from horizontal clustering bounds on HL and HS plots, as shown in  FIG. 2 . Values used in the inference rules are reported in the following Table 1.  
                                           TABLE 1                       T S     T L     R skin     L skin     R sky     L sky     R veg     L veg                     20   50   30   230   125   165   40   120                  
 
 If the observed pixel does not satisfy any of the rules it remains unclassified. 
 
         [0033]     To code this intermediate raw mask, N-dimensional sets (x 1 , x 2 , . . . , x N ) are exploited, wherein N is the number of allowed classes. Each set satisfies the following initial state: 
 
 x   i ≠0           x   i ∈class i   (5) 
 
 without loss of generality, since in our case we are dealing with three color classes: c 1 =skin; 
 
 c 2 =vegetation; and c 3 =sky; this scheme leads to the a coding where 255 is used to identify non-zero sets components: skin pixel-(255,0,0); vegetation pixel-(0,255,0); sky pixel-(0,0,255); unclassified pixel-(0,0,0). This produces a pseudo-color mask where each set corresponds to an RGB triplet. As will be shown later this image will be used for generating final values for each pixel.  FIG. 4  shows an input image and the rough mask image generated by the punctual classification block. 
 
         [0034]     Regionalization: Punctual classification is likely to not always be perfect, because several pixels, even if identifiable by visual inspection as belonging to the contemplated classes, may not be properly recognized due to their deviation from expected hue values. To expand and improve the results coming from the first punctual classification step, the mask is subjected to a low pass filtering step. The filtering is performed by using a Gaussian kernel, although other choices are possible (for example box filtering, turkey filtering and the like).  
         [0035]     Gaussian low pass filter functions can be defined by the following equation: 
 
 g ( x,y )= e   −(x     2     +y     2     )/c     2     (6) 
 
 where the space constant c determines the amount of filtering. Experimentally, it has been found that Eq. 6 requires very high values of c, thus making the filtering in the spatial domain computationally expensive. 
 
         [0036]     According to an aspect of this invention, instead of moving into frequency domain via an FFT, spatial filtering is performed on a down-sampled mask image followed by a successive up-sampling. This dramatically reduces the required computational resources and produces almost the same results of an onerous spatial or FFT filtering.  
         [0037]     A depiction of this approach is shown in  FIG. 5 , whereas  FIG. 6  shows how the rough mask of  FIG. 4  looks after the spatial filtering performed after down-sampling and after having carried out the successive up-sampling. Sampling may be performed by simple interpolation in both directions, while the combinations of the sampling factor and of the spatial constant c are carefully chosen depending on input image resolution.  
         [0038]     After the low pass filtering, values represented in the mask will be interpreted as smoothly varying the membership rank of the underlying pixels to a specific class (e.g. a value of 0,250,80 means that a pixel does not belong to the skin class, decisively belongs to the vegetation class, and weakly belongs to the sky/sea class). Sets after filtering will be indicated as (x′ 1 , x′ 2 , x′ 3 ).  
         [0039]     Region merging: The function of region merging is to further refine the mask as generated by local classification and regionalization to resolve ambiguities occurring when several discordant classifications insist on the same pixel. This is likely to occur after the second step due to overlapping effects introduced by the regionalization block.  
         [0040]     In these conditions sets no longer satisfy Eq. 5. Several heuristic rules have been designed ad hoc to solve these conflicts. This final processing will lead to a unique membership value w(x, y) and class code c(x, y) for each pixel in position x, y. Values w(x, y) and c(x, y) constitute the final mask with the following meaning:  
         [0041]     if c(x, y)=code i  the pixel belongs to class (i) with membership w(x, y); if c(x, y)=0 the pixel (x, y) does not belong to any class and its membership w(w, y)=0; code i  are the labels used to identify the admitted classes. The employed rules are summarized in the following formulas, wherein the operator π has the following meaning: 
 
π i ( x   1   ,x   2   , . . . ,x   N )= x   i   (7) 
 
 if only one of the values inside a set surpasses a given threshold T conf , then: 
 
 c ( x,y )={code i : π i ( x′   1   ,x′   2   ,x′   3 )=max( x′   1   ,x′   2   ,x   3 )}
 
 w ( x,y )=max( x′   1   ,x′   2   ,x′   3 ); 
 
 if two or more values exceed a given threshold (T conf ) and a pixel classification before the filtering step is available then: 
 
 c ( x,y )={code i :π i ( x   1   ,x   2   ,x   3 )≠0}
 
 w ( x,y )={x i :π i ( x   1   ,x   2   ,x   3 )≠0}; 
 
 if two or more values exceed a given threshold (T conf ) but no classification before the filtering step is available, then the pixel is assigned to the nearest class using a suitable metric, for example the distance of the pixel from the centroid of the clusters of  FIG. 2 , setting: w(x,y)=max(x′ 1 ,x′ 2 ,x′ 3 ).  FIG. 7  is a color representation of the final membership mask. 
 
         [0042]     Adaptive Color Enhancement: The process that permits generation, starting from an input image and a respective classification or membership mask, of an enhanced output image will now be described. The general case of implementation requires that the color enhancement block be fed with the original image data and the relative classification mask data. The color enhancement pipeline is preferably realized in a hardware form.  
         [0043]     The data of the classification mask should be encoded to contain, for each pixel of the original image, both the information related to its belonging to a specific class and the rank of membership itself. If the classification mask is generated by a process capable of discriminating a certain number C of classes and of codifying the rank of membership with a n-bits depth, each pixel of the mask image can be represented with a (log 2 C+n) bit string.  
         [0044]     In the sample embodiment, a representation of a mask image has been established with three chromatic classes (respectively relating to: skin, vegetation and sky/sea) and a 8-bit representation of the membership rank. Thus, for the considered example, a 10 bit/pixel representation was necessary for the mask image.  
         [0045]      FIG. 8  shows a block diagram of the color enhancement process according to this invention. A description of each functional block follows.  
         [0046]     Conversion Block RGB→erg: In this first block a color conversion process is performed on the original image (input image) by mapping it in the red-green color space. For each pixel i, the original triplet of values RGB is converted in the respective coordinates r i  and g i  of the red-green color space by a normalization of the intensity of the pixel, according to the  
             {             r   i     =       R   i         R   i     +     G   i     +     B   i                       g   i     =       G   i         R   i     +     G   i     +     B   i                       
 
 where RGB values are of the pixels of the input image. 
 
         [0047]     Statistics Accumulation: For each cluster of pixels classified as belonging to a certain class c, from the mask image generated as described above, two statistical values are computed (μ rc , μ gc ) representing mean values of the chromaticity of the cluster to which the pixel belongs. This process allows to localize all the classified clusters in the red-green chromaticity plane and to evaluate the distance from the respective target chromaticity.  
         [0048]     Color Shift Computation: For each cluster of pixels classified as belonging to the class c, the chromaticity distance from the target hues is computed as follows: 
 
Δ rc   =r   tc −μ rc  
 
Δ gc   =g   tc μ gc  
 
 wherein r tc  and g tc  are the target hues. 
 
         [0049]     Expected Color Look-Up Table: On a look-up table (LUT) are stored the chromaticity targets for each of the admitted classes. These values are those preliminarily calculated over a vast database of images containing large areas of well exposed subjects selected for representing well defined classes of chromaticity of a scene.  
         [0050]     As already mentioned, on this selection of high quality images, an appropriate color segmentation tool, as the one discussed above, was used for extracting, for each admitted class, the target values of the chromaticity, named r tc , g tc . For the admitted classes of the considered example (skin, vegetation and sky/sea) the table below reports the target values:  
                                             TABLE 2                                   (r tc )   (g tc )                                        Skin   0.47   0.31           Vegetation   0.35   0.43           Sky-Sea   0.21   0.33                      
 
         [0051]     Target Selector: For each pixel i of the image belonging to the class c, a target triplet (R′ i , G′ i , B′ i ) is determined by the equations below:  
             {               R   i   ′         R   i   ′     +     G   i   ′     +     B   i   ′         =       r   i     +     Δ   rc                       G   i   ′         R   i   ′     +     G   i   ′     +     B   i   ′         =       g   i     +     Δ   gc                         R   i   ′     +     G   i   ′     +     B   i   ′       3     =         R   i     +     G   i     +     B   i       3                   
 
 wherein (R i , G i , B i ) is the original triplet and (r i , g i ) are the values mapped on the red-green chromaticity space and Δ rc  e Δ gc  are the chromaticity distance from the respective target hue. 
 
         [0052]     Color Enhancement: After the target destination is computed, a modulated color correction is performed. The process produces the output triplet (R″ i , G″ i , B″ i ) as a weighted linear combination of the original (R i , G i , B i ) triplet and the target triplet (R′ i , G′ i , B′ i ). The correction is modulated by modifying two constants, respectively a and b, according to needs for determining how much of the original image will be preserved after the color correction.  
         [0053]     In the example, the values of the two constants a and b were empirically set to 3 and 2, respectively, as the best trade-off. The weight of the correction w is provided from the mask image generated according to the above described process, the data of which are fed to the correction/improvement pipeline together with the data of the original image.  
         [0054]     The correction is carried out according to the following equations:  
         R   i   ″     =         aR   i     +     b   ⁡     [         w   i     ⁢     R   i   ′       +       (     1   -     w   i       )     ⁢     R   i         ]           a   +   b           
         G   i   ″     =         aG   i     +     b   ⁡     [         w   i     ⁢     G   i   ′       +       (     1   -     w   i       )     ⁢     G   i         ]           a   +   b           
         B   i   ″     =         aB   i     +     b   ⁡     [         w   i     ⁢     B   i   ′       +       (     1   -     w   i       )     ⁢     B   i         ]           a   +   b           
 
         [0055]      FIGS. 9A, 9B ,  9 C and  9 D show, respectively, an input image, its enhanced version, its classified version and the mask image that is generated for obtaining the correction weights of the original image. The mask image of  FIG. 9D  shows how the adaptive approach determines corrections of different weight in different areas of the input image.  
         [0056]     For sake of comparison, subjective comparative assessments of the results obtained with two color enhancement commercial software were carried out. The comparison was carried out with the PSP technique of color enhancement, disclosed in PaintShopPro8: http://www.jasc.com, Jasc Software Inc., that implements an automatic saturation enhancement, and with the technique (ICorrect), disclosed in http://www.picto.com, Pictographics Inc., that allows a manually controlled color correction in a semi-automatic fashion. To carry out comparative tests, a data set of thirty natural scenes not belonging to the example of statistic classes described herein was used.  
         [0057]     Observers with no particular visual defects of color perception and without experience in digital image or color processing, expressed their opinion in a light controlled environment and on a CRT monitor with a standard sRGB profile. Two types of visual tests were performed, one of indistinct personal preference and another of comparative judgment between the original and the enhanced images as obtained by using the different enhancement process being compared.  
         [0058]     The following table resumes the indistinct preferences when four differently enhanced images were simultaneously presented to the observers.  
                                             ABSOLUTE PREFERENCE INDEX                                    ORIGINAL   20%           INVENTION   36%           PSP   28%           ICORRECT   16%                      
 
         [0059]     This index represents, in terms of percentage, the mean of the choices of the observers for the different color enhancement techniques. The enhancement technique of the present invention gathered the highest preference.  
         [0060]     The comparative application results that were collected by randomly showing to each observer three pairs of images, each pair always containing the original image and an enhanced one, are resumed in the following table.  
                                             RELATIVE PREFERENCE INDEX                                    INVENTION    +23%           PSP   +2.5%           ICORRECT    −36%                      
 
 For each comparison between the original image and an enhanced image a quality score was assigned. The results show, in percentage terms, the increasing/decreasing naturalness, colorfulness and overall quality perceived by the observers. Also in this case, the present invention obtained the highest score. 
 
         [0061]     It will be evident to a skilled person that the above described color enhancement process and, in particular, the automatic pixel classification block may be used for discriminating among any number of admitted classes, that is different types of objects of scenes, in function of the particular environment in which the images are acquired.  
         [0062]     It is worth remarking that once an image has been properly classified, the pseudo-image (membership mask image) may be used in various types of application in the field of digital image processing, for exploiting the semantic content of the so generated membership mask image according to the objective sought. A non exhaustive list of applications that may advantageously exploit the information contained in the generated membership mask image, may be as follows: automatic white balancing for target objects; automatic control of exposition in function of the content of the image; classification of images depending on their content; classification of database of images; and the like.  
         [0063]     In other words, the functional block that generates a mask image, used for the basic application of adaptive automatic color enhancement/correction in the various areas of the input image, may be used also for other purposes in the field of color digital image processing that may advantageously exploit the semantic information contained in the membership mask image generated according to the above described process, illustrated by the block diagrams of  FIG. 3 .