CVPR2020 | 论文阅读——Multiple Anchor Learning for Visual Object Detection

在这里插入图片描述
论文地址:https://arxiv.org/abs/1912.02252

开源代码: https://github.com/KevinKecc/MAL

本文亮点:

  1. 提出了一种多anchor学习的方法,以object-anchor匹配的角度出发,通过联合优化目标定位与分类,得到最佳的anchor。
    ——具体操作: 通过结合分类与定位置信度,选出分数比较高的anchor,然后用这些anchor来更新模型参数,再用更新后的模型重新评估被选择的anchor的分类和定位置信度,不断重复以上过程,直至得出最优的anchor和模型参数。
  2. 为了消除次优选择,提出了selection-depression优化策略,以保证anchor的选择不会掉入到局部最小值中。
    ——具体操作: 通过selection最小化损失函数,使得陷入到局部最优,然后通过depression增加损失函数跳出局部最优,不断重复上面过程,最终可得到一个最优解。

Abstract

  • 基于anchor的方法中,检测器是利用目标与anchor之间的IoU作为分配anchor的标准,每个被分配的anchor独立地监督网络学习,并进行分类和位置回归。
  • 手动设置的anchor存在被限制优化的问题:
    分类和位置回归是联合固定使用的,但是这两个模块之间并没有交互,如果一个预测结果的回归精度比较高,但分类置信度比较低时,那么就有可能在NMS操作中被过滤掉了。
  • 提出的解决办法:
    为了解决这个问题,作者提出了使用多anchor学习(MAL) 来选择anchor并联合优化基于CNN的目标检测器中的两个模块,这是一种可以自动学习anchor的方法,通过anchor-object相匹配来联合优化分类和位置回归

1 Introduction

  • 为解决分类与回归相互独立的问题,已经提出了IoU-Net和freeachor方法,但是训练时两者依然是独立的。
  • 本文提出了一种自动anchor学习(MAL)的方法,从anchor-object匹配的角度出发,联合优化目标分类与定位。
  • MAL具体流程:
  1. 在MAL训练阶段,通过anchor-object bbox之间的IoU进行排序,选择IoU位于前面的anchor,用它们构造一个属于该目标的anchor bag。
  2. 然后,通过结合分类和定位分数,来评估每个anchor bag中的正样本anchor。
  3. 在每次训练迭代中,MAL使用所有的正样本anchor来优化训练损失,选择得分最高的anchor作为最终的anchor。——分类分数与定位分数就能同时达到最高。

  • selection-depression优化策略:
    每次迭代中选择分数最高的anchor可能不会达到最好的效果,有可能目标的一部分被错误地定位,但因为分类分数比较高,导致最终分数也比较高。
    为解决此问题,提出了selection-depression优化策略,通过扰动分数较高的anchor特征,来反复降低该anchor的置信度,使得所选择的anchor是最优的。

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

  • 上图是基于NMS前后的baseline检测器与MAL对比效果图。
  • (a)baseline检测器(RetinaNet):
    NMS之前,该检测器可能会产生具有低分类分数高位置回归IoU的边界框(黄色bbox)或者具有高分类分数的低位置回归IoU(红色bbox)。
  • (b)多anchor学习(MAL):
    MAL会产生具有高分类和位置回归的bbox,使得NMS后的检测效果更好。

本文的贡献:

  1. 提出了一种多anchor学习方法(MAL),通过评估和选择anchor来联合优化目标检测的分类和定位模块。
  2. 提出一种选择-抑制优化策略,为防止MAL在检测训练过程中陷入次优解。

2 Related Work

2.1 Anchor-Based Method

Anchor-Based Detection:
Faster R-CNN,FPN,RetinaNet,SSD,DSSD,YOLO。

Anchor Assignment(分配):

  1. 上述检测器将大量的anchor分布在卷积特征图上,以便它们能够匹配不同长宽比和比例的目标。
  2. 训练阶段,anchors被分配给目标(正anchor)背景(负anchor),其IoUs与gt的数值相同。
  3. 推理阶段,anchors独立地预测目标bbox,在NMS过程后保留分类得分最高的框。
  4. 这类方法在目标部分被遮挡或者不规则形状的情况下,是不可行的。

Anchor Optimization (优化):

  • MetaAnchor: 学习从具有子网的任意自定义的先验框。
  • GuidedAnchoring: 利用语义特征来引导anchor预测,同时用预测anchor替换dense anchor。
  • FreeAnchor: 使用人制定的anchor匹配变成“自由”anchor匹配。
  • 这类方法将检测器的训练作为最大的似然估计(MLE)过程 ,目的是学习从分类和局部两方面更好地解释一类目标的特性。

  • IoU-Net: 在预测bbox和真实框之间的IoU,选择anchor。
  • IoU-guided NMS: 两者相对比,IoU-Net减少了错误率。
  • Gaussian YOLO: 引入定位不确定性,说明anchor/bbox的可靠性。该方法是利用推理过程中评估定位的不确定性,提高了分类和回归精度。

