林雨琦,李宝安,韩 晶,张 凯,游新冬,吕学强
(1.北京信息科技大学 网络文化与数字传播北京市重点实验室,北京 100101;2.首都师范大学 中国语言智能研究中心,北京 100048)
遥感图像中的建筑物分割是利用计算机视觉方法将遥感图像中建筑物与背景进行分割的技术。提取遥感图像中的建筑物,有利于相关部门掌握土地利用情况,有助于城市规划、违规建筑物监测等工作。
传统的遥感建筑物分割通过计算遥感图像的光谱、颜色、轮廓、纹理等信息进行,主要有基于像素的方法、基于机器学习的方法,以及基于几何特征的方法。这些方法普遍依赖手工设计,在应用时常常会因为实际环境复杂而不能适应,导致泛化性能不足,应用场景下的准确率不够高。
近年来,得益于计算能力的提升以及算法的进步,大部分计算机视觉的任务都可以通过深度学习完成,在某些任务中,深度学习方法已经达到甚至超越了人类的表现。提取遥感图像中的建筑物本质上是一项语义分割任务,因此可以使用合适的语义分割网络提取遥感图像中的建筑物。Long等[1]提出的全卷积网络(fully convolutional networks,FCN)首次完成了端到端的语义分割深度神经网络。该网络移除了分类网络中最后用于分类的全连接层,并用卷积层和上采样层对特征进行解码,以此获得与输入尺寸相同的分割结果。Liu等[2]提出了一种改进的FCN网络,使用可分离卷积提升运算效率,以及融合多尺度上下文增强对特征的提取效果。基于FCN范式,还有许多FCN变体网络逐渐被提出,这些网络能够充分利用上下文信息得到更精确和细化的分割结果。编码器—解码器(Encoder-Decoder)是一种能够有效恢复对象细节的结构。SegNet[3]和U-Net[4]是具有这种结构的两个典型网络,在解码过程中使用跳跃连接融合编码器和解码器之间的信息,从而融合多层次的语义信息。吕道双等[5]使用改进的U-Net提取遥感影像中的建筑物,获得了边缘轮廓齐整、细碎小斑点较少的结果,提升了准确率。Zhang等[6]提出了一种多层次的Web-Net结构,同样使用编码器—解码器结构,并将其中的各节点使用一种多层次连接吸收和融合中间层的特征,以此高效准确地提取遥感图像中的建筑物信息。多路径的refinenet[7]也是语义分割的经典网络,多路径的设计可以使训练更高效,最终获得较高准确率的分割结果。此外还有通过增加感受野和使用多尺度上下文信息来提高分割精度的网络。Chen等[8]提出的DeepLab系列网络,目前最新版本为DeepLab V3+,利用空洞卷积能够在不增加参数数量的情况下提高感受野的性质,通过不同膨胀率的空洞卷积提取多尺度特征,提高准确率。
为了能够准确地提取遥感图像中的建筑物,同时减少模型大小,本文提出融合改进的密集连接和CBAM[9](convolutional block attention module,卷积模块注意力机制)的神经网络,该网络的主要优点有:1)采用一种改进的密集连接块(dense block)结构,该结构在不损失特征信息的情况下降低输出的特征图大小;2)采用了注意力的方式增加特征图中重要通道和重要位置的权重,最终提升了模型分割准确率和IoU值。为了验证本文方法的有效性,在WHU航空建筑物数据集[10]上进行了实验,实验结果优于当前其他主流网络。
本文提出的网络架构采用与U-Net网络结构相似的编码器—解码器结构,在特征提取的过程中使用改进的密集连接结构并结合改进的CBAM,最终提高网络的准确率。
网络的整体结构如图1所示。本文提出网络的基本结构为编码器—解码器结构,网络的输入部分是一个卷积层,将图像由RGB三通道转换为32通道。之后是编码器部分,该部分包含5个特征提取模块,使用改进的密集连接和改进的CBAM提取特征,提取之后使用池化层降低特征图的分辨率,经过多次池化层的下采样之后,分辨率从输入时的512×512缩小到16×16,同时特征通道数也由32增加到224。为了得到分割结果,编码器输出的特征会使用解码模块进行解码,每个解码模块的输入是上一层解码模块的输出和对应尺度的编码模块的输入拼接而得到的一个特征,这一步被称为跳跃连接。跳跃连接可以在解码过程中有效利用到深层的语义信息和浅层的细节信息,使最终获得的结果更准确。解码部分同样采用改进的密集连接和改进的CBAM对该特征进行解码,解码后的特征使用反卷积进行上采样,将低分辨率的高维特征逐步恢复到高分辨率的结果,使结果逐渐包含更丰富的细节信息,最后获得一个包含丰富语义信息和细节信息的结果。经过解码器的解码后,得到一个分辨率为512×512、通道数为64的特征图,但这与所需要的类别数量不同,因此使用1×1的卷积获得网络最终的输出结果。
图1 网络结构
本文中编码器和解码器部分各使用了5个改进的密集连接模块,每次所使用的增长率(growth rate)均设置为16,密集连接模块中每层都是由BatchNorm(批量归一化)、ReLU (rectified linear unit,修正线性单元)和卷积层组成。由于网络浅层应提取简单的纹理信息,深层提取复杂的语义信息,因此各密集连接块中包含的卷积层个数分别设置为4、5、7、10、12、15、12、10、7、5、4,在网络深层使用更宽的宽度提取更高维的语义信息。
传统的密集连接[11]在输出时是将输入特征图和输出特征图拼接到一起,因此最终特征图通道数为输入通道数+密集连接层数×增长率。为了降低后续参数量,本文将输入的特征以残差连接的方式与各层的特征进行融合,但由于输入输出通道数不相同,因此使用1×1的卷积层调整输出时的通道数量,以让输入和输出的通道数相匹配。改进的密集连接可表示为
xout=Concat([x1,x2,…,xl])+Conv1×1(x0)
(3)
改进的密集连接结构如图2所示。经过修改后的输出通道数量可以降低为密集连接层数×增长率,这可以使后续的网络在卷积的过程中大大减小每次输入的通道宽度,降低计算量和计算时间,也可以缩小模型参数量,同时仍然可以保留输入特征的信息和梯度,防止梯度消失的情况出现,同时也可以保证识别的准确率。
图2 改进的密集连接结构
为了使网络能够对重要的区域有更高的关注度,在网络中加入了CBAM。CBAM是经典的注意力结构,该结构结合了空间注意力和通道注意力两种注意力机制,使特征中重要的信息能够获得更高的表现。CBAM是一个可以即插即用的模块,在网络中合适的位置使用可以提高最终识别的效果。
CBAM的过程可描述为
(2)
式中:F′为经过通道注意力加权后的特征;Mc为通道注意力模块;F为输入特征;F″为CBAM最终的输出特征;Ms为空间注意力模块。
CBAM结构如图3所示。CBAM的完整流程如下:输入特征首先通过了一个通道注意力模块,得到注意力增强后特征,之后使用一个空间注意力模块再增强特征的空间信息,得到CBAM最终的输出结果。输入的特征经过了两个注意力模块之后对其空间范围和通道范围中重要的部分给予更高的注意力权重,因此在后续的分割过程中可以有更好的效果。
图3 CBAM结构
本次实验采用WHU航空建筑物数据集。该数据集是一个由航空遥感影像构建的建筑物分割数据集,其影像采集自新西兰,空间分辨率为0.075 m,覆盖面积达450平方公里,该数据集对其中建筑物进行标注,建筑物数量达到22万栋以上。该数据集将遥感图像下采样至0.3 m的空间分辨率后,对其进行了裁剪,得到了8 189张512×512像素的图片,其中训练集包含4 736张,验证集中包含1 036张,测试集中包含2 416张。
2.2.1 实验设备及环境
本次实验在GNU/Linux 16.04操作系统进行,使用的显卡为Tesla V100,显存容量为16 G,CUDA版本为10.0。软件环境为Python3.8,深度学习框架使用PyTorch框架,版本号为1.4.0。
2.2.2 数据处理与增强
为了丰富实验数据的多样性,防止过拟合现象出现,对输入的图像使用以下数据扩充方法,对每张图像以75%的概率在0~360°范围内的随机旋转、横向翻转、纵向翻转、横向纵向翻转中选择一项,以70%的概率在高斯滤波、添加高斯噪声、直方图均衡化和调整亮度及对比度中选择一项,最后以60%的概率将图像缩放0.67~1.33倍,并通过补全或裁剪将图像大小调整为输入尺寸,本次实验中所使用的输入图像尺寸为512×512。使用数据增强能够提高数据的多样性,最终提高网络的准确率。
2.2.3 参数设置与优化
实验过程中使用交叉熵损失函数对网络进行训练,优化器选择AdamW,在最初的50轮中,初始学习率为0.000 1,并采用自适应学习率调整方案,每当连续5次迭代之后准确率都没有提升,则学习率衰减为当前学习率的10%。当连续有8轮准确率不再提升的时候,训练停止,保存能够在验证集上获得准确率最高的模型权重。
2.2.4 评价指标
本次实验采用准确率(accuracy,ACC)、交并比(intersection over union,IoU)和F1值作为实验的评价指标。
评价指标根据图像中统计的各类像素点进行计算,具体如下:
(3)
(4)
(5)
式中:RACC为准确率;RIoU为交并比;nTP为识别正确的建筑物像素数量;nFP为将背景错误识别成建筑物的像素数量;nTN为正确识别的背景的像素数量;nFN为将建筑物错误识别成背景的像素数量。
2.3.1 消融实验
为了证明本文使用的密集连接和注意力机制的有效性,选择了U-Net、传统密集连接结构以及SENet[12]和CBAM两种注意力机制进行消融实验,结果如图4所示。可以看出,使用密集连接结构和改进的密集连接结构的网络均优于语义分割的经典网络U-Net。
图4 消融实验结果
表1中展示了实验过程中不同网络模型的模型大小,以及各指标的最终效果。由表中可以看到,改进的密集连接结构具有更少的参数量,却没有因此而降低准确率,而是获得了更高的准确率。这证明了本文方法的有效性。
表1 模型大小和准确率对比
图5为本文提出的网络训练过程中的损失变化曲线和验证集上的IoU变化曲线,曲线变化过程显示网络训练初期损失快速下降,经过几轮训练之后,网络进入微调状态,损失下降变慢,经过一段时候训练后,学习率自动下降,直到损失下降曲线趋于平缓,不再继续学习,在验证集的IoU曲线中可以证明这种学习策略没有出现过拟合现象。在最后几轮训练过程中损失出现略微上升的情况,因此训练提前停止,并使用损失最低的网络参数作为最终的模型参数,以获得最佳的效果。
图5 损失变化曲线
2.3.2 与其他网络对比
为验证本文方法在建筑物分割中的准确率,对比了本文方法与其他主流分割网络在WHU航空建筑物数据集上的结果,如表2所示,其中加粗字体为该指标的最佳值。SegNet[3]和refinenet[7]是经典的语义分割网络,它们均使用VGG网络的卷积层部分提取图像特征,并在生成结果时使用了池化层的索引;refinenet是一个使用了多路径结构的网络,通过结合不同尺度的信息获得最终的分割效果,并且使用了残差连接,以此提升训练时的效率;DeepLab V3+[8]是目前常用的语义分割网络,通过一个骨干网络提取图像特征,该骨干网络通常为ResNet或Xception,在编码器最末端使用空洞空间金字塔池化模块提升网络的感受野,并且在解码过程中加入编码器中间的低维特征,最终得到分割结果。经过实验对比,本文提出的方法在3项指标中均优于其余网络。
表2 本文方法与其他分割网络对比
图6展示了本文方法与其他网络的结果对比,本文方法在整体识别效果和细节上均优于其他网络,识别错误率也更低。因此本文方法能够有效地对遥感图像中的建筑物进行分割。
图6 本文方法与主流分割网络对比结果
本文提出了一个融合改进的密集连接和CBAM的神经网络,该网络能够在具有较少的参数量的情况下,有效地对遥感图像中的建筑物进行分割,达到了较少的存储空间占用和较快的识别速度。通过与其他模型的识别效果进行实验对比,结果表明本文网络能够有效分割建筑物,相对其他模型识别准确率更高,识别效果更好。这也说明本文方法能够应用于进一步的工程实践中,如违规建筑物的检测、国土规划等方向。尽管本文方法能够有效地识别出遥感图像中的建筑,但在训练过程中全部依靠有标注的遥感数据,数据标注需要耗费大量的人工成本,可以进一步探索使用部分无标注的数据进行半监督学习,甚至使用全部无标注的遥感数据进行无监督学习。