CSE 576 Computer Vision Project 1

Yongjoon Lee

 


Detection

- Improvements on Corner Detection

I tried to improve Harris Corner Detection by

This was motivated by a lot of 30~60 degree edges being detected in the initial stage. I defined a 2x2 matrix using diagonal derivatives and also carried out same calculation on it. Then I took the minimum of the two results ( I also tried multiplying them, but it didn't make much difference or sometimes performed worse. ). This adds possible directions the Harris window can move around particular pixel and penalizes diagonal edges.

The number N varies according to image size. Then I can avoid using arbitrary thresholds which vary from image set to image set. By choosing only local maxima, I can spread the detected points rather evenly throughout the image. The radius of local maxima checking is also set according to image size.

I use 7x7 Harris window but weight the values with Gaussian Kernel to more closely approximate circular window. Standard deviation for the Gaussian kernel is 1. I also consider all three color channel for derivative calculation. For example, Ix is sum of squares of derivatives of each color channel.

Descriptor

- Window descriptor

I observed from trial and error that sometimes bigger windows for bigger images work better. However, this change is not very noticeable, and might even be some particular property for given test sets.

Blurred windows will be more robust against small changes in the location of the detected points. Since I am taking top N detected points, some of the detected points show rather lower repeatibility. I take the 5x shrinked image and store the neighborhood points in the window, effectively taking blurred large window. This is a minor variation of Rick's technique.

Before storing the window values into the feature descriptors, I normalize the values to make it more robust against intensity changes. Currently, each color channel computes its own normalization.

- Rotated descriptor

In an effort to make it rotation invariant, I calculated the principal gradient direction in the circular window around the detected point and took the rectangular window rotated by the angle of the principal direction. When needed, I bilinearly interpoilate the pixel values from the image.

Matcher

To improve the Matcher that uses Euclidean distances, I used the ratio of the best distance and second best distance and thresholded it. It gave much better performance over just thresholding the best distance because of the changes in intensity, changes in different image sets, and changes in window size.

Also, in Euclidean distance,  I raised the power to be more than 3, so that the discrepancies are penalized even more severely. This improved the performance quite a lot.

Results

leuven 12.339780
wall 2.974932
bikes 52.521001
graf 193.226052


Yongjoon Lee (yongjoon).