基于改进DeeplabV3+的农村遥感图像屋顶分割
2022-08-10王晓文李顶根
王晓文 李顶根
1(华中科技大学中欧清洁与可再生能源学院 湖北 武汉 430074) 2(华中科技大学能源与动力工程学院 湖北 武汉 430074)
0 引 言
从建筑屋顶收集太阳能来替代传统能源是缓解现代能源压力的重要方式,大范围的农村建筑屋顶太阳能资源潜力的评估对推进太阳能开发利用有重要意义。目前已有太阳能屋顶分割方案大多数针对城市地区,较少针对农村地区,而农村地区的房屋种类较多,个体差异较大,且呈小区域分散的状态,使得现有模型对农村地区屋顶分割效果不佳。如何有效地分割出农村地区太阳能屋顶值得进一步研究和探讨。
1 建筑屋顶分割的研究进展
目前,国内外在遥感图像屋顶分割方面已进行许多研究。李勇[1]基于DSM数据与航空影像,目视解译跟踪矢量化而得到上海中心城区的建筑物屋顶数据。宋晓阳[2]提出了一种融合了光谱、形状及空间信息的针对建筑物提取的多尺度分割方法,并将高度信息(DSM)和植被指数(NDVI)作为影响因子加入多尺度分割方法中。杨蕴等[3]提出了基于局部空间信息的阈值分割法,可自适应地确定类别数和阈值,从而完成遥感图像的多阈值分割。韦春桃等[4]利用双数复小波提取特征,通过马尔可夫随机场算法完成遥感图像的分割的同时降低了噪声的影响。Espindola等[5]提出了一个目标函数,用于为区域增长分割算法选择更加合适的参数,可以提高分割的精度[5]。Li等[6]提出使用高置信度的边缘信息去指导检测边界较弱的对象,从而提高图像分割的定位精度。
以上这些方法一般都是通过手工进行特征的提取,提取的过程较为复杂,需要该领域的专业人员和对特征的有效性验证,耗时耗力。因此,针对复杂场景的遥感图像,传统图像分割技术难以实现较好的效果。近年来,随着神经网络的快速发展,相比于传统机器学习,多层隐藏层的深度神经网络特征学习能力更强,效果更好,基于深度学习的遥感图像分割已经成为国内外学者研究的热门方向。何平等[7]提出一种新的生成对抗网络分割方法,缓解了普通方法分割存在的孔洞问题,实现了遥感图像居民区的分割。Basaeed等[8]依赖特征检测器提出了融合多个增强网络的框架完成遥感图像的分割。Sun等[9]提出融合自然颜色、红外图像和数字表面模型等多模式数据提高遥感图像的分割精度。而相较于城市建筑而言,农村地区屋顶差异更大,建筑风格更多样化,小目标建筑更多,使得现有模型对农村地区屋顶分割效果不佳。因此,提出基于改进DeeplabV3+的端到端的农村地区遥感图像屋顶分割算法,主要包括以下三个方面:
1) 较大扩张率的空洞卷积会造成棋盘格效应,故在空洞卷积金字塔池化结构末尾加入棋盘格平滑模块,对特征图进行密集采样,有效地捕获局部信息,缓解信息利用率低下的问题。
2) 原DeeplabV3网络的解码器部分过于简单,缺乏低水平的特征,对此在解码器网络中多加一路低水平特征,增加特征信息。
3) 原始网络的解码器预测的目标边界较粗糙,对此提出了通道注意力解码器,增加网络对重要特征的筛选能力,进一步恢复图像的空间细节。
2 改进的DeeplabV3+分割算法
2.1 DeeplabV3+网络原理
选择DeeplabV3+作为农村屋顶分割的基础网络模型。DeeplabV3+网络采用的是图像语义分割领域常见的编码器-解码器结构,DeeplabV3+模型的整体架构如图1所示,它的编码器主体是带有空洞卷积的深度卷积神经网络,用于提取图像的特征,然后是带有空洞卷积的空间金字塔池化模块,主要是为了引入多尺度信息;相比DeeplabV3,DeeplabV3+引入了解码器模块,其将底层特征与高层特征进一步融合,提升分割边界准确度。
图1 DeeplabV3+网络结构示意图
1) 编码器。在编码器-解码器结构中,编码器首先将输入图像传入带深度卷积神经网络,以提取丰富的抽象特征,并在特征提取网络中使用空洞卷积代替标准卷积,以扩大感受野范围。空洞卷积本质上就是在标准的卷积核中加入空洞,从而在不大幅减小图像尺寸的同时获得更大的感受野。传统卷积操作运算公式如下:
(1)
式中:σ表示激活函数;f表示特征图的值;g表示卷积核的值;b表示偏置。
空洞卷积在传统卷积基础上增加了参数空洞率d,普通的卷积可以认为其空洞率等于1,空洞率控制着感受野的大小,空洞率越大则感受野越大,具体计算公式如下:
(2)
编码器再将深度神经网络提取到的抽象特征传入空间金字塔池化模块(ASPP),通过并联不同空洞率的空洞卷积提取多尺度上下文信息,帮助网络获得更可靠的结果,ASPP模块主要包含以下几个部分:
(1) 一个1×1卷积层,以及三个3×3的空洞卷积。
(2) 一个全局平均池化层,用来得到图像级别的特征图。
(3) 将(1)和(2)得到的4个不同尺度的特征在通道维度上拼接在一起,然后送入1×1的卷积进行融合并得到256通道的新特征。该新特征会被传入解码器。
2) 解码器。对于DeeplabV3,经过ASPP模块得到的特征图的输出步幅为16,其经过1×1的分类层后直接双线性插值到原始图片大小,这是一种非常暴力的解码方法,这十分不利于得到较精细的分割结果,故DeeplabV3+模型中借鉴了编码-解码结构,引入了新的解码器模块,如图1中解码器部分所示。首先将编码器得到的特征双线性插值得到4倍大小的特征,然后与来自编码器特征提取网络中具有相同空间分辨率的相应低级特征进行级联。值得注意的是,由于编码器低级特征维度较高,防止编码器得到的高级特征被弱化,因此在编码器中的低水平特征之后应用1×1卷积层进行降通道。将编码器低水平特征与编码器输出特征拼接后,应用3×3卷积以细化特征,在双线性上采样4倍,使得输出空间分辨率与输入相同。
2.2 棋盘格平滑模块
原DeeplabV3+使用空洞卷积替代下采样来扩大感受野,但是空洞卷积存在网格效应,也称棋盘格问题。因为空洞卷积得到的某一层的结果中,邻近的像素是从相互独立的子集中卷积得到的,相互之间缺少依赖。这就造成两个问题:(1) 局部信息丢失问题。由于空洞卷积在特征图上是离散的采样,卷积的结果表现为特征图中离散点的关系,而忽略了连续点之间的局部信息,在串联的空洞卷积结构和较大空洞率的空洞卷积中,局部信息丢失问题愈发严重。(2) 较大间距获取的信息缺乏相关性。由于空洞卷积离散采样的特性,使得较大间距卷积得到的信息之间没有相关性,影响预测结果。针对此类问题,设计了棋盘格平滑模块,在带有空洞卷积的深度卷积神经网络提取图像特征之后,在空洞空间金字塔池化结构之前,增加了扩张率较小的两个卷积操作,使采样点之间更密集,可以增强特征图像素间的交互关系,缓解网格效应,如图2所示。
图2 棋盘格平滑模块
为了减少棋盘格平滑模块的参数,降低计算复杂度,首先对输入的高维特征图进行降维,输出256维的特征图,然后依次连接空洞率为2和1的卷积操作,在整个棋盘格平滑模块中,特征图的维度都是256。由于DeeplabV3+网络较深,容易产生梯度弥散和梯度爆炸问题,一般会在网络中间层增加残差连接,使得模型能够学到恒等映射,从而缓解梯度弥散和梯度爆炸问题。但是在DeeplabV3+网络中为了防止网络底层的棋盘格效应通过残差连接能够直接到达顶层,棋盘格平滑模块选择去除了残差连接,而是在每个卷积操作后连接一个批归一化层,也能够达到残差连接对模型的正则化效果。批归一化层可以将上一层的输出均值和方差规范化,将输出从饱和区拉到了非饱和区,可以降低模型的训练难度,增加模型的泛化能力,并且可以缓解模型因网络深度增加而导致的梯度弥散和梯度爆炸等问题,加快模型收敛速度。实验表明,棋盘格平滑模块能够使之前网络层学习到的特征交互性更强,使得分割目标边缘更平滑细致,提高了图像分割的精度。
2.3 多低水平特征融合
基于深度学习的图像语义分割模型从网络底层到顶层,随着感受野的变大,网络模型所学习到的特征也在不断变化。在模型的浅层,特征图的分辨率较大,感受野较小,学习到的特征一般都是图像的细节特征,比如边、角和线等特征;而在网络的深层,特征图的分辨率较低,感受野较大,网络层提取到的更多的是图像目标的语义信息。在DeeplabV3+网络结构中融合的低水平特征只选择主干网络中与编码器得到的高级特征对于大小的低级特征图,该特征图能够包含的图像细节特征较少,不足以使得解码器较为准确地恢复目标的边缘信息。针对此问题,以ResNet50作为主干网络为例,其分为5个阶段,每个阶段的输出特征图尺寸依次为原图大小的1/4、1/4、1/8、1/16、1/16。选择在解码器中融合第二、第三、第四阶段的低水平特征,并分别将第三、第四阶段的特征两倍、四倍双线性插值上采样。最后将三个不同阶段的低水平特征在通道层面上拼接,形成高维特征,该特征包含了丰富的图像细节特征,可以使得模型更好地恢复目标的边缘细节信息。
2.4 通道注意力模块
原DeeplabV3+在ASPP结构中进行各尺度的特征提取时,通道数前后保持一致,将多尺度的特征拼接之后,特征通道维度直接变成原来的5倍,再通过1×1卷积降维,最后以4倍上采样送入解码器。原DeeplabV3+并没有对拼接后的多尺度特征进行特征通道选择,也就是认为每个通道信息对于该目标的分割重要性相同。实际上网络深度的增加,感受野的扩大,语义信息逐渐丰富,尤其经过空洞卷积空间金字塔池化结构之后,每个通道表示不同的特征,这些特征对于不同的目标而言其重要性也不同。如果在降维的同时对特征通道施以权重值,可以使得网络能够重视输入特征的重要部分,学习到特征中对目标预测贡献较大的部分,能够进一步提高网络模型的分割精度。
通道注意力模块主要有两个作用:(1) 对于ASPP结构产生的高维特征实现降维;(2) 使网络更加关注重要的特征。通道注意力模块分为降维、挤压、激励和注意四个部分,如图3所示。
图3 通道注意力模块
首先最左边是原始输入图片特征X,然后通过1×1卷积进行降维,产生了新的特征信号U。挤压部分采用全局平均池化实现挤压,具体见下式:
(3)
式中:u为大小为H×W×C的特征图;uc表示为高维特征图中通道顺序为c的二维特征矩阵;经过挤压部分,第c个通道的特征矩阵映射为zc。激励部分为两个全连接层,以此学习通道间的复杂关系,具体如下:
s=Fex(z,W)=δ(g(z,W))=σ(W2δ(W1z))
(4)
第一个全连接层的权重W1维度大小为(c,c/16),将通道降为原通道数的1/16,再通过权重为W2的第二个全连接层进行升维,将维度恢复至c,每个全连接层后都采用ReLU函数激活,用δ表示。然后通过Sigmoid函数σ归一化权重矩阵s,保证权重值范围在(0,1)之间。
最后通过尺度函数Fscale将权重s赋到每个通道上,得到输出矩阵Y:
Y=Fscale(uc,sc)=sc·uc
(5)
式中:sc表示顺序为c的归一化函数权重。不同通道的值uc乘上对应顺序的权重sc,从而可以增强对关键通道域的注意力。
2.5 改进DeeplabV3+网络
提出的改进DeeplabV3+网络以ResNet50为特征提取网络,特征提取网络结构见表1。
表1 ResNet50网络结构
为了更好地提取底层特征,增加每一层卷积的感受野,将ResNet50中的第二、第三、第四、第五阶段卷积中的普通卷积都替换成空洞卷积,且从第二阶段开始,每一阶段的空洞卷积空洞率依次为2、4、8、16。提出的改进DeeplabV3+网络结构如图4所示。首先,输入图像经过ResNet50中的5个阶段的空洞卷积特征提取,传入棋盘格平滑模块以消除棋盘格效应;接着连接空洞卷积空间金字塔池化结构以获取多尺度的信息并融合;再通过通道注意力模块筛选出重要的特征以4倍上采样传入解码器。在解码器阶段,首先对ResNet50中第二、第三、第四阶段输出的低层次特征上采样至相同尺寸并拼接,再通过通道注意力模块降维并选择重要特征,接着与另一个注意力模块的输出拼接,最后连接一个普通卷积并以4倍上采样输出最终分割结果。
图4 改进的DeeplabV3+网络结构
3 实 验
3.1 实验环境与数据集
模型训练所需硬件设备采用的是阿里云GPU云服务器,具体配置见表2。训练模型所用的超参数配置如表3所示。
表2 实验硬件配置
表3 模型超参数设置
实验选择河南省漯河市舞阳县部分农村地区作为研究对象,该地区位于河南省中部偏南,农村住宅建筑占主要部分。通过图新地球软件获得该地区的谷歌影像,并将其切分为256×256分辨率大小的图片若干幅,选择其中1 000幅作为实验数据集,并按8 ∶1 ∶1的比例切分为训练集、验证集和测试集。
为了丰富图像训练集,减少标记的工作量,使得模型能够更好地提取图像特征,提高模型的泛化能力和鲁棒性,降低模型过拟合风险,数据集训练前一般都会根据数据集的特点进行数据增强,主要包括:翻转、旋转、缩放、色彩抖动、增加噪声。
3.2 算法评价指标和网络训练过程
(1) 算法评价指标。实验采用交并比(Intersection over Union,IoU)系数、像素精度(Pixel Accuracy,PA)作为定量评价指标。在图像语义分割任务中,PA指的是预测正确的像素占总像素的比例;IoU系数为某一类的预测区域和实际区域交集与预测区域和实际区域并集两者的比例。IoU和PA值越大,表示预测精度越高。IoU的具体计算方式如下:
(6)
式中:X表示前景或背景的预测轮廓区域所包含的点集;Y表示实际轮廓区域所包含的点集。在屋顶分割任务中,规定屋顶为前景,任务只关心前景的分割结果。由于屋顶分割任务为二分类,因此屋顶和背景的像素精度相同,而IoU值不同,因此对于IoU值,实验主要考虑前景的IoU系数。
(2) 网络训练过程。选择交叉熵与IoU损失的和作为算法总损失:
(7)
IoUloss=1-IoU(X,Y)
(8)
Loss=Entloss+IoUloss
(9)
3.3 实验结果分析
(1) 分割示例。图5为采用基于改进DeeplabV3+网络对图像进行分割的一个实例,其中:(a)为原始输入图像;(b)为真值图;(c)为分割结果。由该实例可知,提出的基于改进DeeplabV3+的屋顶分割算法可以有效地分割出农村地区屋顶。
(a) 原图(b) 真值图(c) 预测图图5 基于改进DeeplabV3+网络的分割示例
(2) 定性分析。图6为改进DeeplabV3+与原DeeplabV3+网络对部分测试集图像的预测结果,其中:(a)为原图像;(b)为对应的真值图;(c)为原DeeplabV3+网络的分割结果;(d)为改进的DeeplabV3+网络的预测结果。可以看出,使用原DeeplabV3+网络对农村地区屋顶分割时,存在分割不足现象,见图6(c),第一行中存在非屋顶区域被误识别为屋顶,第三行中存在部分屋顶区域未被分割出来,提出的改进DeeplabV3+网络通过棋盘格平滑模块获得了特征图更加细致的信息,更好地分割屋顶。原DeeplabV3+网络分割结果中目标屋顶的边缘细节不清晰,这是由于图像的边缘细节特征主要存在于网络的低级特征,DeeplabV3+只利用了一层低水平特征,不足以恢复边缘细节,改进的DeeplabV3+融合了更多的低水平特征,使得模型对细节的预测更加准确。
(a) (b) (c) (d)图6 改进DeeplabV3+算法的屋顶分割效果
(3) 定量分析。为了保证算法评价的客观性,实验选择前景的交并比和像素准确率作为评价指标,用于评估基于DeeplabV3+提出的改进方案的有效性。表4为结合不同方案的DeeplabV3+在验证集中的评价指标结果。Ours1是基于DeeplabV3+网络增加了棋盘格平滑模块,两项指标分别提升了0.009 1和0.010 7。Ours2在Ours1的基础之上融合了多个低水平的特征,使得指标又提高了0.005 8和0.000 2,由此可见,融合低水平特征能够进一步地提高分割精度。Ours3在Ours2的基础上采用了注意力模块来连接在ASPP结构和低水平特征融合之后,使得指标相较于原DeeplabV3+网络约提升了0.022 1和0.017 4。
表4 结合不同方案的DeeplabV3+在验证集上的评价指标结果
(4) 不同算法对比。为了保证算法评价的客观性,将提出的改进DeeplabV3+算法与文献[10-15]中提出的基于深度学习的经典图像分割网络在农村地区屋顶分割任务上进行对比,具体结果如表5所示。FCNs作为基于深度学习的语义分割算法中的开山之作,在农村地区屋顶数据集上的前景IoU指标仅有70.61%。文献[11]首先提出了经典的编码-解码结构的语义分割结构UNet网络,UNet网络是通过堆叠大量的池化层来降低特征图的分辨率尺寸,以此获得较大的感受野,但这样做会不可避免地失去图像的空间信息,使得屋顶分割精度较低。文献[12]提出了DenseASPP,结合了并行和级联使用空洞卷积层的优点,在更大范围内产生了更多的尺度特征。文献[13]提出了BiSeNet,利用空间路径保存空间信息并生成高分辨率特征,同时采用快速下采样策略的上下文路径获取足够的感受野。文献[14]和文献[15]分别提出了PSPNet和DeeplabV3+,它们在特征提取过程中加入了空洞卷积和空间金字塔池化层,使得网络在不降低特征图的分辨率,保留图像空间信息的同时获得更大的感受野,得到了比UNet更强的语义信息,但是同样缺乏图像的细节特征,模型不能很好地恢复图像边缘细节,分割结果较粗糙。由表5可知,本文提出的改进DeeplabV3+算法在农村地区屋顶数据集上的各项评价指标均优于其他经典的语义分割算法,也再次证明了棋盘格平滑模块、通道注意力模块和多低水平特征融合的重要性。
表5 不同算法在农村屋顶数据集上的评价指标
4 结 语
针对现有模型对农村地区屋顶分割任务效果不佳,以及DeeplabV3+网络存在的棋盘格效应等问题,提出改进的DeeplabV3+农村地区屋顶分割网络,通过棋盘格平滑模块缓解棋盘格效应,利用多低水平特征融合和通道注意力模块提高模型对边缘细节的分割能力。实验结果表明,提出的改进DeeplabV3+算法相较于经典的语义分割网络能更有效地分割出农村地区的屋顶。由于遥感影像中存在多种类型信息,未来考虑融合多模式数据提高分割精度。