使用OpenCV进行标志检测

9
我正在尝试在我正在开发的移动应用程序中实现彩蛋。当相机视图中检测到标志时,将触发这些彩蛋。我要检测的标志是这个:Halifax logo。由于我对计算机视觉还不太熟悉,所以我不确定最好的方法是什么。目前,我正在使用Canny算法查找水平边缘。然后使用概率霍夫变换查找线段。其输出如下所示(蓝色线条表示由概率霍夫变换检测到的线段):halifax logo post detection。接下来,我打算寻找一组大约24条线段(适合近乎正方形的矩形内),每条线段的长度都大致相同。我将使用这两个信号来指示标志的可能存在。我意识到这可能是一种非常天真的方法,并且希望提供更可靠的方法来检测此标志。谢谢。
4个回答

5
你可能想使用SIFT,使用Rob Hess的SIFT Library。它使用了OpenCV,速度也很快。我猜这比你目前的标志检测方法更容易:)
尝试寻找SURF,它声称比SIFT更快且更强大。这个特征检测教程会对你有所帮助。

3
SIFT和SURF都受到专利保护(尽管允许无费非商业使用),因此您需要专利许可证才能进行任何商业用途。 - bleater

2

0

我不确定你是否能在标志中找到与SIFT / SURF方法配合使用的这些功能。作为替代方案,您可以尝试训练Haar-like特征分类器,并将其用于检测标志,就像opencv用于人脸检测一样。


0

您也可以尝试使用Tensorflow的目标检测API,链接如下: https://github.com/tensorflow/models/tree/master/research/object_detection

这个API的好处是它包含了最先进的目标检测和分类模型。Tensorflow提供的这些模型是免费训练的,其中一些承诺具有惊人的结果。我已经为我所在公司训练了一个模型,它在图像和视频流中的LOGO检测方面表现出色。您可以在此处了解更多关于我的工作: https://github.com/kochlisGit/LogoLens


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