Opencv Repeatability Result not make sense?

asked 2014-09-23 05:17:36 -0600

AMH gravatar image

updated 2014-09-23 05:19:08 -0600

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.

edit retag flag offensive close merge delete

Comments

1

it works for 1to2, 1to5 and 1to6

thdrksdfthmn gravatar imagethdrksdfthmn ( 2014-09-23 06:43:23 -0600 )edit

can you post all the code you're using?

zedv gravatar imagezedv ( 2014-09-24 10:31:17 -0600 )edit

@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.

AMH gravatar imageAMH ( 2014-09-25 00:54:51 -0600 )edit
1

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 gravatar imagezedv ( 2014-09-25 11:26:40 -0600 )edit

zedv thanks for your answer . i answered your comment on stackoverflow .by the way thanks for joining both opencv and Stackoverflow for helping.

AMH gravatar imageAMH ( 2014-09-26 14:45:30 -0600 )edit