基于路径聚合扩张卷积的图像语义分割方法*

2021-05-11 01:35李叔敖马艳春刘永坚
计算机工程与科学 2021年4期
关键词:解码器编码器语义

李叔敖,解 庆,马艳春,刘永坚

(武汉理工大学计算机科学与技术学院,湖北 武汉 430070)

1 引言

作为计算机视觉的基础任务之一,图像语义分割的主要过程是对于一幅输入图像,精确地判断图像中的每个像素所属的语义类别。图像语义分割的性能对自动驾驶、机器人和视频监控等应用的性能提升具有重要的现实意义。

目前,图像语义分割领域的主流方法通常基于全卷积神经网络FCN(Fully Convolutional Networks)[1],不同方法的主要区别在于针对分割过程的特定问题产生不同的网络结构。FCN提出利用卷积层代替全连接层以接受任意大小的图像输入,同时,它利用反卷积获得更为精细的特征。U-Net[2]对FCN做了简单升级,在上采样和与之对应的下采样之间构建了跳跃连接,并使用和FCN不同的特征融合方式,拼接来自不同特征层的特征。Badrinarayanan等在SegNet[3]中提出了反池化操作,使用最大池化的索引进行上采样,改善了物体边界划分效果的同时也减少了训练的参数。Chen等在DeepLabv1[4]中提出了扩张卷积,同时还使用卷积神经网络级联概率图模型的方式使网络获得更丰富的对象信息。他们在后续研究的DeepLabv2中[5]提出扩张空间金字塔池化ASPP(Atrous Spatial Pyramid Pooling),增强了分割网络在多尺度下语义分割的鲁棒性。DeepLabv3[6]改进了 DeepLabv2中的扩张空间金字塔池化过程,通过使用“纵式”的ASPP模块,使分割网络获得了更大的感受野和多尺度信息。DeepLabv3+[7]在DeepLabv3的基础上,通过融合扩张金字塔池化和编码器-解码器结构,使模型在物体的边界判断上表现更好,也是目前最有效的语义分割框架。PSPNet[8]使用全局平均池化以聚合不同区域的上下文信息,提高了分割网络获取全局信息的能力。RefineNet[9]利用远距离残差连接,将粗糙的较高层次的语义特征与精细的较低层次的语义特征结合起来,生成了高分辨率的语义分割图像,进一步提高了分割准确率。在实例分割中,Mask- RCNN[10]在Fast-RCNN[11]/Faster-RCNN[12]的基础上添加了一个分割分支,该分支采用全卷积层用于掩模的预测,不仅改善了检测的性能,同时也提升了分割的性能。PANet[13]在Mask-RCNN的基础上设计自底向上的路径,以缩短深度卷积神经网络中低层特征层到最高层特征层信息的传播路径,优化了信息传递的方式,使信息在网络中可以得到进一步的传播。

本文从神经网络中信息的传播路径出发,提出了一种路径聚合型解码器,该解码器利用编码器产生的特征图逐步构造另外2组特征金字塔,组成聚合性更强的解码器结构,同时缩短分割网络中的信息传播路径,减少解码器网络中定位信息流动难度。该解码器使得低层的细节性结构信息更容易传播到高层,从而实现更精准的边界分割效果。同时,本文针对语义分割任务中常使用的Softmax交叉熵损失函数对于外观相似物体区分能力不足的情况,使用双向交叉熵损失函数来提高网络对相似物体的区分能力,在PASCAL VOC2012Aug[14]分割数据集和Cityscapes[15]数据集上对本文方法进行实验,分别达到了80.44%和78.66%的分割精度。

2 相关工作

