1. Field of the Invention
Embodiments of the present invention generally relate to a method and apparatus for white balance based on image data; more specifically, image statistics and references.
2. Description of the Related Art
White balance is the process of removing unrealistic color cast from a digital image caused by the color of the illumination. Human eyes automatically adapt to the color of the illumination, such that white will always appear white. Unfortunately, image capturing devices, such as, camera sensors, can not adapt automatically. Therefore, white balance algorithms are needed for camera sensors, for example, to compensate for the effect of illumination.
Automatic white balance algorithm (AWB) is an essential part of the imaging system pipeline. Digital still cameras and camera phones, for example, need AWB algorithms to correctly display the color of digital images. It has been a differentiating factor for different camera brands.
Embodiments of the present invention generally relate to a white balancing method and apparatus for white balancing. The method comprising estimating the color temperature of at least a portion of the image, wherein the color temperature estimation algorithm is based on computing histogram correlations of at least a portion of at least one reference image and at least a portion of at least one target image, and correcting the white balance of at least a portion of the image utilizing the estimated color temperature.
So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
a) and (b) are embodiments of a diagram depicting design of a reference image for white balance;
a)-(c) are embodiments of scene brightness control functions.
The next step transforms the image data from RGB space into a chromaticity space. For example, the space we have used is YCbCr space, and that the chromaticity Cb and Cr are normalized by luminance Y [2]. The normalization by luminance Y may not be necessary. Hence, this algorithm may not be limited by normalization and a variation of this algorithm may be utilized.
Y=0.299R+0.587G+0.114B
Cb/Y=256(−0.1726R−0.3388G+0.5114B)/Y
Cr/Y=256(0.5114R−0.4283G−0.0832B)/Y (1)
The references for such an algorithm may be the histograms and the gray values of a color checker, taken under a variety of color temperatures. A Gretag Macbeth color checker SG, as shown in
In the first step, color checker images are taken with the target sensor in a light box under controlled color temperatures, which may or may not include all of the following: A (2800K), U30 (3000K), CWF (4200K), TL84 (4000K), D50 (5000K), D65 (6500K), D75 (7500K).
In the second step, 2-D histograms of these references in the Cb/Y−Cr/Y space are computed by quantizing the Cb/Y into N (for example N=35) bins and Cr/Y into M (for example, M=32) bins, and counting the number of blocks or pixels falling into each Cr/Y and Cb/Y bin.
In the third step, extracting the K gray reference values for each color temperature reference. For a standard Macbeth color checker (
Color temperature estimation is computed with the steps discussed herein, which may not occur in the same order. In the first step, the 2-D histogram of the input image in Cb/Y and Cr/Y space is generated in the same way as computing the histogram of the references. In the second step, the image histogram is transformed into a canonical form to reduce the influence of dominate objective color. One way to do so is to threshold the histogram, followed by normalization. The thresholding operation is shown in (2), and the normalization operation is shown in (3):
Normalizing the histogram:
Where, Thist is the maximal allowed histogram value. Scalar C guarantees that the sum of the histogram for all input images are equal to C. Normalization is optional.
In the second step, the correlation score for each reference is computed. The correlation scores for each reference are computed in the following way:
Where, num_of_ref is the number of color temperature references,
StdDev_x is the standard deviation (without removing mean) for x, and x denotes either the reference (ref) or the input image (img). The standard deviation can be computed either after removing the mean or without removing the mean.
In another embodiment, estimating the color temperature of the illumination is determined by counting the number of blocks that fall into the circle with pre-defined radius R for each of the reference. The radius R may be different for each reference. The reference with the greatest count is the top 1 candidate for estimated color temperature. Multiple gray references for each color temperature reference may be used.
In the third step, scene brightness control is applied. As for scene brightness control, different weights are applied to color temperature references, based on the estimation of the scene brightness under which the picture is taken. The motivation for scene brightness control comes from the observation that color temperature references between 4000K and 5000K are often confused with object colors (such as grass/foliage) for outdoor sunny scenes. However, these color temperatures are less likely to be found in outdoor sunny conditions. By estimating the brightness of the scene, one may reduce the influence of wrong color temperature references.
The first procedure in scene brightness control is to estimate the brightness of the scene under which the image is taken. This process can be regarded as a reverse process of the Auto-Exposure, i.e., recovering the luminance level of the image before auto-exposure is applied to it. One embodiment of this operation is shown in (6):
P and Q are the height and width of the input image, respectively; Y is the luminance of the image; Analog_gain, Analog_gain_divider, Digital_gain, Digital_gain_divider, and Exposure_time are the exposure information of the input image.
The second procedure in scene brightness control is to adjust the weight of the references based on the estimated scene brightness. The core issue in scene brightness control is to determine the weight function, i.e., weight=f(color temperature, slope). The slope of the weight function is also a function of scene brightness, i.e., slope=f(scene brightness).
In one embodiment, there is a scene brightness control scheme. When scene brightness is greater than a threshold, for example 42.0, we disable color temperature references below a certain color temperature, for example, 4500K, by setting their weights to zero. This is equivalent to having two step functions for both the weight function and the slope function. One draw back of this strategy is that the transition of AWB gains are not smooth, leading to an occasional color shift for images whose scene brightness are close to the threshold. Another draw back is the step weight function could provide insufficient correction for some images, while over-correction for others.
One embodiment uses linear functions to gradually reduce the weight of the color temperature references between T2 (for example, 5000K) and T1 (for example, 4000K) from 1 to 0, as shown in (8). The slope of the function is determined by the estimated scene brightness of the image, as shown in (9).
In our practice,
SB1, SB2, and SB3 depend on the Auto-exposure algorithm and need to be tuned. The weight function and the slope function are illustrated in
To further improve the smoothness of scene brightness control, one could use a continuous function for the slope function, such as
In the fourth step, correlation score for each reference is adjusted by applying the weight to each score, whereas the weight is determined by the scene brightness control.
In the fifth step, the adjusted correlation score (Corr) is sorted, for example, in descending order; thus, the top N correlation scores are therefore, Corr(1), Corr(2), . . . and Corr(N). The top N candidates for color temperature estimation are the N color temperatures corresponding to Corr(1), Corr(2), . . . , and Corr(N). For example, N=3. Denote them as T1, T2, . . . and TN, respectively.
In the sixth step, the color temperature estimation Tfinal is determined:
In the seventh step, white balance gain is estimated. The R, G, B gains for white balance correction are estimated, such that the AWB regions identified by the following steps are neutralized to gray. White balance gains are computed with the steps discussed herein, which may not occur in the same order.
In step 7.1, the RED, GREEN, and BLUE values for each gray patch for the top N color temperature candidates are accumulated, T1, T2, . . . and TN,
In step 7.2, the average of the AWB regions from the top N color temperature estimations weighted by their correlation scores is computed. This weighted average procedure improves the stability of color temperature estimation and the AWB performance for images with dominate object color.
In step 7.3, the final white balance gain adjustment for Red (R), Green (G), and Blue (B) channels are computed. The gains are designed such that sumR_all, sumG_all, and sumB_all will be equalized after the gain adjustment. There are many different ways to do so. For example, one implementation is to keep sumG_all unchanged, and adjust sumR_all and sumB_all to equal sumG_all. In another implementation, the maximum of sumR_all, sumG_all, and sumB_all is maintained, while the other two are adjusted to match the maximum. This implementation is shown below. It will guarantee that the minimum of Rgain, Ggain, and Bgain are no less than 1.0.
For white balance correction, von Kries model may be utilized. The final output image may be obtained by individually scaling the R, G, B channels of the image with Rgain, Ggain, and Bgain, respectively, as the following:
If Corr(1)==0, i.e., maximal correlation score is zero, gray world method [1] is used to estimate AWB gains.
If Corr(1)<Corr_Low_Threshold, color temperature estimation is determined based on the estimated scene brightness.
If Corr(1)≠0 AND (sumR_all==0 OR sumG_all==0 OR sumB_all==0), i.e., AWB regions are not found, then use the R, G, B value associated with T1, T2, . . . , and TN to compute the R, G, B gains, in a similar way as described in fifth step.
The described method and apparatus for white balancing may include following advantages:
Another embodiment comprises the following steps:
In this proposed AWB algorithm, color temperature estimation consists of two sub-algorithms. These two algorithms are running in parallel. Their results are merged at the end of this process. Algorithm 1 is Histogram Correlation. Algorithm 2 is Gray Reference Scoring, which is developed based on the scoring algorithm.
An embodiment of a modified Gray Reference Scoring algorithm, instead of using one gray reference point for each color temperature, we measured multiple gray references for each color temperature. For example, the standard Macbeth color checker, as shown in
The advantages of using multiple gray references over one gray reference for each color temperature:
The Histogram Correlation algorithm and the Gray Reference Scoring algorithm generate a score for each color temperature reference. The final color temperature estimation from each algorithm is determined in the same way.
Let Sorted_Ti, i=1, 2, . . . , N be the color temperature of the references sorted in descending order of the correlation scores or gray reference scores, where N is the number of references. The final color temperature estimation Tfinal is:
In our practice, P=3.
The advantage of using a soft decision on color temperature estimation instead of a hard decision, i.e., P=1, is the improved stability. Stability is one of the most challenging problems facing white balance algorithms. When pictures of similar scenes are taken, the color of the images may shift because of a non-smooth change of the white balance gains. This is caused by the change of the location of the maximal score due to the change of the image content. The soft decision, however, will produce much more stable white balance gains, hence reducing the color shift to a great extend.
In case there are multiple peaks in the scores, hard decision could result in a much more dramatic shift of the color of the output images. A soft decision makes the transition of white balance gains much smoother.
From the two color temperature estimation algorithms, we obtain two set of AWB results, φ{T, Gains}1 from the Histogram Correlation algorithm and φ{T, Gains}2 from the Gray Reference Scoring algorithm. We have tried two methods to integrate the two sets of results. Method 2 produces more stability white balance results.
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
This application is a divisional of U.S. Nonprovisional patent application Ser. No. 12/510,853, filed Jul. 28, 2009, which claims benefit of U.S. provisional patent application Ser. No. 61/149,937, filed Feb. 4, 2009, and U.S. provisional patent application Ser. No. 61/084,094, filed Jul. 28, 2009, all of which are herein incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61149937 | Feb 2009 | US | |
61084094 | Jul 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12510853 | Jul 2009 | US |
Child | 13402510 | US |