Digital image quality is influenced by objective and subjective factors. Image resolution is an example of an objective factor affecting image quality. Subjective factors may involve, for example, human perception and/or preference. An observer's preference for skin tone reproduction in an image is a subjective factor that can have significant influence on an observer's perception of image quality.
The following description includes discussion of figures having illustrations given by way of example of implementations of embodiments of the invention. The drawings should be understood by way of example, not by way of limitation. As used herein, references to one or more “embodiments” are to be understood as describing a particular feature, structure, or characteristic included in at least one implementation of the invention. Thus, phrases such as “in one embodiment” or “in an alternate embodiment” appearing herein describe various embodiments and implementations of the invention, and do not necessarily all refer to the same embodiment. However, they are also not necessarily mutually exclusive:
Given the human eye's sensitivity to variations and/or abnormalities in the reproduction of skin tones in images, various techniques for improving the reproduction of skin tones in images may be employed to improve image quality (or perception of image quality). Among possible techniques, skin tone preferences may be modeled with ellipses using hue range and/or chroma range. Images, including digital images, are commonly captured using RGB (red, green, blue) color values. In adjusting skin tones to improve image quality, RGB color values may be converted to a luminance-chrominance color space for skin color detection based on an elliptical model. Representative elliptical models may be two-dimensional based on, for example, red-difference chroma and blue-difference chroma components in view of a single (e.g., average) luminance value. In such models, chromaticity values of skin color pixels may be adjusted to reflect preferred skin tones.
Embodiments described herein present methods and systems to adjust skin tone color values to reflect preferred skin tones based on an ellipsoid (three-dimensional) model that incorporates a spectrum of luminance values in addition to two-dimensional chrominance values.
The ellipsoid skin color model of
Φ(x,y,z)=u0(x−x0)2+u1(x−x0))(y−y0)+u2(y−y0)2+u3(x−x0)(z−z0)+u4(y−y0)(z−z0)+u5(z−z0)2,
where coefficients are trained using a large image database. Φ(x, y, z)<ρ defines the boundary of the ellipsoid.
The orientation legend shown in
Where a single preferred skin tone region is used to process a color image, the source color of each pixel is converted, for example, to CIELAB. The Mahalanobis distance, Φ(L, a, b), is computed according to the skin tone distribution ellipsoid model Φ(L, a, b). A weight, w, to adjust skin color is computed using the Mahalanobis distance. At the ellipsoid center, Φ(L, a, b)=0, w is maximized; on the ellipsoid boundary, Φ(L, a, b)=ρ, w is minimized. The pseudo code to adjust the chromatic coordinates (a*, b*) is given by (lightness is ignored):
In the above equation, (center_a, center_b) is a center point of the preferred skin tone region; s0 is a parameter to adjust the strength of adjustment; and a, b are the (a*,b*) chrominance values of a skin color. Lightness is not adjusted, because it may amplify noise if the original image is noisy.
Building on the example above, to enable color adjustments for multiple lightness levels using multiple preferred skin tone regions (e.g., light skin tone region 110, medium skin tone region 120, and dark skin tone region 130), multiple center points are used as parameters. As illustrated in
In various embodiments, the preferred skin tone regions 112, 122, and 132 are determined experimentally by subjecting human observers to a variety of images of people with different skin tones and soliciting their preferences. For example, a variety of images captured using various digital cameras could be presented to one or more groups of people. The images might include people with different skin tones, including people with different geographic and/or ethnic backgrounds. The original images might be modified in chrominance space to produce various skin tones versions. By presenting both the original and processed versions of each image to the observers, preference data may be generated (e.g., capturing the observer's acceptance of the skin tones according to preference and determining the preferred color centers and regions using statistical discriminance analysis, assuming the most acceptable would be likely the most preferred). Other visual experiment methods could be performed to obtain human feedback and other analysis techniques could be used to generate the preference data.
Computing device 210 could be any device capable of processing images, including, for example, desktops, notebooks, mobile devices, tablets, photo kiosks, imaging and printing devices, etc. Preference module 212 characterizes a preferred skin tone region within a luminance-chrominance color space (e.g., L*a*b* color space, etc.) for each of plurality of lightness (e.g., luminance) values. In various embodiments, the preference module uses preference data obtained via experimentation, as discussed above. Customized preference data could be used in alternate embodiments.
Interpolation module 214 interpolates additional preferred skin tone regions and/or preferred skin tone center points based on the preferred skin tone regions characterized by preference module 212. Ellipsoid module 216 generates an ellipsoid skin color model in the luminance-chrominance color space based on both the characterized and interpolated preferred skin tone regions.
Pixel inspection module 218 detects skin color pixels in an image. For example, pixel inspection module 218 may define a threshold for determining skin color pixels in view of the ellipsoid skin color model. For pixels detected as skin color pixels, pixel modification module 220 modifies one or more color values for the skin color pixels based on the ellipsoid skin color model.
Various modules and/or components illustrated in
A preferred skin tone region is determined 310 for a plurality of luminance values within a luminance-chrominance color space. In various embodiments, preferred skin tone regions are determined based on experimentation (e.g., collecting feedback from observers on preferences between modified and unmodified versions of various images). Experimentation results may be provided to a computing system and processed to define and/or refine preferred skin tone regions.
Based on initially determined preferred skin tone regions, a computing system interpolates 320 additional preferred skin tone regions. If user input is received 330, the computing system modifies 340 one or more preferred skin tone regions. For example, a user interface may be provided which allows a user to adjust personal preferences with respect to various image parameters (e.g., hue, saturation, strength). Additionally, a user may be provided with an option to select a geographic region or ethnic background (e.g., where image parameters for each geographic region or ethnic background are customized). The computing system obtains 350 an ellipsoid skin color model in a luminance-chrominance color space (e.g., CIELAB) trained using a large number of images and in view of any user input received.
Based on the ellipsoid skin color model, the computing system detects 360 skin color pixels in an image and adjusts 370 one or more color values for the skin color pixels toward preferred skin tones. In various embodiments, the adjustment of high L* colors is reduced. For example, the adjustment strength, s0, may be multiplied by a factor, w_L, where w_L starts at 1 in the lower lightness range and is gradually reduced to 0 at higher lightness values. In other embodiments, very light skin color may only be subjected to hue adjustments. For example, the hue angle of the preferred skin tone center for light skin tone region (e.g., region 110 of
Computing device 410 could be any device capable of processing images, including, for example, desktops, notebooks, mobile devices, tablets, imaging kiosks, imaging and printing devices, etc. A lookup table (LUT) 426 is stored in memory 424. In various embodiments, LUT 426 is a reduced-resolution LUT. In various embodiments, LUT 426 is a pre-generated lookup table (e.g., generated by the process described
In some embodiments, multiple LUTS may be stored in memory 424, each LUT specific to a particular ethnic background, and/or geographic region (e.g., Asia, Africa, Europe, etc.), and/or other user input parameters. In such embodiments, each LUT is tailored to the preferences (e.g., tested experimentally) of people specific to each ethnic background or geographic region. When multiple LUTs are available for processing images, a user interface may be provided, allowing a user to select which geographic region or ethnic background is applicable for processing the images.
Various modules and/or components illustrated in
Various modifications may be made to the disclosed embodiments and implementations of the invention without departing from their scope. Therefore, the illustrations and examples herein should be construed in an illustrative, and not a restrictive sense.