Opencv可重复性结果没有意义吗?

Ali*_*eza 5 evaluation opencv image-processing sift feature-detection

我正在尝试通过重复性标准评估SIFT和SURF检测器.

我发现下面的方法可以找到SIFT和SURF的重复性,对应性

 cv::evaluateFeatureDetector(img_1c, img_2c, h12, &key_points_1, &key_points_2, repeatability, corrCounter);
Run Code Online (Sandbox Code Playgroud)

部分结果如下:

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
Run Code Online (Sandbox Code Playgroud)

对于第一行可重复性可以计算为 - >(correnspond)/ min(keypoint1st,keypoint2th)=(140/180)= 0.7777778但是对于其他行,它的值与我使用上面的公式计算的值不同.

谁能说出为什么会这样?

问候.

zed*_*edv 4

我想我可能已经发现问题在这里了。

重复率是考虑到提取的关键点总数的两幅图像之间重复点的数量。为了测量重复点的数量,必须考虑到观察到的场景由于成像条件的变化而彼此不同(在 Mikolajczyk 数据集的情况下是视点、旋转+缩放、模糊等)。

在两个图像中未检测到的关键点可能会破坏可重复性测量,因此,只有位于公共场景部分的点才会影响可重复性。

发生的情况是,您正在考虑在第二个图像中检测到的所有关键点来计算重复性,实际上只应使用单应性内的关键点

希望这可以帮助。