Title: ColorVision
1ColorVision
- Koushik Krishnan
- Ajit Karthik Mylavarapu
- Ramanan Raghuraman
- Karthik Vijayraghavan
2Outline
- Algorithm overview
- Object identification and color correction
- Color calibration and classification
- Implementation
- Limitations
- Demo
3Algorithm Overview
4Algorithm Overview
Calculate average RGB value for the white index
card
Calculate ScaleFactor for the lighting condition
Capture image in the cellphone
Scale the non-white pixels in the image
Bin the pixels and select bin with maximum value
5Reference Card and Object Identification
- Capture image using the phone
- Bin all pixels based on average intensity
- Highest intensity bin used as approximation for
reference card intensity - Traverse image and separate reference card from
object - Find average R, G and B values of reference card
pixels, and use it to find Scale Factors - Adopted from Gray World Algorithm
6Color Correction
- Multiply each pixel in the array of object pixels
with ScaleFactor
indoors on a bright day with blinds opened
outdoors on a bright day in the shade
7Algorithm Overview
Calculate average RGB value for the white index
card
Calculate ScaleFactor for the lighting condition
Capture image in the cellphone
Scale the non-white pixels in the image
Bin the pixels and select bin with maximum value
8Need for Color Calibration
R G B
R G B
R G B
Color Correction
Color 2
Color 1
- Camera white balance and auto exposure are
unknowns of the system. - The color after the color correction step may not
look like how the color appears in the real world
9Calibration Examples
Color in Real world
Color in Phone
Color after scaling
10Binning Classification
Input Color
Bins
Colors
- Divide entire color space in closely spaced bins
(244) - Club multiple bins into single colors (41)
- Perceptually two colors may be similar but may be
far apart in RGB color space
11Color Classification
12Implementation
- Algorithm developed in MATLAB
- But, K.I.S.S
- Symbian C vs Java
- Java is more portable
- Faster development with Java
- Java is less powerful
- Implementation Considerations
- Use downsampled image (80 x 60)
- Simple Math
- Pre-recorded sounds
13Limitations
- Camera
- Auto white balancing
- Gamma correction
- Poor quality in low-light conditions
- Java ME API does not allow control over the
flash/exposure/white balance settings - Algorithm
- Shades of gray and very light colors
- Dark colors close to black
14Dropped Ideas
- Using CIELab Color Space
- Using the phones internal white-balancing
- Taking 2 separate pictures of reference card and
object - Using a Black-edged reference card to make
object-separation easier
15Conclusions
- ColorVision detects up to 41 unique colors and
announces it to the user - Cell phone camera does automatic color balancing
and exposure control - ColorVision counters the cell phone color
balancing by use of a reference white card - Fast response from the phone requires the use of
simple mathematical operations - ColorVision does not use complex mathematical
operations
16Thank You for listening!