目标检测算法中mAP、NMS和Focal Loss的基本概念及计算流程

释放双眼,带上耳机,听听看~!
本文介绍了目标检测算法中mAP、NMS和Focal Loss的基本概念、计算流程和相关算法步骤。包括IoU、Precision、Recall的定义,mAP的计算流程,COCO数据集的mAP,NMS算法步骤,以及Focal Loss对难易样本对loss的贡献控制。

1. mAP

1.1 基本概念

IoU

IoU的定义:预测框和真实框的交并比。

IoU用来定义正负样本,若IoU>threshold,则为正样本;若IoU<=threshold,则为负样本。

Precision & Recall

查准率:预测为正且预测对的样本与所有预测为正的样本之比。

Precision=TPTP+FPPrecision=frac{TP}{TP+FP}

查全率:预测为正且预测对的样本与所有实际为正的样本之比。

Recall=TPTP+FNRecall=frac{TP}{TP+FN}

1.2 mAP计算流程

当一个数据集通过我们的目标检测算法,得到了预测的框和预测的类别。接下来,我们就需要通过计算IoU来判定这些预测框的正负性,以及经过mAP来判定我们算法的好坏。

举例说明

Image1,2预测猫猫类别。红框为预测框,绿框为真实框。百分数为预测猫猫置信度。

目标检测算法中mAP、NMS和Focal Loss的基本概念及计算流程

根据置信度降序进行排序。将IoU>0.5的预测框置为TP,IoU<=0.5的预测框置为FP。
计算每个置信度阈值下的Precision和Recall:例如,confidence>=88%时,所有数据集中,(将confidence<88%的预测框忽略掉。多个预测框对应同一个GT,则置信度最高的那个视为TP,其他的视为FP)TP=1,FP=1,FN=2,因此Precision=1/2,Recall=1/3。

目标检测算法中mAP、NMS和Focal Loss的基本概念及计算流程

绘制出P-R曲线图,然后计算P-R曲线面积作为AP值。

目标检测算法中mAP、NMS和Focal Loss的基本概念及计算流程

计算步骤

0.选用较低的置信度阈值来筛选网络的预测框。使用nms去除高度重复的框。

1.根据置信度降序,并根据IoU阈值判定TP、FP、FN。

2.计算不同置信度阈值下的Precision和Recall,绘制P-R曲线。

3.P-R曲线面积即为AP值。

4.计算完每个类的AP值求平均即为mAP。

COCO数据集的mAP

COCO数据集的”AP”是对不同的IoU阈值的AP值取平均,再对类别取平均得到最终的mAP(在COCO中mAP也叫AP)。

2. NMS 算法

NMS发生在目标检测算法的最后一步,计算mAP的前一步。

目标检测算法中mAP、NMS和Focal Loss的基本概念及计算流程

NMS 步骤

(1) 将某一类别的bbx按照confidence从高到低排序。

(2) 记录当前confidence最大的bbx。

(3) 计算最大confidence对应的bbx与剩下所有的bbx的IoU,移除所有大于IoU阈值的bbx(保留小于IoU阈值的bbx索引)。

(4) 对剩下的bbx,循环执行(2)和(3)直到所有的bbx均满足要求(即不能再移除bbx)。

(5) 对每个类依次进行(1)~(4)操作。

(6) 跨种类比较,如果该框在多类别中都是较大confidence,保留最大confidence。

3. Focal loss

Focal Loss 原论文链接

我们首先了解一点,机器都是通过降低loss来达到最终的拟合。那么如果故意增大某一个loss的权重,就会使机器偏向于学习这部分的特征以降低这部分loss,最终提高了机器的在这方面的性能。

3.1 控制难易样本对loss的贡献

目标检测算法中mAP、NMS和Focal Loss的基本概念及计算流程

图1 绘制不同γ下的FL损失函数。横坐标为目标的预测概率pt,纵坐标为损失值。

γ=0gamma=0时,FL=CE为二分类交叉熵损失函数。当前面加上了调制系数(1−pt)γ(1-p_t)^gamma,我们就可以通过这个系数来控制难易样本对loss的贡献程度:

当目标预测概率为pt=0.9p_t=0.9时(pt∈[0,1]p_t∈[0,1]),我们可以说这是一个易区分的样本,得知(1−pt)γ(1-p_t)^gamma非常接近于0,FL的结果是非常接近0的,降低易区分样本的损失值。

当目标预测概率为pt=0.1p_t=0.1时,我们可以说这是一个难区分的样本,得知(1−pt)γ(1-p_t)^gamma非常接近于1,FL的结果是接近无限大的,增加难区分样本的损失值。

通过设计Focal Loss,降低易区分样本对loss的贡献,加大难区分样本对loss的贡献,最终使网络更加关注那些难区分的样本,从而提高网络的预测能力。

3.2 控制正负样本对loss的贡献

目标检测中往往负样本的数量远远大于正样本,这会导致网络将大部分的精力财力耗在了大量的负样本上,对最终的检测效果将是不利的,因此我们可以想到降低负样本对loss的贡献,增大正样本对loss的贡献,使网络对正负样本的关注度做一个权衡。

于是FL前又添加了一个权重因子αtalpha_t控制正负样本对loss的贡献:

FL(pt)=−αt(1−pt)γlog(pt)FL(p_t)=-alpha_t(1-p_t)^gamma log(p_t) αt∈[0,1]alpha_t∈[0,1]

正样本,αt=αalpha_t=alpha,一般取0.75。

负样本,αt=1−αalpha_t=1-alpha,则为0.25。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

用FaceSynthetics数据集训练控制网实现稳定扩散

2023-12-14 11:30:14

AI教程

单步与双步目标检测模型对比分析及原理解释

2023-12-14 11:46:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索