FPN网络
本次阅读的文章是来自FAIR的多尺度的object detection算法:FPN(feature pyramid networks)。目前目标检测的算法大量采用卷积神经网络做特征提取,但是大多只利用了单层的feature map,例如faster-rcnn、yolo等。但是由于卷积网络的结构,只利用一层的feature map会存在一些问题:低层的特征虽然有着高分辨率的,但是语义信息不够完善;高层的特征语义信息比较丰富,但是目标位置比较粗略。同时,有部分的工作利用到了多层的信息,但是这些特征往往被单独的用来直接预测,单层特征的缺陷依然是存在的。
本文所介绍的工作,通过加入自上而下(top-down)的通路和横向连接,生成既有丰富语义信息又具备良好精度的多尺度特征。
网络结构
FPN可以用在各种不同的任务上。在本文中,主要介绍了利用FPN来作为RPN(Region Proposal Network)的特征提取网络。
FPN网络以特征尺寸的图像作为输入,通过全卷积网络,在不同的层次生成feature map。文章中给出的结果都是基于Resnet结构。
自下而上的通道
自下而上的通道与一般的ConvNet的前向计算相当。先有效果较好的ConvNet结构在前向过程中,由于stride的存在,feature map的尺寸会有所改变,同时也存在着很多结构上相邻的尺寸一样的feature map。文章中将这些尺寸相同的一组feature map作为一个stage。用于往往越上层的layer的语义信息越丰富,所以采用了每一个stage最后的一个layer的输出作为之后的参考features。
自上而下的通道与横连接
自上而下的通道的设想是通过上采样的方式,从网络顶层获得语义信息丰富,但是空间精确度不高的新feature map。同时利用横连接(lateral connections)将自下而上产生的feature map与自上而下的通道中的feature map进行merge。
其中,由于目前大多数网络在feature map尺寸变化时,stride都是2,所以上采样的系数设为2。横向连接是一个1*1的卷积,目的是改变channel的纬度。自上而下的feature map和横向连接的输出在每个对应的元素做加法运算。特别的,在每一个融合后的feature map后,都有一个3*3的卷积层,其目的是消除上采样长生的混叠效应(aliasing effect)。
应用
文章介绍了将FPN应用在RPN网络中来。与传统faster-rcnn中RPN的主要区别是,利用RPN网络产生多尺度的特征作为特征来生成proposal。在faster rcnn中,在最后的feature map上定义不同尺寸的anchor,而将FPN应用在RPN的时候,可以在不同的尺度上定义不同尺度的anchor,这样既保证了精度,也确保了语义信息足够丰富。
由于差别只是特征的提取方式和anchor的定义方式不太一样,所以FPN结构和faster-rcnn的训练过程是差不多的(IoU定义正负样本)。
总结
FPN算法是一个十分简洁,很有美感的框架结构。通过同时利用低层特征的高分辨率信息与高层的强语义特征,增强了在目标检测中对区域预测的准确性。在实验中,FPN也表现除了良好的性能。该算法在COCO目标检测数据集上超过了现有的所有单模型方法,同时支持end-to-end在多尺度上的训练(赞)。