Exectable File (Features.exe)
Project 1 Source
Synopsis of Project 1 in Computer Vision (CS576)
In this project, I will write code to detect discriminating features in an image and find the best matching features in other images. My features should be reasonably invariant to translation, rotation, illumination, and scale, and you'll evaluate their performance on a suite of benchmark images. I compare them with the current state-of-the-art.
1. Feature detect
To identify points of interest in the image, I used the Harris corner detection method.
Harris corner detection method recognize the point by looking through a small window, and Find the points that should give a large change in intensity through shifting a window in any direction.
First, I compute the Harris Matrix. I choose 5X5 gaussian mask.
Second, compute corner strengh function, based on Harris Matrix.
Harris corner detector (Harris.tga)
2. features desciption
1) Color histogram
I try to using a small square windows, surrounding the points of interest that is found by Harris Corner Detector.
I make a color histogram, known as opponent color model. The length of features is 25 X 3 X 4bytes.
Intensity channal (I) = (R+G+B)/3
opponent color channel1 (O1) = (R+G-2B)/4 + 0.5
opponent color channel2 (O2) = (R-2G+B)/4 + 0.5
2) Orientation Histogram
Frist approach is simple and efficient, but it is not consider to robust to changes in position, orientations and illumination. Thus I utilze the SIFT method. A keypoint descriptor is created by first computing the gradient magnitude and orientation at each image sample point in a region around the keypoint location. These are weighted by a Gaussian window. Magnitude and orientation can be computed as follow.
These samples are then accumulated into orientation histograms summarizing the contents over 4x4 subregions with the length of each arrow corresponding to the sum of the gradient magnitudes near that direction within the region.
To be robust to change orientation, I computed the relative orientation and magnitude, and accumulated into orientation histograms. The length of features is 8 X 4 X 4 bytes.
1) ROC curve (Yosemite1.jpg and Yosemite2.jpg)
2) ROC curve (img1.ppm and img2.ppm)
3) Benchmark Result (Color histogram)