基于深度学习的大青山地质灾害识别技术研究
2023-11-25王莉莉黄铎王伟巧云张晓东
王莉莉,黄铎,王伟,巧云,张晓东
(内蒙古师范大学青年政治学院,内蒙古呼和浩特 010051)
0 引言
地质灾害属于自然灾害,它的发生不仅会给一个国家或个人的经济带来不可估量的损失,也会极大地破坏人们的稳定生活。近年来,深度学习技术广泛应用于图像视觉领域,它可以自主学习图像特征,不用人工构建,无须进行复杂的图像特征提取,从而可以得到更高的分类准确率。
因此,本文选取深度学习中的CNN模型应用于地质灾害分类识别中,重点研究崩塌、滑坡、泥石流、地面塌陷四种大青山地区常见的地质灾害分类,利用深度学习框架VGG-16构建模型,提出一种基于CNN的地质灾害图像智能分类识别的方法,解决目前灾害分类的准确度和时效性不足的问题,从而提高大青山地区地质灾害监测技术的智能化。
1 数据与方法
1.1 研究对象
大青山坐落于阴山山脉中段,东起呼和浩特大黑河上游,西至包头昆都仑河。东西长约240公里,海拔2000 米左右,是祖国北疆安全稳定屏障。一直以来,大青山山脉呼和浩特市和包头市境内矿山企业开发频繁,造成严重的生态环境问题。因此,保护大青山,研究大青山地区地质灾害识别方法,对降低大青山地质灾害的发生具有重要作用。
1.1.1 数据的搜集
本实验选取内蒙古大青山地区常见的四种地质灾害崩塌、滑坡、泥石流、地面塌陷构建数据集。数据来源包括人工采集、无人机采集、互联网Python爬取、雷达图像等。
1.1.2 数据处理的方法
为了能满足VGG-16 模型对训练数据的要求,原始数据需要首先进行预处理,本项目利用Python中的Pandas、CV2和PIL库对自然灾害图像进行预处理,包括使用库中的方法对图像进行缩放、裁剪、旋转等处理,将图像转换为模型训练需要的格式[1],使数据标准统一化,进一步扩充数据集,为VGG-16 模型的训练提供支持。
1.2 研究方法
1.2.1 深度学习
深度学习的本质就是一个深层神经网络。神经网络一般分为三层,分别是输入层、隐含层和输出层。神经网络进行学习的本质是根据输入的数据和结果之间的差异来动态地调整神经元间连接的权重值。当训练开始时,训练数据会依托正向传播算法、反向传播算法和梯度下降法,通过调整各层之间的激活值和神经元之间的连接权重值,实现对神经网络的训练。
对于本文研究的四类地质灾害图像,神经网络需要计算其属于某个类别的概率,再将神经网络给出的概率搜集起来,找出其中概率的最大值即作为网络分类识别的结果。
1.2.2 卷积神经网络
CNN 主要用于图像分类识别与目标定位。CNN主要由卷积、激活函数、池化、分类器组成。其中卷积的功能就是特征提取,把图像中符合条件的特征筛选出来。激活函数的存在主要是提升网络表达能力。池化又被称为下采样,其作用是将卷积层提取的特征图进行降维。在深度学习中,分类器用来判别一个新样本所属类别。
卷积神经网络具有三大核心思想:局部感知、权值共享以及下采样[2]。局部感知通过改变神经元的连接来实现。权值共享是用一个卷积核去扫描输入图片,卷积核里面的数称为权重,这张图每个位置是被同样的卷积核扫描的,所以权重是一样的,也就是共享[2]。下采样主要通过池化技术对图像进行缩小,减少图像像素,减少计算量[2],加快运算速度,从而减少卷积神经网络在训练阶段出现过拟合的可能性。
1.2.3 VGG-16网络模型
本研究使用的CNN 模型为VGG-16 和Tensor-Flow 2.0框架。VGG-16是一个卷积神经网络框架,如图1 所示。TensorFlow 2.0 则是由Google 公司开发的一种通用的神经网络框架。
图1 VGG-16的网络结构
1)VGG-16模型由13个卷积层和3个全连接层构成。卷积层负责提取输入图像的特征,卷积层之间周期性地插入池化层,该层对卷积层所提取的信息进行进一步降维,减少计算量。最后的3层全连接层负责完成分类任务。
2) 模型通道数分别为64、128、512、512、512、4 096、4 096、1 000。卷积层通道数翻倍,直到512 时不再增加。通道数的增加使更多的信息被提取出来。全连接的4 096是经验值,当然也可以是别的数,但是不要小于最后的类别[3]。1 000表示要分类的类别数。
3)所有隐含层的激活函数都使用Relu函数。
4)用池化层作为分界,VGG-16共有6个块结构,每个块结构中的通道数相同。
5)所有输出层的分类函数都使用Softmax函数。
2 实验分析
2.1 实验平台
本项目实验所用操作系统为Windows10,编程语言为Python,使用开源深度学习框架TensorFlow 2.0作为主要搭建网络工具,并依赖于Anaconda3、Jupyter、Keras等训练模型。
2.2 模型训练过程分析
本项目选择采用Tensorflow深度学习框架进行模型的训练和预测,并对新的自然灾害图像进行分类。下面是本项目实验步骤:
1)构建数据集
对原始数据进行分割,分为训练集和测试集。将80%的数据用作训练集,用于训练模型;另外20%的数据用作测试集,用于评估模型的准确性。这样可以避免模型过拟合,同时也可以确保模型的泛化能力,即在对未见过的数据进行分类时,模型的准确性依然能够得到保证。
2)图像预处理
对图像数据进行预处理,以便使其符合VGG-16模型的输入要求。本文使用Python 的CV2、Pandas 和PIL库进行图像的预处理。预处理的方法包括图像的缩放、裁剪、旋转、平移、归一化等,这样可以增加数据的多样性和数量,从而提高模型的性能[4]。
3)卷积层进行特征提取
卷积层用于提取输入图像的特征信息,每个卷积层都包含多个卷积核,每个卷积核可以在输入图像上滑动并提取特定的特征。通过不同大小的卷积核和不同数量的卷积核,每个卷积层可以提取出不同的特征。因此,VGG-16 的卷积层的作用是在不同的层次上提取输入图像的抽象特征。通过多个卷积层和池化层的堆叠,VGG-16 可以逐步提取出越来越高级的特征,从而实现对输入图像的有效表示和分类。
4)池化层筛选最大特征
池化层通常放置在两个卷积层之间。每个池化层都使用2×2的池化窗口,步长为2,因此可以将特征图的尺寸减小一半。VGG-16的池化层是对卷积特征图进行下采样,减小特征图的维度和参数数量,从而提高计算效率,降低模型过拟合的风险。图像经过卷积和池化处理后,得到的特征图被展开成一个向量,传递到全连接层。
5)全连接层输出概率值
全连接层由3 层组成,这些全连接层通过非线性激活函数(如Relu)将特征向量转换为一系列输出,最终输出每个类别的概率值。在VGG-16中,全连接层共包含3 层,最后一层为Softmax 层,将输出映射为概率值,表示图像属于崩塌、滑坡、泥石流、地面塌陷不同类别的概率。
6)数据可视化
数据可视化可以帮助研究者掌握模型训练过程中各项指标的变化,以便更好地理解模型的性能和表现,从而更好地评估模型的性能。
2.3 模型评价
本文选取准确率ACC、召回率Recall、精确率Pre、综合评价F1四个评价指标对灾害识别模型的性能进行评价。准确率(ACC)是衡量整体识别精度的指标,即预测正确的样本比例。召回率(Rec)是衡量阳性样本覆盖率的指标,即正确分类的阳性样本占总阳性样本的比例。精确率(Pre)表示被分类为正例的样本,即正例的比例。F1 值是一个综合指标,它是精确度和召回率的调和平均[5-6]。
经过3 000次的训练后,模型的各项指标均稳定在0.92 左右,说明此时模型的准确率已经预期效果,具体如图2所示。
图2 模型评价指标图
3 结论
结果显示,深度学习框架VGG-16 在内蒙古大青山地区自然灾害图像分类中有很好的表现,取得了较高的准确率。这表明,使用卷积神经网络技术对自然灾害图像进行分类、识别和预测是可行的,但仍有许多需要解决的问题,例如,模型在特定场景下的预测表现可能会受到限制,这需要对模型进行更深入的研究和优化。同时,也需要更多的数据支持来提高模型的鲁棒性。综上所述,深度学习在自然灾害图像分类和预测方面具有很大潜力,在未来可以为自然灾害预防和应急响应方面做出贡献。