繁体   English   中英

在Android上使用OpenCV在实时摄像机预览中进行实时徽标检测

[英]Real time logo detection in live camera preview with OpenCV on Android

我是计算机视觉的新手,但我尝试编写一个执行以下操作的android应用程序:

获取实时摄像机预览,并尝试检测其中的一个徽标(我的资源中包含徽标)。 实时。 如果找到徽标,请在徽标周围绘制一个矩形。 如果没有匹配项,请不要绘制矩形。

我已经尝试了几件事,包括模板匹配和使用ORB进行功能检测。

为什么不起作用:

模板匹配:缩放和旋转问题。 我尝试了它的多尺度变体,但是a)性能真的很差,b)当然总是显示矩形以尝试搜索图像。 无法在代码中实际确认是否找到徽标。

ORB功能检测:速度也很慢(5-6 fps),但效果还不错。 另一个问题是我也永远无法确定徽标是否在图片中。 即使徽标不在图片中,ORB也会发现随机匹配项。

就像我说的那样,我对此很陌生。 我将很高兴为您提供最好的实现方式:

  • 确认照片A(大约200x200像素)是否在相机照片的ROI(大约600x600像素)中。

  • 每帧时间不应超过50ms。 我不知道那是否可能。 因此,如果执行此操作的正确方法花费的时间更长,那么我将在单独的线程中进行工作,并且仅像每五个摄像头帧那样分析一次。

将不胜感激有关如何实现该目标的任何提示或代码示例。 谢谢!

对于徽标检测,我强烈建议您使用OpenCV HaarClassifier。 很容易从徽标图像的集合或一个徽标图像失真很多的情况下生成训练样本。

如果可以使用一些规则,例如要检测的徽标的最小和最大尺寸以及图像上可能出现徽标的区域,则可以以比ORB提到的更好的速度运行检测器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM