How come Surf Detector is better than Sift in my code

asked 2014-08-20 12:06:55 -0500

AMH gravatar image

updated 2014-08-20 12:58:47 -0500

Hi Hi i'm evaluating SIFT and SURF Detectors in my project with mikolajczyk Dataset. you can find it here:

according to below papers SIFT should outperform SURF in scale, blur and rotation changes:

"A performance evaluation of SIFT and SURF for multispectral image matching"

"A Comparison of SIFT, PCA-SIFT and SURF" Same Dataset has been used.

"SIFT and SURF Performance Evaluation Against Various Image Deformations on Benchmark Dataset"

i get below result for Bike (Blur) images

image description

i also used below codes for SIFT and SURF detector: (it's main code and not all of it) //Notice That SIFT and SURF code run separately and variables not getting overwrite.

SiftFeatureDetector detector;
detector.detect(img_1, key_points_1);
detector.detect(img_2, key_points_2);

int minHessian = 5000;             
SurfFeatureDetector detector(minHessian);   
detector.detect(img_1, key_points_1);
detector.detect(img_2, key_points_2);

cv::evaluateFeatureDetector(img_1c, img_2c, h12, &key_points_1, &key_points_2, repeatability, corrCounter); //H12 is homography matrix which was included in the Dataset

Did i miss something ? why my results is different?(also checked scale and rotation change and still SURF outperform SIFT)

edit retag flag offensive close merge delete


What is actually the the x-axis of your plot? Maybe you should experiment with the various thresholds and I wouldn't evaluate OpenCV's implementations of SIFT and SURF but the ones provided by the original authors...

Guanta gravatar imageGuanta ( 2014-08-20 13:53:01 -0500 )edit

x-axis is the sequence of blur images.

AMH gravatar imageAMH ( 2014-08-21 00:48:01 -0500 )edit