随着卷积神经网络如AlexNet[16]、VGG[17]、GoogleNet[18]和ResNet[19]等被用于图像语义分割并取得了突破性进展,FCN便成为图像语义分割领域的主流方法,相关文献中提出的编码器-解码器分割框架也被不断采用[1,2,5,6,9]。编码器-解码器框架通常包含一个编码器模块和一个解码器模块,编码器模块一般移植于面向图像分类任务的深度神经网络,例如移除全连接层的VGG或者ResNet。在编码阶段,通过卷积网络的堆叠,特征图的尺寸逐渐缩小,同时网络获得更高级的语义信息。解码器模块通常由不同类型的上采样网络结构组成,在解码阶段,使用不同的上采样方法逐渐将特征图恢复至输入尺寸,恢复目标锋锐的边界与细节信息。但是,该框架通常存在如下问题:由于编码器(即引入的卷积神经网络)在下采样过程中会丢失大量的细节性空间信息,且这种丢失的信息不可恢复,因此解码器难以恢复物体边界等细节性信息,导致分割性能变差。解决该问题的方法分为2种:第1种方法是改进上采样过程,增强编解码之间的对应关系或者融合不同网络层次的语义信息。如FCN使用反卷积对特征图进行上采样,并通过跳级结构来结合不同深度特征层,用以提高解码阶段特征图分辨率;U-Net使用横向连接来构建下采样(编码过程)和与之对应的上采样(解码过程)之间的连接;SegNet提出反池化过程,在编码过程中进行池化操作时,存储池化格内最大值的位置,在解码阶段,使用存储的池化索引进行反池化操作;PANet设计了自底向上的路径增强结构,缩短了信息传播路径,同时有效地利用了低层特征精确的定位信息;特征金字塔网络FPN(Feature Pyramid Network)[20]通过最近邻上采样和横向连接逐步地构建自顶向下的特征金字塔层,提升了被分割目标的检测精度。第2种方法是使用扩张卷积[4 - 6],在扩大感受野的同时,有效避免频繁下采样带来的分辨率损失和与物体边界相关的细节性信息的损失。如SPP[21]使用多个不同尺寸的池化窗口对特征图进行池化,再将得到的结果进行合并,使网络不需要对输入图像进行裁切即可得到固定长度的输出;文献[4-7]提出的DeepLab系列模型将不同扩张率的扩张卷积作用于高层特征图,在不降低其空间维度的前提下增大了感受野,避免了频繁下采样所导致的分辨率丢失,使网络从多个尺度获取图像的上下文信息。

由于DeepLabv3+模型相对于其它模型在编码器阶段提取的特征图具有更加丰富的语义特征,因此本文引入DeepLabv3+作为模型的编码器模块;同时为了实现更精准的边界分割效果,引入了PANet模型中的路径聚合结构作为解码器以恢复物体形状,在FPN的基础上,通过构建另一条自底向上的聚合路径对FPN做了进一步增强。

Figure 1 Structure of semantic image segmentation model图1 图像语义分割模型结构

3 图像语义分割模型结构

本文提出的图像语义分割模型整体结构如图1所示。图1a表示编码器,本文采用DeepLabv3+中Xception[22]结构与扩张空间金字塔池化模块(ASPP)作为编码器,待分割图像经过编码器会生成分辨率逐渐降低的特征图像C2~C5,被逐层抽取的高层语义信息再经过ASPP模块即可得到不同扩张率的特征图像,其包含多尺度上下文信息。虚线框(1)表示特征金字塔网络(FPN),FPN接受编码过程中产生不同尺寸的特征图,P5~P2表示由特征金字塔逐步使用最近邻上采样和横向连接构造产生的特征图,特征金字塔网络利用了来自不同特征层的信息。虚线框(2)为本文引入的PANet路径聚合结构,其构建方式为在FPN网络的基础上自底向上进行聚合,缩短了低层信息传播到高层的信息传播路径,使低层的信息更容易传播到高层。N2~N5表示由特征金字塔层通过自底向上的路径聚合结构产生的特征层。在路径聚合结构之后,本文使用多尺度特征融合(虚线框(3))聚合来自不同特征层的特征进行语义分割预测,该方法相较于文献[10,20]的方法能更加充分地利用上下文信息。

3.1 编码器

相对于传统网络结构,改进的Xception结构中所有的最大池化过程用带步长的深度分离卷积替代,可以在获得相当性能的同时减少模型参数量和计算花费,该结构结合了深度分离卷积与扩张卷积,可有效提高分割准确率。因此,本文引入了DeepLabv3+模型中改进的Xception结构(分离卷积)和扩张空间金字塔(ASPP)作为编码器对图像进行特征抽取。Xception结构如图2所示。

Figure 2 Xception structure in encoder model图2 编码器的Xception结构

由图2可知,Xception结构由多组卷积与深度分离卷积组合而成。如图2中“Conv 32,3×3,stride2”表示对输入图像采用32个3×3大小、步长为2的卷积核进行卷积。 “Seq Conv”即表示深度分离卷积,其将一个普通卷积转化为一个深度卷积(Depthwise Convolution)和一个1×1的卷积(Pointwise Convolution),在获得相当性能的同时极大减少了模型参数量和计算花费。图2中没有标明stride的卷积块默认步长为1。“0.5×”表示Xception结构的一次下采样过程,2次下采样之间存在许多中间卷积层,3次下采样过程可分别输出分辨率依次减半的特征图,每次下采样之前的特征图分别记为{C2,C3,C4},供后续模块作为输入使用。

Xception模块输出的最高层特征图作为扩张空间金字塔模块(ASPP)的输入,ASPP模块结构如图3所示。ASPP模块以Xception输出的特征图作为输入,且平行地使用不同扩张率的卷积核对输入特征图进行卷积,获得多尺度信息,然后将卷积得到的特征图进行特征融合,形成256通道的特征图作为编码器的最终输出。

Figure 3 Structure of atrous spatial pyramid pooling图3 扩张空间金字塔池化

假定二维输入特征图x,i代表特征图的像素坐标编号,卷积核为w,扩张率为r,k代表卷积核的各个坐标编号,则扩张卷积的输出y如式(1)所示:

(1)

ASPP模块的输出由2部分构成:(1)输入图像经过1个1×1大小卷积核和3个扩张率分别为6,12,18的3×3大小卷积核卷积后输出的结果;(2)输入图像首先经过全局平均池化,再经过256个1×1大小卷积核卷积、批归一化,然后通过双线性上采样增大特征图尺寸,最后对2个部分的结果进行拼接,并经过1×1卷积降低通道数,即可得到扩张ASPP模块的输出C5。

本文在训练阶段共进行4次下采样,则编码器输出特征图尺寸为输入图像尺寸的1/16,扩张空间金字塔的输出即为编码器输出,输出特征图为256通道,包含丰富的语义信息。

3.2 特征金字塔网络

图像语义分割不仅需要依赖高层的语义信息对图像中目标做出类别推断,还需要根据更细节的信息如目标的纹理、色彩等低层特征定位出目标的位置信息。因此,本文引入了特征金字塔(FPN)结构,可以同时利用高层特征图和低层特征图对物体进行类别和位置预测。FPN结构如图4所示。

Figure 4 Structure of FPN图4 FPN网络结构

FPN使用最高层的特征图,通过自顶向下的上采样与网络卷积过程中产生的金字塔状的特征层相结合,再与Xception主干网络进行横向连接构建了特征金字塔。由于特征金字塔包含图像各个尺度的特征,因此能逐步获得低层次的目标位置和边界信息。

FPN的构建过程为:首先,对C5进行1×1卷积得到低分辨率特征图P5;然后进行如下迭代:将Pi的2倍最近邻上采样结果与对应的编码器输出特征图Ci-1(其中Ci需经过1×1卷积降低通道数目)进行像素相加,再经过3×3卷积减少上采样过程的混叠效应[20],得到Pi(i∈{4,3,2});最后输出特征图集合{P2,P3,P4,P5}。其中,所有卷积通道数量设为256。

3.3 自底向上的路径聚合

由于低层特征层对边界或者实例部分的强烈反应可以作为准确定位实例的指示器[23],因此将图像的低层语义和位置等有效地在图像分割网络中进行传播非常重要,但是以PSPNet为代表的分割模型将低层信息传播到高层往往需要经过50~100层甚至更多(如图1中连接待分割图像和P5的虚线)。针对此问题,本文引入了PANet中的自底向上路径聚合结构,极大缩短了由低层到最高层的信息传播路径,降低了网络层数,使得来自低层的信息更容易传播到高层,如图1中虚线框(2)所示。具体来说,即以FPN输出的特征图集合{P2,P3,P4,P5},通过逐步下采样和横向连接,构建一条从低层到高层的简洁路径,层数少于10层,因此是一条“捷径”(如图1中连接待分割图像和N5的虚线)。

自底向上的路径聚合结构构建过程如下所示:

Figure 5 Building of bottom-up path augmentation图5 自底向上路径增强构建方式

首先,对特征图P2进行复制得到最低层特征图N2,然后以N2为起点,进行如下迭代:

将Ni(i∈{2,3,4})的0.5倍最近邻下采样结果与对应的编码器输出特征图Pi+1进行像素相加操作,再经过3×3卷积减少下采样过程的混叠效应[16],得到Ni+1(i∈{2,3,4}),此过程循环进行直到生成N5;最后,输出特征图集合{N2,N3,N4,N5}。其中,所有卷积通道数量设为256,每个卷积层之后都跟随一个ReLU(Rectified Linear Unit)层[24]。

3.4 多尺度特征融合

