论文阅读|目标检测之PAA,将标签分配问题转为最大似然估计问题


paper: https://arxiv.org/abs/2007.08103

code:https://github.com/kkhoot/PAA

摘要

又一篇anchor匹配策略的文章,不过确实是简单有效,在ATSS上只需要很小的修改就可以提升性能。GFL2在框的预测上用上了概率分布,这里又在anchor匹配上用上了概率分布。

在本文中,我们提出了一种新的anchor分配策略,该策略根据模型的学习状态自适应地为每个gt将anchor分为正样本和负样本,从而能够以概率的方式推理区分。 我们首先计算anchor在当前模型条件下的得分,然后用这些得分拟合一个概率分布出来,然后利用这个概率分布来区分正负样本,然后模型再用这些正负样本进行训练。然后,我们研究了训练和推理之间的gap,提出了用预测IoU的方式来衡量localization质量。我们把定位质量得分和分类得分结合起来用到NMS中来进行anchor的分配。这个方法只需要增加一个卷积层,而且每个位置不需要多个anchor,所以非常的高效。

1. Introduction

最初的基于固定IoU阈值给anchor分配标签的方法有一个较大限制,即忽略了gt box和anchor的交集中的内容可能包含大量的噪音背景、附近物体或者只包含target 物体的一小部分。针对这一问题,有很多分配策略做出了改进,如ATSS、FreeAnchor等,本文则是对已有的基于anchor和gt的IoU的正负样本的分配规则进行了扩展,考虑到了模型的当前的状态信息,这样的话,正样本的分配是和模型有关的,当没有一个anchor和gt有较高的IoU的时候,需要把一些anchors分配为正样本,来降低由于anchor设计的不合理造成的影响。在这种情况下,模型认为的最优的anchor(不一定是最高IoU,而是有更多于gt有关线索的anchor)可以作为正样本。另外,当有太多的anchors模型都认为质量很高的时候,这些anchor都可以认为是正样本。因此,最重要的是,为了满足这些条件,anchor的质量评估需要可以反映出模型当前的学习状态,也就是其参数值。

基于这个动机,我们提出了probabilistic anchor assignment(PAA)策略,根据模型的学习状态自适应的将所有的anchor分配成正负样本。How?首先,我们定义一个得分,可以反映出检测框分类和定位的质量,然后,我们确定该分数与训练目标之间的联系,并将分数表示为两个损失目标的组合。基于这种评分方法,我们为每个anchor都进行打分,得到模型认为的这个anchor是否对于检测目标物体非常有用的评价。基于这些anchor得分,我们可以得到两种形式的概率分布,可以最好的表示出模型是正样本或者是负样本的概率。

在这里插入图片描述

如图1,然后,在找到的概率分布下,选择那些正样本概率高的作为正样本。这样的话,就把anchor分配的问题变成了最大似然估计问题。基于这种假设,模型计算出来的得分是从这个概率分布中采样出来的,我们期望模型可以从概率的角度去infer具有可分性的样本,让训练变得更加容易。另外,由于正样本是从anchor得分的概率分布中选择出来的,因此,不需要预先设置正样本的数量和IoU的阈值。

基于此评分方案,我们计算各个锚点的分数,这些分数反映了模型如何找到有用的线索来检测每个锚点中的目标对象。 借助这些锚定分数,我们旨在找到两种方式的概率分布,它们最能代表分数的正样本或负样本,如图1所示。

此外,我们发现在大多数检测器在训练(最小化分类和定位loss)和测试(NMS时只根据分类得分选择anchor )的时候存在不一致(inconsistency)的情况。理想情况下,检测框的质量应该是由分类和定位一起决定的,为了解决这个问题,我们提出了预测IoU的值来作为定位质量,然后将这个IoU的预测值乘上分类得分的值作为排序指标。如图2:

在这里插入图片描述

我们的模型仅需要添加单个卷积层,并且每个空间位置都使用单个anchor,类似于ATSS,与RetinaNet相比,参数数量更少。anchor分配时可以使用GPU进行并行化,并且测试时不需要额外的计算。 所有这些证据证明了我们提出的方法的有效性。

本文的主要工作概括如下:

1、提出了一种新的anchor框的分配策略,计算模型得分的概率分布,用最大似然来估计这个概率分布,自适应的选取正负样本。

2、为了对齐anchor分配,优化和后处理过程,提出对IoU进行预测,同时使用分类和定位得分一起来对检测框进行排序来做NMS,最后,我们提出了一种得分投票后处理方法来进一步提升performance。

