特征融合型卷积神经网络的语义分割
2020-05-20马冬梅贺三三杨彩锋严春满
马冬梅,贺三三,杨彩锋,严春满
西北师范大学 物理与电子工程学院,兰州 730070
1 引言
深层卷积神经网络(Deep Convolutional Neural Network,DCNN)在图像识别[1-2]、物体检测[3-4]和关系分类[5]方面有很好的应用。DCNN的内在不变性可以学习到密集抽象的特征,比传统根据样本特征设计的系统性能要好很多。在分类任务中,这种不变性是很重要的,但是在密集的预测任务中却会产生不利影响。例如在语义分割中不需要抽象的空间信息,而是需要更加精细的定位能力。
DCNN 应用于语义分割面临以下三个问题:(1)特征分辨率递减;(2)不同尺度物体的存在导致目标特征丢失;(3)DCNN的不变性使得定位精度下降。
问题(1)是由于重复组合DCNN 中最大池化引起的。在全卷积的DCNN中[6],由于多次使用最大池化层,导致了特征图的空间分辨率成倍降低。本文通过设置步长取消VGG-16的最后两个下采样操作(通过最大池化进行的下采样),并采用空洞卷积,通过产生更密集的特征图来解决这一问题。和常规的卷积相比较,空洞卷积可以在不增加参数量和计算量的情况下有效地扩大滤波器的感受野。
问题(2)是由多尺度物体的存在引起的。其中一个解决办法是在DCNN 的输入端并列地提供不同尺度的图像的缩放版本,然后融合特征图[7]。这种方法在实验中的确提高了系统的性能,但是要对输入图像的多尺度缩放版本计算特征响应,计算量很大。本文以并行的多个采样率的空洞卷积重新采样特定的特征层,这就相当于用多个滤波器提取原始图像的特征。多采样率的空洞卷积还具有不同尺度的视野,进而在不同尺度上捕获物体的有用信息。
问题(3)涉及到的空间变换不变性是以物体为中心的分类器,这一特性固有地限制了DCNN的空间定位精度。本文采用跳跃层结构从多个网络层提取特征可以捕获细节能力,另外本文采用文献[8]提出的全连接条件随机场。全连接条件随机场能够捕获边缘的细节,同时也适应长距离的依赖,计算更有效,很大程度上提高了像素级分类器的性能。
2 相关研究
通过样本分析来设计特征的单一分类器的传统方法,如支持向量机(Support Vector Machine,SVM),在语义分割中取得了很好的成绩,但是这些系统的缺点是所表达的特征有限。近几年深度学习在图像分类中取得了很好的成绩,进而转移到了语义分割的任务中[9]。通过提供密集的像素标签类别,DCNN可以进行端到端的密集的像素预测,以至于可以脱离分割这一步骤。
图1 本文算法结构和DeepLab-ASPP对比图
基于深度学习的语义分割在这几年发展迅速,取得了重大突破,主体框架大体可分为VGGNet(Visual Geometry Group Network)和ResNet(Residual Network)两大系列。VGGNet 系列有FCN(Fully Convolutional Network)、SegNet[10]、U-Net[11]、DeepLab[12]等。ResNet 系列有PSPNet(Pyramid Scene Parsing Network)[13]、ICNet[14]、BiSENet(Bilatel Segmentation Network)[15]、DeepLab V3+[16]等。基于ResNet 主框架的网络引入了残差结构,层数比VGGNet 系列翻了好几倍,提高了收敛效果,取得了比VGGNet整体水平优异的结果,但是考虑到网络结构的复杂性,以及对硬件设施的高性能要求,本文主要针对主体框架为VGGNet 结构的网络展开研究。文献[6]将DCNN 以全卷积(FCN)的方式应用于整个图像数据集,完全脱离了分割方法,用卷积层代替VGG-16 的最后三层全连接层,然后利用反卷积将分辨率恢复为原图大小,从而进行语义分割的密集预测。文献[6]通过对中间的特征图进行上采样,然后进行多特征图像的融合,进一步提高了定位精度,取得了更好的语义分割效果,但是由于引入卷积核为7 的卷积,大大增加了模型参数,从而增大了计算负担。文献[17]引入了级联的不同采样率的空洞卷积来聚合多尺度上下文信息。文献[12]对FCN进行改进,用3×3的卷积来取代第14层的7×7卷积层,减少了模型参数,从而加快了收敛速度。文献[18]引入了并联的不同采样率的空洞卷积,提取不同尺度目标的特征,改进了密集预测效果,如图1(a)所示。这些方法从不同的侧面对VGG-16进行改动,从而达到密集预测的效果,但没有整体性地考虑。本文从多方面考虑,用3×3的卷积来代替VGG-16的第一个全连接层,这里卷积层采用并联的采样率为r=6,12,18,24 的空洞卷积来提取不同尺度的特征信息,用卷积核为1×1的卷积代替VGG-16的后两个全连接层,来进行特征图的降维。并且在VGG-16 主框架的Pool3 和Pool4 层中用卷积核为3×3的卷积进行浅层特征的提取,同样用1×1的卷积来对提取的浅层特征进行降维,并进行最后的特征图融合,如图1(b)所示。
3 算法介绍
选择一个合适的主体框架是语义分割系统的首要任务,通过调研本文选择VGGNet 作为主体框架,主要是基于以下三点来考虑的:
(1)VGGNet 有很强的特征提取能力,在迁移学习方面的表现要优于AlexNet和GoogLeNet。从图像中提取CNN特征的算法中,VGGNet是首选[6]。
(2)基于ResNet 网络的语义分割系统,取得了良好的语义分割效果,但层数是VGGNet 的数倍,系统结构复杂,以及对硬件设施有高性能要求[16]。
(3)基于VGGNet主体框架的FCN网络的跳跃层结构在没有增加网络深度的情况下拓宽网络的宽度,提高了语义分割的精度,结构较基于ResNet 网络语义分割系统简单[6]。
基于以上考虑,本文选择VGGNet作为语义分割系统的主体框架。采用在ImageNet 图像分类任务(1 000类)中训练的深度卷积神经网络VGG-16来进行参数初始化,算法在主框架VGG-16的浅层(Pool3,Pool4)中分别使用卷积核为3 的卷积的跳跃层结构来提取浅层特征,通过使用跳跃层结构可以提高目标的定位能力。同时用3×3 的采样率为r=6,12,18,24 的卷积来代替全连接层,这样可以对不同尺度的目标特征进行有效的提取,对所提取的特征图用1×1的卷积进行降维。最后进行特征图像的大融合。因为采用下采样后的标签图来进行训练,所以为了恢复到原始图像的分辨率,采用双线性插值对得分图进行上采样,然后用全连接条件随机场(Conditional Random Field,CRF)优化分割结果。基于VGG-16算法模型的改动部分如图1(b)所示,流程图如图2所示。
图2 本文算法流程图
4 关键技术介绍
4.1 空洞卷积
在文献[18]中,作者进行多次实验,在Fc6层使用的卷积核为7、4、4、3,对应的采样率为4、4、8、12,共4组不同的实验进行对比。发现当卷积核为3×3,采样率r=12时,模型与CRF能达到最好的平衡。故在本文算法中为了达到类似的平衡,同样采用卷积核为3×3,采样率r=12 的空洞卷积。假使卷积核的大小用ksize表示,空洞卷积感受野可以用以下公式来表示:
由以上公式计算得:感受野从3×3 变为47×47,在Fc6 层中引入r=12 的空洞卷积,也就是在3×3 的卷积核中每行列各空开11个位置,也就是所谓的“空洞”,这些空洞不参与计算,通过提高卷积层的感受野,空洞卷积可以计算到图像更大范围的响应。虽然滤波器的尺寸增大了,但是在计算中只考虑非“空洞”的滤波器的值。因为滤波器参数数量保持不变,所以没有增加计算量,并且空洞卷积可以简单直接地控制卷积神经网络的特征响应的空间分辨率,从而可以提取更多的特征,实现更密集的训练。
4.2 并联的不同采样率的空洞卷积
在Fc6层中并联地引出4条支路,分别用3×3,r=6,12,18,24 的空洞卷积进行特征提取,如图1(b)所示,使用不同采样率的多个并行的空洞卷积,相当于用多个不同视野的滤波器提取原始图像特征,进而捕获物体的不同尺度的有用信息。在每个空洞卷积提取的特征中再进一步单独降维处理,融合每一分支的特征图。
4 条支路是在VGGNet 的主体框架上的横向扩展,4 条支路结构相似,唯一区别就是支路首端Fc6 层的成倍增加的采样率,从技术上来讲,实现起来和1条支路的难度是一样的,比较简单。4 条支路的Fc6 层的每个卷积核的参数量为3×3,4条支路的卷积核参数为3×3×4,共36个训练参数。而在全卷积神经网络中的Fc6层使用的是7×7的卷积,为49个训练参数。从一个侧面来分析,参数越少,训练每迭代一次的时间就少,会提高训练的效率。
在本地与FCN-32s进行实验对比,批次设为1,对比结果如表1所示。较FCN采用的7×7的卷积,本文算法采用4 条并联的不同采样率的卷积的支路,占用内存小,计算效率高。
表1 采用并联的不同采样率的空洞卷积层的本文算法与FCN-32s的比较
4.3 结合浅层信息的特征图融合
因为在卷积神经网络中有池化层的存在,所以特征提取的过程也是特征消失的过程,为了弥补这种特征的消失,将Pool3、Pool4 层输出的特征图融合进最后的得分图中,当考虑最大融合(融合Pool2,Pool1)时,出现了梯度更迭困难,实验效果反而不如只融合Pool3、Pool4层,因此本文在融合完Pool3、Pool4层之后没有继续融合。
具体操作方法是在Pool3 和Pool4 中引出两条特征提取的支路,使用3×3,r=1 的卷积进行特征提取,并且与多采样率的空洞卷积所提取的特征图进行融合,将粗的高层信息与细的底层信息结合起来,如图1(b)所示。本文算法从几个联合学习的端到端学习流中进行训练和预测,将精细层和粗层相结合,能够对全局结构进行细化预测。在跳转时,得分层参数零初始化,这样就不会干扰到其他流的现有预测。不同类型的特征图融合可以在一定程度上提高语义分割的精度。
4.4 全连接条件随机场
具有多个最大池化层的深层模型有很好的分类性能,然而空洞卷积带来的大的感受野和模型固有的不变性不能得到很好的目标定位,只能产生平滑的响应。
在处理多类图像分割和标签任务时,常见的方法是用条件随机场(CRF)对图像的像素或者图像块进行最大后验推理。CRF势能包含平滑项,使相似像素之间的标签一致性最大化,可以建立类之间的上下文关系[8]。
CRF 起初被用于平滑有噪声的分割图[19]。算法的分数图通常相当平滑,并且能产生和结果一致的分类,因为算法的最终目标不是实现进一步的平滑,而是获得详细的局部细节,所以与短距离的CRF结合的效果不好。
为了克服短程CRF的这些局限性,本文算法将全连接CRF模型集成到语义分割系统中。全连接CRF应用于语义分割的后期推理有如下优点:
(1)可以提高算法捕获精细细节的能力。
(2)能够捕获细微的边缘细节。
(3)能够适应长距离的依赖。
(4)对分割后的边缘快速地进行推理(约0.2 s)[8]。
因为Softmax层的计算是在降采样后的标签中完成的,所以在预测时首先要通过双线性插值来对卷积神经网络输出的粗糙的得分图进行上采样,来恢复到原始分辨率,继而用全连接条件随机场进行最大后验推理。具体操作方法是:将原图像和网络输出的预测图输入到全连接条件随机场进行最大后验推理,使得相似像素和像素近邻的标签一致性最大化。
本文算法采用能量函数如下:
其中,x是像素的标签的赋值,在一元势能θi(xi)=-lnP(xi)中,P(xi)是由DCNN 计算出的像素值为i的标签分配概率。成对势能θij(xi,xj)是使用全连通图进行有效的推理,即当连接所有图像像素时:
如果xi≠xj,那么u(xi,xj)=1,否则u(xi,xj)=0,意味着不同标签的像素会被惩罚。表达式的其余部分使用两个不同尺度的高斯内核,第一个“双边”内核依赖于像素位置和RGB 颜色,强调具有颜色和位置相近的像素具有相似的标签。第二个内核依赖于像素位置,只考虑位置相近性。超参数σa、σb、σr控制高斯核的尺度。
4.5 参数的调试
在网络较深的情况下,加载一个较好的收敛模型的参数来初始化新模型可以缩短模型的收敛时间[20],因此用ImageNet 预训练的VGG-16 的参数来初始化。在分割系统中,把最后一层的1 000类ImageNet分类器替换为和语义数量相同的分类器,也就是实验中的21 类。损失函数是DCNN 输出图中每个空间位置的交叉熵项之和。目标是下采样的标准的语义分割标签图。用标准的SGD方法对网络层的所有权重进行了目标函数的优化。DCNN一元项在设置CRF参数时是固定的,本文算法的训练和全连接CRF优化是分开进行的。
采用poly的学习策略:
其中,基础学习率base_lr=0.001,迭代次数iter=20,最大迭代次数分别设为max_iter=2×104,4×104,6×104,动量power=0.9,输入图像的批次Batch size设置为8,用于防止过拟合的权重衰减项weight_decay=0.000 5。DCNN在增强集上微调训练后,以文献[4]的方式交叉验证了CRF参数。使用默认值w2=3 和σr=3,采用从粗略到精细的搜索方案对来自验证集的100 个图像进行交叉验证来搜索w1、σa、σb的最佳值,参数的初始搜索范围是,和,然后在第一轮最佳值周围优化搜索步长。
5 实验结果分析
5.1 实验环境和数据来源
实验方法是用Caffe 框架来实现的[21],机器软硬件配置见表2,在数据集PASCAL VOC 2012[22]上训练及评估提出的模型。PASCAL VOC 2012 数据集有20 类前景目标类和1 个背景类,原始数据集包含1 464 张训练图,1 449 张验证图,1 456 张测试图。本文算法采用的增强数据集是额外标注产生的10 582 张用来训练的图像[23],用21 类的平均像素交叠率(mIOU)以及每类像素的交叠率(IOU)来对语义分割效果进行评估[6]。
表2 机器软硬件配置
为了对算法的优越性进行评估,对基于VGGNet的DeepLab-ASPP 和本文算法进行对比,训练参数以及数据量均保持一致,参数设置如4.5 节所示。值得注意的是在复原基于VGGNet 的DeepLab-ASPP 的结果时,实验中取得的最好结果是70.6%的mIOU,比文献[18]中71.57%的mIOU 低,考虑是因为输入的批次和迭代次数、双显卡并行运算以及设备的单双精度计算等有关。
5.2 结果分析
为了验证语义分割系统的有效性,通过在本地复现基于VGGNet的DeepLab-ASPP来与本文语义分割系统进行对比,在所有训练参数都一致的情况下,用PASCAL VOC 2012的验证集来验证实验结果。实验结果如表3、表4和图3所示。
通过表3对比发现,在同样批次为8的条件下,在未加CRF 时本文系统的优越性稍显薄弱,在迭代次数为20 000 的时候,mIOU 提高了 0.3 个百分点;在迭代次数为40 000的时候,mIOU 都为68.7%,互相持平;在迭代次数为60 000 的时候,mIOU 提高了0.3 个百分点。加CRF 后,整体对比发现,本文算法在迭代次数为20 000的时候mIOU比DeepLab-ASPP+CRF提高了约0.7个百分点;在迭代次数为40 000的时侯,双方结果相似,本文算法稍有优势;在迭代次数为60 000 的时候,mIOU 提高了0.9个百分点。通过对比发现本文算法在迭代20 000、40 000、60 000次时均有优势。
表3 本文算法和DeepLab V2不同迭代次数下的mIOU%
以20 000 次迭代为例,表4 为本文系统和DeepLab V2 系统21 个类别的IOU 的对比结果。可以看出,在未加全连接CRF 的时候,本文模型有10 个类别的IOU高于DeepLab-ASPP,尤其是自行车、瓶子、猫、椅子、盆栽这几类的IOU,9 个类的IOU 低于DeepLab-ASPP,比率为10∶9。在加全连接 CRF 之后,有 13 个类别的 IOU 高于DeepLab-ASPP,8个类别的IOU低于DeepLab-ASPP,比率为13∶8。通过对比发现,本文算法在迭代次数为20 000的时候,语义分割效果优于DeepLab V2系统。
表4 20 000次迭代下本文算法与DeepLab V2的IOU和mIOU对比 %
图3 20 000次迭代下本文算法与DeepLab V2的语义分割结果对比
从测试集中抽出6 张图进行对比,如图3 所示。在飞机这幅图中,在不加CRF时,飞机尾翼分割均不连续,本文算法相对而言连续性好一点,当加了CRF后飞机尾翼的连续性都有所改善,本文算法的飞机尾翼分割情况较好。在奶牛、自行车以及演讲的人这3幅图的语义分割中均出现类别的划分错误,通过全连接CRF 处理之后,部分的像素错分类可以得到解决,原因是全连接CRF可以使得相似以及近邻像素的标签一致性最大化。
6 结束语
全卷积神经网络采用的跳跃层结构可以改善空间细节,不同采样率的空洞卷积可以提取多尺度目标信息,全连接条件随机场可以优化目标边界细节。本文算法结合这些优点,用并行的不同采样率的空洞卷积提取多尺度目标信息,并融合浅层跳跃层结构提取的高分辨率特征图的方法来改进网络,并且使用全连接条件随机场进一步平滑目标边界。通过实验验证,该算法在PASCAL VOC2012数据集上取得71.3% mIOU,优于之前基于VGG-16的经典方法。