APP下载

基于深度学习的岩石孔隙分割方法*

2023-08-31陈国军王乐康

计算机与数字工程 2023年5期
关键词:岩石注意力孔隙

陈国军 姜 朕 尹 冲 王乐康

(中国石油大学(华东)计算机科学与技术学院 青岛 266580)

1 引言

岩石孔隙是岩石组分中一个极其重要的部分,储集层岩石的孔隙结构[1]特征是影响储层的容量(对油气)和油气资源开发的主控因素,它不仅控制了石油的迁移和积聚,对石油采收率也有一定的影响。目前主要采用采集储层岩石铸体薄片[2]的方法对储层孔隙进行研究,并在显微镜下以肉眼方式对铸体薄片进行观察鉴定。这种以人工方式进行铸体薄片鉴定的方法往往存在实验周期长、效率低、量化难度与个人主观影响大等问题,并且目前可用于研究分析的岩心数量较少,孔隙中的流体较少,信噪比相对较低,实验数据的可靠性不高。

随着深度学习的发展,深度学习在图像处理领域具有广泛的应用。深度神经网络[3]可以拟合大量数据集的特征,且针对图像中的噪声问题能够有效避免。Ali等利用卷积神经网络对图像目标进行定位,通过区域判断使分割性能提高[4]。Long等提出了一种全卷积网络[5](Fully Convolutional Networks,FCN)图像分割算法。该算法放弃全连接层而是采用全卷积层代替,能保证将卷积特征恢复为原始尺寸的二维矩阵,实现图像端到端的输出,更有利于进行分割操作。Hui等提出的Unet[6]广泛用于医学图像分割[7]任务,其具有网络构造简单,所需数据样本少,训练速度快等优点。

岩石孔隙分割存在的主要问题就是岩石表面的颜色、灰度变化范围较大,尤其是孔隙部分灰度值较低,且图像常带有大量噪声干扰,使得常规方法对孔隙部分的分割提取工作变得困难。岩石所包含的内容相对复杂,岩石中孔隙部分形态不规则,分布也不规律,这为岩石孔隙的分割又增加了一定难度。此外岩石的孔隙大小不一,小面积的孔隙在分割时容易出现丢失的情况。本文针对上述问题对原始数据集进行了优化以及对网络模型进行改进。通过图像增强[8]方法对岩石图像的孔隙部分进行增强,从而能够对孔隙部分进行更加准确的分割。由于岩石孔隙的分割操作与一些医学细胞图像的分割操作有很多相似之处,且Unet 网络在医学细胞图像上已经取得了很好的分割效果,所以本文采用Unet 网络模型作为基础模型,并在该模型上加入注意力机制,以增加分割不同尺度孔隙的鲁棒性,从而减少在分割过程中的漏分割[9]情况,提高孔隙分割的准确率。将传统的编码器-解码器[10]结构中编码器部分替换为循环卷积模块,训练时拟合大量的孔隙特征,减少编码阶段中由于池化和卷积造成的信息丢失问题,在分割时能够更加准确地进行孔隙部分的分割操作。

2 基于Unet改进的孔隙分割模型

2.1 Unet网络模型

Unet 是一种基于FCN 改进的一种分割网络。Unet 网络相对简单,是一种典型的编码器-解码器网络结构。Unet网络包括两部分,一部分用作特征提取,特征提取的方式不像FCN一样采取对应的点相加而是选择拼接的方式,将不同通道的特征拼接成更厚的特征。另一部分的作用是进行上采样。上采样阶段中添加了很多的特征通道,这种方式使得训练集图像中更多的原始纹理信息可以在高分辨的网络层中进行传播。Unet 即使使用较少的图像也能得到非常良好的分割效果。本文中岩石孔隙分割是一个二分类[11]分割任务,基于Unet 的优点以及在二分类分割中良好的表现,本文采取Unet作为基础网络。

2.2 通道注意力机制

通道注意力机制[12]通过对特征提取能力较好的特征图赋予较大的权重,而对特征提取能力较差的特征图赋予较小的权重的方式来进行信息过滤。这种方式不仅能够使网络更好地利用特征图中所包含的信息,提升分割的准确度,而且能够对特征图达到一定的稀疏效果。所以给每层特征图最合适的权重,能大大提高分割的效果。

岩石的孔隙大小不一,小面积的孔隙在分割时容易出现丢失的情况,注意力机制可以有效解决在分割时因目标过小而出现漏分割问题。将注意力机制加入到Unet 中,在训练时可以使网络学习到更多细小孔隙的信息,从而提高网络模型对孔隙的分割效果。注意力机制可以用式(1)和式(2)表示。

其中,X 作为输入;N(·)为注意力子网络;A 为输入X 后注意力子网络的输出;F 为输入X 的特征矩阵;⊗表示F 与A 之间的操作,包括点乘、矩阵加法以及多层感知机等操作;FA表示基于注意力机制的特征矩阵。注意力子网络N(·)的结构不同,注意力机制也不同。可以根据N(·)的结构特点,将注意力机制分为通道、空间、混合注意力机制三种类型。注意力模块如图1所示。

图1 注意力机制模块

2.3 循环卷积

为了在模型训练过程中能学习到更多的图像信息,常用的方法是加深网络深度,但网络增加的深度不好控制,若网络加深过多会导致网络中某些浅层的学习能力下降,从而会一定程度地限制深层网络的学习。岩石中孔隙的分布极其不规则,为了在训练过程获取更多孔隙信息,本文采取用循环卷积(Recurrent Convolution)[13]模块代替加深网络层数的方式进行模型训练。循环卷积模块如图2 所示。

图2 循环卷积模块

循环卷积采用参数t 来控制卷积重复的次数,其计算过程可以用式(3)和式(4)表示。

在以上公式中,x 表示网络的输入;Operate 表示网络对输入x 的操作,本文中采取的为卷积操作,激活函数为Relu()函数;R 表示每一次循环结束后的输出,每一次的输出都作为后一次的输入。本文模型经过多次实验对比,最终确定参数t=2 时综合效果最好。

2.4 损失函数

本文针对岩石孔隙分割问题开展,需要将岩石中孔隙部分分割出来,是一个二分类问题。由于数据集来源于同一状态下的岩石切片,所以避免了数据集中某些图片缺失孔隙的问题,数据集数据较为平衡。原始模型中采用的是DiceLoss[14]损失函数,用本文中数据集进行训练时,一些小面积的孔隙容易出现错误分割的情况,此时Dice会出现较大幅度的波动,从而导致梯度发生剧烈变化,训练不稳定,

基于此问题本文将原始模型中采用的Dice-Loss 替换为二分类交叉熵损失函数(BCELoss)[15],在数据集数据较为平衡的情况下对网络训练有一定的改善作用。经过实验验证二分类交叉熵损失函数更适合本文的数据集且达到的分割效果最好。

多分类交叉熵损失函数可用式(5)表示。

其中,p=[p0,…,pc-1] 表示的是向量,Pc表示该样本被预测为第c 类的概率。本文孔隙分割是二分类分割,只有正例和负例,并且两者的概率之和为1,所以不需要预测成一个向量,只需预测一个概率就可,因此二分类交叉熵损失函数可以定义为式(6)。

其中,y 是样本标签,y是模型预测样本为正的概率,样本若为正例,取值为1,否则取值为0。

2.5 ARC-Unet

本文针对岩石孔隙在分割时存在的一些问题,引入注意力机制来解决一些小面积、灰度值低的孔隙容易被漏分割的问题。通过将传统的卷积模块替换为循环卷积模块,以解决网络在训练过程中因学习到的岩石信息少而影响孔隙分割准确率的问题。本文所作的改进都以Unet 网络为基础网络模型,最终的网络结构图如图3所示。

3 模型训练

3.1 数据采集与制作

实验数据集为吉林某致密砂岩6 种岩心样品共6 组约12000 张CT 图像,包括2000 张普通CT 图像和10000 张SR-CT 图像,像素大小分别为7.6μm、0.6μm、0.65μm、0.325μm 等四种。最终本文选择0.6μm 普通CT 图像作为数据集,将其分为训练集(1000 张)和测试集(80 张)两部分。根据岩石图像孔隙与背景的差异,采用Labelme 开源标注工具,对岩石图像孔隙部分进行标注,生成岩石原图像对应的孔隙标签图(label)。在进行训练之前,为了获得更好的分割效果,对数据集进行了直方图均衡化[16]增强处理,使其图像背景与孔隙部分对比度更加明显。数据集制作如图4 所示,数据集增强如图5所示。

图5 数据集增强处理

图4(a)为岩石孔隙数据集原图,图4(b)为采用Labelme标注工具进行人工标记,图4(c)为标签图。

图5(a)为原图像,图5(b)进行了直方图均衡化处理。从图像中可以看出经过数据增强处理后岩石孔隙部分对比度明显增强。

3.2 实验环境与模型训练

本文实验均在CentOS Linux release 7.4.1708环境下进行,并使用NVIDIA Tesla P100-PCIE 显卡进行加速,基于Pytorch 深度学习框架,操作系统为Windows10。

训练过程中,batchsize大小设置为4,训练轮数epoch 为200,学习率设置为0.0001,损失函数采用BCELoss损失函数。

3.3 评估指标

为了更直观地评价本文模型对岩石孔隙的分割结果,本文采用查准率P(precision)、查全率R(recall)和综合评价指标F1对岩石孔隙分割结果进行定量分析。其中P、R 定义分别如式(7)和式(8)所示。

在孔隙分割检测结果中,TP、TN、FP、FN 分别表示为真阳数、真阴数、假阳数和假阴数;由于P 和R 本身就是一种不可调和的矛盾,很难同时提高并做出全面评价,所以采用F1 来作为最终的评价指标,其公式定义如式(9)所示。

其中,P 和R 分别表示为查准率和查全率,F1 作为查准率P和查全率R的调和均值。

