Probabilistic Anchor Assignment with IoU Prediction for Object Detection论文阅读翻译 - 2020ECCV

Probabilistic Anchor Assignment with IoU Prediction for Object Detection论文阅读翻译

论文下载地址:点击此链接跳转.
这是博主自己在github整理的目标检测方向论文的合集,应该算比较全,目前2020ECCV持续更新中,即将更新:2020IJCAI合集,欢迎下载…

一、Abstract.

       锚点分配也就是目标检测中确定哪些锚点被分配为正负样本,是目标检测中的一个核心步骤,可以显著地评价模型性能。本文提出了一种新的anchor分配策略,该策略根据模型的学习状态自适应地将anchor分为正负样本,使anchor能够以概率的方式对正负样本的划分进行推理。为此,作者先计算基于模型的anchor得分,然后用这些分数来拟合一个概率分布,根据概率将anchor分为正负样本,对模型进行训练。此外作者还研究了训练和测试目标之间的差距,并提出了以预测检测框的IOU作为定位质量的一种评估来减少二者之间的差异。分类和定位质量的综合评分会用作NMS中的框的选择指标,与作者提出的anchor分配策略一致提高了检测器性能。该方法在RetinaNet的基础上只增加了一个卷积层,并且不需要每个位置有多个anchor,效率较高。

二、Introduction

       目标检测是对图像中的目标做分类和定位,是计算机视觉中的基本问题之一。在大多数基于cnn的检测器中是通过在每个空间位置枚举多个尺度和长宽比的anchor来表示不同大小和形状的目标。这样就需要执行anchor分配策略来将anchor分为正负样本。最常用的策略是根据anchor和GT之间的IoU值来划分正负样本。对于每个GT,如果一个或多个anchor和其的IoU值超过了一定阈值,则将anchor标为正样本。这些anchor分类和定位的目标值(即回归偏移)是由目标类别和GT的空间坐标决定。这种启发式方法简单直观,但也有其明显的局限性,也就是忽略了相交区域所包含的内容,相交区域内可能包含有噪声背景、附近的目标或者目标对象中有意义的部分很少。最近有一些研究也发现了这一局限性,提出了各种新的anchor分配策略。这些工作包括基于特定的检测似然、anchors IoU值的统计量或anchor的干净度评分来选择正样本。与baseline相比,这些方法都带来了一些改进,也验证了anchor分配在目标检测中的重要性。
       在本文中,作者希望进一步扩展这些思想,提出了一种新的anchor分配策略。为了使anchor分配策略有效,不再是仅仅基于anchor和GT之间的IoUs来将anchor分配为正负样本,还会基于模型对标签分配做推理的可能性。这样模型会需要参与分配过程,正样本会根据模型的不同而变化。当没有anchor和GT的IoU很高时,为减少anchor设计不当所造成的影响,部分anchor会被分配为正样本。也就是在这种情况下,模型会在anchor中找到对目标最有意义的anchor分为正样本(可能不必要是最高IOU的anchor)。另一方面,当模型发现质量和竞争力都很高的anchor有很多时,这些anchor都会被视为正样本,以免混淆训练过程。为满足所有条件,需要对正样本的anchor的质量进行评估来反映模型的学习现状,即参数值。
       基于此作者提出了一种概率anchor分配策略(PAA),该策略会根据相关模型的学习状态自适应地将一组anchor分为正负样本。为此作者先是定义了一个检测框分数来反映分类和定位的质量,然后确定这个分数和训练目标之间的关联,并将得分表示为两个损失的组合。基于这个评分机制去计算每个anchor的分数来反映模型如何为每个anchor检测目标寻找有用的线索。通过这种分数机制去找到两种模式的概率分布,也就是将得分作为概率分布的样本,建模两种模式的高斯混合模型,如图1所示。根据其概率,anchor被分为正负样本。这样就可以将anchor的分配问题转换为概率分布的最大似然估计,其中分布的参数是由anchor分数决定的。基于模型计算的anchor分数是从概率分布中采样的假设,作者期望模型能以概率的方式去推断样本的分配,从而使模型的训练比其他非概率分配更容易。此外,由于正样本是根据anchor的分数分布自适应选择的,因此不需要预定义正样本数量,也不需要手工设定IoU阈值。
