【问题标题】:small object detection with faster-RCNN in tensorflow-models张量流模型中使用faster-RCNN的小目标检测
【发布时间】:2018-01-09 04:18:45
【问题描述】:

我正在尝试为小数字检测训练一个更快的 rccn 模型。我正在使用新发布的 tensorflow object detection API,到目前为止,我一直在微调来自动物园的预训练 faster_rcnn_resnet101_coco。我所有的训练尝试都导致模型精度高但召回率低。在每张图像上的约 120 个对象(数字)中,仅检测到约 20 个对象,但当检测到时,分类是准确的。 (此外,我可以在裁剪的图像上以高精度从头开始训练一个简单的卷积网络,因此问题出在模型的检测方面。)原始图像中的每个数字平均为 60x30(可能大约是那个大小的一半)在图像被输入模型之前调整大小之后。)这是一个示例图像,其中包含我所看到的检测框:

对我来说奇怪的是它如何能够正确检测相邻的数字,但却完全错过了在像素尺寸方面非常相似的其余数字。

我已经尝试调整锚框生成和first_stage_max_proposals 周围的超参数,但到目前为止没有任何改善结果。这是我使用的示例config 文件。我应该尝试调整哪些其他超参数?关于如何诊断问题的任何其他建议?我应该研究其他architectures 还是我的任务看起来可以使用faster-rccn 和/或SSD?

【问题讨论】:

  • 嗨 Ben - 您的数据集的典型图像分辨率是多少?
  • 另外请注意,在可视化工具 (visualize_boxes_and_labels_on_image_array) 中,我们让框的最大数量默认为 20,最小分数阈值默认为 0.5 --- 如果需要,您必须明确覆盖这些更加宽容。
  • 现在我的大部分图像都是 3264 × 2248,这是 iPhone 图像的尺寸(至少从 iPhone 6 开始)。感谢可视化工具上的指针,我会检查一下。
  • Jonathan - 再次感谢visualize_boxes_and_labels_on_image_array 的提示。我一直很懒,在查看实际预测之前使用可视化工具进行抽查。对于简单的图像(如上)检测似乎效果很好,但分类很差。 (不同视角的图像仍然具有较低的检测率。)不过,我有一些想法可以尝试解决这些问题。谢谢!
  • 第一个链接好像坏了...

标签: tensorflow object-detection


【解决方案1】:

我检查了您的配置文件,您正在将图像的分辨率降低到 1024。您的数字区域不会包含很多像素,并且您会丢失一些信息。我建议使用另一个数据集(较小的图像)来训练模型。例如,您可以在 4 个四个区域中裁剪图像。

如果你有一个好的 GPU 增加 image_resizer 中的最大尺寸,但我猜你会用完内存

【讨论】:

    【解决方案2】:

    最后,最直接的问题是我没有正确使用可视化工具。通过更新 visualize_boxes_and_labels_on_image_array 的参数,正如 Johnathan 在 cmets 中所描述的那样,我能够看到我至少检测到的盒子比我想象的要多。

    【讨论】:

    • 除了能够看到更多的边界框之外,您的模型在寻找小物体方面是否有所改进?我正在努力在大图像(1920 x 1080)上检测小物体(55 x 15 pix)。训练后我很难在我的图像上找到任何东西(我已经尝试了所有预训练的模型,它们都没有产生好的结果),这与您在问题中显示的图像相似。
    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 2019-11-06
    • 2020-06-01
    • 2020-06-17
    • 1970-01-01
    • 2021-10-14
    • 2021-11-02
    • 2020-08-22
    相关资源
    最近更新 更多