欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

Neuro-11量表,跨模态coco数据集

终极管理员 知识笔记 53阅读
目标检测模型性能衡量指标、MS COCO 数据集的评价标准以及不同指标的选择推荐 0. 引言 0.1 COCO 数据集评价指标

目标检测模型通过 pycocotools 在验证集上会得到 COCO 的评价列表具体参数的含义是什么呢

0.2 目标检测领域常用的公开数据集 PASCAL VOCMicrosoft COCOMS COCO

在 MS COCO 数据集出来之前目标检测基本上用的是 PASCAL VOC 数据集现在 MS COCO 非常流行。这两个数据集均有自己的评判标准。

0.3 COCOCommon Objects in Context上下文中的常见对象数据集简介 0.3.1 介绍

COCO 数据集是一个可用于图像检测Image Detection语义分割Semantic Segmentation和图像标题生成Image Captioning的大规模数据集。它有超过 330K 张图像其中 220K 张是有标注的图像包含

150 万个目标80 个目标类别object categories行人、汽车、大象等91 种材料类别stuff categoris草、墙、天空等每张图像包含五句图像的语句描述且有 250, 000 个带关键点标注的行人

MS COCO官网 0.3.2 MS COCO 可以应用的任务

目标检测object detection使用 bounding box 或者 object segmentation (也称为instance segmentation)将不同的目标进行标定。

Densepose密集姿势估计DensePose 任务涉及同时检测人、分割他们的身体并将属于人体的所有图像像素映射到身体的3D表面。用于不可控条件下的密集人体姿态 估计。

Key-points detection关键点检测在任意姿态下对人物的关键点进行定位该任务包含检测行人及定位到行人的关键点。

Stuff Segmentation材料细分语义分割中针对 stuff class 类的分割草墙壁天空等

Panoptic Segmentation全景分割其目的是生成丰富且完整的连贯场景分割这是实现自主驾驶或增强现实等真实世界视觉系统的重要一步。

image captioning图像标题生成根据图像生成一段文字。

0.3.3 COCO 的 80 个类别 编号英文名称中文名称编号英文名称中文名称编号英文名称中文名称1person人28boat船55cup杯子2bicycle自行车29traffic light交通灯56fork叉子3car汽车30fire hydrant消防栓57knife刀4motorcycle摩托车31stop sign停车标志58spoon勺子5airplane飞机32parking meter停车计时器59bowl碗6bus公共汽车33bench长凳60banana香蕉7train火车34bird鸟61apple苹果8truck卡车35cat猫62sandwich三明治9boat船36dog狗63orange橙子10traffic light交通灯37horse马64broccoli西兰花11fire hydrant消防栓38sheep羊65carrot胡萝卜12stop sign停车标志39cow牛66hot dog热狗13parking meter停车计时器40elephant大象67pizza披萨14bench长凳41bear熊68donut甜甜圈15bird鸟42zebra斑马69cake蛋糕16cat猫43giraffe长颈鹿70chair椅子17dog狗44backpack背包71couch沙发18horse马45umbrella雨伞72potted plant盆栽19sheep羊46handbag手提包73bed床20cow牛47tie领带74dining table餐桌21elephant大象48suitcase行李箱75toilet厕所22bear熊49frisbee飞盘76tv monitor电视监视器23zebra斑马50skis滑雪板77laptop笔记本电脑24giraffe长颈鹿51snowboard单板滑雪78mouse鼠标25backpack背包52sports ball运动球79remote遥控器26umbrella雨伞53kite风筝80keyboard键盘27tie领带54baseball bat棒球棍 1. 目标检测中常见的指标

对于这样一张图片怎样才能算检测正确呢其中绿色为 GT红色为预测框。

IoU 大于指定阈值类别是否正确confidence 大于指定阈值

以上三点都是我们需要考虑的。

1.1 TP、FP、FN 1.1.1 定义 TPTrue Positive预测正确的预测框数量 [IoU > 阈值]同一个 GT 只计算一次FPFalse Positive检测到是同一个 GT 的多余预测框的数量 [IoU < 阈值]或者是检测到同一个 GT 的多余预测框的数量FNFalse Negative没有检测到 GT 的预测框数量 [漏检的数量] 阈值根据任务进行调整一般选择 0.5FP 就是“假阳性”就是模型误认为是 TP 1.1.2 例子说明 TP、FP、FN

