OpenCV标志检测 - 该使用什么?

4
我想创建一个用于标志检测的Android应用程序。我想问一下哪种方法更好:
  1. 使用特征检测器和提取器,然后使用findHomography();
    1.1 我应该使用哪种检测器/提取器?是否必须使用SURF或其他像ORB这样的技术也可以得到良好的准确性?我问这个问题是因为SURF是非免费模块的一部分。

  2. 训练Haar分类器。
是否有其他方法?
如果您有答案,请解释一下为什么我应该使用您的方法(非必需)。
谢谢!

可能是使用OpenCV进行Logo检测的重复问题。 - rayryeng
@Crash-ID,你现在可以回答自己的问题了吗? - Dale
1个回答

0

我不确定您是指单个徽标还是多个徽标,徽标的外观会对很多事情产生很大影响。对于单个徽标,我建议使用特征检测器-描述符匹配(DDM)和随机抽样一致性(RANSAC)进行单应性计算;对于多个徽标,可以采用DDM和词袋模型。根据我的经验,使用SIFT或SURF比使用ORB能获得更好的结果,但是如果条件允许,ORB通常已经足够了(再次强调,我不清楚您的采集条件),而且它的速度也是一个明显的优势。Haar分类器可能也能工作,但请记住,对于旋转/缩放的徽标,您需要训练多个级联分类器或者提供多个旋转视角的场景图像来进行搜索。


我想要检测多个商标。使用create_samples为Haar分类器创建旋转样本不会成为问题。如果我有多个商标,您为什么认为我需要词袋模型? - dephinera
我认为最终的选择将由数据决定。我可以想象出一些标志,其中关键点很难找到,以及一些情况(例如显著的透视畸变),在这些情况下使用Haar级联分类器可能会失败。我建议您尝试这两种方法,也许您会得出结论,使用两种方法都是必要的。 - mkr
好的,我会尝试一下,谢谢。不过我还想再问你一遍,为什么你建议使用词袋模型? - dephinera
抱歉回复晚了,工作太忙了。它在识别图片片段方面表现得相当不错,根据我的经验,它可能非常适合于复杂的、类似图片的标志(比如MGM、Uncle Ben's或包装上的标志,比如麦片、茶等)。 - mkr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接