首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增加SIFT中检测到的特征的数量将提高精度?

增加SIFT中检测到的特征的数量将提高精度?
EN

Stack Overflow用户
提问于 2016-07-20 03:16:09
回答 1查看 2.2K关注 0票数 2

我正在实现一个涉及到基于内容的图像检索模型的特色袋应用程序。我用cv::SIFT作为特征检测器。

无论如何,应用程序的性能并不好,我正在尝试从第一步算法(即检测特征)中改进它们。

阅读文档时,我看到了三个引起我注意的参数:

  • 要保留的最佳功能的数量。这些特征是根据它们的分数排列的(在SIFT算法中作为局部对比来衡量)。
  • contrastThreshold --用于过滤半均匀(低对比度)区域弱特征的对比度阈值.阈值越大,检测器产生的特征就越少。
  • edgeThreshold -用于过滤边缘类特征的阈值.注意,它的含义与contrastThreshold不同,即edgeThreshold越大,过滤的功能就越少(保留的功能越多)。

这意味着增加第一和第三参数,同时降低第二参数,应该提高算法的精度(降低时间性能)?

我想知道这一点,特别是对于第一个参数,例如,如果我们设置nfeatures=2000,它将准确地检测2000特性,不管它们是否“有趣”。这意味着它会检测到“无趣”(非常糟糕)的关键点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-20 08:16:42

我在python中使用了SIFT algo,并在某个时候对其进行了研究,以提高准确性。以下是我记忆中可以整理的几点:

  1. “有趣”特性的数量将始终取决于您要使用它检测的对象。如果目标具有非常随机的边缘,则检测到的关键点将更多。如果图像比较简单(例如,只有1-2个不同的颜色和非常独特的边框),那么检测到的关键点就会非常少。在这种情况下,如果您增加了"nfeatures“属性,就很有可能检测到错误的点,并且会给您带来不好的结果。
  2. 假设您有非常好的对象图像,并且您得到了您正在寻找的"2000“关键点,那么更改其他属性将显著影响这些特性,因为这些属性主要用于keypoint本地化。您需要使用参数来进行微调,但这些参数可能因对象而异。

根据官方文档,intro.html#gsc.tab=0可以看到图像中有很多检测到的关键点。因此,为了找出更“有趣”的关键点,需要对参数进行实验。

如果您正在寻找数学细节,我发现另一个非常有用的链接是:filename=SIFT.pdf

这可以帮助您查看结果,因为您更改了params及其在MATLAB:http://www.vlfeat.org/overview/sift.html的希望,您发现这对您的符咒有用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38471720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档