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.
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.
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.
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.
To achieve the rotation invariance, we computed gradient orientation of every interest points and consider orientation of the feature patches when extracting them.
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.