Multiple Anchor Learning for Visual Object Detection论文翻译学习笔记
基于目标检测的多Anchor[1]学习
Abstract
分类和定位是目标检测器检测器的两个支柱。 但是在基于CNN的检测器中,这两个模块通常在固定的候选(或anchor)边框中进行优化。 这种设置大大限制了联合优化分类和定位的可能性。 因此在本文中,我们提出了一种多实例学习(MIL[2])方法,该方法选择Anchor并联合优化基于CNN的对象检测器的两个模块。 我们的方法被称为多重Anchor学习(MAL),它构造Anchor bags并从每个bag中选择最具代表性的Anchor。 这样的迭代选择优化过程可能变成NP-hard问题[3]。 为解决此问题,通过扰动anchor相应的特征来反复降低anchor的置信度。 MAL以对抗的选择-抑制方法寻找最优解,充分利用多个anchor/特征来学习检测模型。 实验表明,与最近的方法相比,MAL在常用的MS-COCO[4]目标检测基础上显着改善了RetinaNet[5]基线,并实现了最新的检测性能。
1. Introduction
卷积神经网络(CNN)的目标检测器在过去几年中取得了空前的进步,在最近的 two-stage和single-stage目标检测器中,边界框分类和定位模块都是高度集成的:他们对共享局部特征进行运算,并对损失函数的总和进行优化。
为了给共享局部特征的提供丰富候选对象,一种流行的方法是在卷积特征图上引入hand-crafted的密集Anchor。这些anchor生成尺度和长宽比均匀分布的边界框,使各种尺度和长宽比的目标在训练时能够平等表示。
然而在一组固定的hand-crafted的anchor下做优化会极大地限制联合优化分类和定位的可能性。训练时人们通常是利用IoU[6]值作为分配anchor的唯一标准。每个有被分配的anchor都独立地监督网络学习以进行分类和定位。由于分类与定位间是没有交互的,所以一个定位精确的检测结果可能分类置信度较低,并可能会在NMS[7]中被抑制掉。

- Figure 1:NMS之前和之后的baseline检测器(RetinaNet)和多Anchor学习(MAL)的检测输出。 baseline检测器可能会生成具有低分类分数的高定位IoU的边框(黄色bbox)或具有高分类分数的低定位IoU的边框(红色bbox),这会导致NMS后出现次优结果 。 MAL产生的边框与最优分类和定位的同时出现率很高,从而在NMS之后获得更好的检测结果。
本文作者提出了Multiple Anchor Learning(MAL),一种自动的anchor学习方法,从anchor与目标匹配的角度联合优化分类和定位。在MAL的训练阶段,通过选择IoU排名靠前的anchors来构造每个目标的anchor bags。 MAL将分类和定位分数进行结合后评估出每个bag中的positive anchors。在每次训练迭代中,MAL使用所有的positive anchors来优化训练损失,选择综合分数最高的anchor作为最终选择,这样可以使分类和定位都达到最优的概率会更大高。

- Figure 2:MAL的主要思想是在特征金字塔网络中,为每个对象bi构造一个Anchor bags Ai。结合网络参数学习(即反向传播),MAL评估了Ai中每个Anchor点的联合分类和定位置信度。 这样的置信度用于Anchor选择,并且表明在网络参数演进期间Anchor的重要性。
MAL是基于多实例学习(MIL)在anchor的选择损失上进行的优化,但是传统MIL的迭代选择过程可能难以优化。每次迭代中选择得分最高的anchor可能会导致次优解,比如目标的一部分被错误地定位,但由于分类分数较高,因此总的分数也较高。为解决这个问题,作者提出一种选择-抑制优化策略,通过扰动高分anchor的特征来反复降低anchor的置信度,这往往会使我们找到潜在的最优解,使置信度较低的positive anchor能够有机会参与学习。通过从单个anchor的监督变为多个anchor的监督,MAL可以充分利用多个anchor/特征来学到更好的检测器。
这项工作的贡献包括:
1、提出一种多anchor学习的方法,通过评估和选择anchor来联合优化目标检测的分类和定位模块。
2、提出一种选择-抑制优化策略,防止MAL在检测器训练期间陷入次优解。
3、在常用的MS COCO数据集上。显著提升了最新技术的效果
2. The Proposed Approach
MAL是基于RetinaNet网络体系结构实现的。 MAL通过找到用于分类和定位的Anchor/特征的最优选择来升级RetinaNet。 接下来,我们简要回顾一下RetinaNet在对象分类和定位方面的原始机制。 然后,我们详细阐述MAL如何通过评估Anchor来改善分类和定位。 最后,我们提出了一种Anchor选择-抑制策略,以寻求MAL的最优解。
2.1. RetinaNet Revisit
RetinaNet是目前性能最优的one-stage检测器之一,由主干网络和两个子网络组成,一个用于分类,另一个用于定位。特征金字塔在RetinaNet的主干网络后使用,根据特征金字塔输出的各层特征图,分类子网可以预测类别概率,回归子网则使用anchor boxes来预测目标位置。为提高效率,两个子网的输入是共享的。考虑到前景背景类的极端不平衡,作者提出用focal loss来防止在训练过程中产生大量的负样本。
令x∈X是标签y∈Y的输入图像,其中X是训练图像集,Y是类别的标签集。 在不失一般性的前提下,将B表示为正类图像中目标的ground truth边框。bi>∈B由类别标签bicls 和空间位置biloc组成。 分类置信度ajcls和边框输出Anchor aj的ajloc分别由分类和框回归子网(box regression subnets)预测。 如果图像中的anchor与 ground-truth boxes的IoU大于阈值,则将其分为正类(positive)的aj+;否则,将其分为负类(negative)的aj-。 Anchor用于监督网络学习,公式1如下:

