基于DETR的高分辨率遥感影像滑坡体识别与检测
2023-09-04杜宇峰赵子龙李国柱
杜宇峰,黄 亮,2,赵子龙,李国柱,
(1. 昆明理工大学国土资源工程学院,云南 昆明 650093; 2. 云南省高校高原山区空间信息测绘技术应用工程研究中心,云南 昆明 650093; 3. 云南海钜地理信息技术有限公司,云南 昆明 650093 )
滑坡灾害因其极强的破坏力、突发性、范围广等重要特征,严重危害国家人民的财产和生命安全。因此,快速准确地识别滑坡体对滑坡治理和避免灾害发生具有重要作用。
目前,国内外研究中常见的滑坡体识别方法根据自动化程度的不同主要分为以下3种:①目视解译方法。该方法虽然在实际项目中应用广泛,但主观性强,且存在识别速度慢、耗时耗力等问题。②传统的遥感图像处理方法。主要包括面向对象分析方法[1]、统计学习方法[2]及机器学习方法。这两种方法相较于人工目视解译自动化程度有较大的提高,但基于图像特征构建规则的方法自动化程度仍较低,检测速度较慢。③基于深度学习的滑坡识别方法。深度学习方法多采用CNN对滑坡体特征进行自动提取和训练,从而提高滑坡的识别精度,且能够对滑坡体快速检测,极大地减小了主观因素影响,提升了滑坡识别的自动化程度[3-5]。作为一种以数据驱动的识别和检测方法,其数据集的质量与数量在训练识别中起关键性的作用。随着数据的爆炸式增长和计算机算力的发展,深度学习由于自动化和快速检测的优点,可为滑坡体识别和检测提供技术支撑。
目前,基于深度学习的滑坡识别和检测多采用CNN结构进行训练,由于CNN平移不变性和归纳偏置的优点,在滑坡体识别和检测中应用广泛,但其缺点也很明显。CNN的感受野受限,进一步增大感受野需要不断堆叠网络层数。网络结构的加深,会丢失有价值的信息,容易忽略局部信息与全局信息的关联,从而导致大范围的滑坡无法完全识别,且容易受 “同谱异物”的干扰,出现错检、漏检的情况。本文结合近年来快速发展的Transfomer网络结构和CNN结构,形成DETR[6]网络结构,构建多任务自动识别和检测模型,实现对滑坡体自动识别和检测。该结构融合Transformer并行计算和注重全局信息的优点与CNN的局部信息的优点,可更好地提取滑坡体特征,提高滑坡体识别和检测精度,并对数据集进行数据增强,解决Transformer依赖大量数据训练的问题。
1 研究数据概况
本文采用武汉大学公开的贵州省毕节市滑坡数据集(包括770个滑坡样本),金沙江流域滑坡数据集(包括500个滑坡样本),以及对其中一些疑似裸地、矿场的数据进行删减所构建的新数据集。数据集采用多尺度滑坡样本,其中样本大小不一,由高分2号遥感影像裁切而成,为R、G、B 3个波段,地面分辨率为0.8 m。毕节市滑坡数据集的研究区域覆盖整个毕节市。该区地处青藏高原向东部丘陵过渡的坡度带,地质不稳定,坡度陡峭,是我国滑坡高发最为严重的地区之一。金沙江滑坡数据集的研究区域主要分布于西藏、云南、四川等省(自治区)的金沙江及附近流域,还有部分滑坡分布于甘肃和贵州等地,多位于大江大河附近。
2 方法原理
首先,通过离线数据增强的方法得到增广后的滑坡体数据集。在数据训练阶段,采用ResNet-50的CNN主干特征提取网络对输入图片进行特征提取,再把特征图裁切成若干大小相同的正方形图像块并对其进行位置编码,输入Transformer的编解码器结构中进行训练;然后,采用匈牙利匹配算法作为损失函数进行预测;最后,通过与现有的CNN网络结构进行对比分析,验证基于Transformer的DETR方法在滑坡识别方面的优越性。其主要流程如图1所示。
2.1 数据增强
以 Labelme 软件为标注工具,标注滑坡构建数据集,同时,由于深度学习方法依赖于大数据集,为了增强滑坡体识别的稳定性和提高滑坡识别精度,本文采用离线增强的方法直接对数据集进行增广。采用镜像、旋转、翻转、改变明亮度等操作使数据集增广20倍,使滑坡样本达6450个。滑坡数据集以6∶2∶2建立训练集、验证集和测试集。其中,训练集滑坡样本数量为3870个,验证集样本数量为1290个,测试集样本数量为1290个[7]。部分的数据集图片如图2所示。
图2 数据集增广后的部分滑坡
2.2 ResNet-50
CNN通过卷积层不断堆叠获取更深层次的特征,但网络层数的增加会造成随机梯度消失的问题,而ResNet-50[8]可很好地解决这个问题。其网络层数的增加使表达的特征更好,检测的性能更强。通过残差1×1的卷积层达到降低参数量及减少计算量的目的[9]。其中,关键在于残差网络单元的结构。在残差网络单元中包含了跨层跳跃连接,可将输入跨层传递,使经过卷积操作的输出结果与跨层跳跃连接的同等映射相加。ResNet-50的网络结构可被分成7个部分,网络结构如图3所示。首先输入的图像数据经过第一部分的卷积层,即正则化、激活函数、最大池化层;其次输入图中包含了残差网络单元编号1—4框选的4个部分,其残差单元用于改变残差块的维度和下采样;然后ResNet-50网络的输入为224×224×3,经过前5部分的卷积计算,输出为7×7×2048;最后池化层会将其转化成一个特征向量,最终分类器会对这个特征向量进行计算并输出类别概率。
图3 ResNet-50网络结构
2.3 Transformer网络结构
Transformer最先应用于自然语言处理领域,主要由编码器和解码器两部分组成。其中,Self-attention是Transformer的核心[10]。一个完整的Transformer网络结构由多个编解码器组成,其中编码器主要由Self-attention和前馈神经网络构成,解码器由多头自注意力机制器和编码器-解码器注意机制构成。在编码器结构中,输入后先经过自注意力机制层得到一个加权的特征向量Z,公式为
(1)
式中,Z为Attention(Q,K,V)。
得到Z后,输入编码器的前馈神经网络模块中,前馈神经网络主要由激活函数ReLU层和线性激活函数组成,公式为
FFN(Z)=max(0,ZW1+b1)W2+b2
(2)
式中,W1、W2为激活函数的权重参数;b1、b2为线性激活函数的偏置参数。
在解码器结构中,通过解码器并行解码输入N个对象,加入基于sin函数的位置编码并输入注意力层中,由解码器转换为结果输出。
2.4 基于Transformer的DETR滑坡识别方法
通过CNN和Transformer的优点互补,达到准确识别滑坡的目的。DETR的结构如图4所示。主要包括4个模块:CNN的Backbone、Positional Encoding、编解码器及一个前向网络(FFN)。首先以ResNet-50为主干特征提取网络生成滑坡特征图,再通过Positional Encoding对图像位置进行编码,并把特征图分成若干个正方形图像块;然后输入到Transformer的编解码器结构中;最后通过前馈神经网络进行每个矩形框的位置信息(bbox)和类别的预测。
图4 DETR网络结构
2.5 精度评价
采用精确率(P)、召回率(R)、平均精确度(AP)对本文滑坡目标检测结果进行精度评价。
精确率:正确识别的滑坡数量与滑坡总量的比值。计算公式为
(3)
式中,TP为正确预测的正样本数;FP为错误预测的正样本数。
召回率:正确识别的滑坡数量与滑坡真值总量的比值。衡量分类器对滑坡数据集的漏检情况。计算公式为
(4)
式中,NP为错误预测为负样本的个数。
平均精确度:同一类目标在不同的召回率下精确率的平均值。计算公式为
(5)
3 试验与分析
采用DETR方法对滑坡体进行识别,并与近年来被广泛应用的CNN目标检测算法进行比较。此外,对数据集数据增强前后进行对比,验证数据增强对滑坡精度提升的有效性。试验硬件设备采用英特尔Core(TM) i7-10870H的处理器,具有16 GB内存,图形处理器GPU为NVIDIA GeForce GTX3060显卡,具有6 GB的显存。在试验训练过程中,目标检测网络结构选择PyTorch框架下的DETR,主干特征提取网络采用ResNet-50,超参数如下:学习率为0.000 01,批尺寸大小为1,epochs为100次,位置编码采用基于sin函数的绝对位置编码,编解码器层数为6层,Transformer内部注意力的注意力头部数量为8个。对CenterNet[11]、Faster-rcnn[12]、Efficientdet[13]、YOLOv3[14]、YOLOv4[15]、YOLOv5及DETR在滑坡训练数据集中的评估具体情况见表1。其中,DETR在各方面取得最优效果。
表1 多种方法数据增强后对比精度
DETR分别将数据增强前后的数据对比,具体结果见表2。可知,数据增强对滑坡识别各方面指标具有显著的提升作用。
表2 DETR数据增强前后精度对比
测试集共有1290个样本,各方法的具体检测结果见表3。可知,本文采用的DETR方法不存在漏检和错检的情况,但在复杂环境中存在重复检测的问题。其中,CenterNet、Efficientdet、YOLOv4均存在漏检的情况,而YOLOv5也存在少量漏检和滑坡重复检测的情况。
表3 测试集检测结果
选取测试样本中部分具有代表性的滑坡进行分析,识别结果见表4。
表4 测试集示例检测结果
由表4可知,不同方法在不同环境下对滑坡的识别效果,实例1为高速路边的滑坡识别,各方法对实例1均能识别,但Efficientdet存在漏检的情况,其中DETR的检测效果最好,基本与标签一致。实例2为建筑物旁的滑坡检测,其中Faster-CNN识别存在重复检测的问题,且重复检测框识别不完全。实例3为公路两侧滑坡检测,以上方法中大多存在漏检和检测不完全检测精度低等问题,DETR识别滑坡效果最好。实例4为复杂环境下的多滑坡检测,大多存在漏检,检测不完全的情况,其中CenterNet、Efficientdet方法只能识别部分滑坡,不足以检查多个滑坡。实例5为大型滑坡,可以看出以上方法均能对滑坡进行识别,其中Faster-CNN对大型滑坡识别的效果较差,检测框不能完全识别滑坡,存在重复检测的情况。
通过以上对比分析,基于Transformer的DETR方法在滑坡识别精度和预测框的准确性方面均能取得最优的检测效果。
4 结 语
本文对滑坡数据集进行数据增强,解决了滑坡数据不足的问题,采用基于Transformer的DETR网络结构构建滑坡体自动识别模型。试验结果表明,DETR网络能有效地对滑坡进行识别,具有检测精度高、识别滑坡完全、标记准确的优点,AP达0.997;同时验证了数据增强对于模型精度提高的有效性。
由试验结果分析来看,本文试验在方法和数据方面依然存在一些问题。在数据集方面, “同谱异物”的问题仍会对滑坡检测造成一定的干扰,易受裸地、矿场、云层等影响。在网络结构方面,虽能准确识别滑坡,但训练时间成本过高,计算数据量较大。因此在未来工作中,需进一步探索更加轻量化的网络模型,以实现滑坡的快速准确识别;同时,在小比例尺大型地图中,进一步预测并验证其模型的泛化性。