2017-08-02 147 views
2

我正在尝试训练快速rccn的小数位检测模型。我正在使用新发布的tensorflow object detection API,到目前为止一直在对来自动物园的预训练faster_rcnn_resnet101_coco进行微调。我所有的训练尝试都产生了高精度但回忆率低的模型。在每个图像中约120个物体(数字)中,只有约20个物体被检测到,但是当检测到分类是准确的时候。 (另外,我能够从头开始训练我的裁剪图像,精度高,因此问题出在模型的检测方面。)每个数字在原始图像中平均为60x30(可能大约是其大小的一半。图像被输入到模型前调整后),这是与检测盒的示例图像我所看到的: enter image description here张量流模型中使用更快RCNN的小物体检测

什么是奇怪我是怎么能够正确地检测相邻的数字,但完全错过了像素尺寸非常相似的其余部分。

我已经尝试调整锚箱生成和first_stage_max_proposals周围的超参数,但迄今为止没有任何改进结果。这里是我用过的一个例子config文件。我应该尝试调整哪些其他超参数?有关如何诊断问题的其他建议?我应该查看其他architectures还是我的任务看起来可以通过更快的rccn和/或SSD来实现?

+0

本嗨 - 什么是你的数据集典型的图像分辨率? –

+0

还要注意,在可视化器('visualize_boxes_and_labels_on_image_array')中,我们让最大盒数默认为20,最低分数阈值默认为0.5 - 如果您想要更宽容,您必须明确地重写这些。 –

+0

现在我的大部分图像都是3264×2248,这是iPhone图像(至少是iPhone 6)的尺寸。感谢可视化器上的指针,我会检查一下。 –

回答

4

最后,眼前的问题是我没有正确使用可视化工具。通过更新Johnathan在评论中描述的visualize_boxes_and_labels_on_image_array的参数,我能够看到,至少我发现了比我想象的更多的盒子。

+1

除了能够看到更多的边界框外,您的模型在寻找小物体时有所改进吗?我正致力于在大图像(1920×1080)上检测小物体(55×15像素)。我很难在训练后在我的图像上找到任何东西(我尝试了所有预先训练过的模型,但没有一个能产生好的结果),这与您在问题中显示的图像相似。 – Jundong

0

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

如果你有一个很好的GPU提高在image_resizer最大尺寸,但我猜你会耗尽内存