Soft Anchor-Point Object Detection论文阅读翻译


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

一、Abstract

       最近anchor-free检测器进步明显,其主要分为两种,锚点检测和关键点检测,二者的区别主要是对速度和精度间的权衡,锚点检测器主要是速度上有优势。作者在保持锚点检测器的速度优势的同时去提升了检测性能,从锚点的角度公式化检测问题,并确定无效训练是检测器所存在的一个主要问题。作者认为锚点应该在特征金字塔各层级内和层级间进行联合优化,因此作者提出了一个简单有效的训练策略,对锚点进行软加权及对金字塔层级做软选择来分别解决各金字塔层级内的错误注意力问题和金字塔特征的层级选择问题。作者最后提出了Soft Anchor-Point Detector(SAPD),单阶anchor-free检测器。实验表明SAPD将速度与精度间的权衡提升到了一个新的水平,超过了最新的anchor-free和anchor-based检测器。

二、Introduction

       anchor-free检测器不依赖于anchor boxes,其预测结果以点到框的方式生成。与传统基于anchor的方法相比,anchor-free检测器主要有以下几点优势:1)不需要对anchor的配置超参作手工微调。2)检测头的结构通常很简单。3)所需训练内存消耗更少。anchor-free检测器可大体分为两类:锚点检测和关键点检测。锚点检测器是将边界框编码解码为对应点到边界的距离的锚点,其中锚点是金字塔特征图上的像素点,它们像锚框一样与所在位置的特征相关联。关键点检测器预测边界框的关键点的位置(中心点,角点,极值点),一般会使用高分辨率特征图和重复的自底向上及自顶向下的推断,并将关键点分组构成框。和关键点检测器相比锚点检测器有以下几点优势:1)更简单的网络架构,2)更快的训练和推理速度,3)从增强的特征金字塔中获益的潜力,4)灵活的特征层级选择。但在相同的图像尺度下,它的精度不如基于关键点的方法。
       那么是什么阻碍了简单的锚点检测器的精度?本文提出了一种软锚点检测器(SAPD),一种更快速度和更高精度的单阶锚点检测器。作者从锚点方面去公式化检测问题,并通过探索特征金字塔层级内和层级间更多的网络潜力确定了无效训练是阻碍锚点检测器的主要障碍。具体而言,传统训练策略存在两个被忽略的问题,即每个金字塔层级内的错误注意以及在所有金字塔层级上的特征选择。对于相同金字塔层级中的各锚点,在训练中受到错误关注的锚点会生成不必要的高置信度分数,并且在推理时会得到较差的定位结果,从而抑制了某些定位准确但得分较低的锚点,这样会对后处理步骤产生混淆,因为在非极大值抑制中,高分检测通常比低分检测有更高的优先级,从而AP会较低。对跨不同金字塔层级的相同空间位置的锚点,它们的关联特征相似,但它们对loss的贡献是不同的。当前的方法一般是基于特定启发式方法(例如实例尺度)来进行的选择,并通常将每个实例都限制在单个层级,这样会导致未被选择的特征的浪费。
       作者针对这些问题提出了一个具有两种soft-ended优化技术的训练策略,即软加权锚点和软选择金字塔特征层级。对相同金字塔层级上的锚点,作者通过它们与实例框间的几何关系来对它们对loss的贡献进行重加权,以减少错误注意。作者认为距离实例边界越近,由于特征未对齐,锚点会越难去精确定位目标,所以它们对loss的贡献应该越小。此外作者根据当前实例相关金字塔层级的参与程度对锚点做了进一步的加权,用一个轻量级特征选择网络在给定目标实例的情况下学习每个层级的参与度。特征选择网络与检测器联合优化,但不参与检测器推断。
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       Focal loss等提出重塑分类损失来降低部分样本的权重,但是它们是独立对待所有样本,作者的训练策略会更直接且准确,因为他重塑了分类和定位损失的结合,并对一组分布在内部或跨特征金字塔尺度的锚点进行联合加权。

