杨甜甜,郭大波,孙 佳
(山西大学 物理电子工程学院,山西 太原 030006)
科学技术的发展使得我们能够获取到超高分辨率的光学遥感图像[1],尤其是城区遥感图像,分类更为复杂. 如何在复杂的遥感图像中获取到对人们有用的信息已经成为了国土规划、 地理监测、 智慧城市等领域的热点问题. 图像语义分割是计算机视觉中最具挑战性的任务之一,其为图像中的每一个像素标注语义标签. 高分辨率遥感图像包含丰富的语义信息,相对于一般图像的语义分割而言,有待分割对象的距离变化较小和分割目标相对较少等有利因素,因而更便于在现有技术条件下进行针对性研究.
基于传统的计算机视觉图像语义分割方法有: 基于边缘的分割(边缘松弛法、 边界跟踪法等)、 基于阈值的分割(阈值检测法、 最优阈值化等)、 基于区域的分割(分裂与归并、 分水岭分割等)[2]. 王宏胜等[3]利用一种改进的种子区域生长算法对农村地区房屋进行提取,结果表明,基于小区域种子提高了算法的抗噪能力,但需要人为进行多次阈值干预; 翟庆羽等[4]采用最优阈值分割法,在抑制其他地物信息的基础上精确分割出了水体细节部分,在遥感图像中的水体类分割方面具有很大的优势,但其泛化能力不够强. 这些传统的分割法只能提取到图像的纹理信息、 颜色、 形状等低层特征,且需人工提前设计特征,在消耗了大量的人力物力后得到的分割效果仍不理想.
自深度学习技术出现以来,语义分割进入了新的快速发展时期. 研究者利用深度神经网络接收原始图像数据,通过端到端的自动学习,提取到图像的低层、 中层和高层特征,实现像素级分类,极大地提高了语义分割的精度和效率[5]. 目前,深度学习中主要的语义分割算法有全卷积网络(Fully Convolitional Networks, FCN)[6],U-Net[7],SegNet[8]等. 2016年,Maggiori等[9]首次将FCN应用于遥感图像分割领域中,该方法与带有全连接的卷积神经网络(convolutional neural networks, CNN)相比更加高效,但其对图像的细节信息保留不够完整; Zhang等[10]基于FCN提出影像自适应分割并开发了多级分类器,使其在建筑物单一项上提高了提取精度; 张浩然等[11]提出一种基于U-Net网络与全连接CRFs网络相结合的方法,通过调试全连接CRFs模型的推算流程参数,实现了对建筑物的精准提取,但存在建筑物分割边界模糊的问题; 杨建宇等[12]采用传统的SegNet网络对遥感影像中的农村建筑物进行提取,但传统的SegNet方法分割精度较低,且训练耗时较长; 张哲晗等[13]基于SegNet网络,融合了端到端的编码器-解码器(Encoder-Decoder)网络结构思想,设计了SegProNet网络结构,在保留图像像素的空间语义信息的同时进行地物识别分割,其方法主要提高了分割速度,在分割精度上还有待提升; He等[14]提出残差学习(Residual Learning)的框架,用于对更深层次的网络进行训练,这些残差网络(ResNet)不仅更容易优化,并且可以从增加的深度中获得准确性. 如: Lin等[15]采用一种远程残差连接的网络结构(RefineNet),将下采样中缺失的信息融合进来,从而产生高分辨率的预测图像; 徐胜军等[16]将残差网络与空洞卷积融合,提高了遥感图像中建筑物的分割精度,但是对植被、 道路等分割效果不佳; 王宇等[17]提出一种用残差网络作为编码器(Encoder),用反卷积网络作为解码器(Decoder)的Encoder-Decoder深度学习框架,实现对建筑物的分割,提高了对建筑物单一项的分割精度,且对建筑物的边缘细节分割不够精细.
针对上述算法中存在的分割精度不理想、 边界细节分割效果不佳等问题,本文结合U-Net网络融合多尺度特征的优点和残差网络提高图像特征重复利用率的优点,提出了一种基于U-Net网络和残差网络的遥感图像语义分割模型. 仿真分析有效地表明了该模型可以提高对遥感图像中建筑物、 植被、 道路、 水体等的整体分割精度,并在“CCF卫星影像的AI分类与识别竞赛”[18]的数据集上进行了实验.
本文提出的模型整体结构主要分为3部分: 编码器、 解码器和残差连接. 其中编码器主体由残差网络组成,提高了图像特征的重复利用率,提取到更深层次的高级语义信息; 解码器主要由上采样层和卷积层组成,通过上采样恢复图像分辨率,最后输出分割图像; 残差连接能够减少下采样过程中空间信息的损失程度,使得上采样恢复的特征图中包含更多低层次的语义信息,提高分割精度. 算法整体网络框架如图1 所示.
图1 本文算法整体框架Fig.1 The over all frame work of the proposed method
编码器由图1 中的Layer1~Layer5组成. 原始的U-Net 网络编码器中所采用的池化层对图像细节信息捕捉不够精细,容易造成分割边缘处出现分割断裂的现象,而且网络适应能力较差,因此,本文提出编码器采用ResNet残差网络代替U-Net 网络. ResNet残差网络能够将图像的低层特征传输到高层,实现信息融合,尽可能地保证信息的完整性,还解决了梯度消失的问题. 残差网络是从输入直接引入一个短连接线到非线性层的输出上,该映射公式为
y=H(x,wh)+x,
(1)
式中:y表示输出;x表示输入;H(x,wh)为残差映射,是残差模块中短路连接的起点和终点之间的网络所要拟合的函数;wh是第h层的系数矩阵. 通过对式(1)求偏导数可得
(2)
由(2)式可得,其偏导数始终大于1,因此随着网络层数的加深梯度也不会消失,解决了梯度消失的问题. 需要注意的是,式(1)中输入x与输出y的维度一般是不同的,故引入参数ws完成维度匹配
y=H(x,wh)+wsx,
(3)
式中:ws是系数矩阵.
向Layer1输入大小为320×320×3的图像,经过7×7,64,stride=2,padding=3的卷积,输出160×160×64的图像,再进入Layer2. Layer2与Layer3所用残差块网络结构如图2 所示.
图2 编码器中第2层和第3层残差块结构图
图2(a)为Layer2的结构图,先经过3×3max pool,64,stride=2,padding=3,输出80×80×64的图像,再输入残差块(Residual block). Residual block 1-1输入图像为80×80×64; Conv1的1×1卷积为降维; Conv3的1×1卷积为升维,完成特征维度匹配; Add 操作完成特征融合. Layer2的Residual block1-2、 Residual block1-3与Residual block 1-1完全相同,重复以上操作3次即可.
图2(b)为Layer3中Residual block的结构图,输入图像为80×80×256; Conv1的1×1卷积为降维; Conv2中stride=2的3×3 卷积将80×80的图像缩小到40×40; Conv3的1×1卷积为升维; 最后到输出处进行Add特征融合时因为图像尺寸不同,需要将输入图像进行下采样,通过stride=2的1×1卷积层实现. Layer3中Residual block 2-2、 Residual block 2-3、 Residual block 2-4输入图像为40×40×512,就不需要进行下采样了,所以stride=1,这3个残差块结构均相同,重复3次即可. Layer4、 Layer5结构和Layer3相同,不同的是通道数变多,输出尺寸变小.
这种网络结构的优点是在卷积的同时就完成了维度上的适应,输入可以直接加到输出上,这样使得计算量减少一半以上. 该模块还避免了因梯度消失而造成模型性能下降的问题,降低了深层网络的训练难度,更容易优化. 同时该模块缩短了前后层之间的距离,有效地提高了特征的学习能力,有助于提取出更多细节信息,在反向传播过程中梯度信息也更容易传播,一定程度上提高了模型的结果精确度.
解码器由图1 中的Layer6~Layer10组成. Layer6如图3(a)所示,直接对输入进行反卷积操作,将特征图大小扩大一倍,通道数缩小为原来的一半. Layer7~Layer10如图3(b)所示,它的输入由两部分组成: 上一级解码器的输入和残差连接层的输入. 先将上一级解码器的输出与残差连接层提取的多尺度特征进行合并,此时通道数变为原来的二倍,再进行降维; 之后再通过反卷积操作,将特征图尺寸扩大一倍,再降维将通道数缩小为原来的一半(Layer9降维将通道数缩小为原来的1/4). 起到了补充信息的作用,改善上采样时信息不足的问题. 通过Layer6~Layer10后,特征图像恢复到320×320×64,经过特征提取器后,最后输出与原始图像对应的320×320×5的目标区域分割图. 该设计网络可以利用较少的训练集进行训练,得到较好的分割结果.
图3 解码器结构图Fig.3 The structure diagram of decoders
本文采用残差连接代替传统的跳层连接. 使用残差路径(ResPath),通过带有残差连接的卷积层链将编码器中的低层次特征与解码器中高层次的特征相连接. ResPath降低了二者在语义上的差距,使二者在拼接前具有一致的深度. 本文在ResPath1,2,3,4中分别使用了4,3,2,1个卷积层.
图4 残差连接Fig.4 ResPath
本文模型网络参数如表 1 所示.
表 1 模型网络参数表Tab.1 Table of parameters of proposed module networks
本文所使用的数据集来自“CCF卫星影像的AI分类与识别竞赛”. 将该数据集中的训练样本分为5类: 植被、 水体、 道路、 建筑、 其他. 采用数据集中的6幅图像,3幅大小为7 939×7 969,3幅大小为5 190×5 204,其中4幅作为训练图像,2幅作为测试图像,图片格式为png格式.
该数据集图像尺寸过大,样本数量过少,在网络训练过程中容易产生过拟合的现象,因此,本文对图像进行了数据增强,丰富图像训练集,提升网络的泛化能力. 首先采用滑动窗口将图像切割成大小为320×320的小尺寸图像,然后采用了随机旋转、 缩放、 平移、 翻转、 添加噪声、 对比度色彩调整共6种方式对数据集进行扩充. 经扩充后的训练集共包含75 540幅320×320的图像.
本实验所采用的CPU是Corei7-8 700k,显卡是Nvidia GeForce GTX 1 080 ti,显存容量为11 G,本文运行的所有代码都是在Keras+Tensorflow深度学习框架下运行的,使用ResNet101网络作为预训练模型,反向传播采用随机梯度下降算法[19]. 在训练阶段,采用adam优化器多元学习率策略来动态调整学习率,避免训练过程中梯度消失的问题; 模型的初始学习率设置为2×10-4; 训练的batch_size=6; 每轮迭代steps_per_epoch=图像总数/batch_size; 计划训练epochs为280; 采用早停法控制训练过程,若损失loss在10个epoch内没有下降则停止训练,最终在epochs为118时训练停止.
为了得到效果最好的模型,本文使用Dice损失函数[20]评估训练结果,能够解决样本不均衡问题. 定义Dice损失函数为
(4)
式中:TP,FP,FN分别为遥感图像像素正确分类数目、 背景像素错误分类数目、 遥感图像像素错误分类数目,X,Y分别为真实值和预测值.Dice值表示真实值与预测值的相似度,Dice值越大说明图像分割准确性越高.
图像分割一般使用精确率(precision, P)和召回率(recall, R)对遥感图像分割结果进行定量分析.P和R的定义式分别为
(5)
(6)
因为P和R本身的限制,无法对分割结果进行全面评价,所以本文采用F值作为综合评价指标,其定义为
(7)
当参数a=1时,则
(8)
同时还使用了语义分割当中标准的准确率度量方法MIoU[21]进行评价,其定义为
(9)
式中:k为类别总数;pij为i类别的像素被预判为j类别像素的总数量;pji为j类别的像素被预判为i类别像素的总数量;pii为i类别的像素被预判为i类别像素的总数量;pij和pji属于被分错的像素数量;pii属于被分对的像素数量.
本文网络模型所训练的P,R,F和IoU如图5 所示.
图5 训练过程中各性能指标的变化趋势Fig.5 The chart of the tendency of several performance withepochs in the training process
图6 所示为该实验中的部分可视化结果,第1列图像为原始彩色遥感图像; 第2列图像为人工标记真实类别; 第3列图像为使用U-Net网络所产生的分割图; 第4列图像为使用本文模型所产生的分割图; 第1行为建筑物密集的分割对比图; 第2行为其它类密集的分割对比图; 第3行为植被密集的分割对比图; 第4行为道路密集的分割对比图; 第5行为水体密集的分割对比图.
图6 遥感图像语义分割结果Fig.6 Semantic segmentation results for remote sensing images
从图6中第1行分割对比图中可以看出,本文模型对于建筑物密集的图像也能做到较为准确的分割,在建筑物边缘分割上也比较精确,而U-Net网络在建筑分割上出现了比较明显的分割错误; 从图6 中第2行、 第3行与第5行分割对比图中可以看到,本文模型在河流、 建筑、 植被等比较复杂的图像中,河流、 植被也能得到比较好的分割效果; 从图6 中第4行分割对比图中可以看出,本文模型在道路细节特征方面分割效果不佳,出现了分割错误的现象,导致原图中的细小道路没有被分割出来,但与U-Net网络分割效果相比结果较好.
为了验证本文模型的训练效果,将本文模型的分割结果与FCN-8s,U-Net和Seg-Net 3种经典语义分割模型进行对比,结果如表 2 所示.
表 2 不同模型在相同数据集下的测试结果Tab.2 Test results of different models under the same data set
表 2 中加粗数字表示最优结果. 由数据可得,本文所使用模型的P,R,F和MIoU指标均优于其它3种经典语义分割算法.
实验中为了验证各模块对整体模型的影响,将原始U-Net 模型、 添加Residual block后的模型、 添加ResPath后的模型与本文模型进行了对比实验,对比结果如表 3 所示.
表 3 各模块对整体模型性能的影响Tab.3 The influence of each module to the performanceof the overall model
本文模型是以U-Net 网络作为基础网络进行的,U-Net网络P为0.915 7,R为 0.926 0,F为0.920 4,MIoU为0.798 5; 添加Residual block与 ResPath后的本文模型在这3项指标上均有提升,其中P与U-Net网络相比提高了2.09%,表明该文方法能够提取到更多的细节信息,图中对比度较低的一些区域也能被有效分割出来,MIoU与U-Net网络相比提高了3.13%,F与U-Net网络相比提高了2.74%,R与U-Net网络相比提高了3.32%,充分证明了本文算法的有效性.
本文针对遥感图像语义分割提出一种基于U-Net网络和多残差网络结合的遥感图像语义分割模型,该模型在U-Net网络模型基础上引入残差块,加强特征传播,减少了信息的损失程度; 采用残差连接,减少了下采样过程中空间信息的损失程度,使得上采样恢复的特征图中包含更多低层次的语义信息,提高了分割精度. 实验结果表明,与其它经典分割模型相比,本文算法对遥感图像具有较高的分割精度,在植被、 建筑、 道路等目标复杂的图像中也能得到比较准确的分割结果,具有很好的鲁棒性. 在后续研究中,拟考虑加入空洞卷积与注意力机制进一步优化结构,实现更加精确的遥感图像语义分割.