【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution

&Title

【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution

&Summary

许多现代的物体检测器通过使用两次观察和思考的机制展示了出色的性能。 在本文中,我们探索了用于目标检测的主干设计中的这种机制。 ’

  • 在宏级别,我们提出了递归特征金字塔,它结合了从特征金字塔网络到自下而上的骨干层的额外反馈连接。
  • 在微观层面上,我们提出了可切换的Atrous卷积,它以不同的atrous速率对特征进行卷积,并使用switch函数收集结果。

将它们组合在一起可产生DetectoRS,从而大大提高了对象检测的性能。
在COCO测试开发中,DetectoRS达到了用于对象检测的54.7%的box AP,用于实例分割的47.1%的mask AP和用于全景分割的49.6%的PQ。

&Research Objective

looking and thinking twice in backbone

&Problem Statement

受人类视觉系统的启发,计算机视觉中已实例化了两次查看和思考的机制,并显示了出色的性能。

  • 许多流行的两阶段目标检测器,例如Faster R-CNN [58],首先输出目标提议,然后根据该提议提取区域特征以检测目标。
  • Cascade R-CNN [5]开发了一个多级检测器,在此之后的检测器头部将通过更多选择性示例进行训练。

这种设计理念的成功促使我们在用于对象检测的神经网络主干设计中进行探索。

&Method(s)

RFP

【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
在宏观层面上,我们提出的递归特征金字塔(RFP)建立在特征金字塔网络(FPN)之上,通过将额外的反馈连接从FPN层合并到自下而上的骨干层,如上图所示。将递归结构展开为顺序实现(展开如下图所示),我们获得了用于对象检测器的主干,该主干可以将图像查看两次或更多次。类似于在Cascade R-CNN中级联检测器头经过更多选择性示例训练后,我们的RFP递归增强了FPN以生成越来越强大的表示形式。类似于深度监控网,反馈连接将直接从检测器头接收梯度的特征带回到自下而上的骨干网的低层,以加快训练速度并提高性能。我们提出的RFP实现了两次思考的顺序设计,其中自下而上的骨干网和FPN运行了多次,其输出功能取决于前面步骤中的功能。

【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
如何递归传递呢??先看FPN的公式表达:Bi表示自下而上的骨干网的第i个阶段,Fi表示第i个自上而下的FPN操作,i为第i层
【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
所以对于RFP来说,公式则如下:不同之处在于右边的式子多了个Ri,Ri表示特征转换,然后再将其连接到自底向上的主干。
【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
ok,对于多次递归来说的话,就需要T来表示迭代的次数:
【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution

我们使用上标t表示展开步骤t的操作和特征。 f0i设置为0。在我们的实现中,Fti和Rti在不同的步骤之间共享。

ASPP(Connecting Module Input)

【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution

ASPP将特征fti 作为其输入并将其转换为图3中使用的RFP特征。

ASPP中有四个并行分支以fti作为输入,然后将它们的输出沿通道维数连接在一起,以形成R的最终输出。它们的三个分支使用卷积层,后跟ReLU层,输出通道数为1/4输入通道数。最后一个分支使用全局平均池化层压缩特征,然后使用1x1卷积层和ReLU层将压缩后的特征转换为1/4尺寸(逐通道)的特征。最后,它被调整大小并与其他三个分支的特征连接在一起。这三个分支中的卷积层具有以下配置:内核大小= [1、3、3],粗率= [1、3、6],填充= [0、3、6]。与原始的ASPP 不同,我们在连接的特征之后没有卷积层,因为此处R不会生成用于密集预测任务的最终输出。 请注意,四个分支中的每一个都产生一个特征,其特征通道的输入特征为输入特征的1/4,并将它们连接起来将生成一个特征,该特征的大小与R的输入特征相同。

Fusion module

