无位置目标检测的最佳神经网络架构

数据挖掘 神经网络 物体检测
2021-10-13 00:59:04

我想建立一个模型,它能够检测图像中特定对象的存在而不关心位置(即没有边界框,只有 0/1 输出)。更具体地说,对象总是相同的,并且以特定的图案(例如国旗或条形码)为特征。该算法应该对缩放、旋转和失真具有鲁棒性。在这种情况下,最好的架构是什么?有比通用 CNN 二元分类器更好的方法吗?

2个回答

这主要取决于您可用于训练的数据量。

但是,除非您拥有极其有限的数据集并且无法生成合成数据,否则CNN 是目前解决您的任务的最佳方法有了足够的数据,它们就非常健壮。为了提高它们的性能,您可以通过在整个训练过程中随机旋转、翻转、增亮、对比、缩放、裁剪、模糊和向图像添加噪声来增强数据集。

它还取决于您的速度要求和计算资源。传统方法有可能非常快,但如果你只关心准确性,深度网络可能会表现得更好。请注意,一些 CNN 也非常快,例如MobileNets

正如@TheDjentleman 所建议的那样,您可能会选择“老派”并使用模板匹配和更传统的方法有几个原因

  • 您没有足够的数据使 CNN 变得健壮并且您无法生成合成数据
  • CNN 不能满足您的速度要求,而传统方法可以
  • 您没有足够的资源来训练深度网络,例如 GPU。仅供参考,谷歌以相当合理的成本为研究人员和开发人员开发了一种云计算工具。

如果这些标准都不适合您的情况,请选择 CNN。

最后,你不一定需要一个通用的二元分类 CNN。您可以使用对象检测网络甚至语义分割网络,如果不需要,则忽略位置数据。

可能不会真正回答您的问题,但老实说,如果您只想找到一个事先知道的特定对象,我根本不会使用神经网络(我认为您应该使用正确的工具来完成任务) .

对于像这样更简单的任务,您可以使用更多“老派”方法(嘘),如模板匹配使用这种方法,您只需获取对象的孤立图像,例如,提取一组特征(例如使用 opencv),然后将矩形移动到您想要找到该对象的图像上并比较特征。这种方法的优点是你不需要训练数据,就像训练神经网络那样。

如果您真的、真的、真的想使用 CNN,您可以尝试将对象的图像粘贴到数千张随机图像中,然后获取更多图像来训练分类器,检查对象是否在图像中.