Skip to content
Surf Wiki
Save to docs
technology/computing

From Surf Wiki (app.surf) — the open knowledge base

Color normalization

Topic in computer vision concerned with artificial color vision and object recognition


Topic in computer vision concerned with artificial color vision and object recognition

Color normalization is a topic in computer vision concerned with artificial color vision and object recognition. In general, the distribution of color values in an image depends on the illumination, which may vary depending on lighting conditions, cameras, and other factors. Color normalization allows for object recognition techniques based on color to compensate for these variations.

Main concepts

Color constancy

Main article: Color constancy

Color constancy is a feature of the human internal model of perception, which provides humans with the ability to assign a relatively constant color to objects even under different illumination conditions. This is helpful for object recognition as well as identification of light sources in an environment. For example, humans see an object approximately as the same color when the sun is bright or when the sun is dim.

Applications

Color normalization has been used for object recognition on color images in the field of robotics, bioinformatics and general artificial intelligence, when it is important to remove all intensity values from the image while preserving color values. One example is in case of a scene shot by a surveillance camera over the day, where it is important to remove shadows or lighting changes on same color pixels and recognize the people that passed.{{Cite book

Known issues

The main issue about certain applications of color normalization is that the result looks unnatural or too distant from the original colors.{{Cite report A way of combating this issue is to use color normalization in combination with thresholding to correctly and consistently segment a colored image.{{cite book

Transformations and algorithms

There is a vast array of different transformations and algorithms for achieving color normalization and a limited list is presented here. The performance of an algorithm is dependent on the task and one algorithm which performs better than another in one task might perform worse in another (no free lunch theorem). Additionally, the choice of the algorithm depends on the preferences of the user for the end-result, e.g. they may want a more natural-looking color image.

Grey world

The grey world normalization makes the assumption that changes in the lighting spectrum can be modelled by three constant factors applied to the red, green and blue channels of color.{{cite report

\left ( \alpha R, \beta G, \gamma B \right ) \rarr \left ( \frac{\alpha R}{\frac{\alpha}{n} \sum_i R }, \frac{\beta G}{\frac{\beta}{n} \sum_i G }, \frac{\gamma B}{\frac{\gamma}{n} \sum_i B } \right )

As mentioned above, grey world color normalization is invariant to illuminated color variations α, β and γ, however it has one important problem: it does not account for all variations of illumination intensity and it is not dynamic; when new objects appear in the scene it fails. To solve this problem there are several variants of the grey world algorithm. Additionally there is an iterative variation of the grey world normalization, however it was not found to perform significantly better.{{cite journal | access-date = March 10, 2012 | archive-date = March 4, 2016 | archive-url = https://web.archive.org/web/20160304191938/http://www-prima.imag.fr/jlc/papers/ECCV98-Finlayson.pdf | url-status = dead

Histogram equalization

Main article: Histogram equalization

Histogram equalization is a non-linear transform which maintains pixel rank and is capable of normalizing for any monotonically increasing color transform function. It is considered to be a more powerful normalization transformation than the grey world method. The results of histogram equalization tend to have an exaggerated blue channel and look unnatural, due to the fact that in most images the distribution of the pixel values is usually more similar to a Gaussian distribution, rather than uniform.

Histogram specification

Main article: Histogram specification

Histogram specification transforms the red, green and blue histograms to match the shapes of three specific histograms, rather than simply equalizing them. It refers to a class of image transforms which aims to obtain images of which the histograms have a desired shape. As specified, firstly it is necessary to convert the image so that it has a particular histogram. Assume an image x. The following formula is the equalization transform of this image:

y = f(x) = \int\limits_{0}^{x} p_x (u) du

Then assume wanted image z. The equalization transform of this image is:

y' = g(z) = \int\limits_{0}^{z} p_z (u) du

Of course p_z (u) is the histogram of the output image. The formula to find the inverse of the above transform is:

z = g^{-1} (y')

Therefore, since images y and y' have the same equalized histogram they are actually the same image, meaning y = y' and the transform from the given image x to the wanted image z is:

z = g^{-1} (y') = g^{-1} (y) = g^{-1} (f(x))

Histogram specification has the advantage of producing more realistic looking images,{{Cite book |display-authors=etal|isbn=9783540437482 |series=Eccv '02 }} as it does not exaggerate the blue channel like histogram equalization.

Comprehensive Color Normalization

The comprehensive color normalization is shown to increase localization and object classification results in combination with color indexing. It is an iterative algorithm which works in two stages. The first stage is to use the red, green and blue color space with the intensity normalized, to normalize each pixel. The second stage is to normalize each color channel separately, so that the sum of the color components is equal to one third of the number of pixels. The iterations continue until convergence, meaning no additional changes. Formally:

Normalize the color image

f^{(t)} = [f_{ij}^{(t)}]_{i = 1...N, j = 1...M}

which consists of color vectors

f_{ij}^{(t)} = (r_{ij}^{(t)}, g_{ij}^{(t)}, b_{ij}^{(t)})^T .

For the first step explained above, compute:

S_{ij} := r_{ij}^{(t)} + g_{ij}^{(t)} + b_{ij}^{(t)}

which leads to

r_{ij}^{(t+1)} = \frac{r_{ij}^{(t)}}{S_{ij}}, g_{ij}^{(t+1)} = \frac{g_{ij}^{(t)}}{S_{ij}}

and

b_{ij}^{(t+1)} = \frac{b_{ij}^{(t)}}{S_{ij}}.

For the second step explained above, compute:

r' = \frac{3}{NM} \sum_{i=1}^N \sum_{j=1}^M r_{ij}^{(t+1)}

and normalize

r_{ij}^{(t+2)} = \frac{r_{ij}^{(t+1)}}{r'}.

Of course the same process is done for b' and g'. Then these two steps are repeated until the changes between iteration t and t+2 are less than some set threshold.

Comprehensive color normalization, just like the histogram equalization method previously mentioned, produces results that may look less natural due to the reduction in the number of color values.

References

Bibliography

  • {{Cite report

  • {{cite journal

  • {{Cite book

  • {{cite book

  • {{cite journal | access-date = March 10, 2012 | archive-date = March 4, 2016 | archive-url = https://web.archive.org/web/20160304191938/http://www-prima.imag.fr/jlc/papers/ECCV98-Finlayson.pdf | url-status = dead

  • {{Cite book |display-authors=etal|isbn=9783540437482 |series=Eccv '02 }}

  • {{Cite book

  • {{cite report

  • {{cite report

Info: Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about Color normalization — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report