CS 143 / Project 2 / Local Feature Matching

Interest point detection

We applied Harris corner detector to find the interest points with high corner strength. The main idea is that for a qualified interest points(corner like), sliding the window in all directions should cause a large intensity change. After corner detection, we used Non-maximum Suppression, in which only points with maximal confidence in 3*3 sliding window could be kept, to further threshold the results.

Figure 1.Detecting interest points of two matching images

Local feature description

The basic idea is that oriented filters are applied to the matching images and we keep track of the strength of gradient responding to the particular directions. For oriented filters which are sensitive to the gradients, I tried oriented Derivative of Gaussian and oriented Sobel filter and those two generated a pretty similar result.

Figure 2.Visualization of 8 oriented Sobel filter

Feature matching

To match the features of two images, we applied Nearest Neighbor Distance Ratio, in which we Exhaustive Searched, every possible matches, if the ratio between distance of nearest neighbor and second nearest neighbor in feature domain was smaller than a threshold, we considered this pair of match was convincing. In this implementation, we set the ratio threshold to 0.4-0.45, according to the chart below.

Figure 3.Local feature matching results

Bells & Whistles

Adaptive non-maximal suppression

ANMS method is applied to select part of the points from Harris detection results, in order to restrict the maximal number of interest points and make them well distributed.

Figure 4.Harris interest points(up) and ANMS results(down, ANMS 0.5*num_Harris)

Rotation invariance

To achieve the rotation invariance, we computed gradient orientation of every interest points and consider orientation of the feature patches when extracting them.

Figure 5.Original results(up) and Results with rotation invariance(down)

Other results

This basic implementation of feature matching method works pretty well if the two matching images are pretty similar, which means they contain little scale, illumination and viewpoint(affine) difference. If not, the matching results will not be satisfactory enough.

Figure 6.Results of pretty similar matching images

Figure 7.Results of matching images with different illumination condition

Figure 8.Results of matching images with different viewpoints

Figure 9.Results of matching images with different scales(also some illumination difference)