目标检测:NMS和计算mAP时的置信度阈值和IoU阈值

Posted studyer_domi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目标检测:NMS和计算mAP时的置信度阈值和IoU阈值相关的知识,希望对你有一定的参考价值。

  • 在目标检测问题中,好几处地方使用了阈值这个限制指标,主要有:1. NMS操作之前用到的置信度阈值a;2. NMS进行时用到的IoU阈值b;3.计算某类别AP时,统计TP,FP个数,用到置信度阈值c;4. 计算某类别AP时,统计TP,FP个数时,用到IoU阈值d。

  • NMS用到的IoU阈值,是拿除保留的预测框外的其余预测框跟同一类别中置信度最高的预测框IoU与其作比较。
  • 计算mAP用到的IoU阈值,是拿预测框与GT的IoU与其作比较。
  • NMS的置信度阈值主要是为了过滤掉一些背景预测框(一般来说one stage算法用的较多,因其没有two stage产生ROI,背景框较多)。
  • 计算mAP的置信度阈值主要是用来选取TOP N(置信度分数从高到低排名的前N个检测)的样本来统计TP,FP,FN,计算AP。

2.IOU设置过高或过低的问题

如果 IOU 阈值设置较低,样本的质量就难以保证;为了获得高质量的正样本,可以调高 IOU 阈值,但样本数量就会降低导致正负样本出现比例不平衡,且较高的 IOU 阈值很容易丢失小尺度目标框。

3.分类

①根据级联思想,通过不断提高IOU 阈值来获得高质量的正样本,能够在一定程度上提高小目标的检测效果,但存在随着 IOU 阈值不断提高,匹配的 Anchor 数量减少,导致漏检的问题。

②将 IOU 阈值从 0.5 降到 0.35,使用降低阈值的方法先保证每个目标都能有足够的锚框检测。同时为了解决正样本增加导致样本质量得不到保证的问题,提出最大化背景标签的方法,在最底层分类时将背景分为多个类别而不是二分类,对 IOU 大于0.1 的 Anchor 进行排序,幵对每个框预测 3 次背景值,取背景概率中最大的值作为最终背景,通过提高分类难度以此来解决正样本质量得不到保证的问题,提高了小目标的检测准确率。但此种方法可能会出现因IOU 阈值过低,造成无效的正样本数量过多,从而导致误检率提高的问题。

4.总结

对于不同的检测任务,如果待检测目标尺度之间相差不大,即数据集中大多为同一尺度目标时,可以适当降低 IOU 阈值再进行选取,对小目标特征实现最大程度的提取。在实际应用中,同一场景下的检测不可能只包含单一尺度的目标,存在不同目标尺度跨越相差较大的情况,如果固定 IOU 阈值进行统一检测筛选,会带来样本不平衡的问题,小目标特征极有可能被严栺的 IOU 阈值舍弃。因此,设置动态 IOU阈值作为不同尺度目标检测更具普适性,根据不同的样本数量动态调整,当负样本数量过高时不断提高 IOU 阈值平衡样本数量,避免了直接设置过高的 IOU 阈值而造成的漏检,训练出来的模型泛化性更强。

以上是关于目标检测:NMS和计算mAP时的置信度阈值和IoU阈值的主要内容,如果未能解决你的问题,请参考以下文章

目标检测评价指标mAP计算

目标检测算法-SoftNMS

[目标检测][python][cpp]非极大值抑制(NMS)算法原理以及CPP实现

[目标检测][python][cpp]非极大值抑制(NMS)算法原理以及CPP实现

NMS和Soft NMS

目标检测中的precision,recall,AP,mAP计算详解