Tensorflow对象检测API Faster-RCNN收敛但检测不准确

时间:2018-06-20 17:52:59

标签: tensorflow machine-learning detection

我正在尝试使用Tensorflow对象检测API来识别吉尼斯徽标。该过程类似于此处显示的过程-https://towardsdatascience.com/building-a-toy-detector-with-tensorflow-object-detection-api-63c0fdf2ac95

我已经准备了100幅训练图像,我使用增强来获得大约5000幅训练图像。 (使用Imgaug)。在张量板上进行训练时,我看到了一条看起来不错的学习曲线,损失了<0.1,但是当我导出并测试该图时,我得到了很多误报和非常不准确的结果。我正在尝试找出原因。

张量板性能图

enter image description here

错误检测示例 enter image description here

请注意,为了自动标记图像,我将原始的100个标记整齐地裁剪在徽标周围,然后以编程方式将其放置在随机背景图像上,并带有边框。示例-

像这样-enter image description here

所有训练图像均为800x600,但实际的边界框和徽标会小得多。

这是同一张图片的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>

有人知道为什么张量流会正确地对测试图像进​​行分类,但是当我在真实世界的图像上进行测试时,检测结果也不准确吗?欢迎提供任何建议,并随时要求更多信息。

2 个答案:

答案 0 :(得分:0)

思想夫妇

  • 您的测试图像是否也尺寸为800 * 600?

  • 您可能想使用配置文件中的image_resizer值

答案 1 :(得分:0)

最终,我放弃了将徽标图像放置在随机背景上的方法,而是手动对其进行了标记,然后使用图像增强来增加训练集的大小。这似乎大大改善了我的结果。我认为这与上下文准确的背景有关,实际上在培训中非常重要。

希望这对某些人有帮助,谢谢您的帮助。