基于计算机视觉的岩屑图像识别与处理
2023-12-07王德伟邓瑞程佳钦
王德伟,邓瑞,程佳钦
(长江大学油气资源与勘探技术教育部重点实验室,湖北 荆州 430023)
0 引 言
在岩屑录井中,现场捞取的岩屑受到多种因素干扰,如地层岩性、钻井参数、采样方法等,这些因素导致岩屑的形态、成分和结构十分复杂[1]。为真实地还原和反映地下地质剖面,在开展的岩屑评价方法中,通常地下每一深度的岩屑都会在现场被给出准确的定名。所以,岩屑录井也是录井研究中的一个主要内容,通常需要先把岩屑按大段分开,再进行分段宏观研究,依据颜色来区分岩性,之后分层描述。由于个体之间的差异,在岩屑分段识别过程中会不可避免地产生误差[2]。利用计算机视觉对岩屑图像进行分析识别,可以有效减少肉眼观察存在的不利影响,同时可以大批量地处理各种岩屑信息,节省人力物力。
随着图像处理技术在各个领域应用的不断深入,岩石图像自动识别技术持续发展。2007年,OBARA[3]在不同颜色空间中以阈值分割的技术实现矿物分割。2008年,刘延保等[4]采用LS-SVM(Least Squares Support Vector Machines)分析技术以及数字图像处理阈值法实现了人机融合的岩石显微构造成像分析技术。2010年,SINGH等[5]将在玄武岩岩石薄片中所获得的27个数值作为多层感知器神经网络的参数输入,再经过网络训练得出岩石的类别。2012年,GORSEVSKI等[6]通过元胞自动机演化的边缘分析方法完成岩屑分类。2013年,MLYNARCZUK等[7]针对9类每类300张不同的岩石图片,通过最近邻算法、K近邻算法实现分类。王桂芹等[8]采用了FCM和标记分水岭算法,对粘连的小粒子图形加以分离,并得到了很好的实验效果。2017年,LI等[9]发表了通过迁移方法对砂岩地质图像识别的Festra法,以及通过对图片颜色的特征提取实现了岩屑图像分类。2018年,白林等[10]对15种常用岩石的图像数据进行分析,基于卷积式神经网络构建了岩屑识别深度学习模型,成功提取了多种岩层中的岩屑图像。2018年,李周等[11]将多角度正交偏光序列图融合后,使用分水岭算法提取目标颗粒。程国建等[12]尝试将K-means聚类算法与神经网络相结合进行岩性分类识别,达到了主动辨别岩石切片影像中孔隙的效果。2019年,陈钢花等[13]建立了一种双层卷积神经网络模型,并结合支持向量机算法对岩石物理相模型进行分析,研究表明卷积神经网络模型在判别储层地质特征中,具有准确性较高、速度快、实时性强等优点。
基于计算机视觉,可以利用Python中的OpenCV包,对不同岩屑的HSV(Hue,Saturation,Value)值进行分类。当设置跟踪器调整HSV值时,能够有效地识别岩屑的色彩、纹理、形状等特性。在实现岩屑识别的基础上,构建一个显示相关岩屑的分层深度、岩性定名、描述内容以及相关图片的数据库,可以进一步节省人工处理数据所消耗的人力物力。本文利用K-means聚类算法对大量不同岩屑的HSV值进行聚类分簇,最终得到针对白,黑,灰,红棕,黄,绿这6种数量较多的岩屑的HSV色彩范围的准确结果。
1 K-means聚类算法
对于不同种类岩屑的HSV值,要进行批量准确的处理,就需要采取某种算法对已识别的不同岩屑HSV值进行数据挖掘。
数据挖掘技术是指利用算法从大量、不完全、有噪声、模糊和随机的数据中挖掘隐含在其中的、以前未知的、有价值的信息和知识的技术。将数据挖掘作为一个支持管理决策的技术,通过人工智能、机器学习、模型辨识、统计、数据库、可视化方法等,通过高度智能化技术研究企业的大量信息,并做出归纳性的推理,从中挖掘出潜在的模式或行为,以帮助管理者改变企业市场策略,降低经营风险,并做出合理的决定。数据挖掘阶段主要由数据准备、数据挖掘、数据处理与分析这3个步骤构成,具体流程见图1。在数据挖掘过程中可以和客户或数据库互动[14]。
图1 数据挖掘流程图
岩屑HSV数据是根据岩屑种类确定的,其值具有成聚簇状分布特点。K最近邻分类算法的思路是:如果对一个特征空间内的样本进行一个抽样,K个最邻近样本属于某一类别,则该样本被划归到这个类别。Kmeans聚类算法是针对给定的样本集,根据不同样本间的差异程度,把样本集分割成K个簇;簇内的点尽可能紧密的连在一起,簇之间的距离也尽可能的远。
K最近邻分类算法的优点是计算速度快、算法思路简洁,不过在样本不平衡时,如果某个类型的样本体积较大,而其他类型的样本体积很少时,就可能造成当某个新样本输入时,该样本集的K个邻居中某样本占多数,从而无法准确识别新输入样本。因此,本研究不选用K最近邻分类算法。
K-means聚类算法的优点是计算效率高,易于理解。缺点是分组的数字K是一个确切的常数,不正确的K可能会得到完全不同的结果。对于岩屑识别,可以简单精确地得到其K值,有几种岩屑K值就为几,以白色的HSV值为中心,依据岩屑不同HSV值进行分类。
K-means聚类算法是最经典的聚类算法之一,其主要思路为:在同时指定了K和K的初始簇中心点的前提下,将各个节点(即各种数据记录)分到离其最近的簇中,各个点分派完成以后,按照某个类簇内的各个点,再次计算出该类簇的中心点(取平均数),接着再迭代完成节点分类,并更改样本类簇中心点,直到对类簇中心点的改变最小,甚至超过了预定的迭代时间。
2 基于K-Means聚类算法的岩屑识别分类
2.1 分类依据
在生产过程中产生大量岩屑,传统岩屑录井无法处理大量的岩屑样本。因此,利用Python当中对计算机视觉进行处理的OpenCV包,对岩屑样本进行处理。其原理是根据不同种类岩屑不同的HSV值进行识别分类。HSV色彩模型,是基于颜色结构的直观特性,SMITH在1978年创立的一个色调空间结构,也称六角锥体模型[16](见图2)。
图2 HSV色彩模型[15]
HSV色彩模型包括色彩H,饱和度S和明度V。其中主要区别色彩的方式如下。①色彩H以角度显示,取值区域为0 ~360°,沿逆时针方位由红色起,进行计算,红光为0,绿光为120°,蓝光为240°。它的补色范围为:黄色为60°,绿蓝色为180°,紫色为300°。②饱和度S值对于某种颜色,若其深而艳则饱和度愈高。光谱色的白光成分为零,则其饱和度达最高,通常取值范围是0 ~100%,若色彩越饱和,则数值越大,若色彩变得暗淡直至无色彩,则值越低。③明度V表示色彩明亮的程度,光线越强,物体颜色明度值越高。对于物质颜色,此数值通常与物质的透射比或反光比相关,一般取值范围为0(黑)到100%(白)。对于光色,明度数值则与发光体的光亮度相关。根据HSV色彩模型,可以得到不同岩屑的各种颜色,从而进行分类。
2.2 岩屑识别处理方法
要使用计算机处理不同种类岩屑,首先要建立HSV色彩模型。利用Python里面的OpenCV包,使用cv2.cvtcolor(img,cv2.BGR2HSV)建 立 图 像 与HSV相关联的模型。随后设置跟踪器来调整HSV值,使其能够对不同颜色进行识别,选定想要的色彩范围。
仅有颜色识别与索引标色还不足以满足工业生产对岩屑识别的要求,岩屑轮廓、面积等也会对岩屑种类的判断产生影响。因此,对索引标色结果进行面积计算,比较相同颜色岩屑面积以及不同颜色岩屑的面积大小,以满足工业生产需要。对特定岩屑颜色识别效果见图3。
图3 特定颜色岩屑识别及标色
针对所识别岩屑的标号区域,计算面积结果见表1。利用跟踪器调节HSV值,可描述的颜色种类增加,也能够体现细微的差别,弥补了对岩屑颜色描述在细微性上的不足。提高了岩屑测井对岩屑描述的客观性、可比性,也便于使用者抓住岩屑颜色方面的重点。
表1 对图3 标色面积计算的部分结果
要得到不同种类的岩屑的灰度图像,需要不断调整跟踪器来确定某种岩屑的HSV值,以便得到更好的识别效果。但由于在岩屑测井生产中,需要分析大量不同种类的岩屑样本,仅凭人工调整跟踪器的值难以处理如此数量的岩屑样本。相同种类岩屑的HSV值也会有微小差异,因此,需要某种算法对岩屑的HSV值进行挖掘分类,以便大量处理岩屑样本图像以及得到更好的识别效果。
2.3 岩屑颜色的基本分析
在获取不同种类岩屑HSV值之前,需要对岩屑录井中产生岩屑做一个基本分析,以确定岩屑样本中的岩屑种类、颜色以及颜色成因,便于后续对岩屑大致分类与命名。本文主要分析的是沉积岩层段的各种岩屑,因此,对沉积岩层段的各种岩石颜色进行基本分析。
(1)白色:即一般不含有色素的岩石。白色、灰白色或淡灰色等,如纯质的碳酸盐岩、石盐、高岭土、白垩、纯石英砂岩等。
(2)灰色和黑色:岩石有机质(碳质、沥青质)或分散状硫化铁(黄铁矿、白铁矿)中物质含量浓度越高,岩石颜色就越深。大多数岩石由暗灰色变为黑色。
(3)红、棕、黄色:由于岩石中含有铁的氧化物或氢氧化物(赤铁矿、褐铁矿等),形成红棕黄色。
(4)绿:多数由于其中富含低价铁的矿物,使得岩石表面呈现绿色;少数如孔雀石等呈鲜艳的绿色是由于含有铜的化合物。
岩石的颜色与多种情况有关,除不同颜色岩石中化合物不同外,风化情况,岩石的颗粒大小、干湿情况、朝阳还是背阳等对色彩也有很大影响。粒度越细、越潮湿、越阴暗,颜色越深;反之颜色较淡。所以,在观察颜色前,必须观察新鲜面,并说明它是在什么样的岩石状态下测定的。
中国通常采取10种固定颜色代码及组合对样品进行描述,即白、红、紫、褐、黄、绿、蓝、灰、黑和杂色。
在实际工业生产过程中,蓝色、紫色岩屑比较少见,样本量不足,对测定地层岩性与含油性也没有影响。岩屑呈现褐色或红色是因为是否含氧化铁或氧化亚铁以及其含量的不同,因此,只选取红色一种岩屑颜色作为分类依据。杂色岩屑HSV值范围宽泛,包含岩屑颜色种类多且杂,对含油性地层分析指导意义小,也不作为分类依据。
由于部分种类岩屑颜色样本量小且识别意义不大,因此,我们选取样本数量多,识别意义大的6种岩屑颜色白、黑、灰、红棕、黄、绿作为识别地层岩性及含油性的主要依据。
2.4 岩屑HSV值的获取与数据的预处理
在分析了不同种类岩屑的颜色以及颜色成因后,可以确定大致的HSV值范围及后续的相关处理与命名,从而获取样本岩屑当中不同种类岩屑的HSV值,调整跟踪器至明显效果后,可以利用Python自动输出HSV值,得到样本岩屑数据。由于在处理岩屑样本时,不可避免的会遇到受光照、湿度、现场的天气情况等影响的采样质量差的样本,清洗岩屑样本HSV值当中的异常值、缺失值是十分必要的。
在对200个具有不同种颜色岩屑特征的样本数据进行预处理后,得到的HSV值见表2。利用R语言作散点图进行数据清洗,可以清晰的分辨出不同值数据的分布情况,重复值表示为1个点,而对于离散数据,能更为直观的观测出数据的异常值。由于每一种岩屑的色彩、饱和度、明度可能不同,将HSV值分类处理,查看其散点图,对游离在主要散点之外的异常值进行清洗。
表2 部分岩屑HSV 值
清洗前的HSV散点见图4,岩屑的HSV值跟随颜色成簇分布,游离在簇之外的数据就是需要清洗的数据。可以明显看出,HMin的值在15 ~20的这些数据呈现离散且无规律的分布,为需要清洗的异常值。利用R语言,将HMin在15 ~20的数据全部清洗掉,保留正常数据。
图4 色彩、饱和度和明度散点图
2.5 岩屑精细识别
将岩屑样本分成不同簇,保证相同簇的HSV值相似度高、差异性小,不同簇的HSV值相似度低且差异性大。在验证岩屑种类时,若岩屑HSV值与其中某一簇相接近,说明该岩屑属于此种类。
对岩屑样本数据进行预处理之后,再使用K-means聚类方法对其HSV值进行挖掘,并通过之前对岩石色彩的研究,得出了不同类型岩屑的色彩主要包括白、黑、灰、红、绿、黄等6种色彩,因此,确定K= 6。
接下来利用R语言内的cluster包进行K-means算法处理,用useful包进行绘图,明显可见K-means算法将数据集分成了6簇。具体结果见表3。
表3 K-means 聚类算法下数据挖掘结果
聚类结果可以通过组内方差、组间方差和总方差的关系来评价,其目的是保证聚类后相同组内的数据即同类间的数据具有一致性,使组内数据方差尽可能的小,组间方差尽可能的大。或利用F值表示总方差/组间方差,满足F值越大聚类效果越好。
聚类结果表明利用岩屑的HSV值可以将岩屑分为具体的6类,且F值为90.7%,在误差的允许范围内,基于K-means聚类算法构建的岩屑识别模型是符合工业生产要求的。从图4中可以看到6类岩屑具体的HSV值。在进行测试集验证之前,根据其HSV值确定一个范围,导入测试集验证准确率。结合聚类结果与测试集的验证后,选取分类范围见表4。
表4 最终范围选取结果
在导入测试集后,验证K-means聚类算法下结果的准确性,共计357块岩屑,25块识别错误,计算其准确率为93.4%,误差符合岩屑录井准确率要求。出现不符合的主要原因为部分岩屑相似程度较高,样本量不足,导致对此部分岩屑的识别效果较差。结果见表5。
表5 混淆矩阵验证结果
3 结 论
(1)通过使用Python中的OpenCV图像分析包来进行岩屑图像的识别和分类,同时结合R语言和Kmeans聚类算法,进行HSV值的数据挖掘,得到了岩屑分类的HSV值范围,利用测试集确定该种方法具有较高的准确性。
(2)与传统的岩性识别方法相比,该方法在岩屑录井中可以更精细、准确地识别岩屑的颜色,并且有利于批量处理岩屑样本,从而提高岩屑录井的效率和准确性。
(3)通过使用OpenCV 包进行计算机图像处理,设置了跟踪器对岩屑图像进行识别,只需要拖动跟踪器,可以简单快速地识别不同情况下的岩屑样本。
(4)采用了K-means聚类算法对岩屑样本进行了数据挖掘,对于特定种类颜色的岩屑可以简单确定其K值,具有很好的分类效果。