举个例子理解 TP、FP、FN

对于张图片来说绿色 为 GT红色 为模型预测框IoU 阈值设置为 0.5。

对于中间这只猫来说在 绿色框GT 中的 预测框红色 和 绿色框 的 IoU 肯定是 >0.5 的所以它应该是一个 TP预测对了目标且 IoU > 阈值而对于 偏左的预测框 来说它和 GT 的 IoU 肯定是不足 0.5 的加之因为有 TP 的存在所以它是 FP。对于右下角的那只猫GT 是有的但模型并没有给出对应的预测框因此模型对于这只猫来说漏检了故 FN 的数量为 1。 1.2 APAverage Precision平均精度 1.2.1 Precision

P r e c i s i o n T P T P F P \mathrm{Precision \frac{TP}{TP FP}} PrecisionTPFPTP​

解释模型预测的所有目标Object中预测正确的比例 -> 查准率

模型认为正确的目标 中 确实预测对了多少

那么仅仅通过 Precision 这个指标能不能全面衡量模型的检测能力呢举个例子进行说明

同样的绿色的为 Ground Truth红色的为 预测框。

上面这张图片有 5 个目标但是网络只针对猫 ① 给出了预测框红色的剩下的猫都没有检测出来。这里的 TP1FP0。所以此时的 Precision 为

P r e c i s i o n T P T P F P 1 1 0 1 100 % \begin{aligned} \mathrm{Precision} & \mathrm{\frac{TP}{TPFP}} \\ & \frac{1}{1 0} \\ & 1\\ & 100\% \end{aligned} Precision​TPFPTP​101​1100%​

很明显对于这张图片网络漏检了 4 个目标但 Precision 又显示结果是非常好的。因此我们就可以知道了仅仅通过 Precision 无法评判检测网络的性能。为了解决这个问题我们引入了另外一个指标 —— Recall。

1.2.2 Recall

R e c a l l T P T P F N \mathrm{Recall \frac{TP}{TP FN}} RecallTPFNTP​

解释所有真实目标中模型预测正确的比例 -> 查全率

本应该检测对的模型检测对了多少

那么我们只使用 Recall 这个指标来判定模型的好坏吗举个例子说明

这张图片和上一张图片类似网络总共预测出了 50 个预测框即 50 个目标。这 50 个预测框中包括了所有要检测的目标那么该网络针对这张图片的 Recall 为

R e c a l l T P T P F N 1 1 0 1 100 % \begin{aligned} \mathrm{Recall} & \mathrm{\frac{TP}{TPFN}} \\ & \frac{1}{1 0} \\ & 1\\ & 100\% \end{aligned} Recall​TPFNTP​101​1100%​

很明显单单使用 Recall 无法评判模型的好坏。所以我们需要同时使用 Precision 和 Recall 这两个指标来进行网络性能的评判即引入 —— AP。

1.2.3 AP —— P-R 曲线下面积

AP 就是P-R曲线下方的面积而 P-R 分别为 Precision 和 Recall。

假设模型已经训练完毕验证集为下面 3 张图片

1.2.3.1 第一张图片

首先判断该图片中有几个目标GT很明显绿色的框有两个所以有两个 GT即

n u m o b j 0 2 2 。 \mathrm{num_{obj}} 0 2 2。 numobj​022。

接下来同一个列表统计网络所检测到的目标信息

GT idConfidenceOB (IoU0.5)10.98True10.61False

Note:

GT id 为 预测框匹配的 GT 的 idConfidence 为预测框的置信度是此类别的概率OB 为判断该预测框是否是 TP。该表从上到下的顺序是根据 Confidence 降序排列的对于 GT id 2网络并没有给出预测框所以表中没有相关信息 1.2.3.2 第二张图片

这张图片中目标的个数绿色的框有 1 个所以累积目标个数

