【目标检测】相关指标的引入与解析

目标检测之相关指标介绍

前言: 该篇为【目标检测】系列博文的开篇,也作为自己目标检测入门学习的总结和督促。内容主要是定性地介绍一些目标检测中常见术语和相关指标。

其中,术语和指标包括但不限于:标准框(Ground-truth bounding box),混淆矩阵(Confusion Matrix),交并比(Intersection over Union, IoU),非极大值抑制(Non-Maximum Compression, NMS), 置信度,真阳性(True Positive, TP),假阳性(False Positive, FP),真阴性(True Negative, TN),假阴性(False Negative, FN),TPR,FPR,敏感度(Sensitivity),特异度(Specificity), F β _ S c o r e F_{\beta}\_Score Fβ_Score,准确率(Precision),召回率(Recall),P-R曲线,ROC曲线,AUC,AP,mAP等等。

本文主要为从新手入门角度,了解相关术语和指标的来源和含义,不牵扯到具体的目标检测网络结构。

内容仅为自己学习中的个人理解,如有错误,会及时改之。

0 引入

0.1 一个检测问题

输入下面一张图,要求检测图中是否包含狗狗(目标),若包含,标注出其位置(如红框所示)。

在这里插入图片描述

0.2 定性分析

上述即是个标准的目标检测问题。且为简单的单目标检测问题。

从上述问题描述中,也可以看出,其包含了两部分内容:

(1)检测是否存在狗狗(分类)

(2)标注出所在位置(定位)

本节暂且不考虑如何具体详尽地解决该问题,而只定性分析,从而了解目标检测中一些常用术语和指标的来源及含义。

针对该问题可以想到一个简单的解决思路:

在图上生成无数个覆盖所有大小范围的(预定位)方框,用方框剪切图像,然后挨个检测每个方框剪切后的图像是否包含着狗狗,且方框完美包含

这确切说是得到一个能够解决上述问题的一个神经网络的训练思路而非上述问题的直接解决方案

该思路可类比参考RCNN(不知尚可),但不完全相同,RCNN是确定分类类型后,对方框进行位置精修。

按照分析和该解决思路,举例详细说明下。

如下图,标注出了上述无数覆盖所有大小范围方框的其中三个方框作为示意。

在这里插入图片描述

按照上述思路,也即,将覆盖所有大小范围的方框所框选的内容(上图右侧所示)逐一送入到某一网络,只需检测其是否包含着狗狗且完美包含即可。

如上图中,1号框明显不包含狗狗,PASS掉;2号框虽然包含狗狗,但似乎包含得不那么完美,PASS掉;3 号框包含着狗狗,且完美包含,那么就可以作为最终检测输出结果,目标达成。

此时 3 号框内容和方框位置即为我们得到的最终分类和定位结果。

0.3 术语与指标

其实,上述问题的分析过程中就已经隐藏着诸多目标检测需要注意的术语和指标。

