猿问

如何训练不包含对象的 Tensorflow 对象检测图像?

我正在使用 Tensorflow 的对象检测训练一个对象检测网络,


https://github.com/tensorflow/models/tree/master/research/object_detection


我可以根据自己的图像和标签成功训练网络。但是,我有一个不包含任何标记对象的大型图像数据集,我希望能够训练网络不检测这些图像中的任何内容。


根据我对 Tensorflow 对象检测的理解,我需要给它一组图像和相应的 XML 文件,这些文件对图像中的对象进行装箱和标记。脚本将 XML 转换为 CSV,然后转换为其他格式以进行培训,并且不允许使用没有对象的 XML 文件。


如何给出没有对象的图像和 XML 文件?


或者,网络如何学习不是对象的东西?


例如,如果您想检测“热狗”,您可以使用一组带有热狗的图像来训练它。但是如何训练它什么不是热狗呢?


潇潇雨雨
浏览 166回答 2
2回答

至尊宝的传说

您可能想看看这个解决方案。为了让 tensorflow 对象检测 API 包含您的反面示例,您需要通过修改生成 csv 文件的脚本或之后添加示例,将反面示例添加到您从 xml 创建的 csv 文件中。要使用LabelImg生成没有类标签的 xml 文件,您可以通过按“验证图像”来执行此操作。

心有法竹

对象检测 CNN 可以了解什么不是对象,只需让它查看没有任何标签的图像示例即可。有两种主要的架构类型:两阶段,第一阶段对象/区域提议(RPN),第二阶段 - 分类和边界框微调;one-stage,直接根据特征图中某个单元格对应的特征向量对BB进行分类和回归。在任何情况下,都有一部分负责决定什么是对象,什么不是。在 RPN 中,你有“客观性”分数,在一个阶段有分类的置信度,你通常是一个背景类(即所有不支持的类)。因此,在这两种情况下,如果图像中的特定示例没有任何受支持的类,您可以教 CNN 相应地降低对象性分数或增加背景置信度。
随时随地看视频慕课网APP

相关分类

Python
我要回答