Tensorflow对象检测:为啥使用ssd mobilnet v1时图像中的位置会影响检测精度?

Posted

技术标签:

【中文标题】Tensorflow对象检测:为啥使用ssd mobilnet v1时图像中的位置会影响检测精度?【英文标题】:Tensorflow object detection: why is the location in image affecting detection accuracy when using ssd mobilnet v1?Tensorflow对象检测:为什么使用ssd mobilnet v1时图像中的位置会影响检测精度? 【发布时间】:2018-10-07 06:55:05 【问题描述】:

我正在训练一个模型来检测夜空图片中的流星,我有一个相当小的数据集,其中包含大约 85 张图像,每张图像都带有一个边界框注释。我正在使用从 ssd_mobilenet_v1_coco_11_06_2017 检查点和 Tensorflow 1.4 开始的迁移学习技术。我在训练期间将图像大小调整为 600x600 像素。我在管道配置中使用数据增强来随机水平、垂直翻转图像并旋转 90 度。在 5000 步之后,模型收敛到大约 0.3 的损失,并且会检测到流星,但流星在图像中的位置似乎很重要。我是否必须通过给出每个可能位置的示例来训练模型?我附上了一个检测运行的样本,我在整个图像上平铺了一颗流星,并收到了不同级别的检测(过滤到 50%)。我该如何改进?detected meteors in image example

【问题讨论】:

您尝试过一些传统的图像归一化方法吗?训练示例的颜色对比似乎使模型难以学习。我建议您在此处查看可用的预处理 (github.com/tensorflow/models/blob/master/research/slim/…),您可以尝试很多变体。 谢谢,我正在试验颜色对比和其他数据增强,看看是否有帮助 【参考方案1】:

这很可能是您的数据,我认为您正在通过改善数据集的异构性做出谨慎的举动,但是它也可能是您选择的模型。

值得注意的是,ssd_mobilenet_v1_coco 相对于 TensorFlow Object Detection API model zoo 中的其他模型具有最低的 COCO mAP。您不是在尝试检测 COCO 对象,但 mAP 数字是通用模型准确性的合理近似值。

在可能的***别上,模型的选择很大程度上是速度/准确性之间的权衡。您选择的模型 ssd_mobilenet_v1_coco 有利于速度而不是准确性。因此,我建议您在花费大量时间预处理图像之前尝试使用 Faster RCNN 模型之一(例如,faster_rcnn_inception_v2_coco)。

【讨论】:

以上是关于Tensorflow对象检测:为啥使用ssd mobilnet v1时图像中的位置会影响检测精度?的主要内容,如果未能解决你的问题,请参考以下文章

如何修改 ssd mobilenet 配置以使用 tensorflow 对象检测 API 检测小对象?

在树莓派 (tensorflow) 上进行对象检测的项目

如何在 tensorflow 对象检测 API 中使用“忽略”类?

TensorFlow 对象检测 API 损失急剧增加

Tensorflow的对象分离api不工作。

SSD-Mobilenetv2 300x300 - Tensorflow 异议检测 API