Download presentation
Presentation is loading. Please wait.
Published byAvis Stone Modified over 9 years ago
1
Harris detector Convert image to greyscale Apply Gaussian convolution to blur the image and remove noise Calculate gradient of image in x and y direction for every pixel For each point in the image, consider a 3x3 square window of pixels around that point. Compute the Harris matrix H for that point, Compute the corner strength function Choose points whose c(H) is above threshold and c(H) is local maxima in a 10x10 neighborhood. These points will be called the feature points
2
My simple descriptor For each feature points Take a 45x45 window centered at the feature point Normalise the color of each pixels in the window Make a 9x9 window feature descriptor by applying linear weights to every 5 points and summing up the RGB values separately. The feature descriptor will contain the RGB value of the points, hence in total our feature descriptor has 9x9x3 dimensions
3
Simple descriptor – Bike 1
4
Simple descriptor – Bike 2
5
Simple descriptor – bike 3
6
Simple descriptor – bike 4
7
Simple descriptor – bike 5
8
Simple descriptor – bike 6
9
My simple feature descriptor: bikes 1 – bikes 2 – matching with ratio
10
My simple feature descriptor : bikes 1 –bikes 3 – matching with ratio
11
Simple descriptor numbers (testMatch results) My descriptorSIFT Img1-img243.6514837.281360 Img1-img364.34744813.653063 Img1-img4112.00206319.995964 Img1-img5320.15589834.570192 The total error is the average Euclidean distance between a (correctly) transformed feature point in the first image and its matched feature point in the second image.
12
Your error number will be slightly different: (nInliers/nMatches) My evaluation: for (unsigned int i=0; i<f1.size(); i++) { applyHomography(f1[i].x, f1[i].y, xNew, yNew, h); if (matches[i].id > 0) { d += sqrt(pow(xNew-f2[matches[i].id-1].x,2)+pow(yNew-f2[matches[i].id-1].y,2)); n++; } return d / n; Your evaluation in skeleton code: for (unsigned int i=0; i<f1.size(); i++) { applyHomography(f1[i].x, f1[i].y, xNew, yNew, h); if (matches[i].id > 0) { d = sqrt(pow(xNew-f2[matches[i].id-1].x,2)+pow(yNew-f2[matches[i].id-1].y,2)); if (d < epsilon) nInliers++; nMatches++; } return (nInliers / (float)nMatches);
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.