DetectoRS论文学习笔记

原论文:《Siyuan Qiao, Liang-Chieh Chen, Alan Yuille. DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution[J]. arXiv:2006.02334》
最后面有 参考代码 的 Github 链接
仅描述基本构成,原论文内容很丰富,所以详细情况还是要看论文
效果
DetectoRS论文学习笔记

论文的两个特点

  1. RPN 改为 RFP(Recursive Feature Pyramid);
  2. 将普通卷积改为 SAC(Switchable Atrous Convolution)。

1. RFP

DetectoRS论文学习笔记

  • 将原始RPN每层的输出 fi1f_i^1 反馈进同层骨干网,得到 fi2f_i^2,具体反馈的方式是:
    • 使用 ASPP模块fi1f_i^1 进行变换,得到 RiR_i
    • 修改接收 RiR_i 的骨干网中对应的模块;
  • 最后将 fi1f_i^1fi2f_i^2 利用 Fusion模块 融合,得到最终的特征图;
  • 骨干网模块中接收 RiR_i 的方式
    DetectoRS论文学习笔记
1.1 ASPP(Atrous Spatial Pyramid Pooling)

输入fi1f_i^1 (通道为 cc
输出Ri1R_i^1 (通道为 cc
结构

  • 四个并行的卷积分支,每个分支的输出的通道为 c/4c/4
  • 其中三个分支由 Conv+ReLU 构成,相关参数:kernel size=[1,3,3], atrous rate=[1,3,6], padding=[0,3,6]kernel\ size=[1,3,3],\ atrous\ rate=[1,3,6],\ padding=[0,3,6]
  • 第四个分支:global average pooling+Conv_1×1+ReLU+resizeglobal\ average\ pooling+Conv\_1\times1+ReLU+resize
  • 将四个分支连接在一起得到 Ri1R_i^1
1.2 Fusion

DetectoRS论文学习笔记
输入fi1f_i^1fi2f_i^2
输出:最终要使用的特征图

2. SAC

DetectoRS论文学习笔记

  • 结构(Pre)Global Context+SAC+(Post)Global Context(Pre)Global\ Context+SAC+(Post)Global\ Context
  • 中间部分的 SAC 计算公式:
    Output=S(x)Conv(x,w,1)+(1S(x))Conv(x,w+Δw,r)Output=S(x)\cdot Conv(x,w,1)+(1-S(x))\cdot Conv(x,w+\Delta w,r)
    其中,S(x)=average pooling_5×5+Conv_1×1S(x)=average\ pooling\_5\times 5+Conv\_1\times 1

图中的权重锁定(Lock)的含义:下侧的权重用上侧初始化,并在此基础上加上一个 Δw\Delta w,这个 Δw\Delta w 是后面训练得到的。


参考材料