TF Object detection API mAP 计算看似错误

Posted

技术标签:

【中文标题】TF Object detection API mAP 计算看似错误【英文标题】:TF Object detection API mAP calculation seemingly wrong 【发布时间】:2019-06-21 18:03:45 【问题描述】:

我不确定这是我的误解还是 TF 对象检测 (OD) API 代码中的错误,但我想我会先在这里尝试,然后再发布到 github。

基本上,我正在比较 tensorboard 中的 2 个模型,红色与绿色。我发现红色模型在整体 mAP、mAP@.50IOU 和 mAP@.75IOU 方面稍好一些。然而,绿色在所有按对象大小划分的 mAP 上都更好:mAP 大、中和小(见下图,67.5k 步,蓝色箭头所在的位置)。

现在我没有数学博士学位,但我的假设是,如果一个模型具有更高的 mAP w/小中型和大型对象,它应该具有更高的整体 mAP...

以下是确切值:(所有值均在 67.5k 步时获得,未经任何平滑处理)

                Red     Green
mAP             .3599   .3511
mAP@.50IOU      .5670   .5489
mAP@.75IOU      .3981   .3944
mAP (large)     .5557   .7404
mAP (medium)    .3788   .3941
mAP (small)     .1093   .1386

【问题讨论】:

【参考方案1】:

我认为获得更多洞察力的方法是分析数据集中边界框大小(小、中、大)数量的统计数据。这是mAP calculation 的链接,其中 TF 对象检测 API 描述了如何计算小框和中框。

我可以想象,出现此问题的一个原因是您的中型边界框数量比大尺寸边界框多得多。另外,我会忽略小边界框的性能,因为 mAP 小于 0.01。

【讨论】:

以上是关于TF Object detection API mAP 计算看似错误的主要内容,如果未能解决你的问题,请参考以下文章

使用Tensorflow Object Detection API训练自己的数据,并使用编译成功的模型进行识别

TensorFlow Object Detection API 只训练一个类

使用TensorFlow Object Detection API确定最大批量大小

tf源码中的object_detection_tutorial.ipynb文件

TensorFlow object detection API

TensorFlow object detection API应用二