2.2 Anchor-Free Method

  • FCOS: 利用单元级监督和中心bbox回归进行目标检测。
  • CornerNet和CenterNet: 用关键点监督替代bbox监督。
  • Extreme point和RepPoint: 使用点集来预测目标边界框。

3 The Proposed Approach

  • MAL是基于RetinaNet网络结构修改的。通过找到升级RetinaNet找到最优的分类和局部anchors/features。

3.1 RetinaNet回顾

  • anchor 公式说明:
    anchors 是用于监督网络学习的,公式如下:
    在这里插入图片描述
    positive anchors 用于优化目标定位,公式如下:
    在这里插入图片描述
    上述两个公式,是通过最小化Focal Loss L c l s ( a j , b i c l s ) L_{cls}(a_{j},b_{i}^{cls}) Lcls(aj,bicls)和 Smooth L1 Loss L l o c ( a j , b i l o c ) L_{loc}(a_{j},b_{i}^{loc}) Lloc(aj,biloc)实现的

  • 参数说明:

  • f θ ( ⋅ ) f_{\theta}(\cdot) fθ()表示分类函数。

  • g θ ( ⋅ ) g_{\theta}(\cdot) gθ()表示bbox回归函数。

  • γ \gamma γ表示平衡正负anchor重要性的一个参数。

  • θ \theta θ是网络参数。

  • x ∈ χ x\in \chi xχ是训练集。

  • y ∈ Y y\in Y yY是类别标签集。

  • B定义为正样本中gt的bbox。

  • b i ∈ B b_{i}\in B biB是由分类标签 b i c l s b_{i}^{cls} bicls和空间位置 b i l o c b_{i}^{loc} biloc组成。

  • a j c l s a_{j}^{cls} ajcls是anchor的分类置信度(分类); a j l o c a_{j}^{loc} ajloc是anchor输出的bbox(回归)。

  • a j + a_{j+} aj+(正anchor)表示当IoU的值大于设定的阈值。 a j − a_{j-} aj(负anchor)表示当IoU的值小于设定的阈值。

  • 总结:
    在retinanet中,每个anchor节点独立监督地完成分类和定位任务,并不考虑两者的关联性。这就可能导致定位分数高而分类分数低的anchor被nms过滤掉。

3.2 Multiple Anchor Learning(MAL)

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

  • 从特征金字塔中,挑选出anchor bags,使用MAL模块进行anchors选择,最后进行目标检测。

具体流程:

  1. 设定第 i i i个目标构建一个anchor bag A i A_{i} Ai。这个anchor bag 是根据 a n c h o r s anchors anchors g t gt gt之间的IoUs选出前 k k k个anchors放入 A i A_{i} Ai
  2. 通过网络参数学习,MAL能够在 A i A_{i} Ai中评估出每个anchor的分类和定位置信度。这个置信度用于anchor选择,表明anchor在网络参数演化过程中的重要性。
  3. 这里仅对positive anchor进行计算,MAL的目标函数如下:
    在这里插入图片描述
    参数说明:
  • f θ ( ⋅ ) f_{\theta}(\cdot) fθ() g θ ( ⋅ ) g_{\theta}(\cdot) gθ()分别表示分类和定位置信度。
  • β \beta β是正则化因子。
  1. 通过MAL,最终要为目标 i i i选出最优的positive anchor a i ∗ a_{i}^{*} ai,并学习网络参数 θ ∗ \theta^{*} θ
  2. 将目标函数公式(3)转化为损失函数,公式如下:
    在这里插入图片描述
    参数说明:(这是3.1中定义的损失)
  • Focal Loss: L c l s ( a j , b i c l s ) L_{cls}(a_{j},b_{i}^{cls}) Lcls(aj,bicls)
  • Smooth L1 Loss: L l o c ( a j , b i l o c ) L_{loc}(a_{j},b_{i}^{loc}) Lloc(aj,biloc)