三、Soft Anchor-Point Detector

3.1 Detection Formulation with Anchor Points

3.1.1 Network architecture

Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       网络一般由backbone,特征金字塔和检测头组成。第l层金字塔特征记为Pl,其分辨率为W*H大小的输入图像的1/sl,sl=2l。一个检测头通常有两个分别负责分类和定位的子网,分类子网预测每个锚点属于各类的概率,定位子网预测正锚点到实例四条边的距离。

3.1.2 Supervision targets

       Anchor point pli,j是在金字塔特征Pl上(i,j)上的像素,i=0, 1, … , W/sl-1, j=0, 1, … , H/sl-1。每个Pli,j都有一个对应的图像空间位置(Xlij, Ylij),Xlij = sl(i+0.5), Ylij = sl(j+0.5), 定义一个GT实例框B=(c,x,y,w,h)的有效框为Bv,c是类别id,(x,y)是框中心,w,h是框的宽高。Bv是B的缩小中央框,Bv = (c, x, y, εw, εh), ε是缩放因子。当且仅当某实例B分配给Pl以及plij的图像空间位置(Xlij, Ylij)在Bv中时,锚点Plij是正锚点,否则是负锚点。对于一个正锚点,它的分类目标是c,定位目标为归一化距离d = (dl, dt, dr, db):

Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       z是归一化标量。对于负锚点,他们的分类目标是背景(c=0),定位目标是null,因为其不参与定位损失计算。这样每个锚点plij都有一个分类目标clij和一个定位目标dlij

3.1.3 Loss functions

       一般采用focal loss来作为分类损失解决正负锚点间的极端不平衡问题,IOU loss作为定位损失:
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       整个网络的损失是所有锚点损失总和除以正锚点数:
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV

3.2 Soft-Weighted Anchor Points

3.2.1 False attention

       在传统训练策略下观察到一些锚点在推理过程中会产生定位差但置信度分数较高的检测框,抑制了定位精度较高但置信度分数较低的检测框。因此NMS会保留下一些较差的检测结果导致AP较低。下图(a)给出了一个例子,作者在NMS前绘制检测框,用颜色表示置信度分数。对人定位更精确的检测框会被其他精确度较低但得分较高的检测框抑制,这样最终的检测框(加粗框)在NMS后与GT的IoU并不高。
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       因为传统训练策略是独立地处理各锚点,对于Bv中的一组锚点,他们的空间位置和关联特征是不同的,因此他们定位Bv的能力也是不同的,作者认为位于实例边界附近的锚点没有与实例特征很好地对齐,因为它们的特征往往会受到实例外部内容的影响,其接受域会包含很多背景信息,导致其精确定位的能力降低。因此强迫这些锚点去表现得和那些具有强大特征表示的锚点一样好是在误导网络。所以在训练中应少关注那些靠近实例边界的锚点,多关注那些围绕中心的锚点,也就是网络应该更专注于优化具有强大特征表征的锚点,减少对其他锚点的错误关注。

3.2.2 Our solution

       为解决错误注意的问题,作者提出了一个简单有效的软加权方案,其基本思想是给每个锚点的损失分配一个注意力权值wlij。每个正锚点的权值取决于其图像空间位置与相应实例边界的距离,越接近边界,锚点权值越小,这样靠近边界的锚点受到的关注会变少,网络会更关注中心锚点。对于负锚点,由于不参与定位,其权值保持不变为1。
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       f是用来映射plij与边界之间的距离的函数,距离越近,权值越低。作者使用中心函数的广义版来实例化f:
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       η控制下降陡度。下图显示了软加权锚点的示意图:
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV

3.3 Soft-Selected Pyramid Levels