PANet的实验结果表明,对于分割问题,特征的重要性并不是和它所属的层级有非常强的对应关系,高层的特征具有更大的感受野,拥有更丰富上下文信息,而低层的特征有准确的细节和位置信息,不管物体本身大小,高层特征层和低层特征层都对物体的类别和位置的预测有积极的影响,所以融合使用卷积网络中不同层级的特征图来提升语义分割性能成为一种普遍做法。如FCN和U-Net分别使用了逐像素相加和特征维度的拼接2种不同的特征融合方式,这2种方式在性能表现上并无明显差距。出于使用简单考虑,本文使用逐像素相加的方式进行特征融合。具体步骤如下:

将N5、N4和N3分别进行8倍、4倍和2倍最近邻上采样,将其调整到与N2相同的尺寸,然后将上采样的结果和N2进行像素级别的最大值融合。融合后的特征图经过2次3×3卷积,并在第2次卷积时降低通道数至相应数据集的类别数(本文实验中,PASCAL VOC2012Aug设置通道数21,Cityscapes设置通道数量19),再经过一次2倍的最近邻上采样恢复至输入图像大小尺寸,最后生成的特征图为整个网络的输出特征图,即最后的分割预测结果。

3.5 双向交叉熵函数

逐像素的图像语义分割[1]通常使用Softmax交叉熵损失函数来衡量预测结果与真实标注之间的差异。Softmax训练的深度特征会将整个超空间按照分类个数进行划分,保证了类别可分,但主要问题是Softmax并不要求类内紧凑和类间分离,对于外观形态相似的类使用Softmax交叉熵在训练网络时难以衡量出类间差异,导致网络对相似物体区分能力下降。以四分类问题举例,对于样本标签为(1,0,0,0)的样本,假设模型A给出的激活为a(6,5,2,2),模型B给出激活为b(3,1,1,1),2个激活经过Softmax归一化后分别得到Softmax(a)=(71.2%,26.2%,1.3%,1.3%)和Softmax(b)=(71.1%,9.6%,9.6%,9.6%)。对2个Softmax的输出进行交叉熵损失函数计算时,模型A的损失为-lb 0.712,B的损失为-lb 0.711,模型A和模型B损失基本一致,但模型B的激活b有唯一的较高值,而模型A的激活a有多个较高值,相较于模型A的输出的激活,模型B的激活更加鲁棒,但所使用的Softmax交叉熵损失函数无法体现这一点。一个朴素的想法是增加2个激活对应的损失差异。与普通交叉熵只计算单个位置的概率值不同,本文将激活进行Softmax归一化后产生的所有概率值都纳入损失计算,方法如下:首先将Softmax产生的概率值与样本标签进行正常的交叉熵损失计算,然后将样本标签与概率均进行取反加1,再进行一次交叉熵计算,最后将2部分的结果进行相加形成最终的损失。这种损失计算方法的主要优势在于能体现出不同激活分布的差异性。

普通交叉熵损失计算公式如式(2)所示:

(2)

本文使用的双向交叉熵损失公式如式(3)所示:

(3)

其中,yc表示长度为N的one-hot向量第c位的值,pc表示预测样本属于第c类的概率,N表示数据集的类别数。与一般使用的交叉熵损失函数相比,双向交叉熵损失函数实际上是将更多通道的概率值纳入计算。

4 实验与结果

4.1 数据集与评测指标

本节在PASCAL VOC2012Aug[14,25]分割数据集和Cityscape[15]数据集上验证所提出的网络结构和双向交叉熵函数。PASCAL VOC2012Aug是由Hariharan等[14]对PASCAL VOC2012[25]进行了部分增强得来的。数据集包含20个前景类和1个背景类,每幅图像都进行了像素级别的类别标注,共包含10 582(训练增强集)幅训练图像,1 449幅验证图像,1 456幅测试图像。Cityscape[15]数据集包含5 000幅像素级注释的图像,分为18个前景类和1个背景类,其中2 975幅训练图像,500幅验证图像,1 525幅测试图像。同DeepLabv3+一样,本文使用PASCAL VOC2012增强验证集和Cityscape的验证集评价模型性能。

本文使用平均交并比mIoU和像素准确度PA(Pixel Accuracy)来评价模型性能,2个评价指标的计算方法分别如式(4)和式(5)所示:

(4)

(5)

其中,nij表示属于第i类的像素被判断属于第j类像素的数量,ncl表示类别数,ti=∑jnij表示属于第i类的所有像素的数量。

4.2 实验环境与参数设置

本文基于TensorFlow框架实现提出的网络结构,使用DeepLabv3+提供的Xception在COCO[26]和ImageNet[27]数据集上预训练模型初始编码器部分,解码器部分重新训练。本文使用和DeepLabv2、DeepLabv3相同的训练策略,图像输入尺寸(cropsize)设置为513×513,使用动量梯度下降法,初始学习率设置为0.007,在训练时使用随机剪裁的数据增强,GPU使用4块NVIDIA GTX1080Ti,Batchsize最大设置为16。每个对照实验迭代步数90 000次。

