本文聚焦如何画出基于coco格式数据集测试得到的precision-recall curve (PR curve)。
众所周知,对于目标检测的论文,往往要列出mAP的表格和PR曲线的图。
以FAIR开源的maskrcnn_benchmark为例子,模型训练好了之后进行测试只能得到mAP,并没有直接给出PR曲线。
所以我对coco_eval.py和cocoapi的代码进行了一下研究。https://github.com/cocodataset/cocoapi/blob/master/PythonAPI/pycocotools/cocoeval.pygithub.com
coco_eval.eval['precision']是一个5维的数组。
# precision - [TxRxKxAxM] precision for every evaluation setting
# catIds - [all] K cat ids to use for evaluation
# iouThrs - [.5:.05:.95] T=10 IoU thresholds for evaluation
# recThrs - [0:.01:1] R=101 recall thresholds for evaluation
# areaRng - [...] A=4 object area ranges for evaluation
# maxDets - [1 10 100] M=3 thresholds on max detections per image
第一维T:IoU的10个阈值,从0.5到0.95间隔0.05。
第二维R:101个recall 阈值,从0到1