在这里插入图片描述
       作者发现在大多数目标检测器中,测试机制(仅在NMS期间根据分类分数选择框)和训练机制(尽量减少分类和定位损失)之间都存在着不一致。在理想情况下,检测框的质量应当不仅基于分类,还要基于定位。为了改善这种不完整的评分机制,同时减少训练和测试之间的差异,作者提出将预测的检测框的IOU看作定位质量,并且将IOU与分类分数相乘作为检测框的排序指标。这种评分很直观,这样在测试过程中的边界框评分机制不仅与训练过程中使用的目标共享相同的基础,也和提出的将分类和定位同时考虑的anchor分配策略共享相同的基础,如下图所示。结合提出的PAA,这个简单的扩展大大提升了检测性能。作者还将IoU预测和中心度预测做了比较,证明了该方法的优越性。
在这里插入图片描述
       由于在后处理中加入了名为评分投票的改进,作者提出的每一种方法都在消融实验中显示出了明显的改进,并且在COCO test-dev也有明显改进。作者的模型只需要添加一个卷积层,并且在每个空间位置只使用一个anchor,因此与RetinaNet相比其参数量更少。作者提出的anchor分配可以用gpu并行,并且在测试时间上不需要额外的计算。所有这些都验证了作者提出的方法的有效性。

Contributions

       1. 通过在检测器模型中计算anchor分数以及最大化概率分布中的分数似然,将anchor分配建模为一个概率过程,使模型能以概率的方式去推断anchor分配,并且自适应地确定正负样本。
       2. 为了使anchor分配、优化和后处理过程的目标一致,作者提出去预测检测框的IoU,并使用分类和定位的统一评分作为NMS排序的度量。在此基础上,作者提出了分数投票法来作为一个额外的后处理,这样可以使用统一的分数来进一步提高性能。
       3. 作者验证了提出方法的有效性。

三、Methods

3.1 Probabilistic Anchor Assignment Algorithm

       作者的目标是设计一个anchor分配策略,这个策略主要考虑三个关键因素:首先,它应该从与之关联的模型中找到证据来验证使用anchor识别目标的可能性,从而评估给定anchor的质量。其次,应当是自适应地将anchor分为正负样本,这样就不需要IoU阈值这样的超参。最后为了使模型能够以概率的方式对正负样本的分配进行推理,分配策略应被表述为概率分布的最大似然。综上,作者设计了一个anchor评分机制,并提出了一个有考虑到评分机制的anchor分配策略。也就是通过定义了一个anchor分数来映射其边界框对于最近的GT g的预测质量,其实也就是计算一个分类评分和定位分数,然后进行相乘:
在这里插入图片描述

       其中Scls, Sloc和λ分别anchor a对于g的分类分数,定位分数以及控制两个分数的相对权重。x表示输入图像,fθ表示参数为θ的模型。可以看到这个评分函数是依赖于模型参数θ的。
       我们可以定义并从分类头的输出得到Scls。由于定位头的输出是被编码为偏移值的而不是分数,如何去定义Sloc呢,这里作者将Sloc定义为预测框和GT框间的IOU值,因为IOU值的范围与分类分数的范围相匹配,其值也能与定位质量相对应:
在这里插入图片描述
       对分数函数S取负对数可以得到:
在这里插入图片描述
       分类损失是二元交叉熵损失,可用Focal loss替换,定位损失是IOU损失,可用GIoU loss替换。两个损失的相加负值可作为一个给定了GT框的anchor的打分函数。为了使模型能够以概率的方式推理预测anchor是否是正样本,作者将特定GT的anchor分数作为样本建模为一个概率分布,并最大化anchor分数似然。根据每个anchor正负样本的概率,将anchor分为正负样本。由于目标是将一组anchor分成两组(正、负),因此可以使用任何可以建模多模态样本的概率分布。这里作者选择两种模态的高斯混合模型(GMM)来建模anchor分数分布。
在这里插入图片描述
       w1, m1, p1, w2, m2, p2分别表示两个高斯函数的权重、均值和精度。给定一组anchor分数,GMM的似然可以通过期望最大化(EM)算法进行优化。利用EM估计的GMM参数,可以确定每个anchor是正样本还是负样本的概率。通过这些概率值,可以使用各种方法将anchor分成两组。下图说明了基于anchor概率的不同分离边界的例子。
在这里插入图片描述
       Procedure 1中提出的算法就使用的这些边界划分机制的其中之一。为了计算anchor分数,anchor先分配给与其IOU值最高的GT。为了使EM有效,作者从每个金字塔级别收集top-K anchors,然后使用了EM。非top-k anchor被分为负样本。
