使用OpenCV进行徽标检测

时间:2012-03-17 09:41:26

标签: opencv computer-vision image-recognition

我正在尝试在我正在处理的移动应用中实现一个复活节彩蛋。在摄像机视图中检测到徽标时,将触发这些复活节彩蛋。我试图检测的徽标就是这个:Halifax logo

我不太确定解决这个问题的最佳方法是因为我对计算机视觉很陌生。我目前正在使用Canny算法找到水平边缘。然后我使用概率Hough变换找到线段。其输出如下所示(蓝线代表概率Hough变换检测到的线段):

halifax logo post detection

我要采取的下一步是寻找一组大约24条线(拟合在一个近似正方形的矩形内),每条线的长度必须大致相同。我会用这两个信号来表示徽标的潜在存在。我意识到这可能是一种非常天真的方法,并欢迎有关如何以更可靠的方式更好地检测此徽标的建议?

由于

4 个答案:

答案 0 :(得分:4)

您可能希望使用Rob Hess'SIFTSIFT Library一起使用。它使用OpenCV也非常快。我想这比您目前接近徽标检测的方式更容易:)

尝试寻找SURF,声称速度更快&比SIFT强盗。这Feature Detection tutorial会对您有所帮助。

答案 1 :(得分:2)

您可能只想使用LogoGrab的技术。它是最好的,提供各种API(移动和HTTP)。 http://www.logograb.com/technologyteam/

答案 2 :(得分:0)

我不太确定您是否会在徽标中找到这样的功能以采用SIFT / SURF方法。作为替代方案,您可以尝试训练类似Haar的特征分类器并将其用于检测徽标,就像opencv用于面部检测一样。

答案 3 :(得分:0)

您也可以在这里尝试 Tensorflow 的对象检测 API: https://github.com/tensorflow/models/tree/master/research/object_detection

此 API 的好处在于它包含对象检测和分类方面的最先进模型。 tensorflow 提供的这些模型可以免费训练,其中一些模型承诺会产生相当惊人的结果。我已经为我工作的公司训练了一个模型,它在从图像和视频流中检测 LOGO 方面做得非常出色。你可以在这里查看更多关于我的工作: https://github.com/kochlisGit/LogoLens