一种双路网络语义分割模型
2022-02-11杨运龙滕少华
杨运龙,梁 路,滕少华
(广东工业大学 计算机学院,广东 广州 510006)
语义分割是对图像中的每个像素进行分类。高分辨率遥感图像语义分割是遥感领域一个长期研究的课题。它在城市规划[1]、自然灾害监测[2]、土地覆盖变化[3]、自动道路监测[4]等方面扮演着重要的角色。随着对太空的不断探索,发射的卫星越来越多,获取到的遥感图像数量也越来越多,如何对遥感图像进行解译已经成为了当下的研究热点之一。传统方法通常是依赖图像像素自身的低阶视觉信息来进行语义分割。2006年以卷积神经网络为主体的深度学习模型的提出在图像识别任务上取得了重大突破[5]。近年来,随着深度学习的不断发展,深度卷积神经网络(Deep Convolutional Neural Networks,DCNNs)在所有主要的评价基准上都取得了显著的提高,并成为遥感图像处理的常用方法。
语义分割模型由用于图像分类的深度卷积神经网络发展而来。为使网络能够进行稠密像素预测,将卷积神经网络中的全连接层转变为多个卷积层[6]。然而,使用分类网络的基本结构会带来一些问题[7-8]。例如,网络中池化层进行下采样会导致输出结果的空间分辨率损失,降低分割精度[9-10]。对于图像中不同尺度的物体,感受野的限制也会对分割结果产生不利影响[11-13]。值得注意的是,对于分割中目标边缘的处理也是其中的难题。网络对边缘划分不够明确,常常会导致分割结果错误,网络的准确率下降。图1为神经网络输出与真实标签边缘对比图,其中图1(a)为输入图像,图1(b)为真实标签,图1(c)为神经网络预测,从图中可以看出,神经网络在不同类别边缘处更容易分割错误。卷积神经网络可以可靠地预测图像中物体的存在和粗略位置,但不太适合精确地指出它们的确切轮廓。卷积网络的分类精度和定位精度之间存在一种内在的权衡,具有多个池化层的更深层模型增加了平移不变性,扩大了顶层节点的感受野,但丢失了高频细节,而目标边缘的精确定位需要更多的局部细节信息[14]。本文认为这种影响对于包含至少数十到数百个多尺度目标的遥感图像非常关键。
图1 神经网络输出与真实标签边缘对比图Fig.1 The comparison of edge between ground truth and CNN
已经有一些模型试图减轻由于下采样而造成的细节损失,如在网络中引入空洞卷积[7,14-15],在编码网络和解码网络之间增加对等的跳跃连接[12,16]等。然而,在应用于小目标较多的遥感影像时,这些方法仍有模糊目标边界的倾向。边缘特征对于完成语义分割、目标识别等多种视觉任务都非常重要[17]。但由于分类网络结构设计的固有属性,颜色、形状、纹理等特征都在一个网络中处理,这些特征与识别的相关性各不相同。为了增强模型对边缘的识别能力,本文提出了一种融合语义分割与边缘检测的单一网络多任务学习框架。框架由两个部分构成:分割网络和边缘网络。具体来说,分割网络提取图像的分割特征,为每个像素生成语义标签,边缘网络提取边缘特征,判断不同类别间的边界。边缘网络以分割网络的中间特征作为输入,从分割网络中提取多路语义特征构建边缘特征。在框架的顶层融合两个网络的特征,利用边缘特征细化分割特征,提高分割结果的准确性,并实现端到端的训练。
1 相关研究
1.1 语义分割模型
多年来,语义分割一直是计算机视觉和遥感研究的核心问题。早期的方法主要是基于区域建议的方法,通过生成区域建议对像素进行分类[18-19]。一个重要的里程碑是Long等[6]提出的全卷积网络(Fully Convolutional Networks,FCNs),它表明全连接层可以看作是卷积层的堆叠,并且已经成为语义分割网络应用最广泛的选择。为了降低池化层造成的空间分辨率损失,一些方法提出采用反卷积[20-21]来恢复损失的细节信息。反卷积使用存储池化位置并在其他位置补零的方式进行上采样操作。另一些方法则采用空洞卷积来控制特征图的分辨率[14,22],扩大感受野,同时建立空间金字塔池,在多尺度上对图像进行分割。还有很多方法利用中间层特征进行分割。U-net[16]和RefineNet[12]在编码网络和解码网络之间应用跳跃连接,使用来自早期卷积的细粒度特征直接补充更深层次网络中捕获的高级语义特征。一些研究提出对网络输出使用条件随机场来细化目标边界,以此来提高分割性能[23-25]。Pohlen等[26]提出了一个双流网络,其中一个流用于恢复在池化中损失的高分辨率特征。与这些方法通过恢复下采样造成的空间分辨率损失不同,双路网络模型在网络增加边缘特征来提高对目标边缘的分割能力。
1.2 语义边缘检测
语义边缘检测最早由Prasad等[27]提出。Bertasius等[28]提出使用高级对象特征来告知低级边界检测的方法,在使用FCNs等深度语义分割网络来获得类别标签之前,使用分类网络来定位二值语义边缘。Bertasius等[29]引入的BNF(Boundary Neural Field)使用了综合FCNs预测和边缘线索的能量模型。一个值得注意的方法是HED(Holistically-nested Edge Detection)[30],它证明了FCNs除了类别分类外,也可以被训练为边缘检测器来输出图像的边缘的特征图。CASENet[17]提出了一种新的跨层结构来预测多标签语义边缘。深度卷积神经网络不仅可以用于图像分类、目标检测等任务,也可以学习边缘信息用于边缘检测,并在效果上取得了显著的提升。
1.3 多任务学习
一些研究探索了将网络与互补任务相结合的想法,以提高计算机视觉任务的学习效率、预测精度和泛化。Kendall等[31]提出了一个统一的架构,结合多个损失函数,利用同方差不确定性同时学习多个目标。为了学习DCNNs中的共享表示,十字形网络[32]引入十字形单元进行多任务学习。在本文的双路网络中,通过增加边缘网络,让模型可以同时学习边缘特征和分割特征,并用边缘特征细化分割特征。
2 网络模型
双路网络模型主要由两个网络构成,分割网络和边缘网络,两个网络协同工作进行语义分割。分割网络对图像像素进行分类,输出像素点类别的可能性;边缘网络利用分割网络的中间特征作为输入,来学习和边缘相关的特征,判断像素点是否为边缘。接着,在网络的顶层,将分割特征和边缘特征融合在一起,提升模型的识别能力。
2.1 分割网络
分割网络是用于语义分割的深度卷积神经网络,以高度H、宽度W的图像为输入,提取图像的分割特征,输出同样大小的密集特征预测图。分割网络可以是任意前馈的全卷积网络,如FCNs[6]、SegNet[33]或Deeplab[34]。为了兼顾效果和模型参数的平衡,本文选择SegNet作为分割网络。
分割网络由两部分组成:编码网络和解码网络。编码网络由一系列卷积层和池化层构成,卷积层负责获取图像的局部特征,池化层负责对图像进行下采样。随着网络的深入,获得的特征图包含更多的高层次语义信息,但空间分辨率也不断下降。为了克服这一问题,SegNet在编码网络的基础上增加了一个解码网络,用于恢复特征的分辨率。解码网络的设计类似于编码网络的镜像版本,它使用上采样操作替代池化层扩大分辨率,以复原物体的几何形状,弥补编码网络中下采样造成的细节损失,获得更精细的特征图。编码网络中有5组卷积层,与VGG-16[35]网络中的13个卷积层相同。在每组卷积层后,都使用BN(Batch Normalization)和RELU(Rectified Linear Units)来加速训练。接下来是大小为2×2,步长为2的最大池化层来实现平移不变性。在解码网络中,使用了与编码网络中对称的卷积层,并用上采样操作替代最大池化层。
2.2 边缘网络
由于高层次特征图的空间分辨率损失,语义分割的结果可能会在边缘附近包含错误的分类。本文提出了一个双路网络多任务学习框架,扩展了一个特殊的分支来处理边缘相关信息。边缘网络以分割网络的中间层次特征作为输入,生成语义边缘作为输出。
边缘网络由少量残差块[36]和卷积核大小为1×1的卷积层构成。具体地说,边缘网络从分割网络中编码网络的第一和第二组卷积中获得两个特征作为输入,从解码网络对称地获得另外两个特征作为输入。为了保持边缘特征分辨率的一致,将这些特征通过线性插值恢复到与输入图像分辨率相同。低层特征包含更多的局部细节,从编码网络提取;高层特征包含更多的语义信息,从解码网络提取。通过残差块构成的边缘网络来学习这些中间特征中语义边缘信息,提取边缘特征。残差结构具有很强的学习能力,适合在深度网络中使用。卷积核大小为1×1的卷积层被插入分割网络和边缘网络之间。它能将两个网络连接起来,使整个模型更加灵活,并让分割网络和边缘网络更专注于它们各自的任务。同时,它也能降低中间特征的维数,减少内存消耗,加快训练过程。两种残差块如图2所示。
图2 两种残差块结构图Fig.2 The architecture of residual block
残差块由卷积层和恒等映射组成,可定义为
式中:xl和xl+1分别是残差块的输入和输出,F(xl,wl)表示需要学习的残差映射。残差块有两层恒等残差和性能更强大的三层恒等残差两种结构。残差结构解决了深度网络中的退化问题,很适合在本框架中提取边缘特征。为了减少计算量,与分割网络适应,本文选择两层恒等残差块。图3为双路网络的结构图,分割网络和边缘网络并行学习输入图片的特征信息,并在网络的顶层融合分割特征和边缘特征,将其输入一系列卷积层以产生最终的预测结果。
图3 双路网络结构图Fig.3 Architecture of the proposed two-way model
3 多任务学习和正则化
双路网络多任务学习框架可以实现端到端的训练,分割网络和边缘网络并行地分别学习分割特征和边缘特征。一方面,多任务学习框架有助于优化分割模型,另一方面,可以通过两个网络的融合,利用边缘网络的输出进一步提高整个模型的性能。
在训练过程中,多任务学习框架可以同时监督分割网络和边缘网络的预测特征。这里,边缘特征是指图像中目标边缘的二值表示。本文利用交叉熵损失函数来训练分割网络,其定义为
式中:li是点i的标签,pk,i是点i属于第k类的输出概率,K是总的类别数量,σ(·)是一个指示函数,当li=k时为1,否则为0。θseg是分割网络的参数集合,N是一幅图像中所有像素点的数量。
同时,本文使用标准的二值交叉熵函数作为边缘网络的损失函数,监督边缘网络的训练,其定义为
式中:yi是点i是否为边缘的真实标签,表示点i属于第c类的概率。C是所有标签类别的总数,在边缘检测中大小为2。θedg是边缘网络的参数集合,边缘损失函数可以同时监督更新分割网络和边缘网络的参数。本文在真实的分割标签中产生遥感图像边缘标签[37-38],并把原始图像、分割标签和边缘标签放入网络中进行训练。在网络顶部,可以得到分割特征图和边缘特征图作为输出。
在多任务学习的情况下,为了进一步提高整个模型的性能,用边缘特征细化分割特征,使预测结果在边缘更加清晰,本文引入了一种正则化方法来实现分割特征和边缘特征的融合。类似于Takikawa等的方法[39],本文希望预测边缘与真实边缘不符合时受到惩罚,并且避免边缘像素主导损失函数。因此引入
式中:ζ代表某个特定像素是否属于语义边缘,它是对输出的分割特征图取空间导数计算出来的。是用同样方式从真实分割标签中计算出的真实边缘掩码。p+是所有非零像素点的集合。
同样,本文也希望二进制边缘预测s和预测的分割特征p(y|r,s)保持一致:
式中:p和k分别代表所有的图像像素点和语义类。1s={1:s>thrs}对应了一个指示函数,thrs是置信度阈值。将整个模型的最终损失函数定义为
式中:λ是用于调整不同损失函数之间相对权重的超参数。该损失函数用于监督更新整个模型的所有参数。
4 实验结果
在本节中,将对双路网络多任务学习框架进行评估。为了验证本文所提出方法的有效性,本文在ISPRS Potsdam 数据集和 ISPRSVaihingen 数据集上进行了实验,数据集分别拍摄于德国的 Potsdam 市和 Vaihingen 市,包含了多张高分辨率的航拍遥感图片。本文将双路网络模型与多个经典的语义分割模型在不同评价指标上进行比较。
4.1 对比方法
为了验证双路网络模型的性能,本文将与多个语义分割网络进行对比:
(1)FCNs:FCNs是经典的语义分割网络,它将传统CNN中的全连接层转化为多个卷积层,实现了网络端到端的训练。
(2)SegNet:首次提出使用对称的编码器和解码器结构网络进行语义分割。
(3)PSPNet:使用金字塔池化结构,该结构能够聚合不同区域的上下文信息进行语义分割。
(4)DeeplabV3:提出空洞空间金字塔结构,能够获取不同尺度目标的特征。
4.2 数据集
ISPRS Potsdam Dataset:Potsdam是一个典型的历史城市,数据集由38张遥感图片组成,地面采样距离为5 cm。图像大小为6 000×6 000,包含 IRRG图像、IRGB图像和NDSM图像。实验使用8张高分辨率遥感图像进行训练,1张高分辨率遥感图像进行测试。数据集中定义了6个类别,分别为不透水的表面(白色)、建筑(蓝色)、低植被(青色)、树(绿色)、汽车(黄色)、背景(红色)。实验没有使用NDSM图像和DSM图像。
ISPRS Vaihingen Dataset:Vaihingen市是一个规模较小的城市,数据集由33张遥感图片组成,地面采样距离为9 cm。图像的平均大小为2 494×2 064,包含IRRG图像、IRGB图像和DSM图像。实验使用10张图像作为训练集,3张图像作为验证集。
4.3 评价指标
为了评估模型的效果,本文使用3个评价指标,Precision、IoU(Intersection over union)和F1-score。
式中:TP为真正例,代表正样本预测结果为正确的数目;FP为假正例,代表负样本被预测为正样本的数量;FN为假负例,代表正样本被预测为负样本的数量。β是精确率和召回率之间的权重,设置为1。对于数据集中的6个类别,本文使用各不同指标的平均值进行比较,分别记为mIoU,mprecision,mF1-score。
4.4 实验细节
双路网络是基于Pytorch框架实现的。在数据预处理中,使用256×256的滑动窗口对原始的遥感图像进行随机裁剪,生成大小为8 000张图片的训练集,并通过随机的旋转、翻转和添加噪声等方法对训练集中的部分样本进行了数据增强。实验使用NVIDIA Tesla P100显卡训练网络模型,批次大小为16并进行同步的批归一化。初始学习率为0.01,采用多项式衰减。损失函数如式(6)所示,其中 λ1为 1,λ2为150,λ3为1,λ4为1,双路网络在440轮训练得到最佳结果。
4.5 定量比较
在表1中,提供了双路网络模型在Potsdam数据集上与FCNs、SegNet、PSPNet、DeeplabV3等语义分割网络模型的定量比较。从最终结果来看,双路网络在mIoU、mF1-score和mprecision等指标上均取得优异的表现,高于其他的语义分割网络。对比基线模型SegNet,在增加边缘网络这一分支后,双路网络模型在mIoU评价标准上取得6%的提升,在mF1-score评价标准上取得5%的提升。对比其他网络模型,以ResNet-34为基础网络的PSPNet性能仅次于双路网络模型。双路网络模型在mIoU评价标准上取得3%的提升,在mF1-score评价标准上取得2%的提升,这说明,对比层次更深的神经网络模型,双路网络模型在网络中增加边缘特征后,也能有更加优异的表现。
表1 在Potsdam数据集上对比结果Table 1 Comparison results on the Potsdam dataset
在表2中,提供了双路网络模型在Vaihingen数据集上与不同语义分割网络模型的定量比较。与基线网络SegNet比较,双路网络在mIoU、mF1-score和mprecision 3个指标上均取得2%左右的提升。对比层次更深、模型更加复杂的PSPNet和DeeplabV3,双路网络也表现表现优异。除在mF1-score指标上双路网络较PSPNet略低外,其余两个指标均高于PSPNet,其中,在mIoU上提升2%左右。
表2 在Vaihingen数据集上对比结果Table 2 Comparison results on the Vaihingen dataset
表3展示了双路网络与其他语义分割网络在Potsdam数据集上对于不同类别IoU指标的比较。从表中的结果可以看出,双路网络模型在不同类别的IoU指标上均取得了领先的效果。表4展示了对于双路网络中损失函数,不同的超参数 λ2对于模型性能的影响。在 λ2为150时,双路模型在Vaihingen数据集上取得最佳的效果,mIoU指标最高,而随着 λ2增大,模型性能有所下降。
表3 不同网络模型在Potsdam数据集上对IoU的对比结果Table 3 Comparison in terms of IoU on the Potsdam dataset %
表4 不同λ2在Vaihingen数据集上对IoU的对比结果Table 4 Comparison in terms of different λ2 on the Vaihingen dataset %
表5对比了双路网络与基线网络SegNet的模型参数量与单张图片的GFLOPs(Giga Floating Point Operations Per Second),也就是每秒10亿次的浮点运算数。与SegNet相比,双路网络只增加了少量残差块和卷积层,模型参数增加较少,只增加了0.52 M。但是由于增加了一个旁路网络,计算量增加较大,运行时间较基线模型增加了一半左右。
表5 双路网络与SegNet参数和计算量比较Table 5 Comparison in terms of parameters and calculation between two-way Network and SegNet
在Potsdam数据集和Vaihingen数据集上,本文将双路网络与多个语义分割模型在不同指标上进行了对比。从结果可以看出,双路网络均取得了领先的效果。双路网络模型,在原有的分割网络基础上,增加了一路边缘网络,使网络在学习分割特征的同时学习边缘特征,并对边缘特征和分割特征进行融合,用边缘特征细化分割特征,提升网络对边缘的识别能力。在网络中注入边缘特征信息后,双路网络模型取得了更好的性能,得到了更好的语义分割结果,实验结果证明了双路网络的有效性。
4.6 定性比较
图4展示了双路网络模型对图像物体边缘的识别结果。从左至右依次为遥感图像、分割标签、边缘标签和双路网络的边缘输出。从图中可以看出,双路网络学习到了图像的边缘特征信息,对遥感图像中不同类别目标间的轮廓有个大致的区分,尤其对于图像中的小目标,如汽车、道路的边缘都有清晰的划分。图5对比了双路网络模型与基线网络SegNet分割效果。从左至右依次为遥感图像、分割标签、SegNet网络和双路网络的分割结果。从图中可以看出,对比基线网络,双路网络模型在不同类别的边缘处分割效果更好,误分类更少。就遥感图像中的小目标汽车类来说,SegNet对该类的分割划分模糊,有些输出结果中汽车连接在一起;而双路网络的输出中,汽车的轮廓被分割的更加清晰,分割效果更好。可以看出,边缘特征的学习,有助于网络对高分辨率遥感图像的分割,提升了双路网络模型的性能。
图4 边缘检测结果图Fig.4 Visual comparison of edge detection results
图5 分割结果比较图Fig.5 Visual comparison of segmentation results
5 结语
本文提出了一种用于高分辨率遥感图像的密集像素预测的双路网络多任务学习框架。在原有语义分割网络模型的基础上,增加了一个专门用于提取图像边缘特征的边缘网络与分割网络组成一个统一的双路网络。本文使用SegNet作为基线网络,并在ISPRS Potsdam数据集和ISPRSVaihingen数据集上与多个语义分割模型对比验证双路网络模型的性能,证明了该模型在高分辨率遥感图像语义分割领域的有效性。在未来,可以探索基于更深层次卷积神经网络的双路网络多任务学习框架,研究更好的融合网络去融合边缘特征与分割特征。