Opencv Repeatability Result not make sense?
Hi i'm trying to evaluate SIFT and SURF Detectors by Repeatability criteria.
i find out that below method can find Repeatability ,Correspondence of SIFT and SURF
cv::evaluateFeatureDetector(img_1c, img_2c, h12, &key_points_1, &key_points_2, repeatability, corrCounter);
some of the result are listed below:
Number Repeatibility Correspond Keypoint 1st Keypoint 2th
1to2 0.7777778 140 224 180
1to3 0.7125 114 224 161
1to4 0.704918 86 224 123
1to5 0.6853933 61 224 89
1to6 0.6521739 45 224 69
for first row repeatibility can compute as --> (correnspond)/min(keypoint1st,keypoint2th) = (140/180) = 0.7777778 but for other rows it's value is different from what i compute with above formula.
can somebody tell why is that happening? Best Regards.
it works for 1to2, 1to5 and 1to6
can you post all the code you're using?
@thdrksdfthmn its getting worse on other image sequence . i use mikolajczyk Dataset. if i use function of opencv for changing image such as adding noise, rotation , GaussianBlur filter and ... the repeatability values match the result of formula. same code for finding keypoints have been use in these two case.
I think I may have found the problem here. The repeatability rate is the number of repeated points between two images considering the total number of keypoints extracted. For measuring the number of repeated points it has to be taken into account that the observed scenes differ from each other due to their changed imaging condition (viewpoint, rotation + scale, blur, etc in the case of Mikolajczyk dataset). Keypoints which are not detected in both images can corrupt the repeatability measure so, only points which lie in the common scene parts affect the repeatability. What is happening is that you're considering all the keypoints detected in the second image for the calculation of repeatability and actually only the keypoints within the homography should be used.
Hope this helps.
zedv thanks for your answer . i answered your comment on stackoverflow .by the way thanks for joining both opencv and Stackoverflow for helping.