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

时间:2018-11-08 21:08:30

标签: python tensorflow deep-learning object-detection object-detection-api

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

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

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

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

如何提供没有对象的图像和XML文件?

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

例如,如果您要检测“热狗”,则可以使用带有热狗的一组图像对其进行训练。但是如何训练它不是热狗呢?

2 个答案:

答案 0 :(得分:1)

对象检测CNN可以让对象看到没有标签的图像示例,从而了解不是对象的东西。

主要有两种体系结构类型:

  1. 分为两阶段,第一阶段是对象/区域提议(RPN),第二阶段是对分类和边界框进行微调;
  2. 一个阶段,它根据与特征图中某个单元格相对应的特征向量对BB进行直接分类和回归。

在任何情况下,都有一部分负责确定什么是对象,什么不是对象。在RPN中,您具有“客观性”评分,在一个阶段中,就有分类的信心,您通常在其中进行背景课程(即,不是受支持的课程的所有内容)。

因此,在这两种情况下,如果图像中的特定示例没有任何受支持的类,您可以教CNN相应地降低客观评分或增加背景置信度。

答案 1 :(得分:0)

您可能想看看this solution

要使tensorflow对象检测API包含否定示例,您需要将否定示例添加到通过xml创建的csv文件中,方法是修改生成csv文件的脚本,或者在之后添加示例

要使用LabelImg生成不带类标签的xml文件,可以通过按“验证图像”来实现。