PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.66k stars 2.87k forks source link

COCOAPI #7985

Open Sunpoleone opened 1 year ago

Sunpoleone commented 1 year ago

问题描述 Please describe your issue

我的数据集一共1600张图片,按照9:1的比例划分训练集及测试集,测试集160张,我用程序的评估代码跑出了以下结果 cocoapi(3 23) 我的数据一共四个类别(积物、积水、气体、异物穿入),清官方结合我的数据,举例详细解释下precision、AP、mAP这些指标具体如何算出的,恳求官方快速回复。

BaiduPaddle commented 1 year ago

PaddleDetection评估是调用官方cocoapi接口,可以自行在网上搜索关于coco指标的解答,https://www.jianshu.com/p/d7a06a720a2b

BaiduPaddle commented 1 year ago

结合你的数据解释 precision(类别框-查准率): 实验测试集一共有160张数据,模型评估后共有160组precision值,因为每个组内的具体precision值不固定,因为一张图片中相同类别如果检测出多个框,每检测出一个框就会有一个precision值,因此整个实验测试集输出的precision总体个数可能会大于160,因为需要考虑一张图片识别出多个框的情况,官方cocoapi会结合测试集输出筛框后的precious值。 AP(Average precision)(单个类别识别精度): 本实验测试集一共160张,内部包含4各类别,每个类别都会输出一个AP值,单个类别AP值的计算公式,分母为具体识别出当前标注框的总数,分子为每个识别框对应precision的总和, (比如 想计算积物类别的AP值:分母为测试集数据中实际识别成积物这个类别的标记框总数 假设为54,分子为这54个标记框输出的precision值相加总和。 mAP(模型识别精度): 本实验测试集一共160张,内部包含4个类别,每个类别都会输出一个AP值,模型总识别精度计算公式为,分母为模型内类别总数,分子为每个类别AP值相加总和。 (观察api接口输出截图,一共有四个类别,计算mAP时,分母即为4,分子为积物、积水、气体、异物传入四个类别的AP值总和)

Sunpoleone commented 1 year ago

请问官方评估接口直接输出的box_precision的值,具体什么含义,有具体公式或代码吗?

BaiduPaddle commented 1 year ago

PaddleDetection评估过程是调用官方cocoapi接口直接输出,如下图所示。 image 开发者仅具备使用权! 结合您的输出“box_precision”,具体找到pycocotools包内代码块如下图所示。 image box_precision为筛框前的总标记框精确度。 代码推断box_precision计算为 筛框前精确度与无效框损失相减求得。