【问题标题】:Sift vs Surf. Which is more accurate?筛选与冲浪。哪个更准确?
【发布时间】:2017-10-02 00:54:17
【问题描述】:

我正在测试对象以使用 C++ 和 OpenCV 使用 Sift 和 Surf 进行 特征匹配

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

但我对确定时间或匹配关键点的准确性感到困惑。有人可以向我解释如何确定哪种算法最准确吗?我从哪个因素来确定它的准确性?

This is the results of my experiments

【问题讨论】:

    标签: opencv feature-detection sift surf


    【解决方案1】:

    我习惯于计算比率。那么速度,SURF 比 SIFT 快多少呢?你做 timeSift/timeSurf * 100。所以你得到 SIFT 比 SURF 慢多少倍。

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

    做统计检验。不只是两张图片,几张图片重复同样的测试,取平均比率timeSift/timeSurf和平均比率matchesSift/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
    

    【讨论】:

    • 谢谢你的回答,我试试看,这样证明能确定准确率吗?
    • 取平均匹配数应该可以消除匹配错误计数。那是因为错误是随机分布的,例如,在一张照片上,您会得到 3 个错误的 SIFT 匹配项,这些匹配项计入 SIFT 总和,但在下一张照片中,您可能在 SURF 上得到 3 个错误匹配项,并且总和会再次平衡。跨度>
    • 一般来说,在信号处理中,平均或 promedy 滤波器是一种有效且相当常见的噪声滤波器
    • 鉴于大量照片,不可能总是将错误的匹配添加到相同的 SIFT 或 SURF 匹配计数中
    • 我们在哪里可以找到? - 如果 R>1 则 SIFT 值得。 - 如果 R
    猜你喜欢
    • 2014-12-12
    • 2017-03-22
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多