1 常见数据集
先要明确:
目标定位:提供的图片有一个目标,只需要将其位置定位出来
目标检测:提供的图片有一个或多个目标,需要把所有的目标的位置定位,并且判断出该目标的分类
【 ImageNet 】
ImageNet拥有用于分类、定位和检测任务评估的数据。
- 图像总数量为:1419 7122,边界框注释的图像数:103 4908。
- 分类数据、定位任务中有1000个类别。准确率根据 Top5 检测结果计算出。
- 对 200 个目标的检测问题有 470000 个图像,平均每个图像中有1.1个目标。
【 PASCAL VOC 】
挑战在2005年 至 2012年间展开。
该数据集中有20个分类。该数据集包含11530张用于训练和验证的图像,其中感兴趣区域有27450个标定。以下是数据集中的20个分类:
- 人:人
- 动物:鸟、猫、牛、狗、马、羊
- 车辆:飞机、自行车、船、巴士、汽车、摩托车、火车
- 室内:瓶、椅子、餐桌、盆栽植物、沙发、电视/检测器
每个图像平均有2.4个目标
官网链接:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
【 COCO 】
MS COCO 的全称为 Microsoft Common Object in Context,是微软与2014年出资标注的 Microsoft COCO 数据集。
与 ImageNet 竞赛一样,被视为是计算机视觉领域最受关注和最权威的比赛之一。在 ImageNet竞赛停办后,COCO竞赛就成为当前目标识别、检测等领域的一个最权威重要的标杆,也是目前该领域在国际上唯一能汇集Google、微软、Facebook以及国内外众多顶尖院校和优秀创新企业共同参与的大赛
- COCO目标检测挑战:
- COCO数据集包含了20万个图像
- 80个类别中超过50万个目标标注。他是最广泛公考的目标检测数据库
- 平均每个图像的目标数为7.2个
- COCO数据集现有3中标注类型:object instances(目标实例)、object keypoints(目标上的关键点)、image caption(看图说话),以 json 文件形式存储
2 性能指标
目标检测的常见性能指标
- Precision、Recall、
- IOU (Intersection over Union)
- P-R curve(Precision-Recall curve)
- AP(Average Precision)
- mAP(mean Average Precision)
- FPS(Frames Per Second)
2.1 Precision/Recall
准确率(Precision)
真阳率/召回率/灵敏度(True Positive Rate/Recall/Sensitivity)【即,阳性样本中的阳性检出率】
真阴率/特异度(True Negative Rate/Specificity)【即,阴性样本中的阴性检出率】
- 准确率 = T P T P + F P \frac{TP}{TP+FP} TP+FPTP
- 真阳率/召回率/灵敏度 = T P T P + F N \frac{TP}{TP+FN} TP+FNTP
- 真阴率/特异度 = T N T N + F P \frac{TN}{TN+FP} TN+FPTN
其中:第一位 T/F:表示预测的对错;第二位 P/N:表示预测的结果
2.2 目标检测中的IOU
目标检测中的TP、FP、FN、TN
- TP:对 ground-true 框正确的检测(分类正确,预测框与GT框的IOU大于阈值)
- FP:对不存在的东西做了错误的预测,或者预测的IOU小于阈值
- FN:漏检测
- TN(不考虑):在目标检测里是不考虑TN,因为可以有无数个不包含目标的框。所以涉及到TN的指标,都不会在目标检测中使用。
常用的是精准率和召回率:
- 精准率 P = T P T P + F P \frac{TP}{TP+FP} TP+FPTP = T P a l l d e t e c t i o n \frac{TP}{all\ detection} all detectionTP
- 召回率 R = T P T P + F N \frac{TP}{TP+FN} TP+FNTP = T P a l l g r o u n d t r u t h s \frac{TP}{all\ ground truths} all groundtruthsTP
P 追求的精确,R追求的召回,所以要在 P和R之间要做一个平衡,则使用AP指标
2.3 AP指标:
举个例子,如下图一共7张图片,绿色框是GT(15个),红色框是预测框(24个)并带有置信度。假设IOU=30%,按照置信度排序如下图
其中:
TP:正确预测、FP:错误预测
acc TP:从头到该位置累计正确个数、acc FP:从头到该位置累计错误的个数
precision:从头到该位置的精确率、recall:从头到该位置的召回率
P1 = T P a l l d e t e c t i o n \frac{TP}{all\ detection} all detectionTP = 1/1 = 1 ; R1 = T P a l l g r o u n d t r u t h s \frac{TP}{all\ ground truths} all groundtruthsTP = 1/15 = 0.0666
P2 = T P a l l d e t e c t i o n \frac{TP}{all\ detection} all detectionTP = 1/2 = 0.5 ; R2 = T P a l l g r o u n d t r u t h s \frac{TP}{all\ ground truths} all groundtruthsTP = 1/15 = 0.0666
P3 = T P a l l d e t e c t i o n \frac{TP}{all\ detection} all detectionTP = 2/3 = 0.666 ; R3 = T P a l l g r o u n d t r u t h s \frac{TP}{all\ ground truths} all groundtruthsTP = 2/15 = 0.1333
P4 = T P a l l d e t e c t i o n \frac{TP}{all\ detection} all detectionTP = 2/4 = 0.5; R3 = T P a l l g r o u n d t r u t h s \frac{TP}{all\ ground truths} all groundtruthsTP = 2/15 = 0.1333
P5 = T P a l l d e t e c t i o n \frac{TP}{all\ detection} all detectionTP = 2/5 = 0.4; R5 = T P a l l g r o u n d t r u t h s \frac{TP}{all\ ground truths} all groundtruthsTP = 2/15 = 0.1333
P6 = T P a l l d e t e c t i o n \frac{TP}{all\ detection} all detectionTP = 2/6 = 0.333; R6 = T P a l l g r o u n d t r u t h s \frac{TP}{all\ ground truths} all groundtruthsTP = 2/15 = 0.1333
将PR绘制成图:
以上,准备工作已经做好,下面就要讲述AP的计算方式。
AP 的计算有两种方式: A P 11 AP_{11} AP11 和 A P a l l AP_{all} APall。关于AP的计算一般使用的为 A P 11 AP_{11} AP11
【 A P 11 AP_{11} AP11】
- PR图:上图中的蓝颜色的曲线为
- A P 11 AP_{11} AP11:上图中红点的纵坐标的均值。红点如何选取的呢?
- 红点的横坐标为 [0,1]之间均匀取值11个,即 [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]。
- 纵坐标的取值为 该点的右侧的PR线的最高值。
- A P 11 = 1 11 AP_{11} = \frac{1}{11} AP11=111(1+0.6666+0.4285+0.4285+0.4285) = 26.84%
【 A P a l l AP_{all} APall】
- PR图:蓝色线
- A P a l l AP_{all} APall:红色虚线下方所有的面积。红色虚线的纵坐标是单调递减的。
A P 11 = AP_{11} = AP11=(1*(0.6666 - 0) + 0.6666 *(0.1333 - 0.0666) + 0.4285 * (0.4-0.1333) + 0.3043 * (0.4666 - 0.4)) = 24.56%
2.4 mAP、AP50、AP@50:5:95
mAP:如果是多类别目标检测任务,就要使用 mean AP。也就是对所有的类别进行AP的计算,然后去取均值。其定义为: m A P = 1 N ∑ i = 1 N A P i mAP=\frac{1}{N}\sum_{i=1}^{N}AP_{i} mAP=N1i=1∑NAPi
AP50:IOU阈值取 0.5
AP70:IOU阈值取 0.7
AP@50:5:95 指的是 IOU的值从 0.5 取到 0.95,步长为0.05,然后计算在这些IOU阈值下的AP的均值