【问题标题】:Object detection where the object occupies a small part of the image物体占据图像一小部分的物体检测
【发布时间】:2020-03-25 14:03:05
【问题描述】:

我训练了一个路标检测网络。在训练数据中,符号占据整个帧,如下所示:

但是在我想用于预测的图像中,路标占用的空间要小得多,例如:

对此类图像的预测不是很好,但是如果我只裁剪到符号,则预测很好。

如何为更大的图像生成预测?

很遗憾,我无法找到类似问题的答案。

【问题讨论】:

  • 也许研究一下注意力模型?

标签: python machine-learning keras object-detection


【解决方案1】:

当您想将单个标志的分类扩展到“检测”它们并将它们分类到更大的图像中时,这听起来像是在尝试解决不同类型的问题。

你有(至少)几个选择:

  • 创建扫描图像并对每个步骤进行分类的滑动窗口。这样,当您点击标志时,它将返回一个很好的分类。但是您很快就会意识到这不是很实用或有效。窗口大小和步进大小成为需要优化的更多参数,正如您将在以下选项中看到的那样,已经有一些特定于对象检测的方法已尝试解决此特定问题。
  • 您可以尝试对象检测架构。这将要求您提供与您在图像分类中使用的数据集不同的训练数据集。您将需要许多(数百或数千)图像的“大”版本,其中包含(并且在某些情况下不包含)您想要识别的标志。您需要一个注释工具来定位和标记这些标志,然后您可以训练一个网络来定位和标记它们。

要查找第二个选项的一些架构包括:YOLO、单次检测 (SSD)、Faster RCNN 等等。

【讨论】:

  • 我想过滑动窗口,但确实不实用。我将研究您建议的第二个选项,但提出数据集可能不可行,我会看看我能做什么。现在我将尝试使用 opencv 进行圆形和三角形检测,并将图像裁剪到检测到圆形/三角形的区域。
  • 如果你的训练数据集不是太大,你也可以使用迁移学习的概念。事实上,这会比从头开始更好、更快、更容易。看看Object Detection API for Tensorflow。他们有一些预先训练的模型,您可以使用它们来微调您的需求。它被称为Tensorflow detection model zoo
猜你喜欢
  • 2018-06-14
  • 2015-01-26
  • 2016-08-24
  • 2017-04-21
  • 2020-05-03
  • 2013-12-15
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多