深度学习技术在遥感影像滑坡识别中的应用
2022-11-04孔祥思
张 圆 孔祥思 张 烁 王 辉
(建设综合勘察研究设计院有限公司, 北京 100007)
0 引言
滑坡地质灾害具有损毁性大、覆盖面广、危害性大、突发性强以及雨水浸泡易发生等特点,滑坡发生后不仅会造成经济财产的重大损失,更会给人们的人身安全带来极大的威胁[1-2]。因此,如何快速发现滑坡地质灾害并定位出滑坡的具体位置,对于抢险救灾工作的开展具有重大意义。传统的滑坡监测方法是通过人工进行实地勘察,这种方法速度慢、效率低。近年来,伴随遥感技术的不断发展,利用遥感卫星影像对滑坡地质灾害进行快速识别和定位已成为主流的方法,目前遥感滑坡监测方法主要包括目视判读解译、基于像素的方法、面向对象的方法以及机器学习的方法等[3-5]。
目视判读解译受人的主观影响较大,且速度较慢;基于像素的方法是通过影像像素构建某种滑坡特征,DANNEELS等[6]采用了监督像素分类的方法进行滑坡识别,这种方法对于光谱信息相似的地物较为局限;面向对象的方法处理的基础单元是由像素根据一定规则分割形成的对象,张毅等[7]提出了一种基于规则分类的滑坡识别方法,面向对象的方法对于一些较小目标无法实现较好的识别。机器学习的方法是通过训练神经网络模型进行滑坡识别,李松等[8]利用支持向量机进行滑坡快速识别,该方法识别精度相较于传统方法有一定提升。近年来随着深度学习技术的兴起,一些地质灾害监测类的学者尝试将其应用到了遥感影像滑坡识别中,巨袁臻等[9]提出将谷歌地球影像数据应用到深度学习模型中,实现了对黄土地区滑坡的自动识别,该方法对于黄土地区的滑坡识别效果较好。
由于滑坡遥感影像特征信息较为丰富,利用深度学习的方法可以更加有效地挖掘出影像中的深层特征信息,识别效果相较于常见的基于像素的方法、面向对象的方法等更优,将深度学习应用于遥感影像的滑坡识别具有重要意义。因此本文提出了一种基于U-Net深度学习模型[10]的遥感影像滑坡识别方法,该方法能够有效地应用于大部分滑坡识别场景,精度较高且具有较好的泛化性。
1 数据与方法
1.1 滑坡数据集制作
本文使用的实验数据集为文献[11]提供的毕节滑坡数据集,该数据集是从2018年5—8月拍摄的TripleSat卫星影像中截取的,影像覆盖区域为贵州省毕节市,影像为三通道彩色影像,滑坡影像分辨率为0.8 m,该数据集包含770幅滑坡影像和2003幅非滑坡影像,并且包含对应的真实标签。本研究按照约5∶1的比例设置训练集和测试集,随机选取毕节滑坡数据集中的616幅滑坡影像以及200幅非滑坡影像作为训练集,选取其中剩余的154幅滑坡影像作为测试集,通过在训练集中加入非滑坡影像,可以有效增强模型的泛化能力。由于训练集总的影像数量较少,文中通过对原始影像做顺时针旋转(90°、180°、270°)、水平镜像的方式对训练集滑坡影像进行了增强[12],使得滑坡影像数量扩充为原先的5倍,共得到616×5+200=3 280张训练集影像。
1.2 U-Net模型原理
U-Net深度学习模型是由Olaf Ronneberger等人提出的一种端到端的模型。首先输入原始影像进行编码操作,然后通过特殊的反卷积结构进行解码操作,模型整体架构形似“U”形,图1为本研究中采用的U-Net模型架构示意图。
图1 U-Net模型架构图
从图1可以看出,模型的conv1层至conv5层为编码层,deconv6至deconv9层为解码层。模型在编码部分通过不断做卷积和池化提取影像特征,卷积窗口大小均为3×3像素,池化窗口大小均为2×2像素,通过用多层卷积代替大卷积模板的方式可以更有效的保留影像信息,避免造成影像失真,同时能够深层次的挖掘影像的特征信息。其中,conv1层为两个连续的卷积操作,其卷积核个数为64;conv2至conv5层均是由一个池化操作接上两个卷积操作组成,其卷积核个数分别为128、256、512和1024。
模型在解码部分通过不断做上采样和卷积操作以还原影像,deconv6至deconv9层每层都是由一个上采样操作和两个连续的卷积操作组成,其上采样核个数分别为512、256、128和64,上采样窗口尺寸均为2×2像素大小,即每次进行上采样都会使得影像的长宽放大一倍,但是影像通道数会减半,然后将相应编码层特征图降维后与上采样结果做拼接处理,对拼接结果做卷积操作,各层卷积核尺寸均为3×3像素,卷积核个数分别为512、256、128和64,经过解码操作最终输出得到二值化识别结果。
1.3 U-Net滑坡识别方法
图2为文中的U-Net滑坡识别方法流程,首先将制作好的训练数据集输入U-Net模型进行训练,通过计算损失值并不断优化模型,得到训练好的U-Net滑坡识别模型,然后输入测试集进行模型推理得到滑坡识别结果。
图2 U-Net滑坡识别方法流程
(1)输入训练集。将训练集原始影像以及对应的真值标签分批次输入到U-Net模型中,每批次为6张影像,为了增强模型的泛化能力,除了输入滑坡影像数据集以外,还输入了部分不包含滑坡的影像数据。
(2)特征图提取。初始化模型权重参数,然后通过多层卷积和池化操作,不断提取影像特征,影像特征由浅至深,越深层的特征也更为抽象。
(3)损失值计算。对影像特征图进行上采样解码操作会输出得到概率预测结果,但这时的预测结果较为粗糙,还需要计算其与真值标签之间的损失值,文中采用二值交叉熵(binary_crossentropy)损失函数进行损失值计算,其计算公式为
(1)
式中,y表示标签值;p(y)代表预测值。对于正样本y等于1,p(y)与损失值成反比,当p(y)等于1时损失值为0;对于负样本y等于0,p(y)与损失值成正比,当p(y)等于0时损失值为0。
(4)反向传播模型优化。采用适应性矩估计(adaptive moment estimation,Adam)优化算法[13]不断迭代优化模型并更新模型的权重参数,从而降低损失值,该算法是通过计算一阶矩阵估计以及二阶矩阵估计,然后为不同的参数制定各自的自适应学习率,详细计算过程为
(2)
式中,mt为一阶矩阵估计;vt为二阶矩阵估计;gt代表目标函数在t时刻对参数的导数。然后采用式(3)计算一阶矩阵估计与二阶矩阵估计的偏差修正。
(3)
通过式(4)更新模型参数。
(4)
式中,γ代表学习步长。
通过前向传播计算卷积特征图,上采样还原图像,再通过反向迭代优化模型,降低损失值,更新模型参数,不断训练迭代最终输出得到U-Net滑坡识别模型。
(5)模型测试。模型训练的过程即确定权重参数的过程,当训练完模型之后,即可输入测试集图像进行推理测试,模型根据确定的权重参数对输入图像进行前向传播,最终输出滑坡预测结果。
2 实验与分析
2.1 实验设置
文中实验的硬件配置如下:处理器为intel(R)Core(TM)I7-8750H CPU @ 2.20 GHz,运行内存为8 GB,显卡为NVIDIA GeForce GTX 1060,显存大小为6 GB,所采用编程语言为Python,采用的深度学习框架为Tensorflow和Keras,运行环境为Pycharm。实验训练批大小设置为6,即每次向模型输入6幅影像进行训练,设置训练学习率为0.000 1,共训练了20个epoch。
首先采用测试集影像对模型进行测试,为了验证模型的有效性,选取了北京市范围内的两处实际滑坡区域对模型进行测试,并采用多个精度评定指标进行精度评价,另外与数学形态学方法[14]、SegNet模型[15]进行了详细对比分析。
2.2 精度评定指标
文中采用了精确率(Precision)、召回率(Recall)两种精度评定指标[16]对模型预测精度进行评价,其计算公式如式(5)所示。
(5)
式中,TP代表模型预测为真,其实际值也为真的个数;FP代表模型预测为真,但其实际值为假的个数;FN代表模型预测为假,但其实际值为真的个数。Precision与Recall指标值越高,代表模型的精度也越高。
2.3 测试集滑坡识别结果
利用测试集对训练好的U-Net滑坡识别模型进行测试,测试集一共包含154幅滑坡影像,如图3为文中方法在测试集上的识别效果。
(a)原图
从图3可以看出,文中使用的U-Net滑坡识别模型识别效果较好,能够实现对滑坡区域的有效识别,模型识别结果与真实标签能够很好地契合。对于不同背景的影像,包括森林、水体、道路等均能很好地适应,表明模型方法的泛化能力较好,适应性较强。另外,将文中方法与常规的数学形态学方法、SegNet模型进行了详细对比,如图4为不同方法效果对比。
(a)原图 (b)数学形态学方法结果
由图4可知,在该幅测试影像中,数学形态学方法识别结果存在较多的噪点,并且将一部分不属于滑坡的区域误判为了滑坡区域,而SegNet模型识别的滑坡区域不完整,本文所使用的U-Net模型识别效果最优,与滑坡真实标签贴合较好,可以较为准确地识别出滑坡的实际区域。为了量化不同方法的识别效果,对测试集影像进行了精度评定,将所有测试集影像的精度评定结果取均值得到表1。
表1 测试集精度评定结果
由表1可知,文中方法的Precision指标值比SegNet模型要高0.042 3,比数学形态学方法高0.248 3,Recall指标值相较于SegNet模型高0.340 6,相较于数学形态学方法高0.165 9。实验结果表明,文中方法的精度要优于常规的数学形态学方法与SegNet模型。
2.4实际区域验证
为了验证方法的有效性,选取了北京市房山区大安乡军红路以及延庆区旧县镇黄裕口村的共两处滑坡影像进行实际验证,两处实际区域的滑坡真实标签是由人工手动绘制得到。图5为文中方法在两处实际区域的测试效果。
(a)原图
由图5可以看出,文中方法在北京市房山区和延庆区的两处滑坡区域中,均取得了较好的识别效果,模型测试结果与真实标签贴合较好,仅仅有部分边界位置与真实标签存在不一致,整体上对于两处实际滑坡区域均实现了有效识别。表2为两处实际区域的精度评定结果。
表2 实际区域精度评定结果
由表2可知,文中方法在房山区大安乡军红路滑坡区域的Precision、Recall指标分别为0.893 3、0.955 3,在延庆区旧县镇黄裕口村滑坡区域的Precision、Recall指标分别为0.831 7、0.943 6,指标值均较高。结果表明,该方法识别效果较好,具有较好的泛化性,能够有效适应于复杂的实际区域。
3 结束语
本文利用U-Net深度学习模型进行遥感影像滑坡识别,训练集采用了毕节市滑坡影像,针对训练样本集较少的问题,采用旋转、镜像的方式对训练集进行了扩充增强,另外还在训练集中加入了部分非滑坡影像以增强模型的泛化能力。实验结果表明,文中方法在测试集的精度较高,要优于常见的数学形态学、SegNet模型方法;方法具有较好的泛化性和适应性,对于不同背景的影像,包括森林、水体、道路等均能很好地适应;方法具有较好的实际应用效果,在北京市房山区和延庆区的两处实际滑坡区域中均达到了较高的识别精度。在后续研究中,将考虑结合滑坡遥感影像的特点对U-Net模型进行改进,并增加训练集数量,以进一步提升滑坡识别精度。另外考虑将深度学习方法应用于其他地质灾害的识别监测。