以下通过问题来引入,更深入了解其含义:

  1. 如何表征方框内是否包含着目标对象?

    上图 1 号框,我们通过肉眼观察可知,不包含狗狗,分类结果可以描述其为”背景“;上图 2 号框和 3 号框,肉眼观察可知,包含着狗狗。而对于计算机而言,如何表达这种差异呢?毕竟计算机也不像人眼那么可以非黑即白的百分百地判断出图中包含内容,更毕竟,有时人眼观察到模糊图像也不能保证百分百区分出来。

    答案是我们可以使用一个 0~1 的数值来表征,该数值越接近 1,表示越确信其方框框选内容中包含着目标对象,即大小表征着对判断内容为目标类别的自信程度。

    在目标检测中,用于此目的的数值被称为分类置信度。该值代表当前方框中是否存在对象的概率。记为 P r ( o b j e c t ) P_r(object) Pr(object)

    了解分类网络的应该熟悉,通常模型输出后常接softmax,从而得到每个类别的置信度分数。此处的分类置信度即为针对狗狗类别的置信度分数。

  2. 如何表征方框完美包含了目标对象?

    为何要强调完美包含这词呢?如上图 2 号框和 3 号框所示,可以完全确定都包含着狗狗,即分类置信度可能都为 1。但从肉眼观察我们得知,3 号框可能更是我们想要的,而 2 号框位置有点点偏颇。那么如何来表征这种差异呢?

    这里我们就需要引入一个“标准答案”,即一个标准框,也就是监督学习中的“标签”。因为如果没有“标准答案”,我们无从定义“完美”一词。在目标检测中,这一“标准答案”,或者说是“标签”被称作标准框(Ground-truth bounding box,GT)。而上述中,我们生成的无数的一个个方框被称为预测框(Predicted bounding box)

    在有了“标准答案”,完美也就很好定义了。也就是无数预测框中的其中一个预测框恰好与标准框完全重合,此时预测框即为我们想要的完美结果。同样,对于计算机而言需要数字来表征该点。在目标检测中用于该目的的数值叫做交并比(Intersection over Union, IoU)

    交并比简单理解就是预测框与标准框的重叠程度。上述完美包含的情况即对应着 IoU = 1。交并比是从集合角度来计算,“交”即集合中的交集,“并”即集合中的并集。本小节不具体展开说明,本节只做引入,后节有详述。

    从上图中可以看出,(假设标签设定的标准框位置就是3号框所在位置),对于 1 号框,IoU = 0;对于 2 号框,与标准框重叠了一大部分,IoU 可能是 0.8(具体没计算,只是示意值);对于 3 号框,与标准框完全重叠,即 IoU = 1。

  3. 如何处理无法穷尽生成覆盖所有大小范围的方框这一事实。

    事实上,上述解决思路中有一个极大的BUG,即以生成无数个覆盖所有大小范围的(预定位)方框作为前提,但实际上,对计算机而言无法实现,且不可能去实现。

    那么上述分析中,对于有限的、无法覆盖所有大小范围的方框就会出现一些问题。可也要相信一个事实是,很多理论都是从理想条件向实际条件迈步的,该问题同样也可,只是需要添加一些描述

    首先,有限方框下,面临第一个问题就是可能无法达到“完美包含“这一目标。即生成的有限预测框可能没有恰巧与标准框重合(即IoU=1)情况。

    似乎该问题也很好解决,常规思路是,“只需取 IoU 最大情况”即可,也即取预测框与标准框重叠最多的情况。但这也只是针对单目标检测而言,而且,“取最大值情况”这一动态操作在网络中如何去具体实现是值得怀疑的。此外,对于多目标检测,如一个图中包含着两个目标,即两个 GT 框(Ground-truth bounding box) ,我们可能最终需要两个预测框,两个框的 IoU 很难一样,而我们两者都需要,就不存在着只取最大值。

    在目标检测中,解决该问题的方法是,对于 IoU 设定一个阈值。大于该阈值的,即可将此时预测框标注为可输出结果,更术语一点叫“正样本”。通常 IoU 可设定为 0.5。

    但此时又会出现一个问题,即 2 号框 和 3 号框的问题(当然实际中很大概率是并不止这两个),两者都是正样本,都可作为输出结果,但我们只需要一个输出结果,这就需要去除冗余预测框。从肉眼看,我们可能更想要 3 号框。

    插一句,在这里,1 号框定位完全错误,3 号框定位看起来比2 号框更准可以直观地通过预测框与真实框的 IoU 值大小来体现,此时含义下的 IoU 值大小在目标检测中有另外一个名词,叫定位置信度,也即定位准确的可信程度。记为 I O U p r e d t r u t h IOU_{pred}^{truth} IOUpredtruth
    这里会有个奇怪的问题,会给人一个错觉。即按照上述理论,似乎我们只需参考定位置信度便可了,因为似乎定位置信度的 IoU 就是表征着 预测框与标准框,即预测值与真实值差距。标准框就已经是目标对象的标准框,已经包含了目标对象,我们只需要 IoU 足够大,即预测框与标准框重合度足够高即可,因为标准框中一定包含着目标对象。产生此错觉的原因在于,我们是基于单类别单目标检测。如果存在多个类别目标多个GT框,那么我们就需要分类置信度和定位置信度来确定损失函数。此外,上述所有内容只是做了定性分析,未深入具体的实现原理,仅为了引入相关术语和指标用。

    先忽略以上错觉,继续接着上面想法,我们可以通过某种手段来删去重复结果,留下最佳结果。这种手段参考的数值可以有每个结果框的置信度结果框间的IoU(这里是预测框间的IoU,不同于上述预测框与标签框的IoU)。这里的置信度是最终结果框的置信度,可能不仅仅单一参考分类或定位。只使用定位置信度的话,可能会出现定位准但分类差的不好情况,只使用分类置信度,可能会出现分类准但定位差的不好情况。因此,我们可以考虑使用同时包含分类和定位置信信息的值,即上述的置信度,记为 C C C。计算如下
    C = P r ( p r o j e c t ) ∗ I O U p r e d t r u t h C = P_r(project) * IOU_{pred}^{truth} C=Pr(project)IOUpredtruth
    基于置信度和IoU来保留图中某一个目标的唯一预测结果。过程大致为通过IoU 删去置信度偏小所对应的方框,保留置信度尽量大的框框作为最终结果。

    该上述删去重复结果、冗余预测框的过程,在目标检测中被称为非极大值抑制(Non-Maximum Suppression, NMS)

