基于超像素与半监督的岩石图像分割与识别

刘烨 吕锦涛

刘烨, 吕锦涛. 基于超像素与半监督的岩石图像分割与识别 [J]. 工程科学与技术, 2023, 55(2): 171-183. doi: 10.15961/j.jsuese.202200459
引用本文: 刘烨, 吕锦涛. 基于超像素与半监督的岩石图像分割与识别 [J]. 工程科学与技术, 2023, 55(2): 171-183. doi: 10.15961/j.jsuese.202200459
LIU Ye, LYU Jintao. Semi-supervised Rock Image Segmentation and Recognition Based on Superpixel [J]. Advanced Engineering Sciences, 2023, 55(2): 171-183. doi: 10.15961/j.jsuese.202200459
Citation: LIU Ye, LYU Jintao. Semi-supervised Rock Image Segmentation and Recognition Based on Superpixel [J]. Advanced Engineering Sciences, 2023, 55(2): 171-183. doi: 10.15961/j.jsuese.202200459

基于超像素与半监督的岩石图像分割与识别

基金项目: 国家自然科学基金项目(52004214);陕西省自然科学基金项目(2021JM–400;2022JM–301)
详细信息
    • 收稿日期:  2022-05-12
    • 网络出版时间:  2022-10-10 09:21:53
  • 作者简介:

    刘烨(1982—),男,副教授,博士. 研究方向:人工智能;油藏描述. E-mail:yeliu@xsyu.edu.cn

    通信作者:

    吕锦涛, E-mail: 20212060735@stumail.xsyu.edu.cn

  • 中图分类号: P588;TP751.1

Semi-supervised Rock Image Segmentation and Recognition Based on Superpixel

  • 摘要: 岩石薄片图像的分析往往依赖于专业人员在显微镜下观察并给出鉴定结果,不但费时费力,并且受设备影响较大。近些年,针对薄片图像的自动识别方法已经被提出。然而,这些方法大多采用监督学习与深度学习相结合的方式,由于需要大量人工标注而受到限制,为方法的推广与应用带来巨大困难。此外,模型在不同的地层、岩性等目标应用时,由于不同地质环境中岩石的差异性,其泛化性也受到极大限制。本文针对该问题提出了一种简单线性迭代聚类算法(simple linear iterative cluster,SLIC)与半监督自训练结合的方法,仅依靠6%的人工标注便能够实现岩石图像的自动化分割与组分识别,极大地增强岩石图像自动识别方法在实际应用中的价值。该方法首先使用超像素算法SLIC对岩石图像进行预分割,随后基于分割片的颜色特征进行粗合并,并根据最小外接矩形进行切割;切割下来的岩石组分分割图像作为后续处理的基础数据集,这里仅需要人工标注6%的岩石组分数据;随后,这些数据通过一个改进的半监督自训练方法,以改进的VGG16模型作为主模型、ResNet18模型作为评判模型,不断生成高置信度的伪标签,利用迭代优化调整,将其扩展到整个数据集,最终获得一个具有较高的稳定性、准确性及一致性的组分识别模型。实际数据的测试与分析表明,本文所提出SLIC和半监督自训练结合的方法,对6类岩石组分的识别准确率可达到96%。该方法能够在数据差异不大的条件下,帮助用户基本实现自动化的组分识别。而当数据集产生较大差异时,仅需标注小部分样品即可实现自动组分识别。本方法具有较高的泛化性和可靠性,能够在实际应用提供足够的准确性与便利性。

     

    Abstract: The analysis of rock slice images often relies on professionals to observe under a microscope and provide identification results, which is not only time-consuming and labor-intensive but also greatly affected by the equipment limitations. In recent years, automatic recognition methods for thin slice images have been proposed. However, most of these methods use a supervised strategy, which is limited by a large number of manual labeling and brings great difficulties to the generalization and application. In addition, when a model is applied to different reservoirs, lithology, and other targets, its generalization is greatly limited. Aiming at this problem, a method combining a superpixel algorithm with deep learning and semi-supervised self-training was proposed to achieve the automatic segmentation and component identification of thin-section images only by relying on 6% of manual labels, which greatly enhances the practical application of this method. First, the superpixel algorithm SLIC was used to pre-segment the rock image, and then the rough merging based on the color features of the segmented slices and cut according to the minimum circumscribed rectangle were performed, and. The cut rock component segmentation image was used as the basic data set for subsequent processing, and only 6% of the rock component data need to be manually labeled; then these data were passed through an improved self-training method, using the improved VGG16 model as the main model and the ResNet18 model as the judgment model, and constantly generate high-confidence pseudo-labels using iteratively optimizing the tuning and extending it to the entire dataset, and finally obtain a component identification model with high stability, accuracy, and consistency. Through the testing and analysis of actual data, the method combining SLIC and semi-supervised self-training proposed in this paper can recognize 6 types of rock components with an accuracy of 96%. It can help users basically achieve automatic component identification under the condition of little data difference. When there is a large difference in the datasets, only a small number of samples can be labeled to achieve automatic component identification. Through theoretical verification and actual data testing, the proposed method has high generalization and reliability and can provide sufficient accuracy and convenience in practical applications.

     

  • 对岩石薄片进行显微镜下的观察与分析,能够直观了解岩石样品的孔隙、矿物组成与特征。然而,目前镜下观察受到设备限制,很多相关研究直接采用镜下拍摄的样品图像进行。薄片图像是镜下观测的数字化,可基于数字化后的图像数据,对其进行图像分析与挖掘,从中获取矿物、孔隙、物性等重要的地质与储层信息,对油气勘探与地质等领域有着重要的理论意义。

    在岩石铸体薄片的图像处理中,往往都将分割作为第1步,分割能够将专业人员所关注的孔隙、矿物等目标与其他干扰信息区分开。然而,岩石图像与传统图像的差异在于所关注的目标不仅较多、与干扰信息特征接近,并且由于采样设备的差异导致不同样品中的目标特征十分复杂,为精确地自动分割带来较大的困难。传统岩石分割中,该项工作一般由专业人员根据个人专业知识完成;但这种方式工作量较大,且分割结果易受主观因素干扰,缺乏确定性与稳定性。计算机视觉领域技术的快速发展带来了岩石图像分割的自动化技术,极大地减轻了人工工作量,同时还提高了分割准确度。

    出现较早且有代表性的几种图像分割方法包括基于阈值的图像分割方法、基于边缘的图像分割方法、基于区域的图像分割方法、水平集方法等。目前,具有代表性的图像分割方法有基于超像素与深度学习的图像分割方法。深度学习方法虽然准确性较高,但在实际应用中由于需要大量标记数据进行训练受到诸多限制。而超像素是指具有相似纹理、亮度、颜色等特征的相邻像素构成的像素块,仍基于图像数学特征,不需要人工标注即可完成,因此,更适合于薄片图像的分割。主流的超像素算法主要分为基于图论和梯度的方法[1],基于图论的方法中具有代表性的有Felzenswalb等[2]提出的基于图表示(Felzenswalb)的分割方法、Shi等[3]提出的归一化的分割(normalized cuts,Ncut)方法等。基于梯度的方法[4]中具有代表性的方法有Vincent等[5]的分水岭(Watershed)算法、Vedaldi 等[6]的快速移位(Quick-shift,QS)方法、Levinshtein 等[7]基于几何流的方法(Turbo-pixels)和 Achanta等[8]的简单线性迭代聚类算法(simple linear iterative cluster,SLIC)。

    从本质上来说,图像分割仅能够根据目标特征差异将其分离开,却缺少对于目标的进一步解释。在岩石薄片的图像中,大量的矿物、孔隙等目标虽然被分离开了,但是专业人员仍然要对目标进行判别与解释,仅依靠图像分割仍然无法替代人工。因此,对分割结果的分类与识别就成为了岩石薄片图像分析与处理自动化的必然选择。

    图像的分类和识别是计算机视觉中最重要的任务之一。Sharma等[9]综述了图像分类和识别从1999年至今的里程碑式的研究,其中包括传统的目标检测算法SIFT[10]、HOG[11]、AdaBoost[12]、SVM[13]等。此外,基于深度学习的目标识别方法也产生了诸多研究成果。随着深度卷积神经网络(convolutional neural networks,CNN)的出现和图形处理器(graphics processing unit,GPU)对计算机性能的提升,基于深度学习的图像分类和识别的技术近年来取得了快速的发展,出现了许多效果较好的分类模型(AlexNet[14]、VGGNet[15]、GoogleNet[16]、ResNet[17]等),和目标检测模型(R–CNN[18]、Mask–R–CNN[19]、YOLO[20]等),这些分类模型和目标检测模型都表现出了强大的特征学习与特征表达能力。这些强大的特性使CNN在图像分类、人脸识别、视频分析、行人检测等场景中应用得到实现。

    岩石图像具有与常规图像不同的特征,这也使得常用的方法无法直接迁移至岩石图像中应用,其主要差异性如下:

    1)与其他图像分割问题不同,岩石图像中主要为前景信息,几乎不具有背景信息,会出现大量的分割目标。图1为岩石图像中存在的多目标问题,标注圆点部分全为待处理的目标。

    图  1  岩石图像中存在的多目标问题
    Fig.  1  Multi-objective problem in rock images
    下载: 全尺寸图片

    2)岩石的不同组分相似度较高,尺度差异也较大,对于分类模型的要求更高。图2为岩石图像中存在的多尺度问题,黑色边界标记为石英颗粒的多种尺度。

    图  2  岩石图像中存在的多尺度问题
    Fig.  2  Multiscale problem in rock images
    下载: 全尺寸图片

    3)目前主流的图像分割方法,需要大量的带标注的数据集,在岩石图像分割识别的实际应用中费时费力,为之后的研究与应用带来很大的困难。

    近年来,许多研究者尝试将深度学习引入到岩石图像领域中,如:Rubo等[21]利用人工神经网络和随机森林算法进行岩石薄片的分割和识别,他们使用不同的卷积滤波器和分类参数进行测试,创建了5个模型,经过分析和评估得到很好的结果。有些分割方法需要根据数据的不同人工进行参数的选择,这会对最后的结果造成偏差,Niu等[22]利用CNN对数字岩石进行分割,这意味着一旦模型训练好,CNN在没有人工参数选择的情况下也可以提供稳健的图像分割。Qiao等[23]提出了一种基于深度学习的方法用于复杂岩石碎屑的实时识别,其中,设计了基于U–net的分割网络,实现了像素级的识别。司晨冉等[24]的研究中提出了一种基于Mask R–CNN和分水岭算法的岩石颗粒图像分割方法,该方法在某堆石坝工程中得到了较好的应用效果。Karimpouli等[25]中提出了一种基于模式和像素的混合仿真重构方法,用于对少量的数字岩石数据进行有效扩充,然后采用了SegNet算法进行岩石分割,克服了传统数字岩石图像分割方法存在的困难和不足。

    上述研究成果表明,基于深度学习的图像分割与识别方法已经开始被引入到地质、矿物学领域中。然而,这些方法都无法避免两个核心问题:

    1)缺乏可解释性。卷积神经网络等方法所提取的图像特征是不可解释的,这样无法将专业人员多年积累的知识与经验融入到识别模型中,造成识别的准确性与可靠性降低。

    2) 缺乏泛化性。上述研究虽然都取得了一定成果,然而方法设计本身就将其限制在各自的数据集中,若需要泛化扩展到其他数据集中,便需要大量重复性工作。

    这两个核心问题也限制了这些方法仅能作为实验研究分析的手段与技术,而无法扩展到实践应用领域。

    针对当前研究的不足与缺陷,为解决上述两个核心问题,本文建立了一套基于半监督学习的岩石薄片图像组分识别方法,通过分割与特征合并,依靠少量人工标注的数据,对模型迭代式自训练,以不断增强数据集数量并最终将其扩展到整个数据集,从而建立整个数据集的分类模型。这样的方法结合了无监督的超像素算法和半监督自训练方法的各自优势,并能够利用专业人员的认识来实现目标的识别。该方法结合了图像分割与颜色特征以提高其可解释性,半监督方法使其泛化性大大增强。总体来说,该方法基本解决上述两个核心问题,适用于解决实际中面对的复杂问题。

    所用方法分为以下7个步骤:

    1)对原始数据集使用超像素算法生成超像素块;

    2) 使用合并策略对超像素块进行粗合并,并按区域切割得到待分类的数据集,并且人工标注少量数据;

    3)利用人工标注的少量数据和待分类的数据集,训练出一个基于半监督学习自训练的分类模型;

    步骤1)~3)的具体流程如图3所示。

    图  3  分类模型训练流程
    Fig.  3  Classification model training flow chart
    下载: 全尺寸图片

    4) 对待分割图像使用超像素算法生成超像素块;

    5) 使用合并策略对超像素块进行粗合并,得到待识别区域;

    6)使用步骤3)中的分类模型,得到待识别区域的分类结果;

    7) 根据区域分类结果构建全图标注,完成图像分割与识别;

    步骤4)~7)的具体流程如图4所示。

    图  4  图像分割流程
    Fig.  4  Image segmentation flowchart
    下载: 全尺寸图片
    2.3.1   SLIC算法

    SLIC[8]是一种局部的K均值聚类(K–means)算法。SLIC将像素的搜索范围设定在簇中心周围的有限范围内,结合色彩和空间两个角度来定义距离,使用K–means算法,生成大小可控、紧凑性可控的超像素块。SLIC的具体实现步骤如下[8]

    1)假设图像中共有 $ N $ 个像素点,要预分割为 $ K $ 个超像素,那么 $S = \sqrt {N/ K}$ $ S $ 近似为超像素块的高和宽。将这 $ K $ 个超像素的中心位置作为初始的簇中心,这 $ K $ 个簇中心可被表示为 ${{\boldsymbol{C}}_k} = {\left[ {{l_k},{a_k},{b_k},{x_k},{y_k}} \right]^{\rm{T}}},k= 1, 2,\cdots, K$ ,那么相邻两个簇中心的距离也近似为 $ S $ ;其中, ${l_{{k}}}$ ${a_{{k}}}$ ${b_{{k}}}$ 分别为簇中心像素点 ${{{p}}_{{k}}}$ 在CIElab色彩空间的3个通道分量, ${x_{{k}}}$ ${y_{{k}}}$ 分别为像素点 ${{{p}}_{{k}}}$ 的横、纵坐标。为了避免簇中心移动到图像的边缘,需要将簇中心移动到其3×3邻域内梯度最小的位置。

    2)每个像素点 $ {p_i} ,i=1,2,\cdots ,N$ ,在其簇中心周围的2S×2S的邻域内,计算 ${p_i}$ 和每个相邻簇中心 $ {C_k} $ 之间的距离 $ D $ 。其中距离 $ D $ 的计算方法如下:

    $$ \tilde d = \sqrt {{{({l_j} - \;{l_i})}^2} + {{({a_j} - \;{a_i})}^2} + {{({b_j} - \;{b_i})}^2}} $$ (1)
    $$ \check{d} \; = \sqrt {{{({x_j} - \;{x_i})}^2} + {{({y_j} - \;{y_i})}^2}} $$ (2)
    $$ D = \sqrt {\tilde d{\;^2} + {{\left( {\frac{{\check{d} \;}}{S}} \right)}^2}{m^2}} $$ (3)

    式中:ij为任意像素点下标,i, j=1,2,···,N, ij $ \tilde d $ 为像素点间的颜色差异; $\check{d} \;$ 为像素点之间的空间距离; $ m $ 为平衡颜色和空间相对重要性的参数。

    3)更新簇中心 $ {C_k} $ 的位置,为簇中心周围的像素点分配标签。

    4)迭代优化,直至簇中心不再发生改变。

    2.3.2   基于半监督学习的自训练方法

    伪标签方法[26-29]中,标签数据和无标签数据同时参与模型的训练。对于无标签数据,在经过模型预测后,每个无标签数据被赋予最大预测概率的标签,再将标注后的无标签数据放入标签数据集用于模型训练。伪标签方法主要分为自训练和多视角训练两种;本文采用自训练的方法是基于无标记样本的置信度,来分类未标记的数据集。自训练算法主要包含下面5个步骤:

    1)使用少量的标签数据 $L = \left\{ {\left( {{{{o}}_q},{v_q}} \right)|q = 1,2, \cdots ,Q} \right\}$ 来训练预测模型 $ M $ ,其中, ${{{o}}_q}$ 为标记样本, $Q$ 为标记样本的个数, ${{{v}}_q}$ 为对应的标签;

    2)使用模型 $ M $ 为无标签数据 $U = \{ {{{o}}_1},{o_2}, \cdots ,{o_P}\}$ 分配伪标签,其中, $P$ 为未标记样本的个数;

    3)如果分配的伪标签满足置信度 $ H $ ,则将数据 $(o, {argmaxM}\left(o\right))$ 添加进标签数据集 $ L $ 中,其中 ${argmaxM}\left( {{o}} \right)$ $ o $ 经过模型 $ M $ 预测出的标签;

    4)从无标签数据 $ U $ 中去掉 $({o},{argmaxM}\left(o\right))$ 中对应的 $ o $

    5)根据新的带标签数据 $ L $ 训练出新的模型 $ M $ ,重复步骤2)到5),直到不存在未标记的数据,或者不存在大量满足置信度要求的数据。

    算法的伪代码见表1表1中, $ {L_t} $ $ {U_t} $ 为第 $ t $ 次迭代时的标记数据集和无标记数据集, $ R $ 为当前迭代中得到的置信度高的结果。

    表  1  自训练算法
    Table  1  Self-training algorithm
    自训练算法伪代码
    Initial t=0, Lt=L, Ut=U //初始化标签数据集和无标签数据集
    While length(Ut) != 0 //存在无标签数据
      使用Lt训练分类器M
      If H: //满足置信度要求
        R=(Ut, argmaxM(Ut));//满足置信度要求的伪标签数据
        Ut=UtR;//更新无标签数据集
        Lt=Lt+R;//更新标签数据集
        t=t+1;
      End If //不满足置信度要求
      If 不存在大量满足置信度H的数据:
       End while //结束算法迭代
      End If //本次算法迭代生成大量满足置信度要求的数据
    End while //不存在无标签数据,结束算法迭代
    L = Lt,使用L训练分类器M
    输出训练完成的分类器M

    在算法迭代中,如果出现大量的误标记而且没有及时处理,那么随着模型的迭代会造成误差的传播。为了缓解这一问题,设置置信度 $ H $ 作为衡量伪标签是否可靠的重要指标,通常会使用函数SoftMax生成的预测概率作为 $ H $ 进行衡量。

    2.3.3   岩石组分分类模型

    构建两个分类模型:其中一个作为主模型,以VGG16[15]网络为主干网络;另一个作为评判模型,以ResNet18[17]网络为主干网络,用来评判主模型生成的伪标签的置信度高低。对于所有图像而言,低层的特征具有很高的相似性,所以可以直接使用主干网络中部分网络的网络参数,然后在已有的基础上进行微调。

    1) 基于VGG16的分类模型

    主模型的网络结构如图5所示,其主干网络为带批量规范化(BatchNorm)的VGG16网络结构的前14层,即图5中“VGG16[:14]”部分。这14层网络主要分为两部分,这两部分的结构都包括两个卷积块(1次卷积操作、采用BatchNorm处理和激活函数Relu)和1个最大池化层,只是在输出通道数上有区别。输入数据的大小为3×32×32,经过主干网络之后,输出的张量的大小为128×8×8,将张量进行平铺操作拉平后大小为1×8192,经过两个线性层和随机丢弃50%神经元的方法(Dropout)使模型进一步训练,再使用激活函数ReLu将神经元映射到输出端,最后经过函数SoftMax得到W种类别的概率,选择最大概率对应的标签作为输出。

    图  5  主模型网络结构
    Fig.  5  Main model network structure
    下载: 全尺寸图片

    2)基于ResNet18的分类模型

    评判模型的网络结构如图6所示,图6中,主干网络为ResNet18的部分网络结构。如图6中第1个矩形框部分所示,输入先经过卷积、BatchNorm处理和最大池化操作,再经过3 层网络(层1、层2、层3),这3层网络主要由两种基本块组成。图6中:基本块1中包含两组结构,每组结构都是由1个卷积操作、BatchNorm处理和激活函数ReLu组成,基本块1中未进行下采样和升维操作;基本块2中包含3组结构,前两组操作也都是由1个卷积操作、BatchNorm处理和激活函数ReLu组成,第3组操作是1个下采样和升维操作。由于输入图像的矩阵大小为3×48×48,所以经过主干网络输出的张量大小为256×3×3,将张量进行平铺操作拉平为1×2304,再经过1个全连接层和函数SoftMax,会输出W种类别的概率,作为判别模型,要求待评判伪标签的预测概率大于94%,如果不满足概率要求,不会对其进行分类。

    图  6  评判模型网络结构
    Fig.  6  Judgment model network structure
    下载: 全尺寸图片

    本文所使用的数据集来自于鄂尔多斯盆地上古生界延长组致密砂岩储层。该批样品包含岩石图像13 656张,平均孔隙度为9.66%、渗透率为0.494×10−4 µm2,拍摄自单偏光以及200倍镜下。

    3.2.1   SLIC算法实验

    为了验证SLIC算法对于岩石图像预处理的有效性,选取opencv–python库中阈值分割算法和Sobel边缘检测算法与SLIC算法进行对比。图7选取了1张岩石图像和动物图像,分别进行3种分割算法的对比。

    图  7  分割方法对比
    Fig.  7  Comparison of Segmentation Methods
    下载: 全尺寸图片

    首先,两组原始图像最大的区别是,岩石图像中基本没有背景信息,整张图上的所有部分都为待分割出的目标,而动物图像中背景信息和待分割目标对比明显。其次,岩石图像中存在大量相似的待分割目标,动物图像中相似目标很少。使用阈值分割和Sobel算子边缘检测,在颜色变化剧烈的位置效果明显,但是阈值分割与Sobel算子边缘检测,对相似的目标的分割结果不好,如图7中矩形框部分所示。阈值分割还会将本来属于待分割目标的部分分割出来,如图7中椭圆形框部分所示,而且在边缘检测算法中待分割目标内部会存在一些梯度变化大的点,会导致将其误判为边缘点,这些问题对于阈值分割和边缘检测算法这种以输出最终分割结果为目标的算法而言,是不利的。而对于超像素算法而言,其最终的目标并不是输出最终的分割结果,而是将待分割目标进行过分割,即产生大量的像素块。对于岩石图像这种待分割组分繁杂、而且相似性较高的数据来说,使用超像素算法将图像输出为大量像素块,再使用合并算法将相同岩石组分进行合并,会得到比直接使用分割算法更好的效果,如图7(d)(b)(c)中矩形框部分的对比所示,使用超像素算法可以将岩石图像中相似的部分和狼尾巴和背景相似的部分都能分割出来。

    选取5种超像素算法(Felzenswalb、QS、SEEDS、LSC、Watershed与SLIC超像素算法)进行对比[30-31],其中,SLIC、Felzenswalb、QS、Watershed算法是使用Python中的scikit–image库实现的,SEEDS和LSC算法是使用Python中的opencv–python库实现的。图8展示了不同超像素算法对同一组岩石图像的预分割结果。

    图  8  超像素预分割对比图
    Fig.  8  Image of Superpixel pre-segmentation comparison
    下载: 全尺寸图片

    图8可知,Felzenswalb算法、QS算法、SEEDS算法、 Watershed算法生成的超像素大小不均匀、形状不规则;而且,Felzenswalb算法、QS算法和Watershed算法会生成大量的较小超像素和“尖端状”的超像素,如图8(a)(b)(d)(f)中矩形框区域所示。图9 为“尖端状”超像素的具体对比,图9(a)(b)(c)中产生大量的“尖端状”超像素(箭头处),而图9(d)中几乎没有出现“尖端状”超像素。

    图  9  “尖端状”超像素对比图
    Fig.  9  Comparison of tip-shaped superpixels
    下载: 全尺寸图片

    这些“尖端状”的超像素特点是,超像素块的凸出部分呈尖状或者中间部分特别细,这些部分所包含的像素点个数极少。“尖端状”的超像素主要会为之后的工作造成两种影响:首先,根据解决方案,对所有的超像素块先进行粗合并,粗合并之后,这种“尖端状”的特征还可能存在;其次,将超像素块处理为模型所要求的固定尺寸,再使用分类模型对各个超像素块进行识别,由于图像的分辨率有限,提升尺寸后这种“尖端状”超像的尖状部分比其他形状规则的超像素更模糊,为最后的候选子区域的识别造成困难。因此,选取超像素算法时,选用产生“尖端状”的超像素块较少的超像素算法。

    图9(c)圆形框处所示,Watershed算法产生的分割结果生成许多极小的超像素,导致严重的过分割现象,这为最后候选区域的识别造成困难。从图8(e)(f)可知,LSC算法和SLIC算法能够产生大小均匀,形状规则,数量可控的超像素;但是,从图8圆形框区域对比可知,SLIC算法比LSC算法产生的超像素边界贴合度好。

    6种超像素算法分别从形状是否规则、是否会产生大量“尖端状”的超像素块、是否会产生大量极小的超像素、边界贴合度等方面对比得出结论:SLIC算法比其他5种算法对岩石图像的预处理更有效。

    为证明SLIC算法对数据集中岩石图像预处理的稳定性及普遍性,选取8张具有代表性的岩石图像进行预分割,结果如图10所示。由图10可知,SLIC算法能正确地将相似的岩石组分分割,并且错误分割的情况很少。

    图  10  SLIC算法对不同岩石图像预分割
    Fig.  10  Different rock images are pre-segmented by SLIC algorithm
    下载: 全尺寸图片
    3.2.2   粗合并实验

    为了给分类模型的训练提供质量较好的数据,需要对生成的超像素进行粗合并。首先,根据各个超像素块的平均颜色特征建立邻接矩阵,两个邻接区域的差异度是两个超像素的颜色均值的欧几里得距离,差异度越小则两个超像素越相似;然后,给定阈值并根据图的广度遍历优先算法进行超像素合并。由于不同的岩石图像差异性较大,阈值 $ \psi $ 的设置范围如下:

    $$ \psi \gt \frac{{{w_{{{gh}}}} - \min ({w_{_{{{gh}}}}})}}{{\max ( {{w_{_{{{gh}}}}}} ) - \min ({w_{{{gh}}}})}} $$ (4)
    $$ \psi \times \max \left( {{w_{{{gh}}}}} \right) + \left( {1 - \psi } \right) \times \min \left( {{w_{{gh}}}} \right) \gt {w_{{{{gh}}}}} $$ (5)

    式(4)~(5)中: ${w_{{{gh}}}}$ 为邻接区域 ${{g}}$ ${{h}}$ 的差异度; $\min\left( {{w_{gh}}} \right)$ 为求该邻接图中最小差异度的函数; $\max\left( {{w_{gh}}} \right)$ 为求最大差异度的函数; $ \psi $ 为一个(0,1)范围内的数,用于设定阈值属于所有差异度范围。由式(5)可知,满足该不等式的所有邻接区域 ${{g}}$ ${{h}}$ 可被合并。

    由于不同的岩石图像差异较大,宽松的合并策略可能造成大量的误合并,所以,实验采用RGB色彩空间和YCbCr色彩空间,对比不同阈值的粗合并结果。图11所示为 $ \psi $ =0.1、 $ K $ =300、 $ m $ =30时,基于RGB色彩空间和YCbCr的色彩空间区域合并结果对比。

    图  11  ψ=0.1时不同色彩空间的区域合并对比图
    Fig.  11  Regional merge comparison chart of different color spaces when ψ=0.1
    下载: 全尺寸图片

    图11中矩形框和椭圆形框区域出现了严重的误合并。当 $ \psi $ 变大时,合并的条件更加宽松,与此同时,误合并情况变得严重。从上述实验得出结论,当 $ \psi $ 的值大于0.1时,会产生严重的误合并。对比 $ \psi $ 小于0.1时,使用相同阈值在不同色彩空间进行区域合并,图12 $ \psi $ =0.08、 $ K $ =300、 $ m $ =30时,基于RGB色彩空间和YCbCr色彩空间的区域合并结果对比结果。

    图  12  使用相同阈值和不同色彩空间的区域合并对比图
    Fig.  12  Contrast map for region merge using the same threshold and different color spaces
    下载: 全尺寸图片

    图12可知,利用RGB色彩空间进行合并时,颜色相近的超像素出现明显的误合并现象;在使用YCbCr色彩空间时,合并效果优于使用RGB色彩空间的效果。选取不同色彩空间的最优阈值进行区域合并,将其合并的最优结果进行对比,结果如图13所示。

    图  13  使用不同阈值和不同色彩空间的区域合并对比图
    Fig.  13  Contrast map for region merge using the different thresholds and different color spaces
    下载: 全尺寸图片

    图13(b) $ \psi $ =0.06、 $ K $ =300、 $ m $ =40时基于RGB色彩空间的最优区域合并结果,与图12(b)矩形框处对比可知,当 $ \psi $ =0.06、m=40时,基于RGB色彩空间的超像素合并效果更好,但是颜色相近的区域会出现严重的误合并。图13(c) $ \psi $ =0.08、 $ K $ =300、 $ m $ =40时基于YCbCr色彩空间的最优区域合并结果,与图12(c)矩形框处对比可知,当 $ m $ =40时基于YCbCr色彩空间的超像素合并效果更好。由图13(b)(c)矩形框处对比可知,使用YCbCr色彩空间可以有效的将颜色相近的区域进行分割,但是使用RGB色彩空间会出现误合并的问题。

    综上所述,使用YCbCr色彩空间进行粗合并的效果优于使用RGB色彩空间,经过实验得出较优参数为 $ \psi $ =0.08、 $ K $ =300、 $ m $ =40。

    粗合并之后,将各个区域按最小外接矩形进行切割,矩形区域内除特定标签的像素,其他像素的值全置为(0, 0, 0),之后按照图像尺寸的大小,将被切割下来分类成不同的数据集。最后人工挑选出石英、孔隙、岩屑、杂基、高岭石5个类别,每一个类别近100条数据(总数据集的6%)作为半监督训练的基础数据。

    3.2.3   基于半监督学习的分类模型训练

    图14为采用半监督学习自训练流程。其中,主模型生成标签的置信度大于0.94,代表该数据对应的标签是主模型所信赖的;经过评判模型产生的置信度大于0.94,代表该数据对应的标签是主模型和评判模型共同信赖的,可作为增强数据。其中,人工标注的数据占总数据集的6%,而且只包含6种类别中的5类。自训练过程中,通过训练两个模型来提高增强数据的可信度。其中,一个模型作为主模型,另一个作为评判模型,最后过滤出“其他类”的数据。在对两个模型进行训练时,每次随机选择80%的数据用于训练,使用固定的人工标注数据用于测试,训练过程中两个模型对对方所使用的数据并不可见,由此保证两个模型在训练时,训练数据存在差异,从而提高评判模型的可靠性;使用固定的数据进行模型测试,使相同或不同迭代周期中的主模型和评判模型具有可对比性。主模型使用VGG16、评判模型使用ResNet18,两个模型单独训练,其在网络结构上的差异性,使得评判模型可以站在另一个角度客观地评价伪标签,由此提高训练的可靠性。

    图  14  半监督学习流程
    Fig.  14  Semi-supervised learning process
    下载: 全尺寸图片

    图14可见:首先,训练出分类准确率达到80%以上的模型;然后,将其余未标记的数据集输入到主模型中;为训练网络中最后经过函数SoftMax得出的值大于0.94的数据生成伪标签,不满足这一条件的数据不生成伪标签。为了证明该伪标签的可靠性,使用训练出的评判模型对主模型的伪标签结果进行评判,当这些新生成伪标签的数据输入评判模型中,经过函数SoftMax也可以得到大于0.94的结果,由此证明主模型所生成的伪标签是可靠的,可将其添加到标记数据中,用以新一轮的模型更新。如图14中所示,主模型预测概率大于0.94的有4条数据,但是经过模型评判之后,满足置信度要求的数据只有3条。重复该过程,使带标注的数据不断增强,主模型和评判模型不断迭代更新,直至当前模型满足自训练算法的结束条件(当所有未标注数据被标注完成,或者当前未标注的数据集中不存在大量满足置信度的数据)。

    图15为不同迭代周期标记数据量的变化和自训练模型性能变化。从图15可知,初始化模型时,人工标注的数据占6%,已经得到了80%以上的准确率,但是出现了过拟合的情况。为了解决过拟合的问题,使用自训练的方法选择置信度较高的伪标签,对带标签数据进行增强,每次迭代之后不同标签增加的数据量不同,为了平衡数据量,每次对模型迭代更新时,以最少的岩石组分类别的数据量为标准,删除其他类别中尺寸小的数据,保证各类别数据量相等。在第2次迭代时,5种岩石组分数据量达到750张,主模型和评判模型都已经得到很好的效果,而且过拟合问题也得到了解决。之后继续进行迭代,直到不再产生大量高置信度的伪标签,并在剩余未标注数据中挑选质量较好的数据作为“其他”类。至此,6个种类的数据各达到了1 320张左右,根据已有的不同种类的数据对主模型训练,得出该模型的准确率为90.2%;然后,根据数据集绘制混淆矩阵,如图16所示,图16(a)为训练数据的混淆矩阵,图16(b)为测试数据的混淆矩阵。

    图  15  自训练过程中数据量和模型性能变化
    Fig.  15  Changes in data volume and model performance during self-training
    下载: 全尺寸图片
    图  16  混淆矩阵
    Fig.  16  Confusion matrix
    下载: 全尺寸图片

    图16分析得出,“其他”类的数据错误分类的情况严重,该类中包含了许多和其余5类特征较为接近的数据。为了解决该问题,剔除“其他”类中其余5类的数据,但是这样将面临“其他”类数据量减少近44%的情况,导致不同种类数据量不平衡。因此,再使用图像旋转的方式增强数据,使数据达到均衡。

    之后,再使用增强后的数据集进行模型训练,当迭代80次时,模型基本收敛,分类模型的训练过程如图17所示,最后1次迭代时模型的准确率为96.3%。

    图  17  模型训练准确率变化
    Fig.  17  Accuracy change during model training
    下载: 全尺寸图片

    图17可知,对数据集清洗并且增强之后,模型准确率有了明显的提升,除“其他”类的分类准确率为89.0%,其余种类数据的分类准确率都达到96.0%以上,说明上述对其他类的数据处理方式是有效的,并且该模型对于岩石图像数据集的分类已经达到了较好的效果。

    3.2.4   岩石图像分割

    在使用分类模型之前,首先需要将待分割的岩石图像划分为子区域,为了产生尽可能大的候选子区域,在识别子区域之前使用粗合并策略。与制作数据集时合并策略不同的是:后者需要为模型的训练提供质量较好的数据集,而且粗合并之后得到的数据集,种类繁多、尺寸大小各不相同,对于合并后质量不好的数据可以选择剔除掉;而待识别子区域粗合并之后,如果产生误合并严重的候选子区域,不能进行删除,会直接影响到最后的分割结果。

    不同超像素块数量,对于SLIC算法生成超像素块的质量,产生明显的差异,图18 $ m $ =40时不同超像素块数量(K=300和K=400)的对比。

    图  18  不同K值的超像素预分割对比图
    Fig.  18  Comparison of superpixel pre-segmentation with different K values
    下载: 全尺寸图片

    图18中可以看出,超像素数量较多的SLIC分割结果,将许多缝隙和尺寸很小的区域进行分割,如图18中的椭圆形框区域;在设置 $ K $ =400使用SLIC算法进行预分割时,极大缓解了候选子区域中出现误合并的情况,因此,为了避免上述提及的问题,在使用SLIC算法生成超像素块时,将超像素块的数量K设置为400,其他参数不变。之后经过实验得出,使用YCbCr色彩空间并且设置阈值 $ \psi $ =0.08,可以得到误合并情况最少的结果。

    粗合并完成后,可以将一张完整的岩石图像划分为多个子区域,然后利用分类模型对这多个子区域进行分类,相邻且为同类别的子区域会进行最终的合并,最后进行边界标注,得到分割结果。图19为两组待分割岩石图像从使用SLIC超像素算法进行预分割,到使用颜色阈值进行粗合并,最后完成岩石图像分割的过程。

    图  19  岩石图像分割
    Fig.  19  Rock image segmentation
    下载: 全尺寸图片

    图19可见,使用SLIC算法和粗合并方法很大地缓解了子区域不纯的问题。前期训练得到的分类模型的准确率为96.1%,对单一种类岩石图像的识别已经达到了一个很好的效果。从图19(d)中可以看出,使用的方法对岩石图像分割有较好的效果,基本没有出现误合并的现象,只存在少量的合并不完全情况。

    本文采用的SLIC算法和半监督学习结合方法,能够准确地将岩石图像中不同的组分进行分割,而且能识别出各个组分的类别,同时实现对岩石图像分割和识别的功能。在对岩石图像进行分割时,边界贴合度等问题依赖于使用的SLIC算法,过分割问题的处理依赖于构建的岩石组分分类模型。

    本文基于SLIC超像素算法和半监督学习自训练算法从底层开始实现岩石分割与识别,需要人工设定超像素算法参数并且人工标注少量数据,其余部分都是自动化处理的。研究过程中发现以下几点待解决的问题:

    1) 数据集本身分辨率不高,将一些尺寸很小的子区域尺寸提高到固定尺寸会导致分辨率更低,因此,在利用分类模型对子区域进行识别时,可能会出现识别错误的情况。为了避免这一情况,如何通过增强图像的分辨率来提高模型准确度有待进一步研究。

    2) 不管是在使用超像素算法进行预分割、对超像素块进行粗合并,还是利用分类模型对子区域进行识别,岩石图像中的缝隙都会为之后的过程造成很大的困难,对于缝隙的处理是岩石图像领域一个较为棘手的问题。

    3)目前在图像领域中,自然场景的图像已经可以通过端到端的网络进行识别和分割,但是在岩石领域的研究中使用端到端网络的情况很少,未来将端到端网络模型应用到岩石领域是一个热点方向。

  • 图  1   岩石图像中存在的多目标问题

    Fig.  1   Multi-objective problem in rock images

    下载: 全尺寸图片

    图  2   岩石图像中存在的多尺度问题

    Fig.  2   Multiscale problem in rock images

    下载: 全尺寸图片

    图  3   分类模型训练流程

    Fig.  3   Classification model training flow chart

    下载: 全尺寸图片

    图  4   图像分割流程

    Fig.  4   Image segmentation flowchart

    下载: 全尺寸图片

    图  5   主模型网络结构

    Fig.  5   Main model network structure

    下载: 全尺寸图片

    图  6   评判模型网络结构

    Fig.  6   Judgment model network structure

    下载: 全尺寸图片

    图  7   分割方法对比

    Fig.  7   Comparison of Segmentation Methods

    下载: 全尺寸图片

    图  8   超像素预分割对比图

    Fig.  8   Image of Superpixel pre-segmentation comparison

    下载: 全尺寸图片

    图  9   “尖端状”超像素对比图

    Fig.  9   Comparison of tip-shaped superpixels

    下载: 全尺寸图片

    图  10   SLIC算法对不同岩石图像预分割

    Fig.  10   Different rock images are pre-segmented by SLIC algorithm

    下载: 全尺寸图片

    图  11   ψ=0.1时不同色彩空间的区域合并对比图

    Fig.  11   Regional merge comparison chart of different color spaces when ψ=0.1

    下载: 全尺寸图片

    图  12   使用相同阈值和不同色彩空间的区域合并对比图

    Fig.  12   Contrast map for region merge using the same threshold and different color spaces

    下载: 全尺寸图片

    图  13   使用不同阈值和不同色彩空间的区域合并对比图

    Fig.  13   Contrast map for region merge using the different thresholds and different color spaces

    下载: 全尺寸图片

    图  14   半监督学习流程

    Fig.  14   Semi-supervised learning process

    下载: 全尺寸图片

    图  15   自训练过程中数据量和模型性能变化

    Fig.  15   Changes in data volume and model performance during self-training

    下载: 全尺寸图片

    图  16   混淆矩阵

    Fig.  16   Confusion matrix

    下载: 全尺寸图片

    图  17   模型训练准确率变化

    Fig.  17   Accuracy change during model training

    下载: 全尺寸图片

    图  18   不同K值的超像素预分割对比图

    Fig.  18   Comparison of superpixel pre-segmentation with different K values

    下载: 全尺寸图片

    图  19   岩石图像分割

    Fig.  19   Rock image segmentation

    下载: 全尺寸图片

    表  1   自训练算法

    Table  1   Self-training algorithm

    自训练算法伪代码
    Initial t=0, Lt=L, Ut=U //初始化标签数据集和无标签数据集
    While length(Ut) != 0 //存在无标签数据
      使用Lt训练分类器M
      If H: //满足置信度要求
        R=(Ut, argmaxM(Ut));//满足置信度要求的伪标签数据
        Ut=UtR;//更新无标签数据集
        Lt=Lt+R;//更新标签数据集
        t=t+1;
      End If //不满足置信度要求
      If 不存在大量满足置信度H的数据:
       End while //结束算法迭代
      End If //本次算法迭代生成大量满足置信度要求的数据
    End while //不存在无标签数据,结束算法迭代
    L = Lt,使用L训练分类器M
    输出训练完成的分类器M
  • [1] 王春瑶,陈俊周,李炜.超像素分割算法研究综述[J].计算机应用研究,2014,31(1):6–12. doi: 10.3969/j.issn.1001-3695.2014.01.002

    Wang Chunyao,Chen Junzhou,Li Wei.Review on superpixel segmentation algorithms[J].Application Research of Computers,2014,31(1):6–12 doi: 10.3969/j.issn.1001-3695.2014.01.002
    [2] Felzenszwalb P F,Huttenlocher D P.Efficient graph−based image segmentation[J].International Journal of Computer Vision,2004,59(2):167–181. doi: 10.1023/B:VISI.0000022288.19776.77
    [3] Shi Jianbo,Malik J.Normalized cuts and image segmentation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(8):888–905. doi: 10.1109/34.868688
    [4] Zhu Lei,She Qi,Zhang Bin,et al.Learning the superpixel in a non-iterative and lifelong manner[C]//Proceedings of the 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).Nashville:IEEE,2021:1225−1234.
    [5] Vincent L,Soille P.Watersheds in digital spaces:An efficient algorithm based on immersion simulations[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1991,13(6):583–598. doi: 10.1109/34.87344
    [6] Vedaldi A,Soatto S.Quick shift and kernel methods for mode seeking[M]//Nugent R.Lecture Notes in Computer Science.Berlin:Springer Berlin Heidelberg,2008:705−718.
    [7] Levinshtein A,Stere A,Kutulakos K N,et al.TurboPixels:Fast superpixels using geometric flows[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2009,31(12):2290–2297. doi: 10.1109/TPAMI.2009.96[PubMed
    [8] Achanta R,Shaji A,Smith K,et al.SLIC superpixels compared to state–of–the–art superpixel methods[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2012,34(11):2274–2282. doi: 10.1109/TPAMI.2012.120[PubMed
    [9] Sharma V,Mir R N.A comprehensive and systematic look up into deep learning based object detection techniques:A review[J].Computer Science Review,2020,38:100301. doi: 10.1016/j.cosrev.2020.100301
    [10] Lowe D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91–110. doi: 10.1023/B:VISI.0000029664.99615.94
    [11] Dalal N,Triggs B.Histograms of oriented gradients for human detection[C]//Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05).San Diego:IEEE,2005:886−893.
    [12] Freund Y,Schapire R E.Experiments with a new boosting algorithm[C].Proceedings of Thirteenth International Conference on International Conference on Machine Learning.Bari:Morgan Kaufmann,1996,13:148−156.
    [13] Sain S R.The nature of statistical learning theory[J].Technometrics,1996,38(4):409–409. doi: 10.1080/00401706.1996.10484565
    [14] Krizhevsky A,Sutskever II,Hinton G.Imagenet classification with deep convolutional neural networks[J].Communications of the ACM,2017,60(6):84–90. doi: 10.1145/3065386
    [15] Simonyan K,Zisserman A.Very deep convolutional networks for large−scale image recognition[EB/OL].(2015−04−10)[2022−05−01].https://arxiv.org/abs/1409.1556.
    [16] Szegedy C,Liu Wei,Jia Yangqing,et al.Going deeper with convolutions[C]//Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).Boston:IEEE,2015:1−9.
    [17] He Kaiming,Zhang Xiangyu,Ren Shaoqing,et al.Deep residual learning for image recognition[C]//Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).Las Vegas:IEEE,2016:770−778.
    [18] Girshick R.Fast R−CNN[EB/OL].(2015−09−27)[2022−05−01].https://arxiv.org/abs/1504.08083.
    [19] He Kaiming,Gkioxari G,Dollár P,et al.Mask R−CNN[C]//Proceedings of the 2017 IEEE International Conference on Computer Vision (ICCV).Venice:IEEE,2017:2980−2988.
    [20] Redmon J,Divvala S,Girshick R,et al.You only look once:Unified,real−time object detection[EB/OL].(2016−05−09)[2022−05−01].https://arxiv.org/abs/1506.02640.
    [21] Rubo R A,Carneiro C C,Michelon M F,et al.Digital petrography:Mineralogy and porosity identification using machine learning algorithms in petrographic thin section images[J].Journal of Petroleum Science and Engineering,2019,183:106382. doi: 10.1016/j.petrol.2019.106382
    [22] Niu Yufu,Mostaghimi P,Shabaninejad M,et al.Digital rock segmentation for petrophysical analysis with reduced user bias using convolutional neural networks[J].Water Resources Research,2020,56(2):1–11. doi: 10.1029/2019wr026597
    [23] Qiao Weidong,Zhao Yufei,Xu Yang,et al.Deep learning-based pixel–level rock fragment recognition during tunnel excavation using instance segmentation model[J].Tunnelling and Underground Space Technology,2021,115:104072. doi: 10.1016/j.tust.2021.104072
    [24] 司晨冉,王仁超,邸阔,等.一种基于Mask R–CNN和分水岭算法的岩石颗粒图像分割方法[J].水电能源科学,2020,38(11):129–132.

    Si Chenran,Wang Renchao,Di Kuo,et al.A rock particle image segmentation method based on mask R–CNN and watershed algorithm[J].Water Resources and Power,2020,38(11):129–132
    [25] Karimpouli S,Tahmasebi P.Segmentation of digital rock images using deep convolutional autoencoder networks[J].Computers & Geosciences,2019,126:142–150. doi: 10.1016/j.cageo.2019.02.003
    [26] 刘雅芬,郑艺峰,江铃燚,等.深度半监督学习中伪标签方法综述[J/OL].计算机科学与探索,2022[2022–05–10].http://kns.cnki.net/kcms/detail/11.5602.TP.20220114.1715.013.html
    [27] 吕佳,李婷婷.半监督自训练方法综述[J].重庆师范大学学报(自然科学版),2021,38(5):98–106.

    Lü Jia,Li Tingting.A summary of semi-supervised self-training methods[J].Journal of Chongqing Normal University (Natural Science),2021,38(5):98–106
    [28] 刘丽丽,周绍光,赵婵娟,等.基于伪标签深度学习的高光谱影像半监督分类[J].计算机工程与应用,2019,55(17):191–198. doi: 10.3778/j.issn.1002-8331.1904-0077

    Liu Lili,Zhou Shaoguang,Zhao Chanjuan,et al.Semi-supervised classification of hyperspectral image based on pseudo-label deep learning[J].Computer Engineering and Applications,2019,55(17):191–198 doi: 10.3778/j.issn.1002-8331.1904-0077
    [29] 王宇,李延晖.一种基于协同训练半监督的分类算法[J].华中师范大学学报(自然科学版),2021,55(6):1020–1029. doi: 10.19603/j.cnki.1000-1190.2021.06.011

    Wang Yu,Li Yanhui.A semi-supervised image classification algorithm based on collaborative training[J].Journal of Central China Normal University (Natural Sciences),2021,55(6):1020–1029 doi: 10.19603/j.cnki.1000-1190.2021.06.011
    [30] 姜枫.基于语义识别的砂岩薄片图像分割方法研究[D].南京:南京大学,2018.

    Jiang Feng.Research on segmentation of sandstone thin section images based on semantic identification[D].Nanjing:Nanjing University,2018.
    [31] 周莉莉,姜枫.图像分割方法综述研究[J].计算机应用研究,2017,34(7):1921–1928. doi: 10.3969/j.issn.1001-3695.2017.07.001

    Zhou Lili,Jiang Feng.Survey on image segmentation methods[J].Application Research of Computers,2017,34(7):1921–1928 doi: 10.3969/j.issn.1001-3695.2017.07.001
图(19)  /  表(1)

本文结构

    /

    返回文章
    返回