一.目的及方法

为了在深层次提高小目标检测精度和效率。为了保持大尺寸和小尺寸目标检测结果的一致性,本文提出了一种新的结构ReBiF特征金字塔。它是双向的,可以融合深部和浅部特征,使目标检测更加有效和稳健。由于“残差”的性质,类似于ResNet[5],可以很容易地训练和集成到不同的骨干(甚至更深或更轻)比其他双向方法。在这种结构的基础上,提出了一种新的双融合模型,使残差特征形成一个紧凑的表示,将更精确的定位信息引入到每个预测层中,不仅提高了小目标检测的结果,而且提高了大、中型目标检测的结果。

(1)提出了一种新的残差双融合特征金字塔,将深、浅层特征融合到更精确的单阶段目标检测中。
(2)新的特征金字塔由于其“残差”性质,可以很容易地训练和集成到不同的主干中。
(3)在评估残差特征金字塔在不同数据集、对象大小和对象类上的性能时,可以更好地概括残差特征金字塔。
(4)分散化模块可以降低池化层对目标检测的移位不变性影响。

(5)所提出的方法对于高精度和高效的对象实现了SoTA结果

二.ReBiF

rnn 目标检测 resnet目标检测_卷积

rnn 目标检测 resnet目标检测_rnn 目标检测_02

图a 为常用方法FPN,然而,由于合并和量化的影响,它不能保持精确的位置。要解决这个问题,最好不仅从当前层预测对象,而且从浅层预测对象,以防止小对象丢失。

图b 我们提出了一个核心(连接和重组)模块,通过仅重用主干网的三个层(前一层、当前层和下一层)的特征映射来传递语义和定位信息。“重用”机制可以节省内存和带宽,适合嵌入式应用。核心模块的输出可以进一步“净化”以生成更多的语义特征

图c 当“净化”模块被注入到特征金字塔中时,一个新的双融合特征金字塔被构建用于高质量的目标检测.

图d 显示了这个剩余特征金字塔的最终架构。受ResNet-101概念的启发,如果实现“残差”概念,这个金字塔可以容易、高效和有效地训练。

<1>核心模块

rnn 目标检测 resnet目标检测_rnn 目标检测_03

为了避免使用过多的抖动操作(即卷积)和计算代价高昂的操作(即池化和加法),以尽可能保留用于预测的特征,采用本模块,以上为核心模块结构,核心模块采用级联将较深层的特征融合到当前层,并采用重组操作将较浅层的特征融合到当前层。

Upsample(上采样)Reorg(重组)用来匹配相同feature map 大小

Bottleneck:

本结构为Resnet论文中提出的一种结构,为了实际计算的考虑,作者提出了一种bottleneck的结构块来代替常规的Resedual block,它像Inception网络那样通过使用1x1 conv来巧妙地缩减或扩张feature map维度从而使得我们的3x3 conv的filters数目不受外界即上一层输入的影响,自然它的输出也不会影响到下一层module。不过它纯是为了节省计算时间进而缩小整个模型训练所需的时间而设计的,对最终的模型精度并无影响。结构如下图:

rnn 目标检测 resnet目标检测_池化_04

注.通过1*1卷积缩减或扩张feature map 纬度:例如,通过一次卷积操作,W*H*6将变为W*H*1,这样的话,使用5个1*1的卷积核,显然可以卷积出5个W*H*1,再做通道的串接操作,就实现了W*H*5。

<2>净化模块

rnn 目标检测 resnet目标检测_目标检测_05

该模块由两个连续的特征提取部分组成,每个部分包括一个Bottleneck和一个3×3卷积层。前者用于将信道数从D减少到D/2。后者用于提取上下文特征。第二瓶颈层的输出被馈送到另一个核心模块,以在较浅的尺度上精炼定位信息。

<3>分叉特征金字塔

通过递归地执行核心和净化模块,只重用主干的三个层(前一层、当前层和下一层)的特征映射,形成分叉特征金字塔。“重用”机制使其具有内存和带宽效率,并且适合于嵌入式应用程序。递归地从深层和浅层双向循环语义和定位信息,也显著提高了小目标检测的准确性。递归的特性也带来了定位信息来优化大对象的位置。

<4>残差特征金字塔

受ResNet[5]概念的启发,本文采用“残差”递推公式来实现和训练双融合特征金字塔网络。通过递归地将第(i-1)个核心模块的输出注入第i个核心模块,就是相当于类似残差网络将Recore输出直接跳过Purification层链接到下一Recore,

rnn 目标检测 resnet目标检测_池化_06

如下图。

rnn 目标检测 resnet目标检测_池化_07

最终结构如下图,结合上图d理解:

rnn 目标检测 resnet目标检测_目标检测_08

<5>大中型目标检测的改进

rnn 目标检测 resnet目标检测_目标检测_09

为了在小尺寸和大尺寸目标检测上获得高精度,剩余金字塔结构中各层之间的特征将使用自下而上的路径进一步融合,如图6.

但串联操作中的池化层会改变 移位不变性:

rnn 目标检测 resnet目标检测_目标检测_10

如图a feature map 采用最大池化,kernel=2,步长(stride)=2,得到图b, 将a进行

rnn 目标检测 resnet目标检测_rnn 目标检测_11

的轻微移位,会得到图c,完全不同的结果。显然,池化操作肯定会导致移位不变性要求的丢失。

为了减少池化层的影响,本文建议使用1×1卷积,会比串联操作更好地融合来自下采样数据和来自当前层的特征。

Bi F中的1×1卷积滤波器是自动学习的;而串联(concatenation)是“手工制作的”。图8显示了我们的Bi融合模块的体系结构。

rnn 目标检测 resnet目标检测_rnn 目标检测_12

FM i表示第i层feature map,使用一种reshape技术将其分为四个子面。然后,将1×1卷积应用于融合四个子面和FM i-1以生成Ci-1特征信道。如上例第一排

rnn 目标检测 resnet目标检测_池化_13

,被分成

rnn 目标检测 resnet目标检测_池化_14

,如果FMi-1是[1,1,1,1] ,并且1x1卷积为均值(中间值或最小值都差不多为),我们将其融合,融合前

rnn 目标检测 resnet目标检测_池化_15

 融合结果为

rnn 目标检测 resnet目标检测_池化_16

,更接近

rnn 目标检测 resnet目标检测_池化_17

,大量的实验表明,1×1卷积在小尺寸和大尺寸目标检测中的性能都远优于级联运算。

三.实验结果

rnn 目标检测 resnet目标检测_池化_18

rnn 目标检测 resnet目标检测_rnn 目标检测_19

rnn 目标检测 resnet目标检测_池化_20

rnn 目标检测 resnet目标检测_池化_21

rnn 目标检测 resnet目标检测_rnn 目标检测_22

 



rnn 目标检测 resnet目标检测_池化_23

rnn 目标检测 resnet目标检测_rnn 目标检测_24