0.3 小结

上述定性分析,引入了诸多目标检测可能牵扯到的术语和指标,包括了

Ground-truth bounding box, Predicted bounding box, Intersection over Union(IoU), Non-Maximum Suppression(NMS), 置信度等。

这些都是一些通过定性分析得到的一些基础内容。还有一大块重要内容——目标检测性能指标——未展示。

下面将从更理论角度出发来,从头再次对相关术语和指标进行梳理。

其中会包含一些指标计算的编程实现。

1 实现

1.1 方框坐标表示

目标检测需要实现对目标的定位,因此离不开定位结果表示,通常是使用方框表征。

方框表示有多个方法,包括

(1)左上角点坐标 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) 和 右下点坐标 ( x 2 , y 2 ) (x_2,y_2) (x2,y2)

(2)左上角点坐标 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) 和 长宽 ( w , h ) (w, h) (w,h)

(3)中心点坐标 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 和 长宽 ( w , h ) (w,h) (w,h)

三种方法都是等价的互通的,可以互相转化。

通常使用第(3)种方法,也即 ( x 0 , y 0 , w , h ) (x_0,y_0,w,h) (x0,y0,w,h) 来表示一方框。

1.2 交并比 IoU(Intersection over Union)

基本概念

通常预测框 (predicted bounding box) 和真实框 (ground-truth bounding box) 可表示如下

在这里插入图片描述

交并比表征了预测框(用 B p r e d B_{pred} Bpred表示)和真实框(用 B G T B_{GT} BGT)的重叠程度。是从集合角度进行的描述。

“交”即两者交集,“并”即两者并集,“比”即比值。本质上是面积的比值。

用式子描述如下:
I o U = I n t e r s e c t i o n U n i o n = B p r e d ∩ B G T B p r e d ∪ B G T IoU = \frac{Intersection}{Union} = \frac{B_{pred}\cap B_{GT}}{B_{pred}\cup B_{GT}} IoU=UnionIntersection=BpredBGTBpredBGT
用图像示意如下:

在这里插入图片描述

理论计算

根据 1.1,预测框和真实框都可以使用坐标进行表示。三种坐标可以相互转化,为了方便说明,假设采用第一种表示方式。即 预测框 ( x 1 p r e d , y 1 p r e d , x 2 p r e d , y 2 p r e d ) (x1_{pred},y1_{pred},x2_{pred},y2_{pred}) (x1pred,y1pred,x2pred,y2pred) ,真实框 ( x 1 G T , y 1 G T , x 2 G T , y 2 G T ) (x1_{GT},y1_{GT},x2_{GT},y2_{GT}) (x1GT,y1GT,x2GT,y2GT)

预测框与真实框交集同样为方框。若交集方框左上角坐标记为 ( x 1 i n t e r , y 1 i n t e r ) (x1_{inter}, y1_{inter}) (x1inter,y1inter) ,右下角坐标记为 ( x 2 i n t e r , y 2 i n t e r ) (x2_{inter},y2_{inter}) (x2inter,y2inter),则有
x 1 i n t e r = m a x ( x 1 p r e d , x 1 G T ) ,     y 1 i n t e r = m a x ( y 1 p r e d , y 1 G T ) ; x 2 i n t e r = m i n ( x 2 p r e d , x 2 G T ) ,     y 2 i n t e r = m i n ( y 2 p r e d , y 2 G T ) ; x1_{inter} = max(x1_{pred}, x1_{GT}),\ \ \ y1_{inter}= max(y1_{pred}, y1_{GT}); \\ x2_{inter} = min(x2_{pred}, x2_{GT}),\ \ \ y2_{inter} = min(y2_{pred}, y2_{GT}); x1inter=max(x1pred,x1GT),   y1inter=max(y1pred,y1GT);x2inter=min(x2pred,x2GT),   y2inter=min(y2pred,y2GT);
那么,对于交集(这里需要注意交集是否为空,即是否有交集,具体代码实现时考虑,此处不细究),则有
I n t e r s e c t i o n = B p r e d ∩ B G T = ( x 2 i n t e r − x 1 i n t e r ) ( y 2 i n t e r − y 1 i n t e r )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值