【问题标题】:bagoffeatures extract different types of featuresbagoffeatures 提取不同类型的特征
【发布时间】:2017-02-27 12:43:29
【问题描述】:

我对matlab计算机视觉系统工具箱中实现的功能bagoffeatures有疑问。

我正在研究不同类型图像的分类,首先我正在尝试将 bagoffeatures 与 diffenrets 自定义提取器一起使用,我想将我的工作分为 2 个分支,首先提取 SURFpoints 并提取 3 个不同的描述符类型,例如 SURF BRISK 和 FREAK,当我在自定义提取器中使用下一行时:

features = extractFeatures(grayImage,multiscaleGridPoints,'Upright',true, 'method', 'SURF'); 

它总是需要让 SURF 方法工作,但我需要能够获得不同类型的描述符。

我可以使用计算机视觉系统工具箱中的功能包来执行此操作吗?还是只支持冲浪特征提取?

【问题讨论】:

  • 您阅读过文档吗?那里有什么不清楚的地方吗?
  • 是的,阅读文档,我测试了函数并寻找解决方案,我只是想知道是否有人知道你是否可以提取另一种类型的描述符。
  • 您没有阅读它。文档的第二行: bag = bagOfFeatures(imds,'CustomExtractor',extractorFcn) 返回一个特征袋,该袋使用自定义特征提取器函数从输出袋中提取特征以学习其视觉词汇。 extractorFcn 是自定义特征提取函数的函数句柄。
  • 对不起,我什至做了一个自定义提取器来尝试,使用 matlab 提供的示例,可能我没有用我的英语解释我的问题。当我制作我的提取器时,我可以使用不同的函数来检测关键点上的不同类型,例如 detectSurfFeatures 或 detectFASTfeatures,问题是当我使用 extractFeatures 函数时,在这个函数中你可以提取 3 种不同类型的描述符,但是当它失败时我没有使用“SURF”方法,我做错了吗?
  • 所以你的问题是extract Features而不是bagOfFeatures?不过,文档说你不能。有什么不清楚的地方

标签: matlab computer-vision matlab-cvst


【解决方案1】:

不幸的是,您不能将 BRISK 或 FREAK 与 MATLAB 的特征袋实现一起使用,因为特征袋算法使用 K-means 聚类来创建“视觉词”。问题是 BRISK 和 FREAK 描述符是二进制位串,你不能用 K-means 对它们进行聚类,K-means 只适用于实值向量。

您当然可以在 MATLAB 框架中使用不同类型的兴趣点检测器。但是,您仅限于作为实值向量的描述符。所以 SURF 和 SIFT 会起作用,但 BRISK 和 FREAK 不会。如果您绝对必须使用 BRISK 和 FREAK,您将实现自己的功能包。有几种方法可以对二进制描述符进行聚类,但我不知道它们中的任何一种在特征袋的上下文中的效果如何。

【讨论】:

  • 我应该实施我自己的词袋来解决我的问题吗?我真的需要结合不同类型的检测器和提取器来用不同的方法对我的图像进行分类
  • 感谢您的回答,我不需要专门使用这 2 个描述符,但是由于我想使用计算机视觉工具箱,我将尝试进行 2 类测试:获取快速关键点和使用 SURF、BRISK 和 FREAK 描述符,第二个获取 SURF 关键点并使用 SURF BRISK 和 FREAK 描述符。我会尝试实现我自己的包,谢谢你的回答,不胜感激
猜你喜欢
  • 1970-01-01
  • 2017-12-16
  • 2018-09-16
  • 2011-07-25
  • 1970-01-01
  • 2022-10-16
  • 2011-06-28
  • 2017-05-16
  • 2023-01-12
相关资源
最近更新 更多