通常标志检测是指找到标志并识别标志。一些常见的工作使用 SIFT/SURF 匹配方法将这两个步骤一起完成,详见
但是,如果 Logo 又小又模糊,效果会很差,而且有点费时;我想把这两个步骤分开,首先找到视频中 Logo 的位置;然后使用模板匹配或其他方法识别 Logo ,例如:
我的问题主要集中在自动查找视频中的 Logo 。我尝试了两种方法:
- 亮度法。电视屏幕上的标志通常在节目进行时一直存在,我随机选择一个帧列表并进行帧间差异,标志区域趋向于0;我用阈值做了一些0亮度的统计,以确定像素是否是标志。这种方法通常效果很好,但在显示静态背景时失败。
- 边缘法。很可能,如果 Logo 在那里,边界往往很明显。我做了像亮度法这样的统计工作,但是边缘有时不稳定,比如背景很亮。
对于自动查找 Logo 区域和除筛选或模板匹配之外的任何其他 Logo 识别方法,是否有任何建议或最先进的方法?
最佳答案
让我们假设您的 Logo 列表是事先已知的,并且您可以访问所有 Logo 的示例(视频流/帧)。
2017 年对你的问题的回答是训练一个标志分类器,很可能是一个深度神经网络。
有了足够的训练数据,如果电视观众可以识别它,它将能够检测到它。它将能够处理局部模糊和强度变化(这可能会阻碍亮度和边缘的“经典”图像处理方法)。
OpenCV 可以从 Caffe、Torch 和 TensorFlow 等多个框架加载和运行网络模型,因此您可以使用其中一种预训练模型或自己训练一个。
关于algorithm - tv logo自动查找/定位/检测的建议或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45788665/