Title:FPN:Feature Pyramid Networks for Object Detection
Note data:2019/05/18
Abstract:利用特征金字塔对不同层次的特征进行尺度变化后,再进行信息融合,从而可以提取到比较低层的信息,也就是相对顶层特征来说更加详细的信息。在R-CNN的基础上FPN达到了最优的结果,在COCO2016中一举夺魁,并且值得注意的是在一张GPU上可以达到6FPS!
Code:pytorch
FPN论文解读
1 Abstract
论文提出一种基于R-CNN的Object Detectino模型FPN
网络结构:在R-CNN基础上引入特征金字塔
创新:以特征金字塔将不同层次的语义信息进行融合,提取到比较低层次信息。
动机:使得目标检测中小物体的信息也能够比较完整地反映
在目标检测中特征金字塔作为多尺度目标检测的一部分,但由于这种方法太浪费算力和显存,很多研究人员避开这种方法。这篇论文中利用卷积神经网络固有的多尺度・多层级的金字塔结构去构建特征金字塔,使用一种自上而下的侧边连接。一边是图金字塔一边是特征金字塔,在所有尺度构建了高级语义特征图,这种结构就就叫做FPN。
2 Introduction
多尺度目标检测是计算机视觉一个基础且重要的课题,基于图像金字塔的特征金字塔是较为传统的思路,具有一定意义上的尺度不变性,此属性使模型能够通过在两个位置和金字塔等级上扫描模型来检测大范围尺度的对象。
Featurized image pyramids 主要在人工特征中使用,比如DPM就要用到它产生密集尺度的样本以提升检测水平。深度学习的CNN特征成为主流,CNN特征的鲁棒性很好,刻画能力强。即使如此,仍需要金字塔结构去进一步提升准确性,尤其在多尺度检测上。金字塔结构的优势是其产生的特征每一层都是语义信息加强的,包括高分辨率的低层。
对图像金字塔每一层都处理有很大的局限性,首先运算耗时会增加4倍,训练深度网络的时候太吃显存,几乎没法用,即使用了,也只能在测试的时候。因为这些原因,Fast/Faster R-CNN 都没使用featurized image pyramids 。
当然,图像金字塔并不是多尺度特征表征的唯一方式,CNN固有的多级特征图(feature map hierarchy),且不同层的特征图尺度就不同,形似金字塔结构(Figure1[b])。结构上虽不错,但是前后层之间由于不同深度(depths)影响,语义信息差距太大,主要是高分辨率的低层特征很难有代表性的检测能力。
本文特征金字塔网络自上而下的结构,和某些论文有一定的相似之处,但二者目的不尽不同。作者做了检测和分割实验,COCO数据集的结果超过了现有水平,具体结果参见论文中实验部分。值得说的是,本文方法在训练的时间和显存使用上都是可接受的,检测的时间也没增加。
3 Related work
3.1 手工提取与早期神经网络
SIFT特征最初是在尺度空间极值下提取的,用于特征点匹配。 HOG特征以及后来的SIFT特征也在整个图像金字塔上密集计算。 这些HOG和SIFT金字塔已经用于图像分类,物体检测,人体姿态估计等众多工作中。通过首先计算稀疏采样(按比例)金字塔然后插入缺失的级别来演示快速金字塔计算。 在HOG和SIFT之前,使用ConvNets进行面部检测的早期工作计算了图像金字塔上的浅层网络,以检测跨尺度的面部。
3.2 卷积神经网络目标检测
随着卷积网络的发展,像Over-feat,R-CNN等目标检测的方法都取得不错的准确率。OverFeat通过在图像金字塔上应用ConvNet作为滑动窗口检测器,采用类似于早期神经网络面部检测器的策略。 R-CNN采用了基于区域提案的方法,其中每个提案在分类之前进行了规模标准化
ConvNet。 SPPnet 证明,这种基于区域的探测器可以更有效地应用于在单个图像尺度上提取的特征图。 最近和更准确的检测方法,如Fast R-CNN 和Faster R-CNN 提倡使用从单一尺度计算的特征,因为它提供了准确性和速度之间的良好折中。 然而多尺度检测仍然表现更好,特别是对于小物体。
4 Architecture
4.1 自上而下的路径设计
CNN的前馈计算就是自下而上的路径,特征图经过卷积核计算,通常是越变越小的,也有一些特征层的输出和原来大小一样,称为“相同网络阶段”(same network stage )。对于本文的特征金字塔,作者为每个阶段定义一个金字塔级别, 然后选择每个阶段的最后一层的输出作为特征图的参考集。 这种选择是很自然的,因为每个阶段的最深层应该具有最强的特征。具体来说,对于ResNets,作者使用了每个阶段的最后一个残差结构的特征激活输出。将这些残差模块输出表示为{C2, C3, C4, C5},对应于conv2,conv3,conv4和conv5的输出,并且注意它们相对于输入图像具有{4, 8, 16, 32}像素的步长。考虑到内存占用,没有将conv1包含在金字塔中。
4.2 自上而下与横向连接
自上而下的路径(the top-down pathway )是如何去结合低层高分辨率的特征呢?方法就是,把更抽象,语义更强的高层特征图进行上取样,然后把该特征横向连接(lateral connections )至前一层特征,因此高层特征得到加强。值得注意的是,横向连接的两层特征在空间尺寸上要相同。这样做应该主要是为了利用底层的定位细节信息。
金字塔结构中所有层级共享分类层(回归层),就像featurized image pyramid 中所做的那样。作者固定所有特征图中的维度(通道数,表示为d)。作者在本文中设置d = 256,因此所有额外的卷积层(比如P2)具有256通道输出。