opencv - 筛选与冲浪。哪个更准确?

标签 opencv feature-detection sift surf

我正在测试对象,以将与Sift和Surf与C++和OpenCV进行匹配。

Surf 声称速度更快,并且 Sift 声称比Surf可以检测许多关键点。我想确定哪种算法最准确。

但是我很困惑要根据时间或匹配的关键点来确定准确性。有人可以向我解释如何确定哪种算法最准确吗?从哪一个因素来确定其准确性?

This is the results of my experiments

最佳答案

我用来计算比率。那么速度,SURF比SIFT快多少?您执行timeSift / timeSurf *100。因此,SIFT比SURF慢多少倍。

关于准确性,它更加复杂。您可以按最小距离比率应用匹配的过滤器和/或先进行一些RASNAC过滤。然后,您可以比较matchSift / matchesSurf,与SIRF相比,SIFT获得的匹配要多多少倍。但是即使这样,您在任何一种情况下都可能会得到错误的匹配,因此,平均绘制匹配并查看哪个看起来更好/更准确是一个好主意。

做统计检验。不仅是两张图像,还有几束图像重复相同的测试,并取平均比率timeSift / timeSurf和平均比率matchSift / matchesSurf。

为了结束(当然具有平均值),我将执行以下操作

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

关于opencv - 筛选与冲浪。哪个更准确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43772794/

相关文章:

打开CV错误: no GPU support

python - 使用python opencv检测刻度线

c++ - opencv 使用给定坐标进行特征匹配

machine-learning - 在计算机视觉中使用形状描述符检测对象类别

c++ - OpenCV 中的自定义 SIFT 检测器

c++ - cv::PCA (openCV) 是否计算数据本身的协方差矩阵?或者我们应该将协方差矩阵传递给它?

python - 如何使用 Python OpenCV 检测和查找表单中的复选框?

python - 使用 Sklearn 中的 img_to_graph

iphone - 在iPhone ios 4上显示来自opencv的关键点

opencv - 为什么Opencv中没有cuda::SIFT_CUDA?