Multiple Anchor Learning for Visual Object Detection论文翻译 – CVPR2020

论文下载地址:点击此链接

没有翻译的太过详尽,也只是作为自己的一个记录,若有错误还请各位大佬多多包涵。

Abstract

分类和定位是目标检测器的两个支柱任务,在基于CNN的检测器中,这两个模块通常是在一个固定的候选anchor或bbox集中优化。这样会大大限制联合优化分类和定位的可能性,作者提出了一个MAL方法,用来选择anchor并联合优化分类和定位这两个模块。作者首先构建了anchor bags并从每个bag中选择最具有代表性的anchor,但这样可能会导致迭代选择的过程难以优化。为解决此问题,作者又通过扰动anchor相应的特征来反复降低anchor的置信度,从而解决MAL的问题。MAL以对抗性的selection-depression的方式寻求最佳解决方案,并充分利用多个anchor及其特征来学习检测模型。

Introduction

为在共享的局部特征得到丰富的候选框,通常是在特征图上引入手工设定的密集的anchor。这些anchor生成尺度和长宽比均匀分布的bbox,使具有各种尺度和长宽比的目标在训练时能够平等地表示。但是,在一组固定的手工设定的anchor下进行优化会极大地限制联合优化分类和定位的可能性。因为在训练过程中,人们通常是利用loU作为分配anchor的唯一标准。每个有被分配的anchor都独立地监督网络学习以进行分类和定位,并且分类与定位之间是没有交互的,所以一个精确定位的检测框可能会有较低的分类置信度,并可能在NMS被抑制掉。

在本文中,作者提出了Multiple Anchor Learning(MAL),一种自动的anchor学习方法,可以从anchor与目标匹配的角度去共同优化分类和定位。在MAL的训练阶段,通过选择IoU排在较前的anchors,构造每个目标的anchor bag。 MAL通过结合分类和定位分数,评估出每个bag中的positive anchors。在每次训练迭代中,MAL使用所有positive anchors来优化训练损失,并最终选择分数最高的anchor。这样分类分数和定位分数就能同时达到最高。

MAL是基于多实例学习(MIL)在anchor的选择损失上进行的优化。但是,常规MIL在迭代选择过程可能难以达到最优化。每次迭代中选择得分最高的anchor可能会产生次优解,比如目标的一部分被错误地定位,但由于分类分数较高,因此总分也较高。为解决这个问题,作者提出一种selection-depression优化策略,通过扰动高分anchor的特征来反复降低anchor的置信度,这样往往会找到潜在的最优解,使置信度较低的positive anchor能够有机会参与学习。通过从单个anchor的监督变为多个anchor的监督,MAL可以充分利用多个anchor/特征来学习到更好的检测器。
这项工作的贡献包括:
1、提出了MAL,通过对anchor进行评估选择来联合优化目标检测的分类和定位模块。
2、提出了一种优雅并且有效的选择-抑制优化策略,防止MAL在检测器训练期间陷入次优解。
2、显著提升了sota方法的效果

以前的方法基于anchor对目标的分类和定位都是最佳的假设。但对于部分遮挡和不规则形状的目标,这种启发式方法是不可行的,并且可能会错过最佳的anchor/特征。考虑到可能引起次优解的非凸目标函数,我们提出了一种对抗选择-抑制策略来缓解这一问题。

The Proposed Approach

MAL是通过查找用于分类和定位的最佳的Anchor/特征来改进RetinaNet。

RetinaNet Revisit

RetinaNet是目前最优的one-stage检测器之一,由主干网络和两个子网络组成,一个用于分类,另一个用于定位。特征金字塔在RetinaNet的backbone末尾使用,根据特征金字塔输出的各层特征图,分类子网可以预测类别概率,回归子网则使用anchor boxes来预测目标位置。为了提高效率,两个子网的输入共享。考虑到前景-背景类别的极端不平衡,作者提出用focal loss来防止在训练过程中大量产生负样本。
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020

anchor被分为正负样本,分别记为aj+和aj-,fθ(.)表示分类,γ用来平衡正负anchor的重要性,正anchors被用来优化目标定位:
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020

其中θ表示网络参数, gθ(.)表示边界框回归,分类损失采用Focal loss,定位损失采用Smooth L1损失。

在网络学习期间,每个有被分配的anchor都独立地监督目标分类和定位的学习,但是没有考虑分类和定位在所分配的anchor上是否兼容,这可能会导致一些定位准确但分类置信度较低的anchor被NMS抑制。

Multiple Anchor Learning

为了缓解各个anchor独立优化的缺点,作者提出了Multiple Anchor Learning(MAL)。在每次学习迭代中,选择anchor bag中的高分实例来更新模型。在更新后,模型再以新的置信度去评估每个实例。模型的学习和anchor的选择迭代进行,最终实现最优化。
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
为达到这个目的,我们先对第i个对象构造一个anchor bag 记作Ai。anchor bag包括与GT的IoU在top k的anchors。 MAL与网络参数学习(即反向传播)一起评估Ai中每个anchor的联合分类和定位置信度,用于选择anchor,并指示了各anchor在网络参数演变过程中的重要性。简单起见,回归损失只考虑对正anchor的学习,负anchor只参与分类损失。MAL的目标函数:
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
转换为损失函数:
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
其目的是为第i个目标选择一个最优的正anchor,并学习网络参数θ。

