COCO数据集目标检测输出指标AP、AR、maxDets

最近在用retinanet进行一个实验,用的coco格式的数据集,输出的结果大致如下:

Loading and preparing results...
DONE (t=0.11s)
creating index...
index created!
Running per image evaluation...
Evaluate annotation type *bbox*
DONE (t=3.98s).
Accumulating evaluation results...
DONE (t=0.76s).
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.803
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.979
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.907
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.706
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.803
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.798
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.799
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.849
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.849
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.745
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.845
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.825

**
在这里插入图片描述

知识太贫乏了,看不懂
后查了资料,这是coco数据集输出的一个检测结果,解释如下:
在这里插入图片描述

1.第一行,是COCO的评价指标
2.第二行,是PASCAL VOC的评价指标
3.第三行,IoU=0.75 相比IOU=0.50是比较严格的一个指标
4.第四行,关注小目标的情况
5.第五行,检测中等目标的
6.第六行,检测大目标的指标
7.第七行,设置目标检测框只有1个
8.第八行,设置目标检测框有10个
9.第九行,设置目标检测框有100个 从图上看,10个和100个的指标值差不多

第八第九行对比看,是为了看目标数的大致情况

在这里插入图片描述

b站有个视频,讲的也是这个,有时间的也可以去看
链接: coco指标解读.

### COCO 数据集与 PyCOCOTools 使用指南 #### 什么是 COCO 数据集? Common Objects in Context (COCO) 是一个大型图像数据集,旨在推动计算机视觉技术的发展。该数据集不仅提供了丰富的对象类别标签,还包含了分割掩码、关键点标注等多种信息[^5]。 #### 主要特点: - **多样的物体实例**:超过33万张高质量的自然场景图片。 - **详细的注解**:每幅图平均含有五个目标框,并附带姿态估计等细节描述。 - **广泛的应用领域**:适用于物体识别、语义/实例分割等多个研究方向。 #### 安装 PyCOCOTools 库 为了方便处理 COCO 格式的标注文件,官方提供了一个名为 `pycocotools` 的工具包。通过它能够轻松加载 JSON 文件中的元数据,计算 IoU(Intersection-over-Union),绘制边界框等等操作[^4]。 可以利用 pip 命令来安装这个库: ```bash pip install pycocotools ``` #### 加载 COCO 数据集 下面是一段简单的 Python 脚本用于演示如何读取 COCO 数据集并获取特定类别的所有图片ID列表: ```python from pycocotools.coco import COCO import os # 初始化COCO API接口 dataDir = '/path/to/coco' dataType = 'val2017' # 或者'train2017',取决于使用的子集 annFile = '{}/annotations/instances_{}.json'.format(dataDir,dataType) coco=COCO(annFile) # 获取指定类名对应的catIds catIds = coco.getCatIds(catNms=['person','dog']) imgIds = coco.getImgIds(catIds=catIds ) print(f"Total images with person or dog annotations: {len(imgIds)}") ``` 这段代码展示了如何初始化 COCO 类的对象,查询某几个分类下的所有样本编号,并打印总数目。 #### 计算评价指标 PyCOCOTools 还支持直接调用函数来进行性能评测,比如 APAR 等常用度量标准。对于给定的结果预测文件,可以通过如下方式快速获得各类别上的 mAP 数值: ```python from pycocotools.cocoeval import COCOeval resFile='/path/to/results.json' cocoDt=coco.loadRes(resFile) cocoEval = COCOeval(coco,cocoDt,'bbox') cocoEval.evaluate() cocoEval.accumulate() cocoEval.summarize() print('Average Precision (AP) @[ IoU=0.50:0.95 | area=all | maxDets=100 ] = %.3f'% cocoEval.stats[0]) ``` 这里使用了 `COCOeval` 来对比真实情况(`coco`)同检测结果(`cocoDt`)之间的差异,最终输出整体表现统计摘要。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值