3.3.1 Feature selection

       与基于anchor的检测器不同,anchor-free方法不需要进行anchor匹配来从特征金字塔中为实例选择特征级别,也就是在训练过程中我们可以使用anchor-free方法将每个实例分配到任意特征层级,而选择正确的特征层级对结果的影响很大。
       作者通过观察特征金字塔的特性来解决特征选择问题。事实上不同金字塔层级的特征图在某种程度上是相似的,尤其是相邻层级。作者在下图中可视化了所有金字塔层级的一个响应。结果表明如果某一层级的特征在某个区域被**,那么相邻层级的相同区域可能也会以相似的方式被**,但随着层级间的距离越来越远,这种相似性也会逐渐消失。这意味着来自多个金字塔层级的特征可以共同参与特定实例的检测,但不同层级的参与程度应该有所不同。
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       受以上分析启发,作者认为适当的金字塔层级选择应该有两个原则。首先,选择应该与特征响应的模式有关,而不是某些特定的启发式方法。实例依赖损失可以反映金字塔层级是否适合检测某些实例。 其次,应当允许对每个实例的训练和测试利用多个层级的特征,并且每个层级做的贡献不同。 FoveaBox表明将实例分配给多个特征层级可以在一定程度上提高性能,但是分配层级过多可能会严重损害性能,作者认为这是由于金字塔层级的选择困难引起的。对于每个实例,FoveaBox中会判断每个金字塔层级是选择还是丢弃,并且所选特征层级无论其特征响应有多不同,都会对其平等对待。
       因此,作者提出的解决方案是去对每种情况的金字塔层级做重加权。也就是根据特征响应对每个金字塔层级分配权重,从而成软选择。这也可以看作是将实例按比例分配给各层级。

3.3.2 Our solution

       如何去确定每个实例各金字塔层级的权重呢?作者提出通过训练一个特征选择网络来预测软特征选择的权重。网络的输入是从所有金字塔级别提取的实例依赖的特征响应,通过将RoIAlign层应用于每个金字塔特征,然后concat实现的,其中RoI是实例GT框。然后提取的特征经特征选择网络输出概率分布向量,如下图所示,作者将概率当作软特征选择的权重。
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       特征选择网络有多种架构设计。为简单起见,作者提出一个轻量级网络,由三个无padding的3×3卷积层组成,每个卷积后都跟一个ReLU,然后是带softmax的全连接层,下表是该体系结构。特征选择网络与检测器联合训练。用交叉熵损失来优化,GT是一个one-hot向量,用于指示哪个金字塔层级的损失最小。
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       各实例B通过特征选择网络与各层权重 w l B w_l^B wlB相关联,与软加权机制一起工作,如果B分配给Pl并且plij在B内部,则锚点损失Llij会进一步降权。在训练过程中会将实例B分配给k个特征级别中损失最小的topk层。因此得下式:
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       模型的总损失是锚点损失的加权总和加上来自特征选择网络的分类损失(Lselect-net),如下式所示:
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
       λ是控制分类loss和特征选择loss的比例的权重。

四、Experiments

Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
大多数实例都可以在不超过两个层级的情况下进行学习。很少有实例会需要两个以上层次的特征。
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV
Soft Anchor-Point Object Detection论文阅读翻译 - 2020ECCV

五、个人总结

       作者提出了一种新的训练策略以解决anchor-free的锚点检测方法中两个未充分探索的问题,即各金字塔层级中的错误注意问题和所有金字塔层级的特征选择问题。作者的训练策略包含两种方法,Soft-Weighted Anchor Points和Soft-Selected Pyramid Levels,通过对锚点做软加权,减少对靠近边界包含大量背景信息的锚点的关注,使网络更关注那些具有强大特征表征的锚点。通过对金字塔特征层级做软选择,使多个金字塔层级的特征共同参与特定实例的检测,不过不同层级参与程度不同,主要是通过一个轻量级的网络来预测各层的一个选择权重。将作者提出的训练策略应用到FSAF上会带来一定的提升,思想感觉还是挺好的,特别是选择多层级特征来参与实例的检测。

相关文章: