刘德祥,张海荣,承达瑜,彭正涛,赵安周
(1.中国矿业大学 环境与测绘学院,江苏 徐州 221116;2.河北工程大学 矿业与测绘工程学院,河北 邯郸 056038)
高分辨率的地球观测技术提供了大量的高分辨率遥感图像,可以精细地描述各种地理空间对象,例如建筑物、水系、道路等[1]。建筑物是城市基础地理信息的重要组成部分,从高分辨率遥感图像中自动提取建筑物对城市管理、规划和监测有非常大的帮助[2]。传统的建筑物提取方法主要依赖于人工设计的特征如长度、边缘、纹理、阴影、光谱等,这种凭经验设计的特征一般只适用于特定的数据,鲁棒性较差[3]。因此,研究高鲁棒性和高效建筑物提取方法非常有必要。随着深度学习的不断成熟,卷积神经网络逐渐应用到建筑物提取,并且取得了不错的效果[4-6]。目前,比较流行的建筑物提取方法多是采用基于全卷积神经网络FCN的语义分割方法[7]。U-Net、SegNet、PSPNet、Deeplab系列等[8-13]作为FCN的经典变体,在建筑物提取领域也得到广泛应用。季顺平等[14]提出了一种改进U-Net的建筑物提取方法SU-Net,将U-Net解码部分的多尺度预测结果拼接,使得最终的预测图汇聚了多个尺度的信息,一定程度上解决了因目标尺度大小不一带来的提取困难的问题。张浩然等[15]将U-Net与条件随机场(conditional random field,CRF)结合实现遥感影像中建筑物提取,将条件随机场作为一种后处理方法优化U-Net的提取结果。张春森等[16]提出了一种改进SegNet的建筑物提取方法,融合PSPNet中的金字塔池化模块捕获多尺度特征。Shao等[17]提出了一种建筑物残差修正网络(building residual refine network,BRRNet),首先在预测模块使用不同膨胀率的膨胀卷积捕获多尺度特征,接着将预测模块的输出作为残差优化模块的输入进一步优化真实值与预测值之间的残差,有效地提高了建筑物提取的准确性。王俊强等[18]将Deeplabv3+与条件随机场结合用于遥感影像典型要素提取。上述方法,一类是通过优化特征提取方式如在网络中加入膨胀卷积或空间金字塔池化模块提高模型精度;另一类是通过后处理方式如条件随机场、图像形态学等方法进一步优化提取结果。然而,基于空间金字塔的方法以非自适应方式聚合上下文信息,且所有尺度的特征都采用同类上下文信息,不能满足不同像素需要、不同上下文依赖的要求;基于膨胀卷积的方法在保证参数量不变的情况下虽然可以获得更大范围的特征信息,但实际上无法获取密集的上下文信息。后处理方法在一定程度上能对提取结果进一步优化从而提高提取精度,但该类方法更多地受限于优化前的提取结果。
针对上述问题,本文提出了一种融合注意力机制的建筑物提取网络(residual dilated attention network,RSDANet)。该方法采用深度学习中经典的Encoder-Decoder结构,在Encoder中,设计了一个多级的残差连接块(residual dilated block,RSD Block),多级残差连接可以将特征学习问题转移到学习残差映射的残差映射,这比原始残差映射更容易学习[19]。在RSD Block模块特征提取后,加入两个特征金字塔模块(feature pyramid networks,FPN),特征金字塔对每一种尺度的特征进行特征提取和融合,实现多尺度的特征表示,并且每种尺度的特征都具有较密集的语义信息。考虑到遥感影像细节信息繁多,需要进一步提取高层特征图中对象之间的相互关系,提出一种注意力机制(weighted-convolutional block attention module,W-CBAM),该注意力机制以全局上下文信息作为约束条件抑制或增强特征。在Decoder中,使用跳跃连接将语义信息更丰富的高层特征图与空间信息更丰富的低层特征图逐步融合,充分的利用空间和语义信息,使提取结果更细致。
RSDANet是一个基于编码器-解码器(Encoder-Decoder)结构的建筑物提取网络,其总体结构如图1所示。该网络主要由残差网络、空洞卷积、深度可分离卷积、注意力机制等组成。在Encoder中,首先,经过四层RSD Block初步提取特征,在RSD Block中,取消池化采用步长为2的卷积层来压缩特征图;其次,为了使每种尺度的特征达到多尺度的特征表达,在RSD Block后加入一个双向的特征金字塔模块;最后,将特征金字塔处理后的特征通过注意力机制W-CBAM进行自适应的特征抑制或增强。在Decoder中,通过Skip-Connection逐步将语义信息丰富的低分辨率特征与空间信息更丰富的高分辨率特征融合,最后恢复到原图大小。
本文提出了一种多级残差连接块RSD Block,该结构包括两个残差单元和三个残差连接,具体结构如图2所示。第一个残差单元与He等[20]提出的残差网络ResNet结构相同,由2个3*3的卷积层串联,外接一个残差连接,并在每个卷积层后加入批量归一化Batch Normalization和RELU激活函数。由于普通卷积感受野较小,局部特征的提取效果较好,为了提取更大范围的特征,在第二个残差单元中采用空洞率为2的空洞卷积。由于使用双重残差结构,模型过大、参数过多,为了进一步减少参数量,提高网络的速度,在第二个残差单元中将深度可分离卷积和空洞卷积结合,使用空洞率为2的深度可分离卷积。最后,在两个残差单元外接一个残差连接。另外,RSD Block中去掉池化层,设置卷积步长为2完成特征下采样。RSD Block中使用了两种不同的残差单元,可充分利用局部特征和局部特征周围的上下文信息。
注:©拼接;⊕逐像素相加(Add);⊗逐像素相乘;α*Fcs+0.5*d4,其中α为可训练权重;Fcs为增强或仰制后的特征;r1、r2、r3、r4,d1、d2、d3、d4为卷积得到的特征;u1、u2、u3、u4,o1、o2、o3、o4为上采样得到的特征;c4、s4分别为通道注意力和空间注意力提取得到的特征。图1 RSDANet结构图
图2 RSD Block结构图
在经过四层步长为2的RSD Block初步的特征提取后可以得到四个不同尺度的特征r1、r2、r3、r4,为了进一步将不同尺度特征融合,设计了一个简单双向的FPN结构,该结构如图3所示,依次进行自上而下的Up-FPN和自下而上的Down-FPN,实现多尺度特征融合。Up-FPN首先对r4进行卷积得到特征u4,u4通过上采样与r3融合得到特征u3,u3按照同样方法得到特征u2、u1。Down-FPN则是对u1进行卷积得到特征d1,d1下采样与u2融合得到特征d2,最后依次得到特征d3、d4。经过双向FPN处理后,特征金字塔对每一种尺度的特征图进行特征提取,使得每种尺度的特征图能够产生多尺度的特征表示,并且所有尺度的特征图都具有较强的语义信息。
图3 双向FPN结构图
通过RSD Block以及双向FPN对输入数据进行特征提取,可以得到包含丰富语义信息的多尺度特征。为了进一步提取高级特征图中对象之间的相互关系,提出了一个W-CBAM模块以自适应的方式抑制或增强特征,该模块结构如图4所示。该结构结合了卷积注意力模块(convolutional block attention module,CBAM)[21]和Dual Attention[22],在CBAM的基础上加入Dual Attention的融合方式,即给定一个初始值为0的可训练权重α,在网络训练过程中逐渐调节权重,权重为0时,相当于不进行注意力机制。W-CBAM由通道注意力和空间注意力构成。首先,通道注意力使用全局平均池化、最大池化将d4∈Rw×h×c空间维度的特征聚合到通道维度得到特征Fcm∈R1×1×c、Fca∈R1×1×c。其次,使用两个全连接层对聚合后的两种特征Fcm、Fca进一步提取,将处理后的特征通过逐像素相加方法融合,融合后得到特征e4∈R1×1×c,e4可视作通道维度的全局上下文信息,通过全局上下文信息与输入特征逐像素相乘来抑制或增强特征得到特征Fcs∈Rw×h×c。再次,赋予Fcs一个初始值为0权重α并与d4使用逐像素相加方法融合,得到特征c4∈Rw×h×c,此时d4的值取一半;空间注意力则从空间维度出发,将d4∈Rw×h×c通道维度的特征聚合到空间维度得到Fsm∈Rw×h×1、Fsa∈Rw×h×1,聚合方式与通道注意力相同,分别取平均和最大值。然后,将聚合后的特征拼接得到新的特征f4∈Rw×h×2,使用5×5大小的卷积核对f4特征提取和通道压缩得到特征g4∈Rw×h×1,该特征可看作空间维度的全局上下文信息,相似地,将其与d4逐像素相乘得到Fcs∈Rw×h×c,赋予Fcs一个初始值为0权重α并与d4融合,得到s4∈Rw×h×c,此时d4的值取一半。最后,将空间注意力和通道注意力处理后得到的特征c4、s4逐像素相加,由于d4参与两次逐像素相加运算,故取一半。多尺度特征经过全局上下文信息作为约束条件进一步处理,可以有效地增强或抑制特征,使得遥感影像中建筑物和背景更好被区分。
注:本图图注详见图1及上文。图4 W-CBAM结构图
特征解码器模块用于恢复编码器提取的语义特征,生成与输入数据大小相同的预测图。在解码器中,使用双线性上采样和卷积结合的方式放大特征图。而在编码器部分,由于遥感影像通过卷积操作不断下采样,分辨率被压缩到非常小,损失了很多的空间位置信息,不利于精确的预测图生成。为了解决这个问题,本文借鉴U-Net的处理方法,通过Skip-Connection把低层的特征图融合起来,通过融合特征分辨率较高、层数浅、含有丰富空间信息的特征,更利于生成精细的预测图。
选取某区域的高分二号遥感影像作为数据源验证本文算法,将标注好的数据按256像素×256像素大小分割得到2 000张图片作为训练数据集,记作GF2-TrainSet,部分训练数据如图5所示,上半部分图片为遥感影像,下半部分图片为标注结果。从剩余的遥感影像中截取一块影像并分割得到2 700张遥感影像作为测试数据集,记作GF2-TestSet。
图5 训练数据
为了使模型有较好的鲁棒性,对训练数据做随机裁剪、扩充、旋转、翻转、滤波等操作扩充样本,数据增强结果如图6所示。
图6 图像增强结果
本次训练分为两个阶段,使用常用的交叉熵损失函数和Adam优化器。第一个阶段使用学习率为0.001进行初步训练;第二个阶段降低学习率为0.000 1微调模型。具体训练超参数见表1。算法实现使用Tensorflow+Keras深度学习框架,在GPU(Tesla T4)提供的运算环境下完成训练,训练过程中的准确率(accuracy)和损失(loss)如图7所示。
表1 训练超参数
图7 训练损失和准确率曲线
为了更好地验证本文算法的分割效果,实验采用语义分割中常用的像素准确率(pixel accuracy,PA)、像素平均交并比(mean intersect over union,MIoU)作为精度评定指标[23]。在介绍上述指标时,先要了解混淆矩阵,如表2所示,它是一种特定的矩阵用来呈现算法性能,其每一列代表预测值,每一行代表真实值。
表2 混淆矩阵
其中,TP表示真正类,即样本的属性为正类,预测结果也为正类;FN表示假正类,即样本的属性为正类,预测结果为负类;FP表示假负类,即样本的属性为负类,预测结果为正类;FN表示真负类,即样本的属性为负类,预测结果也为负类。像素准确率PA的计算如式(1)所示,像素平均交并比MIoU的计算如式(2)所示。
(1)
(2)
使用2.1节介绍的超参数训练,网络收敛后得到建筑物提取模型。使用该模型在测试数据集GF2-TestSet测试得到的整体结果如图8所示,可以看出提取结果与真实值高度重合。
图8 RSDANet提取结果
为了进一步验证本文算法,本文同时和U-Net、Deeplabv3+算法对比,各算法在测试数据集GF2-TestSet上的精度评价指标如表3所示。从表3可以看出,RSDANet算法精度最高,而U-Net参数量最多,提取速度最慢,Deeplabv3+使用MoblieNetV2作为特征提取网络时,虽然很大程度上减少了参数量,提高了建筑物提取速度,但在测试集GF2-TestSet的提取效果却最差;在使用Xception65作为特征提取网络时,Deeplabv3+方法在测试集上MIoU提高了4.75%,同时PA提高了0.79%。本文方法相比于Xception65+Deeplabv3+方法,不仅MIoU提高了2.24%,PA提高0.31%,算法的参数数量也有所减少,兼顾了精度和速度。
表3 不同算法的精度评定指标对比
不同算法的部分提取结果如图9所示。从图9的提取结果可以看出,相对于U-Net、Deeplabv3+等算法,本文方法的误检、漏检都有相应的减少,提取结果更接近于真实值,基本上能提取出所有的建筑物目标。
图9 不同算法提取结果对比
为了验证W-CBAM的有效性,本文同样做了相应的验证,即去掉RSDANet中的W-CBAM模块以及在U-Net中加入W-CBAM模块进行对比,对比结果如表4所示。从表4可以看出,无论是U-Net还是RSDNet方法,在加入W-CBAM注意力模块后,PA、MIoU指标均有提高,说明W-CBAM模块的有效性。
表4 W-CBAM验证结果
本文提出的融合注意力机制的建筑物提取网络模型实现了以自适应的方式进一步约束遥感影像特征,可以有效解决遥感影像中因细节信息复杂导致的特征提取困难、分割精度低等问题。同时,该注意力机制与其他语义分割算法如U--Net、Deeplab等结合也十分方便。为了获得更丰富、更大范围的上下文语义信息,设计了一个多残差连接块RSD Block,在普通的残差结构之后增加了一个带有空洞卷积的残差结构,借助空洞卷积,可以增大感受野,使卷积核映射的特征范围更大。除此之外,模型中还加入了双向的特征金字塔结构用于捕获多尺度信息,提高模型的泛化能力。实验结果表明,该方法在建筑物提取方面有不错的表现。不过,模型的边缘检测精度仍有待提高,下一步将重点研究加入建筑物的边缘约束条件,并将其扩展至本文方法。同时,希望可以在该方法的基础上扩展,实现遥感影像中其他地物目标的提取。