我正在测试对象,使用Sift和Surf with C ++&amp ;;进行功能匹配 OpenCV的。
浏览声称速度更快,筛选声明可以检测到许多关键点而不是Surf。我想确定哪种算法最准确。
但我很难确定时间或匹配关键点的准确性。有人可以向我解释如何确定哪种算法最准确?从哪个因素我确定它的准确性?
答案 0 :(得分:2)
我用来计算比率。那么速度,SURF比SIFT快多少?你做timeSift / timeSurf * 100.所以你得到SIFT比SURF慢多少次。
关于准确性,它更复杂。您可以通过最小距离比率应用匹配的过滤器和/或首先进行一些RASNAC过滤。然后你可以比较matchesSift / matchesSurf,你得到的SIFT比用SURF多多少次。但即使这样,你也可以在任何一种情况下得到错误的匹配,所以最好同样绘制匹配并看看哪个看起来更好/更准确。
做统计测试。不仅有两个图像,几组图像重复相同的测试并取平均比率timeSift / timeSurf和平均比率匹配的快速/匹配Surf ..
为了结束(当然是平均值)我会做以下
speedRatio=timeSift/timeSurf
matchesRatio=matchesSift/matchesSurf
R=matchesRatio/speedRatio.
-If R>1 then SIFT worths it .
-If R<1 then SURF if definitively more convenient
If R=1 its the same