Showing posts with label less scooters. Show all posts
Showing posts with label less scooters. Show all posts

Wednesday, February 4, 2009

Color Spaces

Color spaces are abstract models of describing colors mathematically.  Typically they consist of three or four tuples known as color components that map a color to the color space.

One of the easiest color models to understand is RGB.  RGB is a three tuple consisting of the red, green, and blue content in a pixel.  In this system, 0 is considered black while the maximum value is considered white (typically 255 with 24 bits per pixel).  This can be pictured conceptually as a cube where one corner is pure black and the opposite corner is pure white.  The line connecting the two corners is grayscale, and everything else represents some visible color in the space.

There are several other color models, such as CMYK, HSV, and YUV.  The color model that interests us in our project is L*a*b*.


The CIE L*a*b*, unlike RGB or CMYK, does not use a subjective set of primary colors, which makes it device independent.  It describes colors along three axes in 3D space - the L* axis corresponds to the lightness of a color - a value of 0 is pure black, while a value of 100 is pure white.

The other two axes, a* and b*, theoretically have no upper or lower bounds.  Negative a* corresponds to a green color, positive to a red color.  Negative b* to a blue color, positive to a yellow color.  In reality these are often bounded between -128 and 127, depending on the number of bits used to represent the color. 

The L*a*b* color model was designed to approximate human vision.  The L component closely matches with human perception of lightness.  Differences between colors can be determined in terms of distance between them - which is sometimes defined in terms of the minimum aount of color variation between two shades discernible to the human eye.


Sources:

http://www.hunterlab.com/appnotes/an07_96a.pdf
http://www.kleerdex.com/briefs/177.pdf
http://en.wikipedia.org/wiki/Lab_color_space

Wednesday, January 21, 2009

The Pyramids of Gauss



Once a saliency map is generated, a pyramid technique is applied to the image to create a sort of topological map that allows the most salient regions to be more easily identified.  The general process behind the technique is to iteratively smooth and decimate the image, creating subsequant images which are half the size.

In many cases the smoothing process is carried out by a guassian filter, which preserves edges better than a similarily sized mean filter (take the k nearest neighbors to a pixel and evenly weight them).  The guassian kernel weights the pixels according to a guassian distribution, which puts emphasis on nearby neighbors over distant ones (the degree of emphasis is controlled by the standard deviation of the kernel).


Since the gaussian is a symmetric distribution, the smoothing operation can be performed in the x and y directions seperately using a convolution. 

Example of Intensity Pyramid Scales:



Papers:

Walther, Interactions 0f the Visual Attention and Ojection Recognition: Computational Modeling, Algorithms, and Psychophysics, 2006.

Itti, Koch, Niebur, A Model of Saliency-based Visual Attention for Rapid Scene Analysis, 1998.