Selection-Depression Optimization

用随机梯度下降法优化公式3、4是一个非凸问题,可能会导致选择次优anchor。为解决这一问题并选择最优anchor,我们提出通过对anchor的对应特征增加扰动来反复降低anchor的置信度。这种学习策略被称为选择-抑制优化,以一种对抗的方式解决MAL。

1) Anchor Selection.

根据Fθ(aj, bi), 传统的MIL算法会倾向于选择得分最高的anchor,然而,在目标检测中,从每个bag中选取得分最高的anchor是困难的。作者没有在训练阶段选择公式3中得分最高的anchor,而是提出了一种‘all to top 1’,由anchor bag选择anchor的策略,在学习过程中线性地降低anchor bag中的anchor数量直至1。设λ=t/T,t和T是当前和总的迭代次数,设|Φ(λ)|表示排序在前几位的anchor的指数, |Ai|表示anchor bag中的anchor数,
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
从loss求最小变成了找最后置信度最大的那个anchor。 在早期的训练阶段,MAL利用目标区域内的多个anchors/特征进行检测模型的学习,并在最后一个epoch收敛,获得最优的anchor。

2) Anchor Depression

受反向注意力网络的启发,作者提出了anchor的抑制步骤,来扰动所选anchor的特征,降低其置信度。
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
MAL是在retinanet的基础上,在训练过程中添加了anchor抑制和anchor选择模块,在测试时使用和retinanet相应的架构。U和V表示在抑制之前和之后的卷积特征图,M和M’表示抑制之前和之后的**图(注意力图)。

为进一步优化训练损失,MAL对所选的anchor学习更强的特征。也就是给未被选中的anchor额外的参与训练的机会。
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
ω为全局平均池化后的U,l是U的通道索引,接着生成新的经过抑制后的注意力图M’,由将M中的较高值降为0得到:
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
其中I\mathbb I表示0-1指示函数,P是较高值的位置。扰动后的特征图为:
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020

1是单位矩阵,◦表示各元素相乘。将特征图重新表述为:
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
Ψ(λ)表示有多少像素被扰动。

3) Implementation

MAL检测器是在retinanet的基础上实现的,特征经fpn提取,anchor生成机制和retinanet一样(anchor的数量和大小尺度)。

在网络训练的前向传播过程中,计算每个anchor的检测置信度Fθ(aj, bi)来最小化损失。根据置信度来选择top-k anchor,然后在所选anchor的监督下更新网络参数。在选择anchor后进行anchor抑制。在下一次迭代中,再次进行锚点选择,选择高分锚点。

MAL的推理过程与RetinaNet完全相同,使用学习到的网络参数来预测分类分数和目标包围盒,并经NMS进行过滤。由于MAL只是在检测器的训练过程中用来学习更多有代表性的特征,所以我们最后学出来的检测器能够在不增加计算代价的情况下取得了性能的提高。

4) Optimization Analysis

anchor的选择-抑制策略近似于一个对抗的过程。选择操作找到最大限度减少损失的高分anchor。抑制操作对所选anchor的相应特征添加扰动,使anchor的置信度降低,检测损失再次增大。选择-抑制策略可以帮助学习者更好地找到MAL的非凸目标函数的解。如图4第一条曲线所示,MAL选择了一个次优锚,陷入了损失函数的局部最小值。在第二条曲线中,anchor depression增加了损失,使得局部最小值被“填充”。因此MAL继续寻找下一个局部最小值,继续优化。这样在最终收敛时, MAL能够有更好的机会找到最佳解决方案。
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020

Experiments

Ablation Study

Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020

Comparison with State-of-the-Art Detectors

Multiple Anchor Learning for Visual Object Detection论文翻译 -- CVPR2020
除非作者标记,否则没有使用多尺度训练,可以看到使用MAL后,相比retinanet提升还是很大的。在加入多尺度训练后,backbone使用Resnext-101,AP最终能到47.0.

总结

MAL主要是用来解决分类和定位置信度之间存在的的不匹配问题,作者首先结合了分类与定位置信度,选出分数较高的anchor组成anchor bag,然后用anchor bag中的anchors来更新模型的参数,再用更新后的模型来对被选择的anchor的分类与定位置信度进行重新评估,并不断重复这一过程,最终得到最优的anchor和模型参数。而为了解决在选择anchor时存在的一个局部最优问题,作者又提出选择-抑制策略,这是一个对抗性的策略,通过选择操作来找到使损失最小化的anchor,但可能会陷入局部最优,所以又通过抑制操作降低anchor的置信度来跳出局部最优,并不断重复这一过程,增大得到最优解的概率。

部分参考于:Multiple Anchor Learning for Visual Object Detection 论文笔记

相关文章: