使用3D卷积从FPN中提取尺度不变特征[Paper Download]
[Code Download] 在CVPR 2020上,为了更好地解决物体检测中的尺度问题,商汤团队重新设计了经典的单阶段检测器的特征金字塔网络Feature Pyramid Networks (FPN)[1]以及HEAD结构,通过构造更具等变性的特征金字塔,以提高检测器应对尺度变化的鲁棒性,可以使单阶段检测器(single-stage object detector)在COCO上提升 4mAP,完整pytorch代码github已开源。 动机Feature Pyramid Networks (FPN)是facebook提出的高效提取图片中各尺度特征,在多个尺度同时检测的方法。低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置粗略。以前的object detection算法都是只采用顶层特征做预测,或者虽然采用多尺度特征融合的方式(ScaleNet相关文章),但是采用融合后的特征做预测。 而FPN不一样的地方在于预测是在不同特征层独立进行的。
文章提出了一个针对物体具有大尺度变化数据集的检测算法。工作的研究动机在于: 1. 当前所有基于RetinaNet的单阶段检测器,都采用了共享权重的分类HEAD以及回归HEAD在特征金字塔FPN上滑动从而检测不同大小的物体,相应的最为适应这种结构的特征金字塔对于尺度变化应当具有等变性。 2. 经典的底层特征提取算法如SIFT (scale invariant feature transform),其高斯金字塔具有很好的尺度等变性(scale invariance),我们思考了深度神经网络中特征金字塔(feature pyramid)与高斯金字塔(Gaussian pyramid)的区别,从而提出了提高其等变性的算法。 关于高斯金字塔的等变性质,可以结合下面一个示例为大家展示这种性质:
1. 如图2,可以用一个高斯卷积核去除高频后降采样一次,使得大羊的羊嘴特征跟小羊在同一尺度,从而在降采样的图上进行大羊羊嘴的检测。 2. 如图3,可以用一个高斯卷积核去除高频后,将特征提取算子变为变为空洞卷积,亦可以进行大羊的羊嘴检测。 这两种方法不仅符合直觉,其在数字信号处理理论中有较为完善的理论论证,在此不再赘述。 回想单阶段检测器(如RetinaNet),
分析相比高斯金字塔,从backbone的不同stage抽取特征图组成的的特征金字塔其实失去了严格的等变性。 1. 相比于图像处理中low level的特征,深度神经网络提取的特征往往经过足够多基础特征的组合,
其特征往往有更为复杂的高级语义,并且由于我们用相同的backbone进行特征的提取不同尺度的物体的特征会有相互竞争的现象。 2. 深度神经网络中,因为足够多的卷积与非线性激活单元,其不同stage感受野的变化在特征图的不同位置具有不一致的现象,
使得特征金字塔的两层间很难有高斯金字塔一样,不同大小物体的特征在downsample一次,
或者增大特征提取算子的dilation这样的处理后具有一致性。 关于不同尺度物体的竞争:
网络设计如何改进特征金字塔FPN使其具有更好的等变性质呢? 我们发现,在特征金字塔FPN的某一层为基准,其与上下两层间具有更好的相关性,直觉上可以推测其底部一层往往保留有更多的定位相关的信息,更高层往往具有更好的分类相关的信息,而以往的feature fusing的方法都遗漏了这种空间尺度(特征金字塔层间)的相关性。
无论是形式上的分析还是实验发现的这种相关性暗示我们尺度空间(scale-space)上确实有值得提取的特征,我们希望通过在尺度空间(scale-space)上进行卷积来提取这种特征。 考虑到FPN的不同层的分辨率不同,我们由此提出金字塔卷积(Pyramid Convolution, Pconv)的结构。
实验结果我们做了详尽的消融实验,以确保我们每个模块的有效性.我们选取了FSAF[4],RetinaNet,FreeAnchor[5]三个有代表性的model验证我们的有效性。 同时我们选取了FreeAnchor为基础与当前SOTA检测器进行了比较。 其他FPN变体PANet [6], BiFPN [7], Recursive-FPN [8] 参考文献[1] Tsung-Yi Lin, Piotr Dollar, Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie. Feature pyramid networks for object detection. In CVPR, 2017. Stats Copyright © 2021 Wayne Zhang. |