【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
RFP还使用融合模块来组合fti和ft+1i来更新等式中使用的展开阶段t +1的fi值。
融合模块使用特征ft+1i通过卷积层和Sigmoid操作计算注意力图。 所得注意力图用于计算fti和ft+1i的加权和以形成更新的fi。 此fi将在接下去的步骤中用作fti进行计算。

SAC

【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
在微观层面上,我们提出了可切换原子卷积(SAC),它可将相同的输入特征与不同的atrous 率进行卷积,并使用切换功能来收集结果。上图显示了SAC概念的图示。

上图显示了一个3x3卷积层的示例,其原子率设置为1(红色)和2(绿色):可以使用不同的原子率通过同一组卷积权重粗略地检测出相同比例的同类物体 。

开关功能在空间上是相关的,即,特征图的每个位置可能具有不同的开关来控制SAC的输出。为了在检测器中使用SAC,我们将自下而上的主干网中的所有标准3x3卷积层都转换为SAC,从而大大提高了检测器性能。

某些先前的方法采用条件卷积,例如[39,74],它也将不同卷积的结果组合为单个输出。

与那些需要从头开始训练其架构的方法不同,SAC提供了一种机制,可以轻松转换预先训练的标准卷积网络(例如ImageNet预先训练的[59]检查点)。此外,在SAC中使用了一种新的权重锁定机制,其中除了可训练的差异之外,不同 atrous 卷积的权重相同。
【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
上图是SAC的总体架构,它具有三个主要组件:在SAC组件之前和之后附加了两个全局上下文模块。

SAC

使用y = Conv(x,w,r)来表示权重为w和原子率r的卷积运算,其中x为输入和输出y。 然后,可以将卷积层转换为SAC,如下所示
【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
其中,r是SAC的超参数,Δw是可训练的权重,并且开关函数S(·)被实现为具有5x5内核和1x1卷积层的平均池化层(请参见图4)。 开关功能取决于输入和位置。 因此,骨干模型能够根据需要适应不同的规模。 除非另有说明,否则我们在实验中将r设置为3。

我们提出一种锁定机制,将一个权重设置为w,将另一个重量设置为w + ∆w

原因如下。 对象检测器通常使用预训练的检查点来初始化权重。 但是,对于从标准卷积层转换而来的SAC层,缺少较大atrous率的权重。 由于可以用相同的权重以不同的atrous率粗略地检测出不同比例的物体,因此自然地用预训练模型中的权重来初始化丢失的权重是很自然的。 我们的实现对缺失的权重使用w + ∆w,其中w来自预训练的检查点,而∆w初始化为0。固定∆w = 0时,我们观察到AP下降了0.1%。 但是没有锁定机制的单独Δw会使AP大大降低。

Global Context

在SAC主要组件之前和之后插入两个全局上下文模块。由于首先通过全局平均池化层对输入要素进行压缩,因此这两个模块的重量轻。全局上下文模块类似于SENet [31],但有两个主要区别:

  • 我们只有一个卷积层,没有任何非线性层
  • 输出被加回到主流上,而不是乘以输入由Sigmoid计算的重新校准值

通过实验,我们发现在SAC组件之前添加全局上下文信息(即,将全局信息添加到switch函数)对检测性能有积极影响。我们推测这是因为当全局信息可用时,S可以做出更稳定的切换预测。然后,我们将全局信息移到切换功能之外,并将其放在主体之前和之后,以便Conv和S都可以从中受益。我们没有采用原始的SENet公式,因为我们发现最终模型AP没有任何改进。

&Evaluation

【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution

【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution

&Thinks

  • looking and thinking twice这个insight算是比较创新的吧,其实认真看的话,没啥可以参考借鉴的,但是涨点确实很牛逼,毕竟目前精度最高。
  • RFG中,说是多次的迭代,但本文也仅仅迭代了两次。是否更多次可以有更好的效果???
  • RFG其实就是对特征的重复利用,而SAC像是做自适应的选择卷积操作(个人感觉)