刘 晨 赵晓晖 梁乃川 张永新
(1.山东师范大学数学与统计学院 济南 250358)(2.聊城高级财经职业学校 聊城 252000)
岩石样本的岩性识别与分类问题是地质分析中的重要研究方向,是固体金属矿产资源勘探和油藏描述中的关键步骤。传统的岩性识别方法主要有重磁、遥感、电磁、岩石薄片分析等,这些方法往往受限于实验设备的专业性和研究人员的地质经验,存在识别准确率低、分类结果受主观因素影响较大等问题。目前,地质数据呈指数式增长,基础地质、矿产地质、灾害地质的调查、勘查产生了大量的数据。在岩石样本岩性识别方面面临着专业知识不足和数据量巨大的问题。
近年来,随着计算机技术和图像处理技术的发展,深度学习被广泛应用于各种图像分类问题上。采用深度学习的方法建立岩石图像智能识别与分类模型是一条新的途径,可以减少对于专业知识和设备的依赖,快速且准确的识别。此前不少学者尝试将深度学习技术应用到岩性识别与分类问题上。程国建等[1]使用来自鄂尔多斯盆地的3类共4800个样品对卷积神经网络进行训练,实现了对显微镜下岩石薄片样本的分类,在测试数据上表现出98.5%的分类准确率。其图像数据是在偏光显微镜下拍摄的岩石铸体薄片,数据集的制作相对复杂,不容易获取。张野等[2]基于Inception-v3网络模型,利用迁移学习建立了岩石图像的分类模型,可对花岗岩、角砾岩、千枚岩三类特征明显的岩石进行识别分类,测试数据准确率达到85%以上。白林、姚钰等[3]基于卷积神经网络构建岩石识别深度学习模型,在网络上搜集或实物拍照得来的1000张岩石图片上训练,达到了63%的识别准确率。其证明了卷积神经网络可以有效提取矿物成分特征。白林、魏昕等[4]使用VGG网络模型建立了岩石薄片图像识别模型,可对花岗岩、白云岩等6种常见岩石的岩石薄片图像进行分类,识别准确率达到了82%。综上,虽然深度学习技术在岩石的岩性识别与分类问题中取得了一些成果,但仍存在一些不足之处:1)识别准确率较低,若岩性识别与分类模型的识别准确率低将导致其无法应用到实际工作中去。2)用于分类的数据大多为标准的岩石薄片图像,而非更复杂直接的岩屑、岩心图像。岩石薄片的制作过程较为复杂,导致数据集不容易获取。对此,本文提出了一种基于深度学习的岩性识别与分类方法,通过卷积神经网络(Convolutional Neural Networks,CNN)自动对岩石图像进行特征提取并改进了原网络的分类器。同时利用了迁移学习加快模型的训练速度。利用录井现场拍摄的岩屑和岩心图像对网络进行训练,建立了岩石样本的智能识别与分类模型,克服了传统方法受主观因素影响较大等问题。经测试,模型拥有较高的识别准确率且具有较好的泛化能力和鲁棒性。
本文所提方法的技术路线如图1所示。方法分为以下几个步骤。
图1 技术路线
1)数据预处理:为了扩充和平衡数据集,需要将原始岩石图片进行切分和数据增强。
2)特征提取与分类:通过ResNet50残差网络进行特征提取,并引入了一个全连接网络以增强分类性能。
3)模型训练:使用预处理后的数据集对网络进行训练,建立岩性识别与分类模型。
2.2.1 基于ResNet50的特征提取
更深层的网络可以提取更高层次的特征。加深网络层数可以提高网络性能,但是随着网络层数的增加,会出现梯度弥散、梯度爆炸以及网络的退化等问题。He等[5]提出的残差网络(Residual Network),在卷积层之间添加了跳跃连接,允许信息可以跨越多个隐含层传播[6],有效缓解了深度神经网络出现的梯度消失和网络退化问题,使得网络深度可以达到几十层甚至上百层。
残差网络的主要结构是残差单元,其结构如图2所示。残差单元中有一个恒等映射,使得输入特征图可以不经过卷积直接传递到输出,即使增加网络深度,误差也不会增加。由网络自行学习并选择梯度如何传播,文献[7]通过实验验证101层残差网络中大部分梯度来自浅层网络。文献[8]指出了在残差网络的反向传播中通过摆脱偏导数连乘有效解决了梯度弥散和梯度爆炸问题。
图2 残差单元
ResNet广泛应用于人脸识别、自动驾驶等领域。常 用 的ResNet网 络 模 型 有ResNet18、ResNet50、ResNet101等,网络结构如表1所示。本文综合考量模型的参数量以及训练效果,选择使用ResNet50作为特征提取网络。
表1 ResNet体系结构
2.2.2 分类模块的改进
特征提取模型使用ResNet50残差网络,原网络的分类模块是经过特征提取后利用全局平均池化(Global Average Pooling)将最后一个卷积层输出的特征图转化为2048维向量,最后经过输出层并通过SoftMax回归输出各个类别的概率值。
使用全局平均池化代替全连接层可以有效减少网络的参数量,同时可以显著提高小样本学习的效果。但是全局平均池化代替全连接层的方法在迁移学习上的效果不佳,考虑是因为在迁移学习中,卷积层的参数大多被冻结不进行训练或只训练最后几层。若使用全局平均池化迁移到不同的任务中,相当一部分卷积层参数要重新调整,而使用全连接网络进行分类,参数大多调整在全连接层。所以在迁移学习中使用全连接层搭建分类模块往往有更好的效果。
本文对原网络的分类器进行了改进,在全局平均池化层后加入了一个全连接网络,其由两个全连接层组成,使用ReLU函数作为激活函数并加入了BN层。BN层可以加速网络训练和收敛速度,抑制过拟合。ReLU函数具有单边抑制特性,有计算简单、不存在梯度饱和的优点[9]。网络第一层的输出节点数为2048,第二层的输出节点数为120,最后通过SoftMax回归输出各个类别的概率。改进后的网络模型如图3所示。
图3 网络结构
2.2.3 迁移学习
从零开始训练一个深度神经网络是一项极其耗时的任务。模型的训练需要大量已标注的样本,而且网络要从纹理细节、边缘轮廓开始学习,随着网络层数加深不断提取更加抽象的特征,学习的过程漫长且复杂。这里引入迁移学习(Transfer Learning)[10]的概念,迁移学习的目标是利用模型在某个领域上学习到的知识,应用到不同但是相关的领域中。从先前任务中学到的知识,仅需要进行微小的改动即可应用到相关的任务中,对于一些基本的规则,模型无需重新学习,大大降低了时间成本。ImageNet数据集[11]包含1000类约120万张图片,使用在如此大的数据集上预训练好的网络模型,可以有效的迁移到各种不同的图像分类任务中[12]。本研究使用在ImageNet数据集上训练好的ResNet50残差网络进行岩石图像的特征提取。
研究使用的公开数据集来源于第九届“泰迪杯”数据挖掘挑战赛B题。图片为使用工业相机在录井现场拍摄的岩屑或岩心照片,部分样本如图4所示。
数据集包含7类共315张岩石图片,图片初始尺寸多为4096像素×3000像素,少量含有背景的图片尺寸为2448像素×2048像素。岩石图像的类别与数量分布如表2所示。
表2 岩石图像数量分布
由于原始图像分辨率过大,若将图片直接缩放到网络模型的输入尺寸会造成图片失真,丧失部分信息,影响最终分类效果。因此,本文首先对图片进行切分以达到缩小图片尺寸和扩充数据集两个目的。
数据集中有部分含有背景的岩石图片,如果直接切分会产生大量只含背景的图片。为防止神经网络学习到背景特征,决定先使用等长宽比裁剪的方式将部分背景去除,再将图片尺寸缩放到4096像素×3000像素,将处理后的图片进行等分切割。
本文将4096像素×3000像素大小的原始图片切分成3×3份,切分后图片尺寸为1365像素×1000像素。切分效果如图5所示。
图5 图片切分
由于过小的样本不足以捕捉到足够的数据模式[13],本文还对样本数据进行了数据增强以提高模型的泛化能力和减少网络的过拟合现象。数据增强(Data Augmentation)[14]是指在数据集样本不足的情况下通过对其中部分图片进行变换并加入到数据集中,使得数据集更加健壮。一般数据增强的方法有随机旋转图像、随机平移、改变图像亮度、改变色度、改变锐度、镜像翻转、添加高斯噪声或椒盐噪声等[15]。
原始数据集中每类岩石图像的数量不同,例如浅灰色细砂岩图像有85张,而灰色细砂岩图像只有18张。本文进行数据增强既可以扩充数据集又可以使得7类图片数量分布更加均匀。本文采取随机平移、随机旋转、改变亮度、镜像翻转等方法对岩石图片进行数据增强,部分效果如图6所示。经过上述的数据预处理步骤,并按照8.5∶1∶0.5的比例划分为训练集、验证集、测试集。
图6 数据增强示例
本文所构建模型使用交叉熵作为损失函数,其计算公式为
其中M为类别总数,yic为指示变量,若该类别与样本i的类别相同则为1,否则为0;pic为样本i属于类别c的预测概率。交叉熵损失函数是凸函数,可求导得到全局最优值。
实验的评价指标为准确率(Accuracy),即正确预测的样本个数所占的比例,计算公式为
本文进行的实验基于Python3.7及Tensor-Flow2.4.1实验的部分超参数设置如表3所示。
表3 部分超参数设置
实验设置初始学习率为0.001,训练迭代50次后模型收敛,若继续训练将导致验证集准确率下降,判断为网络过拟合。模型训练过程的损失和准确率曲线如图7所示。最终模型在测试集上的准确率达到93.93%。
图7 网络训练过程损失曲线和准确率曲线
本文还设计实验比较了1)直接将特征图打平后经过全连接层分类(FC)。2)全局平均池化后直接到输出层进行分类(GAP)。3)全局平均池化后再使用全连接层进行分类(GAP+FC)。以验证本文分类模型的效果。三种分类方式验证数据准确率的变化曲线如图8所示。可见,直接将输出特征图打平后使用全连接网络进行分类的效果最差,验证集准确率为85.95%。全局平均池化后直接到输出层进行分类的效果略有提升,准确率为86.86%,但相比前者只提升了0.91%,意义不大。本文所用的分类模型结合了全局平均池化参数量少和全连接网络表达能力强的特点,使得验证数据准确率相比前两种方法得到一定提升,准确率达到了92.87%,显著的提升了模型的性能。
图8 三种分类器的准确率曲线
综上,本文提出了一种基于ResNet50网络模型和迁移学习的岩性识别与分类方法,首先对数据集进行图片切分和数据增强,再利用ResNet50残差网络进行特征提取并在原网络模型的基础上引入了一个全连接网络,准确率对比原模型提高了6.01%。经实验验证,模型在测试集上的识别准确率可达93.93%,具有较好的泛化能力和鲁棒性,实现了岩石样本的岩性智能识别与分类。另外,由于岩屑的颗粒较小而ResNet50网络中部分卷积层的感受野较大,无法提取较为细微的特征,下一步研究将从缩小部分卷积层的感受野入手,并加入通道注意力机制进一步提高识别准确率。