n u m o b j 2 1 3 。 \mathrm{num_{obj}} 2 1 3。 numobj​213。

表也需更新

GT idConfidenceOB (IoU0.5)10.98True30.89True30.66False10.61False 1.2.3.3 第三张图片

累积目标个数

n u m o b j 3 4 7 。 \mathrm{num_{obj}} 3 4 7。 numobj​347。

更新表

GT idConfidenceOB(IoU0.5)10.98True30.89True60.88True70.78True30.66False10.61False40.52True 1.2.3.4 计算 AP

得到表以后我们计算针对不同 Confidence即取不同 Confidence 阈值得到的 Precision 和 Recall 的信息。

GT idConfidenceOB (IoU0.5)10.98True30.89True60.88True70.78True30.66False10.61False40.52True

首先将 Confidence 的阈值设置为 0.98Confidence ≥ 0.98 的目标才算匹配正确只有一个预测框符合条件表中的第一行。

TP 1; FP 0; FN 6

在 Confidence≥0.98 的条件下TP1 没什么问题FP0 是因为阈值的存在FN6 是因为累积目标个数 num_ob7所以 F N n u m _ o b − T P 7 − 1 6 \mathrm{FNnum\_ob - TP} 7 - 1 6 FNnum_ob−TP7−16。因此我们可以得到 P r e c i s i o n T P T P F P 1 1 0 1 \mathrm{Precision \frac{TP}{TP FP} \frac{1}{10}1} PrecisionTPFPTP​101​1和 R e c a l l T P T P F N 1 1 6 0.14 \mathrm{Recall \frac{TP}{TP FN} \frac{1}{16}0.14} RecallTPFNTP​161​0.14
Note这个TP; FP; FN是看那个表就不区分什么第几张图片了看表就可以。

将 Confidence 阈值设置为 0.89

此条件下TP 2; FP 0; FN num_ob - TP 7 - 2 5我们可以得到 Precision 和 Recall

将 Confidence 阈值设置为 0.66

此条件下TP4; FP1; FNnum_ob-TP7-43我们可以得到 P r e c i s i o n T P T P F P 4 4 1 0.80 \mathrm{Precision \frac{TP}{TP FP} \frac{4}{41}0.80} PrecisionTPFPTP​414​0.80和 R e c a l l T P T P F N 4 4 3 0.57 \mathrm{Recall \frac{TP}{TP FN} \frac{4}{43}0.57} RecallTPFNTP​434​0.57

全部计算完毕后结果如下表所示。

RankPrecisionRecall11.00.1421.00.2831.00.4241.00.5750.800.5760.660.5770.710.71

我们可以根据求得的一系列的 Precision 和 Recall 绘制 P-R 曲线。以 Recall 为横坐标Precision 为纵坐标得到 P-R 曲线如下图所示。

在绘制 P-R 曲线时需注意对于 Recall横坐标需要滤除一些重复数据图中用框框住的即为参与计算的点有两个点没有被框它俩不参与 AP 的计算。根据表中的数据可知Recall0.57 有 3 个值此时需保留 Precision 最大的值即

RankPrecisionRecall11.00.1421.00.2831.00.4241.00.5750.800.5760.660.5770.710.71

图中阴影部分的面积就是 AP计算如下重复的 Recall 已经滤除

RankPrecisionRecall11.00.1421.00.2831.00.4241.00.5760.710.71

R e c a l l ∑ i 1 R a n k ( R e c a l l i − R e c a l l i − 1 ) × max ⁡ ( P r e c i s i o n i , . . . , R a n k ) R e c a l l ∑ i 本行 R a n k ( R e c a l l 本行 − R e c a l l 上一行 ) × 本行及以下最大的 P r e c i s i o n \begin{aligned} \mathrm{Recall} & \sum_{i1}^{\mathrm{Rank}} (\mathrm{Recall}_i -\mathrm{Recall}_{i-1}) \times \max(\mathrm{Precision}_{ i, ..., \mathrm{Rank}}) \\ \mathrm{Recall} & \sum_{i本行}^{\mathrm{Rank}} (\mathrm{Recall}_{本行} -\mathrm{Recall}_{上一行}) \times 本行及以下最大的\mathrm{Precision} \end{aligned} RecallRecall​i1∑Rank​(Recalli​−Recalli−1​)×max(Precisioni,...,Rank​)i本行∑Rank​(Recall本行​−Recall上一行​)×本行及以下最大的Precision​

根据公式可以求得阴影的面积即 AP 为

R e c a l l ( 0.14 − 0 ) × 1.0 ( 0.28 − 0.14 ) × 1.0 ( 0.42 − 0.28 ) × 1.0 ( 0.57 − 0.42 ) × 1.0 ( 0.71 − 0.57 ) × 0.71 0.6694 \begin{aligned} \mathrm{Recall} & (0.14 - 0) \times 1.0 (0.28 - 0.14) \times 1.0 (0.42 - 0.28) \times 1.0 (0.57 - 0.42) \times 1.0 (0.71 - 0.57) \times 0.71 \\ & 0.6694 \end{aligned} Recall​(0.14−0)×1.0(0.28−0.14)×1.0(0.42−0.28)×1.0(0.57−0.42)×1.0(0.71−0.57)×0.710.6694​

了解完 AP 后我们就可以进一步得到一个新的指标 —— mAP。

1.3 mAP(mean Average Precision即各类别 AP 的平均值)

mAP 就是各类别 AP 的平均值计算公式如下

m A P 1 n c ∑ i 1 n c A P i \mathrm{mAP \frac{1}{nc}\sum^{nc}_{i1}AP_i} mAPnc1​i1∑nc​APi​

其中 nc 为类别数。

1.4 注意事项

以上的 TP、FP、FN 都是经过 NMS 处理后得到的预测框。

2. MS COCO 评价指标中每条数据的含义

MS COCO 官网说明

Note图片中虽然写的是 AP但实际上表示的是 mAP。

2.1 Average Precision (AP) A P \mathrm{AP} APMS COCO 的主要评价指标设置的 IoU 阈值为 IoU range(0.5, 1.00, 0.05) 共 10 个 IoU 的 mAP 的均值计算公式如下
A P 1 10 ( m A P I o U 0.5 m A P I o U 0.55 m A P I o U 0.60 m A P I o U 0.65 m A P I o U 0.70 m A P I o U 0.75 m A P I o U 0.80 m A P I o U 0.85 m A P I o U 0.9 m A P I o U 0.95 ) \mathrm{AP \frac{1}{10}(mAP^{IoU0.5} mAP^{IoU0.55} mAP^{IoU0.60} mAP^{IoU0.65} mAP^{IoU0.70} mAP^{IoU0.75} mAP^{IoU0.80} mAP^{IoU0.85} mAP^{IoU0.9} mAP^{IoU0.95})} AP101​(mAPIoU0.5mAPIoU0.55mAPIoU0.60mAPIoU0.65mAPIoU0.70mAPIoU0.75mAPIoU0.80mAPIoU0.85mAPIoU0.9mAPIoU0.95) A P I o U 0.50 \mathrm{AP^{IoU}0.50} APIoU0.50将 IoU 阈值设置为 0.5 得到的 mAP 值就是上面我们举的例子这个取值也是 PASCAL VOC 的评价指标。 A P I o U 0.75 \mathrm{AP^{IoU}0.75} APIoU0.75是更加严格的标准因为 IoU 的阈值越大说明网络预测框与 GT 重合度越来越高 -> 目标的定位越来越准这对网络来说是很难的。 2.2 Across Scales APsmallmAP 针对小目标 若检测目标GT的像素面积小于 3 2 2 32^2 322则将其归为小目标 ——衡量网络对于小目标的平均查准率APmediummAP 针对中目标 若检测目标GT的像素面积在 [ 3 2 2 , 9 6 2 ] [32^2, 96^2] [322,962] 之间则将其归为中目标 ——衡量网络对于中等目标的平均查准率APlargemAP 针对大目标 若检测目标GT的像素面积大于 9 6 2 96^2 962则将其归为大目标 ——衡量网络对于大目标的平均查准率