3、进行了消融实验,进一步验证了我们方法的有效性。

2. Related Wordks

3. Proposed Methods

3.1 Probabilistic Anchor Assignment Algorithm

我们设计的anchor分配策略考虑了三个因素:

首先,以模型能够通过该anchor找到gt的可能性来衡量anchor的质量。

其次,将anchor划分为正负样本应该是自适应的,而不需要IoU阈值这样的超参数。

最后,分配策略应该被构建成一个概率分布的最大似然,使得模型能够以概率的方式推理分配。在这方面,我们设计了一个anchor score机制,并提出了一个将score机制考虑在内的anchor分配策略。

具体而言,我们定义一个anchor的得分要能够反映它预测的离他最近的gt的边框的质量。一个直观的想法是计算分类得分和定位得分,然后将它们相乘:

S ( f θ ( a , x ) , g ) = S c l s ( f θ ( a , x ) , g ) × S l o c ( f θ ( a , x ) , g ) λ S(f_θ(a, x), g) = S_{cls}(f_θ(a, x), g) × S_{loc}(f_θ(a, x), g)^λ S(fθ(a,x),g)=Scls(fθ(a,x),g)×Sloc(fθ(a,x),g)λ, (1)

其中 S c l s , S l o c , λ S_{cls}, S_{loc},\lambda Scls,Sloc,λ分别是anchor a a a 相对gt G的分类得分、定位得分和控制两个得分权重的标量。 x x x是输入图片, f θ f_\theta fθ是参数为 θ \theta θ的模型,这个打分函数依赖于参数 θ \theta θ S c l s S_{cls} Scls可以通过classification head输出得到,但是如何定义 S l o c S_{loc} Sloc不太明显,因为localization head的输出是编码后的offset而不是score,所以我们使用预测框和gt 框的IoU作为 S l o c S_{loc} Sloc的得分,

S l o c ( f θ ( a , x ) , g ) = I o U ( f θ ( a , x ) , g ) S_{loc}(f_θ(a, x), g) = IoU(f_θ(a, x), g) Sloc(fθ(a,x),g)=IoU(fθ(a,x),g) ,(2)

对这个质量得分取负log,我们可以得到:

在这里插入图片描述

其中, L c l s , L I o U L_{cls},L_{IoU} Lcls,LIoU分别表示binary cross entropy loss3 和 IoU loss ,当然也可使用Focal Loss 或 GIoU Loss 替换。为了让模型可以从概率的方法分配这个anchor到底是正样本还是负样本,我们把anchor对于给定GT的质量得分看成是从一个分布中采样得到的,然后用最大似然的方法来估计这个分布的参数,然后,通过这个概率分布来将anchor分配为正负样本。由于我们的目的是将anchor分为两组,正样本和负样本,任意可以建模这个多峰分布的概率分布都可以满足,这里我们选择了GMM(高斯混合模型),用两个高斯分布来建模这个anchor的得分分布。

在这里插入图片描述

w1, m1, p1 和 w2, m2, p2 分别表示两个高斯分布的权重,均值和精度。给定一组anchor得分,这个GMM的就可以使用Expectation-Maximization(EM)算法来实现。使用EM算法来估计得到这个概率分布的参数后,就可以得到每个anchor属于正负样本的概率。得到概率后,有各种技术来将anchor划分为正负样本两组,图3展示了基于不同anchor概率边界来划分的不同方式。
在这里插入图片描述

我们提出的算法使用了其中的一种,算法流程如下Procedure1所示,为了计算anchor得分,anchors首先被分配给最高IoU的GT(line 3).为了使得EM有效,我们从每个金字塔层选择top k的anchors(line 5-11)并执行EM(line 12)。非top k的anchors则被分配为负样本(line 16)。

在这里插入图片描述

正样本数量是根据这个模型输出的概率分布(随着参数变化而变化)自适应的决定的,这个是和其他不利用模型状态的分配方法的最大的区别。

总结一下我们这个方法,并将其嵌入到训练过程和目标函数中,得到关于输入图片x的最终训练目标如下(为了简洁省略了x):

在这里插入图片描述

