RFB_Net(ECCV 2018)

Receptive Field Block Net for Accurate and Fast Object Detection


链接:https://arxiv.org/abs/1711.07767

代码地址:https://github.com/ruinmessi/RFBNet

 

1、出发点

        在此之前很多目标检测网络在性能上获得大幅度的提升都得益于backbone的性能提升(也就是网络越来越深的原因),但作者认为不能一味的靠增加网络深度带来性能提升,合理的替代方案是通过引入某些人工设计的机制来增强轻量级网络的特征表示,而不是顽固地加深模型。

2、理论基础

       在过去的几十年中,功能性磁共振成像(fMRI)以毫米为单位的分辨率无创地测量了人类的大脑活动,而RF建模已成为一种重要的感觉科学工具,用于预测反应和阐明大脑的计算,这已经成为现实。 由于人类神经科学仪器经常观察到许多神经元的汇集反应,这些模型因此通常称为pRF(群体感受野,population Receptive Field)模型[36]。 基于fMRI和pRF建模,可以研究皮质中许多视野图之间的关系。 在每个皮质图上,研究人员发现pRF大小与偏心率之间呈正相关[36],而相关系数却有所不同在视野图中,如下图所示:

                                          RFB_Net(ECCV 2018)

                                                                                                 (图一)

        可以看出,在人类视觉皮层中,群体感受野(pRF,population Receptive Field)的大小在其视网膜视点图中偏心率的函数,它会随着偏心率的增加而增加。这个结论同样证明了更靠近中心的区域在识别物体时拥有更高的比重或作用(个人觉得就是中间的信息细节更清晰所以对于分辨物体更重要),并且大脑在对于小的空间变化具有不敏感性(这一点不太明白)。

        所以,受到人类视觉系统的接受场(Receptive Fields)结构启发,本文将感受野的大小和离心率联系起来,也就是像人类的视觉一样,更关注中心的信息。作者提出RFB(Receptive Fields Block),该模块考虑了RF的大小和偏心率之间的关系,增加了特征的可分辨性和鲁棒性。

3、RFB结构

其结构如下图所示,通过将多个分支与不同的卷积核和膨胀卷积组合来构建RFB模块。 多个卷积核类似于不同大小的pRF,而膨胀卷积为每个分支分配单独的偏心率以模拟pRF的大小和偏心率之间的比率。 通过将所有分支合并进行1*1卷积变换,产生RF的最终空间阵列,其机理类似于图1所示的人类视觉系统。

                                        RFB_Net(ECCV 2018)

                                                                                       (图二)

        它的内部结构可以分为两个部分:具有不同内核的多分支卷积层和尾随的扩展池化或卷积层。 前一部分与Inception相同,负责模拟多种尺寸的pRF,而后一部分则再现了人类视觉系统中pRF尺寸与偏心率之间的关系。上图说明了RFB及其对应的空间合并区域图。

        引入RFB的出发点通过模拟人类视觉的感受野加强网络的特征提取能力,在结构上RFB借鉴了Inception的思想,主要是在Inception的基础上加入了dilated卷积层(dilated convolution),从而有效增大了感受野(receptive field)

4、与其他模型的对比

                                 RFB_Net(ECCV 2018)

                                                                                             (图三)

        在之前的深度学习模型,通常将RF与特征图上的常规采样网格设置为相同大小,这可能会导致特征可辨性和鲁棒性方面的损失。 Inception 考虑了多种大小的RF,并通过启动具有不同卷积内核的多分支CNN来实现此概念。但是,inception中的所有内核都是在同一中心采样的。

        后来出现了利用Atrous空间金字塔池(ASPP)来捕获多尺度信息的方法。它在顶部特征图上应用了几个具有不同粗化率的并行卷积来改变采样与中心的距离,但是在这一层之前的卷积层的卷积核大小相同,所以这一层输入的特征具有相同的分辨率,也就是对于所有的位置都是看作等价的(不太明白),就有可能会导致物体信息和环境信息的混淆。

我觉得这里的中心是卷积核的中心点对应的特征图的位置,因为卷积计算的结果要赋值到此处,使用空洞卷积可以改变采样点与中心的距离(距离变大,感受野变大),但是为什么使用空洞卷积可以解决Inception中“所有内核都是在同一中心采样”的问题,使用空洞卷积可以改变采样中心吗?

        可变形CNN尝试自适应根据物体的大小和形状调整RF的空间分布。尽管其采样网格非常灵活,但并未考虑RF离心率的影响,其中RF中的所有像素均对输出响应做出同等贡献,并且不强调最重要的信息。(与ASPP有相同的问题)

       RFB与它们不同,它突出显示了RF尺寸与偏心率之间的关系,在这种配置中,较大的权重分配给了位置较小的内核更靠近中心,以显示它们比更远的内核更重要。

       RFB有以下两种结构:

                               RFB_Net(ECCV 2018)

                                                                                             (图四)

       在(a)中每个分支上,特定核大小的卷积层后面跟着一个相应膨胀系数的卷积层,最后,所有分支的feature map被连接起来,合成一个空间池化或卷积数组。(b)中,用两个3*3的卷积层代替5*5的卷积层来减少参数并深化非线性层,用一个1*n和一个n*1的卷积层来替换原始的n*n卷积层。

      由于视觉图之间pRF大小和偏心率的比率不同,我们相应地调整RFB的参数以形成RFB-s模块,该模块模仿浅层人类视网膜图谱中较小的pRF,并将其置于conv4 3特征之后,如图4和图5所示。保留了最后几个卷积层,因为它们的特征图的分辨率太小,无法应用带有像5×5这样的大内核。

                                     RFB_Net(ECCV 2018)

                                                                                            (图五)

5、模型效果(实验结果)

        RFB的特定参数(例如内核大小、每个分支的膨胀率和分支数量)在检测模型的每个位置都有一定程度上的差异。调整RFB参数以模拟大脑皮层图中pRF的大小和偏心率之间的比率, 这种调整可以使RFB最大池化性能提高0.5%(从79.1%提高到79.6%),RFB膨胀卷积性能提高0.4%(从80.1%提高到80.5%),这同样证实了本文所依据的人类视觉系统的机制。

        原始SSD仅在conv4_3,conv10_2和conv11_2位置处的特征图关联4个默认框,并为所有其他层关联6个默认anchor。 但是最近的研究表明:浅层特征对于检测小物体起着至关重要的作用, 因此作者假设如果在浅层特征图(如conv4_3)中添加更多anchor,那么检测模型的性能(特别是小物体检测的性能)往往会由一定程度的增加。在实验中,作者在conv4_3处放置了6个默认框,实验表明这对于原始SSD模型的性能没有任何影响,但对于RFB模型却有0.2%的提升(从79.6%到79.8%)。(个人觉得,这是在说明RFB模型对小目标的特征提取可以带来一定性能上的增益)   

 

文中问题还没有想明白(想明白会更新),欢迎交流。