通过这三个指标可以看出该目标检测网络对于不同尺度目标的检测效果。如果我们的任务需要检测的目标都是较小的我们应该更加关注与 A P s m a l l \mathrm{AP^{small}} APsmall 参数而不是 A P l a r g e \mathrm{AP^{large}} APlarge。

2.3 Average Recall (AR)

对于目标检测网络在代码部分会限制每张图片最终预测框的数量这里的 max 就是这个数量。如 max100即每张图片最终预测 100 个预测框。而这里的 A R m a x 100 \mathrm{AR^{max}100} ARmax100 就表示在每张图片预测框阈值为 100 的情况下平均的查全率Recall是多少。

A R m a x 1 \mathrm{AR^{max}1} ARmax1在每张图片预测框数量阈值为 1 的情况下平均的查全率Recall是多少 A R m a x 10 \mathrm{AR^{max}10} ARmax10在每张图片预测框数量阈值为 10 的情况下平均的查全率Recall是多少 A R m a x 100 \mathrm{AR^{max}100} ARmax100在每张图片预测框数量阈值为 100 的情况下平均的查全率Recall是多少

从上图可以看到 A R m a x 100 64 % \mathrm{AR^{max}100}64\% ARmax10064% A R m a x 10 63.3 % \mathrm{AR^{max}10}63.3\% ARmax1063.3% A R m a x 1 45.2 % \mathrm{AR^{max}1}45.2\% ARmax145.2%。这说明 max 取 100 和取 10 相差不大进一步说明了模型训练时使用的数据集每张图片中目标GT的数目并不是很多基本上在 10 左右而当预测框数量限制在 1 时它的 AR 仅为 45.2%说明每张图片的目标个数一般是 >1 的。

2.4 AR Across Scales

与 AP、AP across scales 类似AR across scales 表示对应不同目标尺度的 AR

A R s m a l l \mathrm{AR^{small}} ARsmallAR 针对小目标 若检测目标GT的像素面积小于 3 2 2 32^2 322则将其归为小目标 ——衡量网络对于小目标的平均查全率Recall A R m e d i u m \mathrm{AR^{medium}} ARmediumAR 针对中目标 若检测目标GT的像素面积在 [ 3 2 2 , 9 6 2 ] [32^2, 96^2] [322,962] 之间则将其归为中目标 ——衡量网络对于中等目标的平均查全率Recall A R l a r g e \mathrm{AR^{large}} ARlargeAR 针对大目标 若检测目标GT的像素面积大于 9 6 2 96^2 962则将其归为大目标 ——衡量网络对于大目标的平均查全率Recall 3. 各种指标的选择 —— 基于不同的任务

不同的任务需要使用不同的指标。

3.1 mAP 于 PASCAL VOC 的 mAP 来说 A P I o U 0.50 \mathrm{AP^{IoU}0.50} APIoU0.50 是要看的因为它是 PASCAL VOC 的主要评价指标。对于 MS COCO 数据集来说 A P \mathrm{AP} AP第一行10 个 mAP 的平均是要看的因为它是 MS COCO 的主要评价指标。如果我们对 目标框定位精度要求较高 的话我们可以关注 A P I o U 0.75 \mathrm{AP^{IoU}0.75} APIoU0.75如果我们对 小目标检测要求比较高 的话我们可以关注 A P s m a l l \mathrm{AP^{small}} APsmall通过这个值可以了解网络对于小目标检测的平均查准率整体情况如果我们对 中目标检测要求比较高 的话我们可以关注 A P m e d i u m \mathrm{AP^{medium}} APmedium如果我们对 大目标检测要求比较高 的话我们可以关注 A P l a r g e \mathrm{AP^{large}} APlarge 3.2 AR

主要关注下面两个指标

A R m a x 10 \mathrm{AR^{max}10} ARmax10 A R m a x 100 \mathrm{AR^{max}100} ARmax100

如果它俩 AR平均查全率相差很小的话 可以减少网络预测框的个数从而提高目标检测的效率。

参考 目标检测mAP计算以及coco评价标准COCO数据集介绍

标签:
声明:无特别说明,转载请标明本文来源!