其中 P p o s ( a , θ , g ) , P p o s ( a , θ , g ) P_{pos}(a, θ, g),P_{pos}(a, θ, g) Ppos(a,θ,g)Ppos(a,θ,g)分别表示一个anchor是正样本和负样本的概率,可以通过我们的PAA获取。∅表示背景类,我们的PAA算法可以被视为一个计算 P p o s , P n e g P_{pos},P_{neg} Ppos,Pneg并将它们近似为二进制值(即将anchor定为两组)来简化优化的过程。在每个train iter中, 每当估计 P p o s , P n e g P_{pos},P_{neg} Ppos,Pneg后,损失函数相对于参数 θ \theta θ的参数就可以计算得到,然后通过随机梯度下降更新。

3.2 IoU Prediction as Localization Quality

我们提出的标签分配中的anchor评分函数起源于训练目标(即两个任务的综合损失),因此anchor分配过程与损失优化非常一致。 但是测试时却仅对分类分数执行非最大抑制(NMS),这就效果较差。 为了解决这个问题,可以预测一个定位质量得分并将之整合进NMS过程,使得NMS过程可以使用相同的评分函数(等式1)。 但是,GT信息仅在训练期间可用,因此无法在测试时计算预测的box与其对应的GT box之间的IoU,于是我们提出一个简单解决方案,即增加一个的卷积层作为额外的预测头来预测每个预测框和GT的IoU值,学习它的target很容易得到。在输出上使用Sigmoid激活函数来获取一个有效的IoU值,然后训练目标就变成(为了简洁省略x):

在这里插入图片描述

其中的 L I o U P L_{IoU P} LIoUP就是IoU预测的损失,它的定义为预测的IoUs和真实IoUs的二值交叉熵。有了这个预测的IoU就能够使用等式1来计算一个统一的边框质量评分,然后用此作为NMS阶段排序的依据。实验表面,增加IoU预测带来了显著的提高,尤其是加上我们提出的PAA策略。整体的网络架构就是RetinaNet上修改了特征塔并且增加了一个额外的预测头,这与FCOS和ATSS一样。

请注意,此结构在每个空间位置仅使用一个anchor,因此与使用九个anchor的RetinaNet-based的模型相比,其参数和FLOP数量较少。

3.3 Score Voting

作为额外改进,我们提出了一个简单有效的后处理方案,该score voting方法作用于NMS后的每个边框b上,如下所示:

在这里插入图片描述

其中 b ^ , s i 和 σ t \hat{b},s_i和\sigma_t b^,siσt分别是更新后的边框,等式1计算得到的得分,以及用于调整邻近边框 b i b_i bi的参数,其中Pi的定义受Multiple anchor learning for visual object detection这篇文章中的variance voting(方差投票)启发,但是,我们不使用方差预测来计算每个相邻框的权重。 取而代之的是,我们使用统一的分类评分和本地化权重以及 p i p_i pi

我们发现使用只使用 p i p_i pi作为box的权重可以提高性能,将其乘以 s i s_i si将进一步提高性能。 与variance voting(方差投票)相反,没有方差预测的检测器仅通过对pi加权即可使用得分投票。 像我们一样,具有IoU预测头的检测器可以将其乘以更高的精度。 与仅分类分类不同, s i s_i si充当可靠的权重,因为它不会为具有较高分类分数和较差的定位质量的框分配较大的权重。

4 .Experiments

表1中左边是不同的正负样本划分方法的比较,右边是该算法中每个部件的消融实验 。

在这里插入图片描述

表2中左边是不同自适应标签分配方法的比较,右边是使用不同骨干网的对比。

在这里插入图片描述

图4。训练时标签分配的进化(a),iter过程中每个gt的正样本数量的点图(b)。

在这里插入图片描述

表3,和其它的SOTA算法比较

在这里插入图片描述

5.Conclusions

文章提出一种新颖的在训练过程中随着模型参数变化而自适应标签分配算法——probabilistic anchor assignment (PAA),PAA将标签分配问题转化成了最大似然估计问题,即求一个使得评估标准下的预测框得分最大模型参数,在这个优化的过程中,随着参数的变化,标签分配也会变化。而且PAA算法该算法在标签分配、优化时的损失函数计算以及测试时的NMS后处理中对于边框质量都采用了一个统一的评估标准(为此加了一个只有一个卷积层的head分支用于预测每个预测框和对应GT的IoU),即同时评估了分类得分和IoU得分,这种一致的评估方式使得模型精度提高不少。最后,在后处理阶段,文章还提出了一个score voting的部分来进一步提高精度,但是提升不大。

这里模型增加一个IoU预测来预测于GT的IoU的思路还是比较有启发的,此外这种转成最大似然估计问题的思路也很棒。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值