本文主要通过nanodet的例子,解读cocoeval的box mAP计算过程。
计算过程主要用了COCOeval的3个函数,
evaluate(): 对每张图片,每个类别用不同IOU阈值得到和gt box的match
accumulate(): 计算precision, recall, 平滑precision-recall曲线
summarize(): 计算mAP, mAR

mAP计算原理见IOU,precision, recall, mAP详解

下面会以nanodet的test部分为切入点详细解析这些函数的计算过程。

test部分主要对模型的预测结果做evaluation.
evaluation的标准为box mAP。

nanodet用的是pytorch lightning框架,很多都是pytorch_lightning内部的调用,这个mAP到底是在哪里计算的。
下面会一步一步看。

nanodet/tools/test.py开始,不看的地方用…代替。
代码中我们看到args中需要指定config文件,于是指定为config/nanodet-plus-n_416.yml
在这个config文件的data部分,只有train和val,并没有test,
你可以添加test数据,
这里没有添加,指定task参数为"val".

所以parameter为:

--task
03-29 10:46