Project 6-2: Feature Matching and Autostitching Marc WuDunn .

Step 1: Corner Features The first part of the project was to find interest points in the image. This was done using the Harris corners algorithm, as provided. The result included many points, to be filtered in step 2.

Step 2: Adaptive Non-Maximal Suppression The idea behind ANMS is to only keep points that are a local maxima in their neighborhood, for some radius r. This will give a good spread of corner points. The actual implementation of this was done by iterating through all the coordinates, and then finding the closest point with a larger corner strength. Then, the Num_Points with the smallest distance were selected.

Step 3: Feature Extraction and Matching For this part, I take the two images, create a 40x40 box around the feature point, subsample this box to an 8x8 feature, and the normalize it (subtracting the mean and then dividing by the standard deviation). Next, we match these features between the two images by comparing each feature in the two images, computing the SSD of their feature boxes, and keeping the smallest two SSDs for each feature. Then, if the ratio of these two SSDs is below a threshold, we store the pair of coordinates. While this gives us a couple of decent pairs, it also gives us some false positives, as can be seen below.

Step 4: RANSAC Finally, to filter out some of the erroneous results, we implement RANSAC. In this algorithm we randomely choose 4 of our feature points and calculate the homography transformation between them. We then transform points and calculate the number of inliers. We then keep the transformation and feature points with the maximum number of inliers. The homography matrix for the Berkeley Campus picture is:

[ 1.23145319e+00 4.52946975e-02 -2.58400886e+02]

[ 8.70539929e-02 1.22318760e+00 -4.34777901e+01]

[ 4.10785167e-04 2.01636708e-04 1.00000000e+00]

[ -5.82594394e-01 -1.28171736e+00 3.39528101e+02]

[ -1.95413170e-01 -1.22012953e+00 1.96192367e+02]

[ -1.25859767e-03 -5.36613849e-03 1.00000000e+00]

With corresponding points: