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但是对于其他行,它的值与我使用上面的公式计算的值不同.
谁能说出为什么会这样?
问候.
我想我可能已经发现问题在这里了。
重复率是考虑到提取的关键点总数的两幅图像之间重复点的数量。为了测量重复点的数量,必须考虑到观察到的场景由于成像条件的变化而彼此不同(在 Mikolajczyk 数据集的情况下是视点、旋转+缩放、模糊等)。
在两个图像中未检测到的关键点可能会破坏可重复性测量,因此,只有位于公共场景部分的点才会影响可重复性。
发生的情况是,您正在考虑在第二个图像中检测到的所有关键点来计算重复性,实际上只应使用单应性内的关键点。
希望这可以帮助。