改进卷积神经网络目标检测,提取多尺度的特征信息进行融合,提高目标检测的精度 

R-CNN系列是在得到的最后一层特征图上进行特征提取,从而进行目标识别的,

顶层特征在不断地卷积池化过程中可能忽略了小物体的一些信息

只根据顶层特征进行目标识别,不能完整地反映小目标物体的信息。

如果可以结合多层级的特征,就可以大大提高多尺度检测的准确性。  

FPN可以广泛地应用在针对小目标物体的检测

图像金字塔

主要使用人工提取不同尺度的图片的特征

 传统的提取多层级特征的方法,多分辨率来解释图像

特征金字塔和显著目标检测 fpn特征金字塔_特征金字塔和显著目标检测

图片金字塔(a左)上进行特征提取,可以构建出特征金字塔(a右)

          

特征金字塔和显著目标检测 fpn特征金字塔_特征金字塔和显著目标检测_02

 问题是运算耗时过大,需要的计算能力较高

SSD(Single Shot Detector)

CNN计算的时候本身就存在多级特征图,且不同层的特征图尺度就不同,形似金字塔结构。

如果利用这个金字塔结构进行目标检测,从网络不同层抽取不同尺度的特征做预测,

不仅没有增加额外的计算工作,也可以利用低层特征。

SSD(Single Shot Detector)就采用了这种方法。

特征金字塔和显著目标检测 fpn特征金字塔_特征金字塔和显著目标检测_03

 SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3)

FPN算法

把低分辨率、高语义信息的高层特征

和高分辨率、低语义信息的低层特征 

进行自上而下的侧边连接,使得所有尺度下的特征都有丰富的语义信息。

特征金字塔和显著目标检测 fpn特征金字塔_图像处理_04

卷积神经网络的前向过程(上图左),自上而下过程(上图右)和特征与特征之间的侧边连接。

在前向过程中,特征图的大小在经过某些层后会改变,而在经过其他一些层的时候不会改变,将不改变特征图大小的层归为一个阶段,因此每次抽取的特征都是每个阶段的最后一个层的输出,这样就能构成特征金字塔。

自上而下的过程 对 特征图 进行  上采样。使上采样后的特征图有和下一层的特征图相同的大小。

侧边之间的横向连接的过程在下图中展示。

将上采样的结果  和  自下而上生成的特征图进行融合。

将卷积神经网络中生成的  对应层的特征图  进行1×1的卷积操作,

将之与经过 上采样 的 特征图融合,得到一个新的特征图,这个特征图融合了不同层的特征,具有更丰富的信息。

这里1×1的卷积操作目的是改变channels,要求和后一层的channels相同。

在融合之后还会再采用3*3的卷积核对每个融合结果进行卷积,目的是消除上采样的混叠效应,

如此就得到了一个新的特征图。这样一层一层地迭代下去,就可以得到多个新的特征图。

生成的特征图结果是P2,P3,P4,P5,和原来自底向上的卷积结果C2,C3,C4,C5一一对应。金字塔结构中所有层级共享分类层(回归层)。

特征金字塔和显著目标检测 fpn特征金字塔_图像处理_05

上采样、下采样

主要目的

缩小图像(或称为下采样(subsampled)或降采样(downsampled)):符合显示区域大小

放大图像(或称为上采样(upsampling)或图像插值(interpolating)):放大原图像,提高质量

原理

下采样:图像I尺寸为M*N,对其进行s倍下采样,即得到(M/s)*(N/s)尺寸的得分辨率图像,

(s是M和N的公约数),

若是矩阵式图像,s*s窗口内的图像变成一个像素,这个像素点的值就是窗口内所有像素的均值:

上采样:图像放大几乎都是采用内插值方法,在像素点之间采用合适的插值算法插入新的元素。

缩放图像(下采样)、放大图像(上采样),采样方式多种。如最近邻插值,双线性插值,均值插值,中值插值等方法