Patent Publication Number: US-2004052414-A1

Title: Texture-based colour correction

Description:
FIELD OF THE INVENTION  
       [0001] The present invention relates to colour correction, in particular applied to correct colours of (still or moved) photographic images. The invention is directed to a colour correction method, a camera, a printer, and/or a photographic laboratory, and a program corresponding to the method.  
       BACKGROUND OF THE INVENTION  
       [0002] In digital camera processing and in photographic printing, it is a standard technique to estimate the white balance in a scene by assuming the integral densities in each colour channel to be equal, that is, to assume that on the average the scene is grey. This algorithm, which is called “grey world” method, works reasonably well for average scenes, but might be very unreliable for certain other scenes.  
       [0003] Other well-known algorithms are the “Retinex method” [E. Land and J. McCann. Lightness and Retinex Theory. Journal of the Optical Society of America, 61(1): 1-11, 1971], “colour by correlation” [G. Finlayson, P. Hubel, and S. Hordley. Colour by correlation. In Fifth IS&amp;T Colour Imaging Conference, Scottsdale, pages 6-11, 1997], and the estimation of the white balance using neural networks (U.S. Pat. No. 5,907,629). These techniques provide sophisticated techniques for estimating the white balance in a given colour image. However, none of these techniques makes use of local texture information.  
       [0004] EP 1 014 695 A2 is based on the assumption that the standard deviations in each colour channel, particularly of high frequency spatial information, should be equal. The high frequency spatial components in each colour channel are calculated separately and colour correction factors are obtained by comparing the different components.  
       SUMMARY OF THE INVENTION  
       [0005] It is a preferred object of the invention, to allow a colour correction of the image based on image properties, in particular to allow an adjustment of the colour balance based on image properties.  
       [0006] It is another object of the invention to cope with other shortcomings of the prior art, set forth above.  
       [0007] The present invention is in particular directed to the processing of digital image data and in particular to a method for automatically adjusting the colour balance in a digitized colour image, thereby removing colour casts. The colourcasts may, for instance, originate from unknown scene illuminations, from wrong colour processing or from the transformation from an unknown colour space. Advantageously, the present invention has the capability of estimating the unknown illumination of a scene. The invention may be implemented as an apparatus for adjusting the white balance in a digital video or still camera.  
       [0008] The image may be, for instance, a bitmap image, which consists of a plurality of pixels. A colour value is preferably assigned to each pixel. Colour values may be represented in different colour spaces, for instance, RGB, CIE Lab, CIE XYZ, or RGBs. The colour value is usually defined by a set of values, which are herein called “element values”. The set of element values may, for instance, define a vector in the colour space, which allows defining a colour value. For instance, r, g, and b represent element values in the RGB colour space, and L, a, and b represent element values in the Lab colour space. The element values, which define a colour value, respectively belong to a colour channel. For instance, r belongs to the R colour channel in case of RGB and L belongs to the L colour channel in the case of Lab colour space.  
       [0009] The term “textures” in an image represents a term used in the art. For instance, a “textured” image is the opposite of a homogeneous image where all pixels have the same colour value. In other words, textures may represent the structures in the image. Examples for a mathematically definition of “texture” are given below. Further examples and definitions for “texture” can be found in “Textures—A Photographic Album for Artists and Designers” by Phil Brodatz, General Publishing Company, Ltd., 1996 and are herewith included by reference.  
       [0010] Preferably first a luminance image is calculated, in which textured regions are detected by using (possibly very sophistaced) texture measures. Then the detected regions are used to analyze presumably common properties of the different colour channels.  
       [0011] According to the invention, texture features are determined locally based on the colour values. Preferably the determined local texture features represent a measure for the texture at a particular location e.g. represent the degree or amount of texture or whether there is texture or not with respect to the particular location. Preferably, at least one texture feature is determined for one location of the image. Preferably, the determined at least one texture feature is assigned to this location (section or sub-region) of the image. Thus, the determination of texture features may, for instance, result in a matrix, each matrix element being assigned to a particular location (section or region) of the image and each element representing at least one texture feature (e.g. representing a texture measure). The “local texture features” respectively represent at least one texture feature for the respective locations (regions, sections) in the image. In particular, the local texture features define a texture measure for (each of) the respective locations. Thus, there is a plurality of local texture features, which describe locally the texture of the image.  
       [0012] Preferably, the local texture features are determined based on the colour values, which correspond to the same location (section or region) of the image. Preferably, in order to reduce the processing load, a coarse version of the image is processed in order to obtain the local texture features. The coarse version of the image may be obtained e.g. by down-sampling, filtering or averaging.  
       [0013] Preferably, the local texture features are determined based on the colour values. Preferably, the determination is performed automatically and/or by means of (mathematical) calculation, in particular based on a mathematical definition of local texture features.  
       [0014] Preferably, the colour values are corrected based on the local texture features. Preferably, the correction is performed in dependence on (uncorrected) colour values. Preferably, also in this case the colour values are derived from a coarse image, which may be achieved by down sampling or filtering or any other method, which reduces the amount of data.  
       [0015] Preferably, the colour values are corrected channel-wise, e.g. for (most or) all element values of a colour channel, the same correction is applied. This is in particular of advantage, if the colour balance of an image is corrected. Alternatively or additionally, in case of an additional local colour correction is desired, the colour values may be corrected based on the corresponding local texture features.  
       [0016] Preferably, the element values of the respective colour channels are corrected based on both the (uncorrected) element values and the local texture features.  
       [0017] Preferably, the local texture features are based on element values of different colour channels. Preferably, those element values belong to different colour channels, however, relate to the same location (section or region) to which the local texture features relate. With respect to a particular location (region, section) one or more local texture features may be calculated based on (most or all) element values, which define the one or more colour values at that location (section, region).  
       [0018] Preferably, the element values of different channels are (mathematically and/or automatically) combined in order to calculate a single value. For instance, the luminance value may be calculated from a set of element values. Then, based on the luminance values, which relate to a particular location (section or region), at least one local texture feature (of this location) may be calculated.  
       [0019] Preferably, the local texture features are used in order to define or set the influence of the respective colour values or element values on the correction procedure. Preferably, for this purpose the element values or colour values are combined with the local texture features, e.g. automatically and/or mathematically. Preferably those colour values or element values and local texture features are combined, which relate to the same location. In this way, it is possible to give those colour values or element values a higher weight for the colour correction, which are considered to represent a more valuable information with respect to colour correction. In this way it may be avoided that objects, which dominate an image and which are homogenous in colour like a blue-sky result in negative effect when correcting the colour balance. In particular, it is assumed in accordance with the invention that textured regions have a higher probability to comply with the “grey world” assumption mentioned above than untextured regions. An exception to this assumption may be regions, which represent “critical scene content”, e.g. relate to memory colours like skin and vegetation. These regions may be textured but still may dominate the overall colour impression. In view of this, “critical scene content” regions, e.g. memory colour regions, regions with text inscriptions, regions showing wood, regions showing a sunset etc. are treated differently as explained below.  
       [0020] In summary, it represents an essential idea of the present invention that the influence of the local colour values or element values on a (total) colour correction, which has an influence on the whole image, is changed or altered in dependence on corresponding local texture features, wherein “corresponding” means that a local texture feature of one location controls the influence of the colour value or element values of the same one location on the correction.  
       [0021] As mentioned above, memory colours may have a negative effect on the colour correction, in particular the correction of the colour balance of a colour image. Assuming, for instance, that an image is dominated by green vegetation and that the vegetation is textured. Then, this would even have a negative effective on colour correction if the above new processing regime were used. In order to avoid this problem, the image is preferably analyzed for memory colours (or often critical scene content) and preferably regions are identified, in which those memory colours (or other critical scene content) are located. The identification of memory colours may be, for instance, performed by assigning a particular range of colour values to a particular memory colour (e.g. skin tone). Those regions, which consist of adjacent pixels having colour values within those ranges, are identified as a memory colour region of particular memory colour.  
       [0022] Preferably, according to the invention the image is analyzed with one or more regions represent a memory colour region. The result of the analyzation may be a simple yes or no or may be, for instance, a probabilistic statement. Preferably, there are analyzation results for all locations in the image, where colour values or element values are combined with local texture features for performing the correction. In other words, the combination of the local colour values and the local element values with the corresponding local texture features depends on the corresponding local analysis result.  
       [0023] With respect to other critical scene content, for instance, information on location and colour of text inscription may be used in order to avoid an influence of the text inscriptions on the colour correction e.g. by not-basing the colour correction on colour values and texture features of text inscription regions.  
       [0024] Below an additional or alternative approach is discusses, which allows to avoid negative effects of memory colours in case a colour balance is to be achieved.  
       [0025] Preferably, channel characteristics for the colour channels are determined. The channel characteristics represent preferably a kind of “energy” or “influence” which the colour channel has in the process of colour correction. For instance, colour channels representing intense colour values and which are often located at textured locations, have a higher “channel energy” and thus a higher influence on colour correction. Preferably the channel characteristics are represented by values but may also be represented by, for instance, vectors or matrices or any other kind of mathematically expression. Preferably, the channel characteristic of a particular colour channel is determined (e.g. automatically calculated) based on the element values of the particular colour channel and the local textures, which correspond to these element values.  
       [0026] Preferably, based on the channel characteristics, the colour values of the image are corrected. Preferably, this correction is performed by correcting the element values of the colour channels differently. Preferably, the element values of each respective colour channel are corrected based on the channel characteristic of the corresponding colour channel. Preferably, the correction is additionally based on predetermined reference relationships, which are defined between the channel characteristics, i.e. there are target relationships for the channel characteristics (e.g. predefined ratios between values representing the channel characteristics). In other words, if the channel characteristic of a particular colour channel deviates in its relationships to the other channel characteristics from predetermined reference relationships, the element values of the colour channels are changed in order to minimize or eliminate this deviation from the reference relationships. Preferably, the change of the element values of a colour channel is performed in the same way for all (or most) element values, e.g. by multiplying all (or most) element values by the same factor or by subjecting them to the same mathematical function.  
       [0027] The above predetermined reference relationships preferably represent a target colour balance, e.g. the above-mentioned “grey world” assumption. In other words, if the relationships among the channel characteristics imply that the image is overall a grey image, no colour correction is to be performed.  
       [0028] In the above-mentioned embodiment, the channel characteristics are a representation of the colour channel, which is “cleaned” from misleading effects like dominating regions of homogeneous colour (or critical scene content), which do not comply with the “grey world” assumption.  
       [0029] Another alternative or additional approach may be to calculate, based on the information on local texture features, the influence of colour values, which relate to non-textured locations or critical scene content on a deviation from the grey world assumption. In other words, the predetermined reference relationships (which represent the grey world assumption) may be changed in dependence on the colour values and frequency (number or abundance) of non-textured (or only partly textured) locations. This method may be, for instance, combined with the above-mentioned embodiment for the considerations of memory colours or other information on critical scene content. For instance, in the case of identification of memory colours, the predetermined reference relationships among the channel characteristics may be amended in dependence on the colour value and frequency (number or abundance) of the locations, which relate to memory colours.  
       [0030] As mentioned above, it represents a major idea of the present invention that the colour balance of an image is corrected in dependence on memory colours (or information on other critical scene content) present in the image. Therefore, the present invention is also directed to a method for correcting the colour balance of an image, wherein the image is analyzed for memory colours, in particular as discussed above. Preferably, the image is analyzed for identifying one or more regions representing a memory colour region. Preferably, the colour correction, in particular the correction of the (white or grey) colour balance of the image is performed in dependence on the analysis result. Preferably, this correction is performed channel-wise, i.e. the element values of the same colour channel are corrected in the same way, e.g. by multiplication of a factor or by subjecting the element values to the same function.  
       [0031] For instance, reference relationships may define target relationships among the integrated colour channels. The integrated colour channels may represent an integration of their element values. Depending on the frequency (number or abundance) of locations, identified as colour memory locations and in dependence on their colour, the reference relationships may be changed.  
       [0032] Advantageously, this invention provides a colour transformation that removes the existing colour cast in a digital colour image, thereby resulting in an improved image with an adjusted colour balance.  
       [0033] The method of calculating the colour transformation is preferably based on the assumption of certain common properties of textured regions in the image.  
       [0034] The invention provides a method of colour balance correction comprising preferably at least one of the following steps:  
       [0035] obtaining the image from an input device and storing it in memory;  
       [0036] down-sampling the image to a standardized analysis resolution;  
       [0037] converting the image to a luminance image;  
       [0038] applying at least one texture feature extraction method that locally calculates texture features over the whole image;  
       [0039] applying a classificator that classifies all image locations into pre-defined texture classes, resulting in a texture weighting mask;  
       [0040] calculating properties of each colour channel in the regions classified as textured;  
       [0041] calculating reference properties from the properties of each channel;  
       [0042] determining the colour correction transformation by comparing the properties of each channel with the reference properties;  
       [0043] applying the colour correction transformation to the coloured image in order to obtain the improved image.  
       [0044] There exists a variety of texture features that can be used to obtain descriptions of the local spatial information, as will be discussed below. Similarly, there exists a manifold of properties that can be derived from the textured regions and used to obtain the colour correction transformation, as will be discussed below.  
       [0045] After applying the method of this invention to a colour image, advantageously existing colour casts will be removed and its global colour balance will be restored.  
       [0046] In comparison to other methods of prior art, the invention analyses information in textured regions of the image, thereby avoiding the negative effects resulting from one (or several) dominating objects in the image (such as an image dominated by blue sky) on the extracted properties that are being used to derive the colour correction transformation. 
     
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
     [0047] Further embodiments and features are disclosed in the following detailed description of the invention.  
     [0048]FIG. 1 shows an overview of a preferred colour correction algorithm of the present invention;  
     [0049]FIG. 2 gives an example of a texture-weighting mask;  
     [0050]FIG. 3 shows an extension of the classification step  80  of FIG. 1 for memory colours. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)  
     [0051] In FIG. 1, an overview of an embodiment of a new colour correction algorithm is provided. The algorithm is based on the calculation of local texture features and the classification into “textured” and “not textured” regions.  
     [0052] First the image is read into memory by the input unit,  10 . The input image can be any kind of digitised image, such as an image stored on disk, a scanned negative or slide, an image taken with a CCD/CMOS sensor, or an artificially generated image.  
     [0053] Similarly, in the output unit,  30 , the image can be transferred to any output device: e.g., printed on a photographic or inkjet printer, written to disk or memory card, displayed on screen or a web page, or exposed on a photographic film.  
     [0054] After reading in by the input unit, the image is scaled down,  40 , to a certain fixed resolution (e.g., to a maximum height and width of 320 pixels) in order to guarantee reproducible results in the following texture description step. The method of scaling down to that coarser resolution without introducing any artefacts is state of the art in digital image processing [A. Jain. Fundamentals of Digital Image Processing. Prentice-Hall International, 1989].  
     [0055] The analysis of the (downscaled) image using local texture features,  60 / 70 / 80 / 90 , is an essential part of the embodiment and explained in detail below. It provides us with a texture-weighting mask, that specifies those locations of the image that will be used in the subsequent calculation of the colour correction transformation,  50  (see below).  
     [0056] The colour correction transformation (consisting of one gain factor for each colour channel) is applied,  20 , to the full image as it is read by the input unit. Depending on the used colour space, a power law transformation has to be applied before and after applying the colour correction.  
     [0057] An important step of the embodiment is the extraction of the texture-weighting mask. The purpose of the “texture-weighting mask” is to specify those regions in the image that actually contain spatial information. It is obtained as depicted in the example in FIG. 2, based on the algorithm shown in FIG. 1. At the bottom of FIG. 2 the mask image (bottom) is 1 respectively 0 (denoted by black respectively white) where the original image (top) exhibits respectively does not exhibit spatial structure. (The “1” and “0” represent examples for a texture measure). Thereby the texture mask selects borders between uniform regions of different luminances, but neglects homogeneous regions. This example shows a binary mask. The extension to continuous/fuzzy masks is straightforward.  
     [0058] 1. (FIG. 1, 60) First the (downsampled) image is converted to a grey image, in which each pixel value represents e.g. the luminance in the image (such as Y of XYZ or Y of the Ycc colour space). As alternative, the first component of a principal component analysis can be used.  
     [0059] 2. (FIG. 1, 70) Then local texture features are calculated that capture information about the spatial distribution of tonal variations in a one-channel image (in our case a luminance image). Examples of definitions of local texture features are given below:  
     [0060] An example for a local texture feature is the local variance. It quantifies the variation of intensity in the neighbourhood of the pixel under investigation:  
               σ     i   ,   j     2     =       1   N            ∑       i   ′     ,       j   ′     ∈     Δ     i   ,   j                    (       x       i   ′          j   ′         -     μ     i                 j         )     2                 (   1   )                       
 
     [0061] with x ij  denoting the pixel intensity (e.g. luminance) at position i,j, with Δ i,j  denoting a certain neighbourhood of pixel i,j (e.g., a 5×5 square), N being the number of pixels in that neighbourhood and μ ij  being the mean intensity (e.g. mean luminance)  
               μ     i                 j       =       1   N            ∑       i   ′     ,       j   ′     ∈     Δ     i   ,   j                    x       i   ′          j   ′         .                 (   2   )                       
 
     [0062] Note that the local variance only captures the magnitude of variations at a certain image location, but does not actually describe spatial information. The following texture measures, however, actually do that.  
     [0063] Features based on the gray-level co-occurrence matrix (GLCM,[R. M. Haralick, K. Shanmugan, and I. Dinstein. Textural features for image classification. IEEE Transactions on Systems, Man, and Cybernetics, 3(6):610-621, November 1973]) are among the most frequently used texture features. The GLCM is the matrix of occurrence of relative frequencies of grey level pairs of pixels at certain relative displacements. From this matrix, various features such as contrast, correlation, and entropy can be computed.  
     [0064] Another class of texture features is given by edge detection algorithms, since texture can be viewed as an ensemble of edges. A remote sensing application for land cover classification in explained in [Christine A. Hlavka. Land-use mapping using edge density texture measures on thematic mapper simulator data. IEEE Transactions on Geosciene and Remote Sensing, GE-25(1):104-108, January 1987].  
     [0065] Image transformations constitute another powerful class of texture features. First the image is submitted to a linear transform, a filter, or a filter bank, followed by the application of certain energy measures. Examples are Laws filter mask [K. Laws. Rapid texture identification. In Proc. SPIE Conf. Image Processing for Missile Guidance, pages 376-380, 1980], Gabor filter banks [A. K. Jain and F. Farrokhnia. Unsupervised texture segmentation using Gabor filters. Pattern Recognition, 24(12):1167-1186, 1991], and the wavelet transform [S. G. Mallat. A theory for multiresolution signal decomposition: The wavelet representation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 11(7):674-693, July 1989]. A recent review article on this kind of texture features is provided by [Trygve Randen and John Husoy. Filtering for texture classification: A comparative study. IEEE Transactions on Pattern Analysis and Machine Intelligence, 21(4):291-309, 1999].  
     [0066] 3. (FIG. 1, 80) The texture feature extraction provides high-dimensional local features, that is, for each part of the image a feature vector of a certain dimensionality (depending on the type of feature used) may be obtained. In the next step, this feature vector is classified into two classes: “textured” and “not textured”. This provides the probability  
     p(“textured” |i,j)   (3)  
     [0067] of the pixel i,j being “textured”. When using local variance as feature, Eq. (1), a classification can be  
             p   (         “   textured   ”               i   ,   j     )       =     {         1             if                   σ     i   ,   j         &gt;=   Λ     ,             0           otherwise   ,                                    (   4   )                       
 
     [0068] (“textured” li,j)={ 1  if oi,j&gt;=A, (4) with Λ being the threshold defining the decision border between “textured” and “not textured”. Note that the thresholding in Eq. (4) is just a demonstration of the procedure and its feasibility. For those skilled in the art, it is straightforward [A. Webb. Statistical Pattern Recognition. Arnold, 1999] to derive classification procedures that result in probabilistic (that is, “smooth” or “fuzzy”) decisions and avoid the hard decision rule of Eq. (4).  
     [0069] The calculation of the colour correction factors preferably relies on the assumption that certain properties of the red, green, and blue pixels in the “textured” regions of the image have to be equal to represent an image that is properly colour balanced.  
     [0070] As common property, the following quantities can be used:  
     [0071] mean  
     [0072] variance  
     [0073] maximum pixel value (possibly using a cumulative histogram and a percentile threshold)  
     [0074] In the following an example is given, which uses RGB means:  
     [0075] First, for each channel we calculate the weighted mean  
               R   _     =       1   Z            ∑     i   ,   j              R     i   ,   j       ·     p        (         “   textured   ”        i     ,   j     )                     (   5   )                 G   _     =       1   Z            ∑     i   ,   j              G     i   ,   j       ·     p        (         “   textured   ”        i     ,   j     )                     (   6   )                 B   _     =       1   Z            ∑     i   ,   j              B     i   ,   j       ·     p        (         “   textured   ”        i     ,   j     )                     (   7   )                       
 
     [0076] where the sum extends over all image pixels i,j and with the normalization  
             Z   =       ∑     i   ,   j              p        (         “   textured   ”        i     ,   j     )       .               (   8   )                       
 
     [0077] Using the mean intensity values, we can calculate a mean luminance  
       {overscore (Y)}= 0.2126 {overscore (R)}+ 0.7152 {overscore (G)}+ 0.0722 {overscore (B)}   (9)  
     [0078] and—with the assumption of equal means in the textured regions—the RGB gain factors  
     rf={overscore (Y)}/{overscore (R)}, gf={overscore (Y)}/{overscore (G)}, and bf={overscore (Y)}/{overscore (B)}  (10)  
     [0079] In more detail, the Ri,j; Gi,j; and Bi,j are multiplied by rf; gf; and bf, respectively to obtain the transformed Ri,j; Gi,j; and Bi,j, respectively. The transformed average values 2′,  ′, and B′ are obtained correspondingly. The “assumption of equal means” corresponds to:  
     2′= ′=B′  (11)  
     [0080] Using Eq. (9) this results in:  
     Y′=2′= ′=B′.  
     [0081] If assuming additionally that Y remains constant, i.e. Y′=Y then Eq. (2) and (4) result in the above Eq. (10).  
     [0082] For certain scene types (e.g., scenes dominated by vegetation), the assumption of common properties (e.g., common RGB mean) does not hold. Therefore, a preferred embodiment of the invention is to incorporate knowledge on critical scene content, such as skin, sky, and vegetation (so-called memory colours), or e.g. on text inscriptions in a particular colour or on graphical structures or pattern in a particular colour, into the classification step (FIG. 1, 80).  
     [0083] The modified workflow is depicted in FIG. 3. The classification step  80  is extended with additional references to skin, sky and vegetation. The main differences to the previous workflow are the additional references of skin, sky, and vegetation. This extends the two-class classification problem (texture/not texture) to a five-class problem (texture/not texture/skin/sky/vegetation). For those skilled in the art, the design of a classificator for such a problem is straight-forward [A. Webb. Statistical Pattern Recognition. Arnold, 1999]. For a research paper on tackling the problem of describing memory colours using texture features see [G. Asendorf and Th. Hermes. On textures: An approach for a new abstract description language. In IS&amp;T/SPIE&#39;s Symposium on Electronic Imaging: Science &amp; Technology, January 28-February 2, San Jose, Calif., USA, 1996].  
     [0084] When taking into account memory colours, some parts of the image that previously have been classified as “textured” are now being classified as the corresponding memory colours and do not bias the calculation of the colour correction transformation (FIG. 1, 50).