Tensorflow Object Detection API 中 Faster-RCNN 模型收敛但检测不准确

我尝试使用 Tensorflow Object Detection API 来识别吉尼斯标志。该过程与此处展示的类似 – https://towardsdatascience.com/building-a-toy-detector-with-tensorflow-object-detection-api-63c0fdf2ac95

我准备了100张训练图片,通过数据增强(使用Imgaug)将其扩展到大约5000张训练图片。在Tensorboard上训练时,我看到看起来很好的学习曲线,损失值达到了小于0.1,但当我导出并测试模型时,出现了大量的误报和非常不准确的结果。我正在尝试找出这是为什么。

Tensorboard性能图表

enter image description here

不准确的检测示例 enter image description here

注意,为了自动标记我的图片,我先将原始的100张图片整齐地裁剪在标志周围,然后我用程序将它们放置在随机的背景图片上,并在其周围画上边界框。示例 –

如下所示 – enter image description here

所有训练图片的尺寸都是800×600,但实际的边界框和标志会小得多,如你所见。

这是同一张图片的xml标注文件 –

<?xml version="1.0" encoding="utf-8"?><annotation>  <folder>images</folder>  <filename>57.png</filename>  <path>model\images\57.png</path>  <source>    <database>Unknown</database>  </source>  <size>    <width>800</width>    <height>600</height>    <depth>3</depth>  </size>  <segmented>0</segmented>  <object>    <name>guinness</name>    <pose>Unspecified</pose>    <truncated>0</truncated>    <difficult>0</difficult>    <bndbox>      <xmin>225</xmin>      <ymin>329</ymin>      <xmax>516</xmax>      <ymax>466</ymax>    </bndbox>  </object></annotation>

有谁知道为什么Tensorflow能够正确分类测试图片,但在测试真实世界图片时检测不准确吗?欢迎任何建议,并请随时询问更多信息。


回答:

最终我放弃了将我的标志图片放置在随机背景上的方法,而是手动标记它们,然后使用图像增强来增加我的训练集大小。这似乎大大改善了我的结果。我认为这与训练中实际需要一个上下文准确的背景有关。

希望这对一些人有帮助,感谢大家的帮助。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注