其中ƒθ(·)表示分类过程, γ是平衡negative/positive anchor的重要性的一个因素。同时,使用positive anchors来优化目标定位,公式2如下:

其中θ表示网络参数,gθ(·)表示 bounding-box regression过程,两个公式实际是通过最小化Focal Loss, Lcls(aj , bicls)和Smooth-L1 loss, Lloc(aj , biloc)被实施。
在网络学习期间,每个分配的anchor都独立地监督目标分类和目标定位的学习,而无需考虑检测和定位在分配的anchor上是否兼容。这可能导致精确定位的anchor,但具有较低的分类置信度,可以通过以下非最大抑制(NMS)程序来抑制。
2.2. Multiple Anchor Learning
为了缓解独立anchor优化的弊端,我们提出了多anchor学习(MAL)方法,如Figure 2所示。在每次学习迭代中,MAL在anchor bags中选择高分实例来更新模型。更新后,模型会以新的置信度评估每个实例。 模型学习和anchor选择迭代地朝着最终优化的方向执行。
为了实现此目的,我们首先为第ith个对象构造一个anchor bag Ai。 Anchor bag包含了根据anchor与ground truth之间的IoU比排序的前k个anchor。 结合网络参数学习(即反向传播),MAL可以评估Ai中每个anchor的节点分类和定位置信度。这样的置信度用于anchor选择,并且指示在网络参数演化期间anchor的重要性。 为简单起见,仅考虑对正类(positive)anchor的学习,而对负类(negative)anchor的学习则遵循公式1。
MAL遵循以下目标函数,公式3:

其中fθ(.)和gθ(.)分别给出分类和定位分数,而β是正则化因子。 它旨在为第ith个对象选择最优 正类anchor a i∗,并学习网络参数θ∗。
公式3中定义的目标函数可以转化为损失函数公式4:

其中Lcls和Lreg分别是分类损失和检测损失,如第2.1节中所定义。 负anchor的损失遵循Focal Loss的定义。
2.3. Selection-Depression Optimization
用随机梯度下降(SGD)优化上述公式3和公式4是一个非凸问题,可能会导致选择的是次优anchor。 为了缓解这个问题并选择最优anchor,我们建议通过扰动它们相应的特征来反复降低选定anchor的置信度。 这种学习策略,称为 选择-抑制优化,以一种对抗性方式解决了MAL的问题。
Anchor Selection
根据Fθ(aj,bi),传统的MIL算法倾向于选择得分最高的anchor。然而在目标检测的背景下,从每个anchor bag中选择得分最高的anchor是非常困难的。我们提出一种 “All-to-Top-1”的选择策略从anchor bag中选择anchor,以进行反向传播,而不是在训练阶段通过公式3 选择最高分anchor。在学习进行过程中,我们线性减少 | Ai |中的数值(bag中anchor的数量)直到变为1。形式上,设λ= t / T,其中t和T分别是当前和总的训练迭代次数。然后让φ(λ)表示排名较高的anchor的指标,|φ(λ)| = | Ai |∗(1 −λ)+1。 最后,将公式3改写为公式5:

遵循这一原则,MAL在早期训练时期(epoch)利用目标区域内的多个anchor/特征来学习检测模型,并在最后一个时期(epoch)收敛得到单个最优anchor。
Anchor Depression
受到反向注意力网络(inverted attention network)的启发,我们开发了anchor抑制程序,来扰动所选anchor的特征以降低其置信度(如Figure 3)