3.3 Selection-Depression Optimization

  • 问题提出:
    优化公式(3)和(4)使用随机梯度下降(SGD)是一个非凸问题,可能会导致次优anchor选择的问题。
  • 解决办法:
    通过扰动相应特征来反复降低所选择anchor的置信度。

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

  1. 上图是MAL实现过程,在RetinaNet的基础上添加了anchor selection模块和anchor depression模块。
  2. U U U V V V分别表示抑制前和后的特征图 M M M M ′ M^{'} M分别表示抑制前后的注意力图
  3. Anchor Selection:
  • 这部分采取了 “All-to-Top-1” anchor的选择策略。在学习过程中,线性降低 ∣ A i ∣ |A_{i}| Ai中的anchor数量直至将为1。
  • 假设 λ = t / T \lambda=t/T λ=t/T,其中 t t t是训练的当前迭代次数, T T T是训练的总迭代次数。然后,让 ϕ ( λ ) \phi (\lambda ) ϕ(λ)表示high-ranked anchors(排名前几名)的索引, ∣ ϕ ( λ ) ∣ = ∣ A i ∣ ∗ ( 1 − λ ) + 1 |\phi (\lambda )|=|A_{i}|*(1-\lambda )+1 ϕ(λ)=Ai(1λ)+1。因此,公式(3)改写为:
    在这里插入图片描述
  • MAL利用目标区域内的多个anchor来学习早期训练epochs的检测模型,并在最后一个epochs中使用一个最优的anchor使模型收敛。
  1. Anchor Depression:
    模块作用: 给未被选择的anchor更多的机会使它参与训练。
    模块具体流程:
    (1)假设 U U U M M M分别为原始特征图和注意力图。
    (2) M = ∑ l w l ∗ U l M=\sum_{l}^{ }w_{l}* U_{l} M=lwlUl,其中 w w w U U U的全局平均池化, l l l U U U的通道索引。
    (3)通过将比较高的值降低至0,生成新的depressed attention map: M ′ = ( 1 − I P ) ∗ M M^{'}=(1-\mathbb{I}_{P})*M M=(1IP)M,其中 I \mathbb{I} I是0-1的指数函数, P P P是high-value position。
    所以,被扰动后的特征图 V V V如下
    在这里插入图片描述
    其中, 1 1 1是单位矩阵, ◦ ◦ 表示元素乘法。
    当使用延续策略,可以把公式(6)改写为:
    在这里插入图片描述
    其中, ψ ( λ ) \psi (\lambda ) ψ(λ)表示被扰动的像素数。

3.4 Implementation

  • 基于RetinaNet上修改的,使用FPN作为backbone,与RetinaNet设置的anchor相同。
  • anchor的范围是[32, 813]。
  • MAL只在检测器训练过程中用于学习更具代表性的特征,测试和推理过程并不会参与。

3.5 Optimization Analysis

选择-抑制策略是一个对抗的过程。
Anchor Selection找出得到较高的anchor,从而最小化检测损失 L d e t L_{det} Ldet;而Anchor Depression通过扰动这些被选择的anchor的特征,使这些anchor的置信度降低,从而使得 L d e t L_{det} Ldet再一次上升。

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

  • 第一幅图中,MAL选择次优的anchor并且陷入了损失函数的局部最小值。
  • 第二幅图中,anchor depression增加了损失,使得局部最小值被“填充”,使得MAL能够继续进行优化。
  • 填充后,得到第三幅图。
  • 选择-抑制策略这种方式,能在最终收敛的时候,MAL得到更好的机会找到最优解。

4 Experiments

4.1 Experimental Setting

  • backbone: ResNet-50,ResNet-101,和ResNeXt-101的FPN作为主干网。
  • 数据集: COCO-minival

4.2 Ablation Study

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

  • 第一行和第三行是RetinaNet的注意力图;第二行和第四行是MAL的注意力图。
  • 从第90k那列看出,MAL可以检测出RetinaNet未注意力到的部分,和抑制非目标的部分。
  • 10k到90k的过程,可以看出注意力部分从全局逐渐变成了某些关键部分。

Table-1: 在COCO minval数据集上,使用ResNet50作为backbone的比较。
在这里插入图片描述
图解:

  • (a)表示每个anchor bag中不同anchor数k的检测性能。
    结论: k=50是AP的最高得分,k=40,50,60的AP值都比较稳定。
  • (b)表示Anchor selection策略 ϕ ( λ ) \phi (\lambda ) ϕ(λ)。其中, S S S表示选择,选择了所有实例和all-top 1的实例。
    结论: 当使用anchor bags代替retinanet的scattered anchors时,AP从35.6%提高到38.14%。当连续优化时,AP进一步提高到38.39%。
  • (c)表示Anchor depression策略 ψ ( λ ) \psi (\lambda ) ψ(λ)。其中, D D D表示抑制,比较恒定函数(在整个训练过程中保持相同的depression rate)、阶跃函数和对称阶跃函数。
    结论:
    (1)使用恒定函数时,会使得注意力图top-50%的像素点压缩,使得AP下降。原因是在训练初期,网络参数被随机初始化,抑制了对抗性学习。
    (2)使用阶跃函数时,使凹陷部分从0.0%逐步增加到50%,因此性能提高到了35.88%。
    (3)使用对称阶跃函数时,将凹陷部分从0.0%增加到50%,然后从50%降低到0.0%,使得性能提升到36.18%。

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

  • S S S表示selection, D D D表示detection。

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

  • 上图展示了类别(牙刷、风筝)定位结果的误差因子分析。
  • 定位错误(Loc)阻碍了不规则形状物体(倾斜和细长物体)的检测性能。MAL可以降低这些目标的定位错误。

4.3 Comparison with State-of-the-Art Detectors

Table-2: 在MS-COCO test-dev数据集上,MAL与RetinaNet方法(单阶段)的性能比较。使用越深的backbone,性能提升得越快。
在这里插入图片描述
Table-3: 在MS-COCO test-dev数据集上,与目前一阶段和二阶段方法的比较。下面顺序是根据从小到大进行排序的。
在这里插入图片描述

5 Conclusion

  1. 提出了一种多anchor学习方法(MAL),通过评估和选择anchor来联合优化目标检测的分类和定位模块。
  2. 提出一种选择-抑制优化策略,为防止MAL在检测训练过程中陷入次优解。

参考博客:https://blog.csdn.net/qq_30146937/article/details/105725804

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值