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

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

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

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

我已经尝试了一些方法,包括使用 ORB 进行模板匹配和特征检测。

为什么不起作用:

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

ORB特征检测: 也很慢(5-6 fps)但它工作正常。另一个问题是我也永远无法确定徽标是否在图片中。即使徽标不在图片中,ORB 也会随机找到匹配项。

就像我说的,我对此很陌生。我将不胜感激关于什么是最好的实现方式的帮助:

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

对于徽标检测,我强烈建议使用 OpenCV HaarClassifier。从徽标图像集合或具有许多变形的徽标图像生成训练样本很容易。

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