4.3 实验结果

本文提出的图像语义分割模型在PASCAL VOC2012Aug分割数据集上的表现如表1所示。

表1中,OS(Output Stride)表示输入图像尺寸与卷积过程中最小特征图的尺寸比值,train_os表示训练期间的OS,eval_os表示验证使用的OS,COCO和ImageNet分别表示将模型编码器在COCO和ImageNet数据集上进行预训练,Cross entropy表示使用像素交叉熵损失函数,Bi-Cross entropy表示使用本文提出的双向交叉熵损失函数。PA表示像素准确率。表1中第1行数据是在本文实验环境下对DeepLabv3+进行复现的实验结果。在验证期间不使用多尺度输入,训练期间不使用左右翻转的增强。将第1行数据作为本文对比实验的基线,第2~8行数据表示本文依次将引入的路径聚合结构和双向交叉熵函数作为控制变量的其他实验结果。

Table 1 Model performance on PASCAL VOC2012Aug validation set

表1中第5~8行数据是本文模型使用路径聚合型解码器的效果。本文使用FPN与自底向上的路径聚合结构作为解码器,对比第1行的DeepLabv3+结果,分割精度最高提升了1.67%,提升来自于路径聚合结构对分割网络2个方面的优化。一个优化是缩短了低层特征层到高层特征层信息的传播路径,另一个优化是融合使用来自不同层级的特征层进行最终的分割预测,增强了模型分割多种不同尺度物体的能力。

表1的第2、4、6、8行展示了使用双向交叉熵损失函数的效果,双向交叉熵损失函数将多个通道的预测值纳入最终的损失中,能更加充分地利用前向传播结果的信息。相比于单一使用普通的交叉熵损失函数(如式(2)),能更加充分利用前向传播结果的所有通道的值,增强了模型的鲁棒性,mIoU提升了0.68%~0.88%。

本文模型在Cityscapes分割数据集上的表现如表2所示。

Table 2 Model performance on Cityscapes validation set

本文在Cityscape数据集上实验了提出的解码器结构和双向交叉熵损失函数,结果如表2所示。从表2中可以看出,同时使用路径聚合结构和提出的双向交叉熵损失函数将Cityscapes验证集上的mIoU从76.83%提升到78.66%(1.83%的提升)。

4.4 实验结果可视化

表3所示为DeepLab v3+与本文模型分别对相同图像进行分割的可视化效果。通过进一步改进DeepLabv3+使用的解码器,本文所提模型在分割物体的边界轮廓中表现更好,物体边界有了更多的细节,如PASCAL VOC数据集中细长的马腿、桌腿等以及Cityscapes数据集中电线杆和树干等狭长的物体。同时,相较于DeepLabv3+,本文模型对于外观相似的物体具有更好的区分能力,减少了像素分类误差。此外,我们在实验过程中发现PASCAL VOC数据集存在部分标注问题,比如公交车上透过玻璃可以看到人,人车重叠部分的像素点数据集被标注为公交车,此时若分割网络将该像素点标记为人,就不能简单判定该部分像素点判断错误。同样,Cityscapes数据集中图像下方的车头有反光和倒影,倒影包含人(训练时类别号为11)、骑手(训练时类别为12)和植物(训练时类别9)等前景实体,数据集没有对倒影做出适当处理,在训练过程中车头是个不小的噪声。

Table 3 Visualization of results on validation set

5 结束语

本文在DeepLabv3+的基础上,引入一个自底向上的路径聚合结构来增强图像分割网络解码器部分的解码效果,该解码器极大地缩短了低层特征层信息到高层特征层的传播路径,使得低层精确的定位信息更容易传播到高层,改善了物体边界的分割效果;同时,创新性地提出双向交叉熵损失函数,该损失函数增加了相似类的类间差距,使得网络对相似物体有更好的区分能力,减少了像素分类错误。与对比方法比较,本文方法具有更高的像素分类准确率。

猜你喜欢
解码器编码器语义
科学解码器(一)
科学解码器(二)
科学解码器(三)
语言与语义
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
基于FPGA的同步机轴角编码器
基于双增量码道的绝对式编码器设计
“上”与“下”语义的不对称性及其认知阐释
JESD204B接口协议中的8B10B编码器设计
认知范畴模糊与语义模糊