- Figure 3: MAL的实施。在训练期间,它包含添加到RetinaNet中的附加anchor选择和anchor抑制模块。 在测试期间,它使用与RetinaNet完全相同的体系结构。 “ U”和“ V”分别表示抑制之前和之后的卷积特征图。 “ M”和“ M'”分别表示抑制之前和之后的激活图。
为了进一步优化训练损失,MAL被迫学习选定anchor的更强大特征。合理的做法是给未被选择的anchor额外的机会去参加训练。形式上,我们将特征图和注意力图分别表示为U和M,其中M的计算公式为
,其中w是U的global average pooling,l是U的通道索引。然后我们生成了一个新的抑制注意力图
通过将较高的值减小到零,其中
是0-1指标函数,而P是具有较高值的位置。扰动过的特征图如下公式6:

1是单位矩阵,◦表示各元素相乘,Ψ(λ)表示有多少像素被扰动。将特征图重新表述为公式7:

2.4. Implementation
MAL检测器的实现基于RetinaNet检测器,其中输入图像的特征由FPN主干提取,anchor生成设置与RetinaNet相同,即特征地图上每个像素有9个anchor,其三个size分别为{20、21 / 3、22 / 3},三个纵横比为{1:2,1:1:2:1},在各个级别上,anchor覆盖了相对于输入图像的32-813像素的缩放范围。
在网络训练的前向传播过程中,通过计算每个anchor的检测置信度Fθ(aj, bi)来最小化损失根据公式4的定义。根据置信度选择top-k anchor组成anchors bag,然后在所选anchor的监督下更新网络参数,在选择anchor后进行anchor抑制。然后在下一次迭代中再次进行anchor选择,选择高分anchor。
我们的方法的推理过程与RetinaNet完全相同,即我们使用学习网络参数来预测分类分数和目标边界框,将其输入到NMS过程中进行目标检测。 由于MAL仅用于检测器训练过程中学习更具有代表性的特征,因此我们的学习检测器可在不增加额外计算成本的情况下实现性能提升。
2.5. Optimization Analysis
anchor的选择-抑制策略近似一个对抗的过程。选择操作找到使检测损失Ldet最小的得分最高的anchor。抑制操作则对所选anchor的相应特征添加扰动,使anchor的置信度降低,再次增大检测损失。选择-抑制策略可帮助学习者找到MAL非凸目标函数的更好解决方案。如Figure 4第一条曲线所示,MAL选择了一个次优anchor,陷入了损失函数的局部最小值。在第二条曲线中,anchor depression增加了损失,使得局部最小值被“填充”,因此MAL会继续寻找下一个局部最小值,继续优化。这样在最终收敛时, MAL能够有更大的可能找到最优解。

- Figure 4:优化分析(Optimization analysis)。 在第一条曲线中,MAL选择了次优的anchor,并陷入了局部最小值。 在第二条曲线中,anchor抑制(Depressing)会增加损失(loss),因此MAL会继续进行优化。 这样,MAL有更大的机会找到最佳解决方案。
3. Experiments
在本节中,我们将在具有挑战性的COCO benchmark测试的边界框检测轨迹上展示所提出的MAL的实验结果。 我们遵循通常的做法,使用〜118k图像进行训练,使用5k进行验证,使用〜20k进行测试,但不提供注释(test-dev)。 针对所有类别,在十个不同的IoU阈值(即0.5:0.05:0.95)上计算AP[8]。 这是用于目标检测的常用评估方法。
3.1. Experimental Setting
我们将ResNet-50,ResNet-101和ResNeXt-101与FPN用作主干网。批量标准化( batch normalization)层在训练阶段被固定冻结。 每个GPU使用2个图像的mini-batch,因此在8个GPU上总共形成16个图像的mini-batch。 初始学习率设置为0.01,对于135k设置(ResNet-50),在90k和120k之后,将初始学习率降低10倍;对于180k设置(ResNet-101和ResNeXt-101),在120k和160k后,将初始学习率降低10倍。同时随机梯度下降(SGD)被用于网络优化。 使用0.0001的权重衰减(weight decay)和0.9的动量(momentum)。 前500次迭代采用linear warmup strategy。 我们通过实验设置权重参数β= 0.75。 接下来,我们根据0.5的IoU阈值将anchor分配给ground-truth,如果锚的IoU处于[0,0.4),则将anchor分配给背景。
3.2. Ablation Study


3.3. Comparison with State-of-the-Art Detectors