在这里插入图片描述
       正样本数量取决于估计的概率分布下的模型参数来自适应地决定。这与以前忽略模型或者是启发式地确定样本数量作为超参但没有将anchor分配建模为概率分布的最大似然的方法形成对比。FreeAnchor定义了一个检测自定义似然,并将召回率和准确率的乘积建模为训练目标。和作者的方法显著不同的是作者没有分离召回率和精确度的似然函数,也没有限制具有完整分类分数的anchor数量为1。相比之下,作者提出的似然是基于在模型参数下两种形式的一维GMM,使anchor的分配策略能够很容易被模型识别。与其它需要复杂子程序的anchor分配策略相比,学习会更加容易,也带来了更好的性能。
       为将作者的方法应用到目标检测器的训练过程中,作者制定了输入图像x的最终的训练目标(为简洁省略了x):
在这里插入图片描述
       Ppos(α, θ, g)和Pneg(α, θ, g)用来指示anchor是正负样本的概率,由提出的PAA得到。∅表示背景类。PAA算法可以看作是用来计算Ppos和Pneg并将它们近似为二进制值来简化优化的过程。在每次训练迭代估计了Ppos和Pneg后,损失的梯度就能算了,也能进行SGD。

3.2 IoU Prediction as Localization Quality

       作者提出的anchor分配策略中的anchor评分函数是由训练目标得到,所以anchor分配的处理是和loss优化对齐的。但这种情况不适用于测试因为测试时的NMS是仅根据分类分数来进行的处理。为解决这个问题,可以将局部质量纳入到NMS的考虑中,这样就可以使用定位和分类相乘的评分函数。但是GT信息只有训练时才有,测试时不能计算检测框与其对应GT之间的IoU。因此作者提出对模型进行扩展,预测预测框与其对应GT框间的IOU值。这个扩展只需要一个单独的卷积层作为额外的预测头来对每个anchor输出标量值即可。作者使用sigmoid激活来获得有效的IOU值,这样训练目标就变为了:
在这里插入图片描述
       LIOU P是IoU的预测损失,定义为预测IOU与真实IOU之间的二元交叉熵损失。将预测的IOU值作为定位分数,就可以通过将分类和定位分数相乘得到检测框的统一分数,并将其作为NMS的排序度量。这带来了显著的性能提升,尤其是与所提出的anchor概率分配结合时。其整体网络架构和FCOS, ATSS都差不多,都是RetinaNet加了一些修改,不过作者的结构在每个空间位置只使用一个anchor,与使用9个anchor的基于RetinaNet的模型相比,具有更少的参数量和FLOPs。

3.3 Score Voting

       作者还提出了一个简单有效的后处理,分数投票,这个方法是在NMS后对留下的每个框b起作用,具体如下:
在这里插入图片描述
        b ^ \hat{b} b^,si,σt分别是更新后的框,由分类分数和定位分数进行计算的分数和调整相邻框bi的权重的超参。这种投票算法是受方差投票启发得到的,pi也是以相同方式定义的。但是作者没有使用方差预测来计算每个相邻框的权重,而是使用的是分类和定位的统一评分si和pi一起作为权重。
       作者发现单独使用pi作为框的权重能够提升性能,用它乘以si则可以进一步提高性能。与方差投票相反,没有方差预测的检测器可通过使用pi来对框进行加权来使用分数投票。带有IoU预测头的检测器则可以通过pi乘以si以获得更好的准确率。si可作为一个可靠的权重,因为它不会像只有分类分数时给分类分数高而定位质量差的框分配较大的权重。

四、Experiments

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

五、个人总结

       最近标签分配的相关论文数量是真的多啊,FreeAnchor后大家都看到了这里的油水,都赶紧来占坑。FreeAnchor从最大似然估计的角度提出了一个综合考虑recall和precision的检测定制似然,ATSS是根据样本IOU值的均值和方差的和来动态地确定划分正负样本的阈值。还有MAL,AutoAssign,PPDet等等,都是标签分配的相关论文,后续会把MAL补上,Autoassign还得再看一遍。
       本文先是提出了PAA,将分类分数和定位分数相乘得到anchor分数,然后通过高斯混合模型来建模anchor分数的概率分布,并最大化anchor的分数似然,根据各anchor的概率将其分为正负样本。但由于测试时无法计算预测框和GT之间的IOU,作者提出增加一个卷积来预测预测框的IoU以作为衡量定位质量的指标。这样就可以计算分类和定位的综合得分来作为NMS中anchor的排序度量。所提出的方法只是在RetinaNet的基础上加了一个卷积,并且每个位置不需要多个anchor,效果很好,非常不错的一篇文章,值得仔细思考思考。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值