Opencv Repeatability Result not make sense?

馋奶兔 提交于 2019-12-30 09:38:09

问题


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?

Regards.


回答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.




回答2:


In fact, OpenCV 2.49 uses this line of code in evaluation.cpp:

repeatability = minCount ? (float)correspondencesCount / minCount : -1;

which is the number of correspondences divided by the smaller number of Keypoint 1st or Keypoint 2th so I guess your error might be somewhere else. Can you post your complete code where you set img_1c, etc and call the function and display the results?



来源:https://stackoverflow.com/questions/25992632/opencv-repeatability-result-not-make-sense

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!