郭启帆, 刘 磊, 张 珹, 徐文娟, 靖稳峰,†
(1- 西安交通大学数学与统计学院,西安 710049; 2- 中铁第一勘察设计院集团有限公司,西安 710043)
卷积神经网络CNN 能够学习图像的高级特征表示,在计算机视觉中得到广泛应用.自2012 年一种有效的CNN―AlexNet[1]出现之后,卷积神经网络得到了快速发展,基于CNN 的VGGNet[2]、Inception[3]等网络在工程图像分类中取得了优异的表现.随着ResNet 残差网络[4]的提出,CNN 向更深层次的网络迈进,其图像处理的性能不断提升,已经在视觉检测领域显现出巨大的优势.
近年来,图像分类、目标检测等计算机视觉算法随着CNN 的改进快速发展.Girshick等提出了基于CNN 的R-CNN[5]用于目标检测,使得两阶段的目标检测成为主流.He 等人提出了SPPNet[6],有效解决了候选区域计算冗余的问题.Girshick 提出了Fast RCNN[7],实现了一种多任务学习方式,对目标分类和包围框回归的同步训练.Ren 等人在Faster R-CNN[8]中提出RPN,将区域推荐阶段和CNN 分类融到了一起,实现了一个完全意义上的端到端的CNN 目标检测模型.Redmon 等人提出的YOLO[9]是第一个单阶段卷积网络检测算法,仅通过一次前向传播直接得到目标包围框的位置和目标的类别,有着非常快的检测速度,但是其精度较差.Liu 等人接着提出SSD 算法[10],吸收了YOLO 速度快和RPN 定位精准的优点,采用了RPN 中的多参考窗口技术,并进一步提出在多个分辨率的特征图上进行检测.为了提高单阶段方法的检测精度,Lin 等人提出了RetinaNet[11]检测模型,对传统的交叉熵损失函数进行修正,提出了“Focal Loss”,极大的提高了检测精度.
特征金字塔网络FPN[12]是传统CNN 网络对图片信息进行表达输出的一种有效方法,通过对不同层的特征图进行特征融合,使用多尺度的特征图进行预测.特征金字塔对多尺度特征图的融合在目标检测网络中得到了广泛应用,并取得了显著的效果提升.然而,FPN 没有将存在于低层特征图准确定位信号反馈到高层语义特征图,同时各层级之间的特征传递仅限于相邻层级,导致了特征融合的不平衡性.在Liu 等人的Path Aggregation Network[13]中,引入bottom-up path augmentation 结构,利用网络浅特征对FPN 特征进行融合.
针对FPN 的不足,本文提出基于特征金字塔的多尺度特征融合网络模型(Muti-scale Feature Fusion Network, MSFFN).MSFFN 包含了混合特征金字塔(Mixed Feature Pyramid, MFP)和金字塔融合模块(Pyramid Fusion Block, PFB).MFP 在FPN 的基础上增加了自底向上的路径,把FPN 中低层的细节信息传递到高层的语义特征图,PFB 引入特征注意力机制,将不同层级的特征进行直接融合,同时保留其语义和位置信息,以此来平衡所有用来进行预测的层级.针对MSFFN,本文在MSCOCO 2014 和PASCAL VOC 2012 数据集上进行实验,验证了本文提出的MSFFN 方法的有效性.
特征金字塔网络将低分辨率、高语义信息的高层特征和高分辨率、低语义信息的低层特征进行自上而下地侧边连接,使得所有尺度下的特征都有丰富的语义信息,其结构如图1 所示.通过利用常规CNN 模型从底至上各个层对同一图片不同维度的特征表达结构,可有效在单一图像视图下生成对其的多维度特征表达,其核心思想包括两部分:自下至上的通路即自下至上的不同维度特征生成;自上至下的通路即自上至下的特征补充增强.
自下而上的部分是卷积神经网络的前向过程.在前向过程中,特征图的大小在经过一些层后会改变,而在经过其他一些层的时候不会改变,将不改变特征图大小的层归为一个阶段,因此每次抽取的特征都是每个阶段的最后一个层的输出,这样就能构成特征金字塔.具体地说,使用了ResNet 网络Conv2-x、Conv3-x、Conv4-x 和Conv5-x 各阶段的最后一个残差结构的特征激活输出.自上而下的过程采用上采样,通过内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素,从而扩大原图像的大小.通过对特征图进行上采样,使得上采样后的特征图具有和下一层的特征图相同的大小.
图1 特征金字塔结构
注意力机制是在特征提取的时候,着重关注图像信息最显著的组成部分.即让网络更关注有效特征,具体实施时一般在通道维度加入注意力. Hu 等人[14]提出了探索通道间关系的SE 注意力模块,通过全局池化特征计算每个通道的注意力,SE 注意力模块的结构如图2 所示.
图2 SE 注意力模块
首先对进入SE 注意力模块的特征图F 进行卷积操作,生成特征图F1, F1∈RH×W×C,SE 注意力模块在通道维度关注输入特征图的有用部分,通过将特征图F1全局平均池化生成一维注意力图Favg,其中全局平均池化为了得到每个通道所有元素的反馈,再经过共享的多层感知机得到注意力特征图,经过sigmoid 函数激活生成权重特征图M, M ∈R1×1×C,即为通道注意力特征图,公式表示为
其中σ 为sigmoid 函数.
将带有注意力的权重M 加入网络,M 与特征图F1进行元素相乘得到SE 注意力模块输出特征图F2,公式表示为
针对传统特征提取网络只能依靠深层语义信息来进行预测,而忽略网络低层细节信息的不足,本文提出了多尺度特征融合网络MSFFN,其结构如图3 所示.MSFFN 在FPN主干网络的基础上,为了用低层细节信息增强特征金字塔,创建了自下而上的路径,以增强低层细节信息到高层的传递.同时,MSFFN 对各层级的特征进行了融合,并反过来作用于相应层级的特征,来平衡各层级间的差异性,同时增强了有用特征的表达.本节首先介绍MSFFN 的用来路径增强的混合特征金字塔网络,然后描述金字塔融合模块.
图3 MSFFN 网络结构
混合特征金字塔MFP 在FPN 的基础上,增加了自底向上的路径,将FPN 中低层的细节信息传递到高层的语义特征图.图3 中矩形虚线框为MFP 的结构,N2~N5为自底向上的路径增强.MFP 使用ResNet 作为基础的特征提取网络,使用ImageNet 上训练好的权重作为预训练模型,采用ResNet 网络Conv2-x、Conv3-x、Conv4-x 和Conv5-x 各阶段的最后一个残差结构的特征激活输出.根据FPN 的定义,将四种不同尺度的输出生成与相同层空间维度大小一致的特征图,记为{C2,C3,C4,C5}.
在此基础上,本文设计了从低层到最高层的路径.从C2开始一直到C5,空间尺寸逐渐采取下采样.该过程新生成的与{C2,C3,C4,C5}相对应的特征图记为{N2,N3,N4,N5}.图4 描述了从Ni产生Ni+1的结构,每个Ni首先通过一个3×3,步长为2 的卷积层来减小尺寸,产生与Ci+1尺寸相同的特征图.之后Ci+1与下采样的特征图元素相加.加和后的特征图经过另外一个3×3 的卷积操作产生Ni+1.生成Ni+2的操作由Ni+1重复上述过程.图4 结构的公式表示如下
图4 从底向上的路径增强
MFP 中的路径增强将低层细节信息和深层语义信息进行了传递.但是,这种传递仅限于相邻层级,最高层的信息传递到最低层会变得较为微弱,造成了各层级之间信息的不平衡性.为了解决这个问题,本文提出了一个金字塔融合模块PFB,将不同层级的特征进行直接融合,同时保留其语义和位置信息,以此来平衡所有用来进行预测的层级.PFB 的结构如图3 中右边的虚线框部分所示.首先将不同层级的特征{N2,N3,N4,N5}通过插值或最大池化重构为N4的尺寸大小,得到{F2,F3,F4,F5},之后,取其均值得到平衡语义特征Fb.在l 层分辨率的特征记作Fl,最低层及最高层特征的索引记作lmin, lmax.Fb的公式如下
其中L 为金字塔的层数.
为减少平衡语义特征的信息冗余,进一步增强特征表达,本文采用了SE 注意力模块[14],利用注意力机制对融合特征图的有效特征进行了加强,并加入了残差连接,其结构如图5 所示.通过提取特征图的通道维度的注意力,关注信息最显著的组成部分,可以有效地增强平衡语义特征的特征表示.
图5 残差注意力机制模块
这里σ 表示sigmoid 函数,W0∈RC/r×C, W1∈RC×C/r,表示通道注意力分支中MLP 的权重参数.在上述操作之后,本文将得到注意力图Mc作用于SE 注意力模块的输入特征图Fb,得到经过注意力机制增强特征表示的A,公式如下
为了将平衡后语义特征信息反馈到每一个层级,将SE 注意力模块的输出A 使用相同但相反的过程,重构到与各层级对应相同的尺寸,得到{A2,A3,A4,A5},与{C2,C3,C4,C5}进行加和操作,得到{P2,P3,P4,P5}.其公式表示如下
{P2,P3,P4,P5}与{C2,C3,C4,C5}相比,平衡了各层级间的差异性,增强了各层的原始特征.用于后续的目标检测中,流程和FPN 相同.
本文实验计算环境:CPU 为Xeon E5-2664 v4 Gold,主频3.2 GHz,16 核;GPU 为NVIDIA Tesla P100,16 GB 显存,3584 个核心.采用深度学习开源框架Pytorch1.1.0 进行深度网络模型训练和测试.
本实验在PASCAL VOC 2012 和MS COCO 2014 数据集对本文提出的多尺度特征融合网络进行测试.PASCAL VOC 2012 具有21 个类,训练集包含5717 张图像,验证集包含5823 张图像.MS COCO 2014 具有81 个类,训练集包含82783 张图像,验证集包含40504 张图像.
1) 训练过程
本实验使用Faster R-CNN 作为基础目标检测结构,使用ResNet 作为特征提取网络,对所提出的多尺度特征融合网络进行训练.在PASCAL VOC 2012 数据集上,本文设置了12 个epoch,betchsize 大小为16,初始学习率为0.02,分别在第8 和第11 个epoch,学习率减小为原来的0.1 倍.在MS COCO 2014 数据集上,除了将初始学习率设置为0.01,其他设置与PASCAL VOC 2012 数据集相同.
2) 模型评估
本文使用MAP(Mean Average Precision)来评估所提出方法的性能,其公式如下
这里Recall(R)是召回率,Precision(P)是精确率,TP 为正样本被分为正样本的数量,FN 为正样本被错误地分为负样本的数量,FP 为负样本被错误地分为正样本的数量.TP +FN 为全部正样本数量,TP +FP 全部被分为正样本的数量.
TP 和FP 根据IOU(Intersection Over Union)阈值来判断,IOU 公式如下
这里A 表示GT Box,B 表示检测模型预测的anchor.假设IOU 阈值为0.5,如果IOU >0.5,则样本为TP,否则为FP.
在PASCAL VOC 2012 数据集的性能实验中,本文使用Faster R-CNN 作为基础检测器,ResNet 作为特征提取网络,来评估所提出的模型,使用5717 张图像训练模型,5823 张图像进行测试.表1 显示出MAP 值在三种深度的ResNet 上均得到了一定的提升,ResNet50、ResNet101 和ResNet152 分别提升1.1%、0.9%和0.6%.MSFFN 与FPN 的识别效果对比如图6 所示,图6(b)的小鸟和远处的船只均被MSFFN 识别,而图6(a)中FPN 则未检测出,图6(c)中左侧的酒瓶被FPN 识别出两个目标框,而图6(d)中MSFFN 则准确地检测出酒瓶.实验说明本文使用注意力机制对FPN 各层特征进行了有效的融合.
为进一步验证所提方法的性能,本文在MS COCO 2014 数据集上对模型进行测试.MS COCO 2014 数据集包含80 个类,超过80,000 张图像用于训练.表2 描述了本文使用ResNet50 和ResNet101 得到的检测器在验证集的性能表现.使用ResNet50 时MSF FN 比FPN 在AP@IOU=0.5 上高1.8%,AP@IOU=0.7 上高1%以及AP@IOU=0.5:0.95上高1.2%.使用ResNet101 时MSFFN 比FPN 在AP@IOU=0.5 上高1.6%,AP@IOU=0.7 上高1.2%以及AP@IOU=0.5:0.95 上高1.1%.总的来说,这个数据集上的实验显示了所提出的方法在Faster R-CNN 目标检测网络中所起到的性能提升作用.
表1 PASCAL VOC 2012 数据集实验结果
表2 MS COCO 2014 数据集实验结果
图6 MSFFN 与FPN 效果对比
针对传统的特征金字塔网络只能依靠深层语义信息来进行预测,而忽略网络低层细节信息的不足,本文提出了基于特征金字塔的多尺度特征融合网络MSFFN.MSFFN 在FPN主干网络的基础上,设计了混合特征金字塔MFP 和金字塔融合模块PFB.为了用低层的细节信息增强特征金字塔,MFP 创建了自下而上的路径增强.同时,PFB 对各层级的特征进行了融合,并反过来作用于相应层级的特征,来平衡各层级间的差异性,增强了有用特征的表达.之后,在PASCAL VOC 2012 和MS COCO 2014 两个数据集上进行的实验证明了MSFFN 对特征融合的有效性.本文提出的多尺度特征融合网络可以作为提升目标识别与跟踪、异常检测和图像分割等图像处理与视频分析算法性能的基本模块.