[目标检测]-NMS系列-cvpr2019-Adaptive NMS 原理详解

1.资源

Adaptive NMS: Refining Pedestrian Detection in a Crowd


2.简介

Adaptive NMS的研究者认为这在物体之间有严重遮挡时可能带来不好的结果。
我们期望当物体分布稀疏时,NMS大可选用小阈值以剔除更多冗余框;而在物体分布密集时,NMS选用大阈值,以获得更高的召回。
既然如此,该文提出了密度预测模块,来学习一个框的密度。

就是想要去自适应的调整NMS时的阈值,使得待检测目标不密集时,用较小的NMS阈值杀掉其他的bbox,待检测目标密集呢(出现重叠),尽可能的保留正确的bbox


3.Adaptive NMS

如何表示密集度呢?

密度定义公式
d i : = max ⁡ b j ∈ G , i ≠ j iou ⁡ ( b i , b j ) d_{i}:=\max _{b_{j} \in \mathcal{G}, i \neq j} \operatorname{iou}\left(b_{i}, b_{j}\right) di:=bjG,i=jmaxiou(bi,bj)

i表示每个生成的候选框bbox,j表示真实标注的框。
即每一个候选框的密度定义为,其与所有真实框的最大iou。以此来表示密度。

于是阈值就被定义为:
N M : = max ⁡ ( N t , d M ) N_{\mathcal{M}}:=\max \left(N_{t}, d_{\mathcal{M}}\right) NM:=max(Nt,dM)
这里的M就表示为,当前集合内,置信度得分最高的候选框bbox。

于是伪代码可以表示如下:

在这里插入图片描述
集合B:就是所有出来的候选框;
集合S:每个候选框的置信度得分;
集合D:每个候选框的密度情况;
Nt:NMS杀框时的阈值;

其中红色框内为原始的NMS流程;绿色框内为Adaptive NMS方法。


4.当Soft-Nms 与 Adaptive NMS结合时

原soft-nms公式:
s i = { s i , iou ⁡ ( M , b i ) < N t s i ( 1 − iou ⁡ ( M , b i ) ) , iou ⁡ ( M , b i ) ≥ N t s_{i}=\left\{\begin{array}{ll}s_{i}, & \operatorname{iou}\left(\mathcal{M}, b_{i}\right)<N_{t} \\s_{i}\left(1-\operatorname{iou}\left(\mathcal{M}, b_{i}\right)\right), & \operatorname{iou}\left(\mathcal{M}, b_{i}\right) \geq N_{t}\end{array}\right. si={si,si(1iou(M,bi)),iou(M,bi)<Ntiou(M,bi)Nt

流程图
在这里插入图片描述

可以看到soft-nms是慢慢降低si的得分,即惩罚重叠bbox的得分,而不是简单粗暴的直接删除。相当于慢慢的去筛选重叠部分的bbox。
注意 绿色的部分只替换红色的中间那行,也就是说,绿色的if条件省略掉了,他与红色的相同。

这里将soft-nms 与 adaptive nms结合,可以得到。

密度定义:
d i : = max ⁡ b j ∈ G , i ≠ j iou ⁡ ( b i , b j ) d_{i}:=\max _{b_{j} \in \mathcal{G}, i \neq j} \operatorname{iou}\left(b_{i}, b_{j}\right) di:=bjG,i=jmaxiou(bi,bj)
阈值定义:
N M : = max ⁡ ( N t , d M ) N_{\mathcal{M}}:=\max \left(N_{t}, d_{\mathcal{M}}\right) NM:=max(Nt,dM)
置信度惩罚公式定义:
s i = { s i , iou ⁡ ( M , b i ) < N M s i f ( iou ⁡ ( M , b i ) ) , iou ⁡ ( M , b i ) ≥ N M s_{i}=\left\{\begin{array}{ll}s_{i}, & \operatorname{iou}\left(\mathcal{M}, b_{i}\right)<N_{\mathcal{M}} \\s_{i} f\left(\operatorname{iou}\left(\mathcal{M}, b_{i}\right)\right), & \operatorname{iou}\left(\mathcal{M}, b_{i}\right) \geq N_{\mathcal{M}}\end{array}\right. si={si,sif(iou(M,bi)),iou(M,bi)<NMiou(M,bi)NM

可以看到,这就是soft-nms,只不过对于Nm这个阈值,有个自适应选择的过程。

通常我们的 f ( i o u ( M , , b i ) ) = e − iou ⁡ ( M , b i ) 2 σ f(iou(\mathcal{M},,b_{i})) = e^{-\frac{\operatorname{iou}\left(\mathcal{M}, b_{i}\right)^{2}}{\sigma}} f(iou(M,,bi))=eσiou(M,bi)2

再解释一下吧。这里虽然惩罚了重叠的bbox,使得其置信度分数降低。但是,提高了阈值,假设密度得分高于Nt阈值,则正式的NMS阈值将加大,选择没有那么重叠的bbox不进行惩罚,从而提高了高遮挡下bbox的保留


5. 密度预测模块

论文把,密度预测作为一个回归任务,密度的值采用上述定义计算,损失函数为Smooth-L1 loss。

在训练CNN时,每次还需要求出密度作为监督信号,训练网络能够拟合这个密度函数,即输入一张图片,能输出每个位置的物体密度,但这个参数怕是作者调了不短的时间,模型如下:在这里插入图片描述

对应论文第四部分,原文这块也说的不清楚,而且有点坑的是没有公布代码。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值