4.Conclusion
我们提出了一种优雅而高效的训练方法,称为多anchor学习(MAL),用于视觉目标检测。 通过选择anchor以联合优化边界框的分类和定位,MAL将标准的手工anchor分配机制提升为可学习的目标-anchor匹配机制。我们提出了一种简单的选择-抑制策略来缓解MAL的次优化问题。 与baseline检测器RetinaNet相比,MAL改善了目标检测的优势,在single-stage方法中获得了MS-COCO数据集上的最佳结果,并且优于许多近期的two-stage方法。 这样的改进不仅基于anchor的最优选择,而且还基于基于anchor bags的隐式特征装配。 我们的工作在学习视觉目标检测的方向上为简化anchor设计提供了一个有希望的方向。
预定义边框就是一组预设的边框,在训练时,以真实的边框位置相对于预设边框的偏移来构建 训练样本。 这就相当于,预设边框先大致在可能的位置“框“出来目标,然后再在这些预设边框的基础上进行调整。为了尽可能的框出目标可能出现的位置,预定义边框通常由上千个甚至更多,在深度学习之前,通常使用各种形状的“滑动窗口”,在原图像滑动,来产不同位置不同形状的预设边框。到了深度学习时期,由于对图像特征提取技术的进步,可以使用Anchor Box在图像的不同位置生成边框,并且能够方便的提取边框对应区域的特征,用于边框位置的回归。一个Anchor Box可以由:边框的纵横比和边框的面积(尺度)来定义,相当于一系列预设边框的生成规则,根据Anchor Box,可以在图像的任意位置,生成一系列的边框。 ↩︎
在多示例学习中,训练集由一组具有分类标签的多示例包(bag)组成 ,每个多包(bag)含有若干个没有分类标签的示例(instance)。如果多示例包(bag)至少含有一个正示例(instance),则该包被标记为正类多示例包(正包)。如果多示例包的所有示例都是负示例,则该包被标记为负类多示例包(负包)。多示例学习的目的是,通过对具有分类标签的多示例包的学习,建立多示例分类器,并将该分类器应用于未知多示例包的预测。 ↩︎
P类问题:能在多项式时间内可解的问题。NP类问题:在多项式时间内“可验证”的问题。也就是说,不能判定这个问题到底有没有解,而是猜出一个解来在多项式时间内证明这个解是否正确。即该问题的猜测过程是不确定的,而对其某一个解的验证则能够在多项式时间内完成。P类问题属于NP问题,但NP类问题不一定属于P类问题。NPC问题:存在这样一个NP问题,所有的NP问题都可以约化成它。换句话说,只要解决了这个问题,那么所有的NP问题都解决了。其定义要满足2个条件:它是一个NP问题;所有NP问题都能规约到它。NP-Hard问题:NP-Hard问题是这样一种问题,它满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比 NPC问题的范围广,NP-Hard问题没有限定属于NP),即所有的NP问题都能约化到它,但是他不一定是一个NP问题。NP-Hard问题同样难以找到多项式的算法,但它不列入我们的研究范围,因为它不一定是NP问题。即使NPC问题发现了多项式级的算法,NP-Hard问题有可能仍然无法得到多项式级的算法。事实上,由于NP-Hard放宽了限定条件,它将有可能比所有的NPC问题的时间复杂度更高从而更难以解决。 ↩︎
MSCOCO 数据集是微软构建的一个数据集,其包含 detection, segmentation, keypoints等任务。MSCOCO主要是为了解决detecting non-iconic views of objects(对应常说的detection), contextual reasoning between objects and the precise 2D localization of objects(对应常说的分割问题) 这三种场景下的问题。 ↩︎
RetinaNet就是一个FPN-based的one-stage detector,靠着最后面的focal loss来解决由于过量background而引起的类别不平衡 ↩︎
IoU 的全称为交并比(Intersection over Union),IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。也就是说,这个标准用于测量真实和预测之间的相关度,相关度越高,该值越高 ↩︎
非极大值抑制(Non-Maximum Suppression,NMS),顾名思义就是抑制不是极大值的元素,可以理解为局部最大搜索。这个局部代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二是邻域的大小。例如在行人检测中,滑动窗口经提取特征,经分类器分类识别后,每个窗口都会得到一个分数。但是滑动窗口会导致很多窗口与其他窗口存在包含或者大部分交叉的情况。这时就需要用到NMS来选取那些邻域里分数最高(是行人的概率最大),并且抑制那些分数低的窗口。 ↩︎
AP Average Precision,即 平均精确度 。 ↩︎

浙公网安备 33010602011771号