针对小目标的检测有提升的文章。 未完待续~
Feature Pyramid Networks for Object Detection
FPN是一种多尺度的目标检测算法。大多数目标检测算法都是采用顶层特征来做预测的,但是我们知道:低层的特征语义信息较少,但是位置信息丰富;高层的特征语义信息丰富,位置信息粗略。虽然也有些多尺度特征融合的方法,但是一般采用融合后的特征做预测,但是FPN是在不同特征层独立进行预测的。
4种利用特征的形式:
(a)图像金字塔:将图像做成不同的scale,不同scale的图像生成对应的不同scale的特征。缺点在于时间成本高。有些算法会在测试时候采用图像金字塔。
(b)像SPP net,Fast RCNN,Faster RCNN是采用这种方式,即仅采用网络最后一层的特征。
(c)像SSD(Single Shot Detector)采用这种多尺度特征融合的方式,没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。作者认为SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3),而在作者看来足够低层的特征对于检测小物体是很有帮助的。
==(d)==本文作者是采用这种方式,顶层特征通过上采样和低层特征做融合,而且每层都是独立预测的。
如图一个带有skip connection的网络结构在预测的时候是在finest level(自顶向下的最后一层)进行的,简单讲就是经过多次上采样并融合特征到最后一步,拿最后一步生成的特征做预测。
下面一个网络结构和上面的类似,区别在于预测是在每一层中独立进行的。
作者的主网络采用ResNet。
算法结构分为三部分:
- 自底向上的线路
- 自顶向下的线路
- 横向连接(lateral connection)
图中放大的区域就是横向连接,这里1*1的卷积核的主要作用是减少卷积核的个数,也就是减少了feature map的个数,并不改变feature map的尺寸大小。
自底向上:网络的前向过程。在前向过程中,feature map的大小在经过某些层后会改变,而在经过其他一些层的时候不会改变,作者将不改变feature map大小的层归为一个stage,因此每次抽取的特征都是每个stage的最后一个层输出,这样就能构成特征金字塔。