4 实验结果分析

为了验证本文的模型对岩石孔隙的分割效果具有提升作用,故将其他模型与本文中的模型在测试集上进行对比,用到的其他模型为FCN,DeepLabv3,SegNet等。部分分割结果如图6(a)~图6(g)所示。

图6 各模型分割结果

根据图6(a)~图6(g)所给的结果可以看出,在没有严重的噪声干扰下,并且孔隙面积较大且清晰时,五种模型都能将该部分孔隙分割出来,如图6中第1行和第2行所示。针对图像中小面积的孔隙和与背景部分容易混淆的孔隙,各模型的分割结果有了很大的区别。从图6 中第3 行中可以看出,图像中有一线型孔隙与背景极为相似,各模型分割结果都产生了漏分割现象,其中SegNet 与FCN 漏分割的情况较为严重,本文模型分割的效果相对较好。针对一些小面积的孔隙,如图6中第4行所示,SegNet 与FCN 仍存在一定的漏分割问题。如图6中第5 行所示,DeepLabv3 与Unet 出现了错误分割的结果,本文模型中虽然也出现了错误分割的结果,但是总体效果来说,优于其它的模型,能够将大部分孔隙准确分割出来。通过本实验定性分析,证明了本文模型在岩石孔隙分割问题中具有分割准确、漏分割和错误分割情况较少出现等优点,分割出的孔隙细节信息也相对较为丰富,在孔隙分割中具有有效性。

通过F1 综合评估指标在测试集上进一步验证本文模型对岩石孔隙分割的有效性,各种模型在测试集中孔隙分割结果如表1所示。

表1 不同模型实验结果

由表中可以看出,本文模型在查准率P、查全率R、以及综合评价指标F1 都高于其他模型,高出SegNet5.5%,FCN2.47%,DeepLabv30.5%,Unet 0.82%,证明了本文模型在孔隙分割方面有着较高的准确率,适用于岩石孔隙分割。

同时,本文模型中提出的注意力模块与循环卷积模块,针对以上两个改进模块以及所采取的不同损失函数进行了实验并分析,结果如表2 所示。其中,Unet+Attention 表示原始模型Unet 与注意力模块结合,Unet+RCNN 表示原始模型Unet 与循环卷积模块结合。

表2 改进模块有效性比较

从表2 中可以发现,当在原始模型中加入注意力模块或循环卷积模块后,查准率P 和F1 都有所提升,因此可以证明这两个模块对于孔隙分割都是有效的。当两个模块一起加入后,F1 增加且增幅大于只增加单一模块时的情况,从而证明了本文基于Unet 做出的改进对于提升孔隙分割的准确率是有提升的。

训练时每轮epoch 所对应的Loss 值用曲线图进行绘制,如图7 所示。从图7 中可以看出,在第160轮左右网络接近于收敛。

图7 Loss曲线

每轮epoch 所对应的平均F1 值曲线图如图8所示。从图中可以看出,F1 值最高时可以达到0.9162,平均F1值为0.8815。

图8 F1曲线

结合图6 与表1、表2 的各种数据对比来看,本文模型在岩石孔隙分割方面相较于其他模型展现出了较好的结果,提出的改进方案也一定程度上解决了孔隙分割可能出现的问题。所以,本文提出的网络模型ARC-Unet能适用于岩石孔隙分割研究。

5 结语

本文针对岩石图像中孔隙部分分割困难,且目前采用深度学习来研究岩石图像的方法相对较少,提出了一种深度学习网络模型ARC-Unet 来研究岩石孔隙分割。该模型基于Unet 改进,引入注意力机制解决在分割时小面积以及与背景及其相似的孔隙容易出现漏分割的情况;同时为了避免单纯地增加网络深度而引发的一些网络问题,引入循环卷积模块来代替原始模型的卷积模块,训练时学习到更多的孔隙信息,以免发生漏分割以及错误分割等问题。实验结果表明,改进的模型相较于原始模型在测试集上取得了较好的岩石孔隙分割效果。但是此模型仍存在一定的不足,需进一步优化模型结构,提高训练计算效率。针对岩石孔隙特点,一些孔隙在分割时仍然会出现漏分割的情况,从而会使分割准确率下降,因此在岩石孔隙分割准确率方面也仍有上升空间,需要更进一步的研究。除上述问题外,本文所采用的数据集均为手工制作,原图像的标签图需要人工手动标记,由于岩石图像中孔隙分布以及孔隙形状大小极其不规则,所以在手工标记时会消耗大量时间,如何针对此类数据集进行有效快速的标注需要进一步改进。

猜你喜欢

岩石注意力孔隙
让注意力“飞”回来
第五章 岩石小专家
3深源岩石
一种叫做煤炭的岩石
二氧化碳在高岭石孔隙中吸附的分子模拟
海藻与岩石之间
Preparation of bimodal grain size 7075 aviation aluminum alloys and the ir corrosion properties
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
页岩孔隙结构研究进展