论文名称:Feature Pyramid Networks for Object Detection
这是一篇CVPR2017的文章,提出一种新型的特征金字塔网络,作者是何开明等人
首先,文章介绍了特征金字塔,特征金字塔是图像识别领域的一个基础元素,何为特征金字塔?如下图所示:
上图就是一个传统的图像金字塔,针对一个输入图像,resize成多个scale,针对每个scale,都输入网络训练,预测,这样,网络能够针对不同的scale的图像进行预测,但是问题很明显,也很严重,就是计算开销太大
于是,作者要探索一种新型的特征金字塔来解决这个问题
关于特征金字塔,作者举例了传统的3类和自己提出的金字塔,如下图所示
其中,图a已经在上面介绍,图b就是只用一个单一scale的图像进行训练,预测,抛弃了multi-scale特征,对于图c而言,与图b类似,但是在网络进行卷积过程中,图像的size在不断变小,在特定阶段进行预测。图d就是作者提出的模型,
虽然图c中的模型可以解决相关的问题,但是抛弃了高纬度的特征,例如,在图像的细节预测上,一些微小的物体只有在高层次的卷积层才可以识别,在低维的卷积层是无法识别的,那么对图c的模型而言,很显然,在低层次的预测结果是很差的,因为此时没有考虑高维的图像特征,但是图d的模型解决了这个问题,将高维特征进行逐步下采样,与相应卷积层的特征图相加即可。既能结合高维的特征,又能在较小的计算开销下产生multi-scale的输出。
有些模型与作者提出的模型类似,如下图所示
上图中有两个模型,分别称为top和bottom,其中,bottom是作者提出的模型,相对于作者提出的模型而言,top模型只在最后进行预测,但是bottom模型能够产生所有level的输出。
那么具体要怎么做呢?如下图所示
如上图所示,训练分两个过程,左边是bottom-to-up,右边是up-to-bottom
首先是bottom-to-up,逐步卷积,完成卷积后,就是up-to-bottom
具体的操作,我做了一个图,如下图所示
首先,输入经过layer1,layer2,layer3的3个卷积层,随后,开始预测输出
layer3的输出用1X1的卷积核反卷积,即为top-layer1的输出;
top-layer1的输出用3X3的卷积核反卷积,实现2X上采样,同时layer2的输出进行通道压缩,用1X1的卷积核压缩为1通道后反卷积(此时的反卷积不需要上采样),将layer2操作的结果与top-layer1操作的结果相加,即为top-layer2的输出;
同理,top-layer2的输出进行2X上采样,将layer1的输出通道合并,反卷积,与之相加,即为top-layer3的输出
至此,该篇论文结束
其实,此类型的金字塔在其他文章中已经存在,
举个例子,CVPR2017中,有一篇名为SRN: Side-output Residual Network for Object Symmetry Detection in the Wild ----CVPR 2017的论文,其中就是逐步下采样。
可以看下SRN论文中的一张图,
这个deep-to-shallow与shallow-to-deep就类似于该篇论文中的bottom-to-up与up-tp-bottom
本人有一篇关于SRN的解读博客,
博客地址:http://blog.csdn.net/wangkun1340378/article/details/77737329