论文地址:https://arxiv.org/pdf/2006.02334v1.pdf
代码地址:https://github.com/joe-siyuan-qiao/DetectoRS
在宏观层面上,作者提出的递归特征金字塔 (RFP)建立在特征金字塔网络(FPN)之上,将FPN层的额外反馈连接合并到自底向上的骨干层,如上所示。将递归结构展开到一个顺序实现中,获得了一个对象检测器的主干,它可以查看两次或两次以上的图像。类似于Cascade R-CNN用更有选择性的例子训练的级联检测头,RFP递归地增强FPN,生成越来越强大的表示。类似于深度监督网络,反馈连接将直接从检测器头接收梯度的特征返回到自底向上主干的低级别,以加速训练和提高性能。RFP实现了一种连续的设计,即仔细观察和仔细思考,自底向上的主干和FPN被多次运行,其输出特性依赖于前面的步骤。
在微观层面,提出了Switchable Atrous Convolution (SAC),该方法将相同的输入特征与不同的Atrous速率进行卷积,并使用开关函数收集结果。下图显示了SAC的概念示意图。开关函数具有空间依赖性,即feature map的每个位置可能有不同的开关来控制SAC的输出。为了在检测器中使用SAC,将自底向上主干中的所有标准3x3卷积层都转换为SAC,这大大提高了检测器的性能。
一、实现细节:
设
B
i
B_i
Bi表示自底向上主干的第i级,
F
i
F_i
Fi表示自顶向下FPN操作的第i级。配备FPN的骨干网输出一组特征映射{
f
i
∣
i
=
1
,
…
,
S
f_i | i = 1,…, S
fi∣i=1,…,S},其中S为阶段数。上图中的S = 3。任意的
i
=
1
,
…
,
S
i = 1,…, S
i=1,…,S,输出特征
f
i
f_i
fi定义为:
其中
x
0
x_0
x0是输入图像且
f
S
+
1
=
0
f_{S+1} = 0
fS+1=0。建立在FPN上的目标检测器使用
f
i
f_i
fi进行检测计算。
(一)、Recursive Feature Pyramid
递归特征金字塔(RFP)将反馈连接添加到FPN中,如上所示。让
R
i
R_i
Ri表示特征变换,然后将其连接回自底向上主干。任意的
i
=
1
,
…
,
S
i = 1,…, S
i=1,…,S,输出特征
f
i
f_i
fi定义为:
这使得RFP成为一个递归操作。将其展开到一个顺序网络,任意的
i
=
1
,
…
,
S
,
i = 1,…, S,
i=1,…,S,t = 1, …T
其中T是展开迭代的次数,用上标T表示展开步骤T的操作和特征。
f
i
0
f_i^0
fi0设为0。在实现中,
F
i
t
F_i^t
Fit和
R
i
t
R_i^t
Rit在不同的步骤中共享。
对ResNet骨干进行更改,允许它同时接受x和
R
(
f
)
R(f)
R(f)作为输入。ResNet有四个阶段,每个阶段由几个类似的块组成。只对每个阶段的第一个块进行修改,如下所示。该块计算一个三层特征,并将其添加到一个通过跳连接计算的特征中。为了使用特征
R
(
f
)
R(f)
R(f),添加了另一个卷积层,其内核大小设置为1。这一层的权值初始化为0,以确保从一个预先训练的检查点加载权值时,它不会产生任何真正的效果。
(二)、ASPP as the Connecting Module
使用Atrous Spatial Pyramid Pooling (ASPP)来实现连接模块R,它以一个特征
f
i
t
f_i^t
fit作为输入,并将其转换为上图中使用的RFP特征。在该模块中,有四个以
f
i
t
f_i^t
fit为输入的并联支路,其输出沿通道尺寸串接在一起,形成R的最终输出。其中三个支路采用卷积层,然后是ReLU层。输出通道数为输入通道数的1/4。最后一个分支使用全局平均池化层来压缩特征,然后是1x1卷积层和ReLU层来将压缩后的特征转换成1/4大小(通道方式)的特征。最后,它被调整大小并与来自其他三个分支的特性连接在一起。这三个分支中卷积层的配置如下:kernel size = [1,3,3], atrous rate = [1,3,6], padding =[0,3,6]。与最初的ASPP不同,在R中没有一个卷积层用于密集预测任务的最终输出。这四个分支中的每一个都会产生一个通道为输入特征的1/4的特征,将它们连接起来会产生一个与rR的输入特征大小相同的特征。
(三)、Output Update by the Fusion Module
如下所示,RFP还使用了融合模块将
f
i
t
f_i^t
fit和
f
i
t
+
1
f_i^{t+1}
fit+1结合起来,融合模块与循环神经网的更新过程非常相似。融合模块用于从2到T展开步骤。在展开的步骤
t
+
1
(
t
=
1
,
…
,
T
−
1
)
t + 1 (t = 1,…,T-1)
t+1(t=1,…,T−1)融合模块以步长T处的特征
f
i
t
f_i^t
fit和步长
T
+
1
T +1
T+1处FPN新计算的特征
f
i
T
+
1
f_i^{T +1}
fiT+1为输入。融合模块使用特征
f
i
t
+
1
f_i^{t+ 1}
fit+1通过卷积层和Sigmoid操作来计算注意力热图。得到的注意图被用来计算
f
i
t
f_i^t
fit和
f
i
t
+
1
f_i^{t+1}
fit+1的加权和,以形成一个更新的
f
i
f_i
fi。在接下来的步骤中,这个
f
i
f_i
fi将被用作
f
i
t
+
1
f_i{t+1}
fit+1的计算。