APP下载

基于改进Mask R-CNN的露天矿边坡裂隙智能检测算法

2023-04-07阮顺领卢才武刘丹洋顾清华

重庆大学学报 2023年2期
关键词:掩码露天矿裂隙

景 莹,阮顺领,卢才武,刘丹洋,顾清华

(西安建筑科技大学 a.管理学院;b.资源工程学院;c.西安市智慧工业感知计算与决策重点实验室, 西安 710055)

矿山高陡边坡滑坡经常威胁到人们的生命财产安全,造成环境和资源的破坏,是制约矿山安全生产的核心问题[1],滑坡灾害作为一种严重的地质灾害,其发生的原因往往是未及时进行科学的边坡病害检测。其中裂隙是最主要、最明显的边坡病害表征之一,对露天矿边坡稳定具有重要影响,因此,选择科学合理的方法对露天矿边坡裂隙进行准确、实时的检测,对边坡进行及时有效的管控,对于保证矿山安全生产,提高矿山经济效益,具有重要的理论意义和实际意义。

随着图像处理、深度学习和机器视觉技术的发展,基于图像的无损检测技术已成为国内外裂隙检测的研究热点。近年来,为了从图像中准确、快速地提取裂隙,国内外学者对此进行了广泛而深入的研究,取得了一定的研究成果。刘晓瑞等[2]提出了一种利用两种不同阈值分割方法对图像进行二值化处理的裂隙快速检测方法;Li等[3]构造了最大化两个类别之间差异的目标函数,提出了一种基于邻域差异直方图的图像阈值分割裂隙算法,准确地提取出了裂隙。这类基于阈值分割的裂隙检测算法计算简单,便于应用,但是易受到噪声影响,适用于特征较明显的目标,对于复杂环境下的边坡裂隙图像很难取得稳定的识别效果。张娟等[4]指出了传统基于灰度进行边缘提取的裂隙检测算法的不足,提出了采用相位编组法进行裂隙提取,有利于检测具有弱对比度的细小裂隙;王华等[5]提出了利用分形维数分割裂隙的方法,与利用Sobel算子的方法相比,得到的裂隙较为连续、清晰;这类基于边缘检测和形态学特征的裂隙识别算法能够很好地检测边缘,对于裂隙检测具有重要的借鉴价值。Amhaz等[6]提出了一种基于二维图像,同时考虑光度计特征和路面图像几何特征的裂隙检测算法;Nguyen等[7]提出了一种综合考虑图像亮度和连通性的裂隙检测方法,该方法不需要进行裂隙纹理学习,可以进行默认检测,简称为FFA(free-form anisotropy)算法;在裂隙检测方面,除了上述这些传统主流裂隙检测算法外,还有很多其他方法[8-14]。

虽然上述方法对于常见的特征明显的裂隙图像具有较好的识别效果,但是露天矿边坡裂隙图像具有较多复杂的特征,如背景纹理复杂,噪声多样,裂纹分布不规律,表面形态极不规则和接触方式具有复杂性等,所以传统的裂隙检测算法在露天矿边坡裂隙图像上检测效果不甚理想,不能很好地进行裂隙检测。随着机器学习和深度学习理论的不断发展[15],基于有监督学习的裂隙识别算法成为近年来研究的热点,在深度学习中,数据的特征是通过训练过程自动学习得到的,不需要通过预定义的特征提取阶段,只需要提供足够多的数据,就可以训练出更加通用健壮的检测模型。其中,卷积神经网络(CNN)作为在图像识别,语音识别以及文字识别等领域都具有广泛应用的经典深度学习网络,在裂隙检测方面也具有突出的优势。通过对裂隙检测的相关文献进行收集整理发现,目前还未有针对复杂背景下的露天矿边坡裂隙进行检测的模型,但是针对桥梁、路面以及建筑混凝土等一般结构进行裂隙检测的方法主要有以下3种:图像分析检测方法、机器学习检测方法以及深度学习检测方法。对这3种方法进行对比分析的结果如表1所示,从中可以发现,基于图像分析的方法较简单,具有最少的计算复杂度和内存需求,而基于深度学习的方法无论是在内存需求还是操作成本方面都是最昂贵的,计算复杂度也最高。尽管基于图像分析的方法的计算效率很高且成本较低,但是针对边坡裂隙这类具有背景纹理复杂,噪声多样,裂纹分布不规律,表面形态极不规则和接触方式复杂的图像,其检测效果非常不准确,如图1(c)(d)所示。相对地,基于深度学习的方法却具有最好的识别准确性、算法鲁棒性以及泛化能力,这些特性都是计算严格的识别方法所期待的。虽然基于机器学习的方法同时具有较低的计算成本、较高的计算效率以及和深度学习方法相当的检测准确性和算法鲁棒性,但是,这些性能都需要在具体特征定义的前提下才能实现。这一点并不适合露天矿边坡裂隙图像,因为其通常不具有任何可以用来区分裂隙面元和背景面元的几何特征和纹理特征等信息。然而,深度学习中的卷积神经网络具有非常强大的特征提取能力和目标识别能力,如图1(e)~(f)所示。

表1 裂隙检测主要方法优缺点对比结果

图1 边坡裂隙检测效果对比Fig. 1 Effects of slope fracture detection

通过图1所示的露天矿边坡裂隙检测对比图可以发现,选择将集目标识别与语义分割为一体的Mask R-CNN深度学习框架作为露天矿边坡裂隙检测模型构建的基础时,具有较高的准确率和检测效率。但是,直接运用骨干网络为ResNet50的Mask R-CNN模型对露天矿边坡裂隙进行检测时,仍存在误检以及裂隙边缘不清晰的情况。所以,笔者提出了一种基于改进Mask R-CNN的露天矿边坡裂隙智能检测算法,用于检测边坡裂隙并进行裂隙分割、定位。该算法首先采用基于滑动窗口算法的图像预处理对采集的边坡图像进行数据增强,然后利用基于SVM构建的分类模型对边坡裂隙面元和边坡背景面元进行分类识别,最后针对露天矿边坡裂隙面元,提出了一种基于改进Mask R-CNN的检测模型,实现对露天矿边坡裂隙的目标检测及裂隙分割。该模型可以在数据量有限的情况下完成对露天矿边坡裂隙图像的分类,目标识别以及裂隙分割三大任务,如图2所示。经过大量对比实验证明,与传统裂隙检测算法相比,该算法对于露天矿边坡裂隙具有更好的识别效果和更高的泛化能力,以及更加精准地分割边缘。

图2 露天矿边坡裂隙Fig. 2 Open-pit mine slope fractures

1 Mask R-CNN网络模型分析

露天矿边坡裂隙图像中的裂隙和背景之间区分往往不明显,且背景纹理和裂隙表面形态复杂,而Mask R-CNN能够自主学习得到可描述裂隙和背景之间差别的特征,实现像素级语义分割,可以有效地检测出图像中的裂隙对象,并同时为每个对象生成高质量的分割掩膜,Mask R-CNN的网络流程如图3所示。

图3 Mask R-CNN网络流程图[16]Fig. 3 Mask R-CNN network flowchart[16]

Mask R-CNN的构建在概念上十分简单,在Faster R-CNN[17]针对每个对象所输出的类别标签以及边界框的基础上,增加第3个输出分支,即对象掩码,是一种实现目标检测和语义分割集成为一体的深度神经网络框架,其骨干网络架构如图4所示。为了清晰起见,可将其分为两部分:1)用于对整个图像进行特征提取的卷积骨干结构;2)用于边界框识别(分类和回归)的头网络和分别应用于每个ROI(region of interest)的掩码预测网络。到目前为止,许多国内外学者已经设计出了一些性能优异的CNN框架,例如,AlexNet[18]、VGG[19]、ResNet[20]和DenseNet[21]等。在检测不同的目标时,这些CNN框架所具有的精确度和性能都有所不同,骨干结构网络的性能决定了后续网络在目标检测和实例分割任务方面的性能,Mask R-CNN常采用ResNet作为其骨干网络框架,但是目前还没有实验证明其中最适合用于露天矿边坡裂隙检测的卷积骨干架构网络是哪个。

图4 Mask R-CNN骨干网络架构图[16]Fig. 4 Mask R-CNN Backbone network architecture

Mask R-CNN是一个两阶段的实例分割网络模型,在第1个阶段利用区域建议网络(region proposal networks, RPN)来完成在图像上的滑动扫描,寻找出存在目标的ROI区域,然后在第2个阶段并行地对RPN找到的每个ROI预测其分类和定位,并输出其对应的二进制掩码。在模型训练的过程中,骨干特征提取网络提取到的P2、P3、P4、P5、P6作为RPN网络的有效特征层,RPN网络通过分类器预先检查哪个ROI位置包含目标,然后通过回归器来相应地调整先验框的位置,最终为检测到的类别和区域生成相应的建议框。Mask R-CNN为每个取样得到的ROI定义了一个多任务的损失函数如式(1)所示。

L=Lcls+Lbox+Lmask,

(1)

式中:Lcls为分类网络的损失值,Lbox为建议框网络的损失值,Lmask为掩码分支网络的平均二进制交叉熵损失值。

然后,在MaskR-CNN中引入了特征金字塔网络(featurepyramidnetwork,FPN)[22],即取出在主干特征提取网络中压缩了2,3,4,5次的特征层C2、C3、C4、C5来构造FPN,实现了特征信息的多尺度融合,这使得网络不仅能够有效利用低特征层进行高分辨率特征的精确定位,还能够使掩码分支对高特征层的低分辨率特征进行分割。FPN使用具有横向连接的自顶向下体系结构,从单尺度输入构建网络内特征金字塔。MaskR-CNN采用ResNet-FPN的骨干结构网络进行特征提取能在检测精度和速度上都有所提高[16]。

2 露天矿边坡裂隙检测模型

2.1 边坡裂隙检测网络优化模型

通过对露天矿边坡裂隙特征的分析,结合MaskR-CNN网络模型的特点提出一种边坡裂隙智能检测模型,如图5所示。该模型包含以下3个步骤:1)基于滑动窗口算法对边坡图像进行数据增强等预处理操作,并利用基于SVM构建的边坡图像数据分类模型对数据集进行预分类;2)基于ResNet构建边坡裂隙多尺度特征提取网络;3)基于空洞空间卷积池化金字塔构建边坡裂隙分割模型,以解决图1中所提到的检测存在误检、漏检以及边缘粗糙、不精细的问题。

图5 用于检测露天矿边坡裂隙的改进的Mask R-CNN网络结构Fig. 5 Improved Mask R-CNN network structure for detecting cracks in open-pit mine slopes

2.2 边坡裂隙多尺度特征提取

针对裂隙检测优化模型在下采样的过程中会出现局部细节信息丢失问题,采用在掩码分支引入空洞空间卷积池化金字塔的方法对模型进行优化。

在边坡裂隙检测模型的骨干卷积神经网络中,由于特征金字塔网络底层特征和高层特征的融合路径较长,在提取特征信息时,底层特征信息在前向传播的过程中损失严重,进而影响后续的分类、边界框回归以及掩膜生成,从而导致了部分边坡裂隙出现漏检以及分割精度不高的情况。为解决这一问题,在提取特征时保留特征金字塔的底层特征信息,在MaskR-CNN中引入空洞空间卷积池化金字塔(atrousspatialpyramidpooling,ASPP)模块,来增强特征信息的感受野。采用采样率分别为1,6,12,18的空洞卷积对顶部特征映射图进行并行空洞卷积操作,可以在不损失分辨率的情况下增大有效特征层特征中心的感受野。感受野是每个有效特征层输出特征图上的像素点在输入图像上的映射区域,其计算公式如式(2)所示。

式中:jl为第l层特征图上相邻元素间的像素距离,sl为第l层的步幅大小,kl为第l层的卷积核大小,rl为第l层的感受野边长,cl为第l层特征图的感受野中心坐标。骨干卷积网络对输入图像进行了4次下采样后,输入空洞卷积层的特征图变为32×32×2 048,经过3次卷积核为3×3的空洞卷积操作后,特征图中心特征点的感受野依次为13×13,25×25,37×37。利用并行的空洞卷积组成特征金字塔能够将多尺度的边坡裂隙特征融合,使特征层中保留更多的边坡裂隙特征信息。

2.3 边坡裂隙目标分割

在Mask R-CNN中得到分辨率28×28的掩码之后,会将其直接插值回原像素的尺寸,这种操作会直接导致回插的掩码边缘像素十分不准确。为了解决在Mask R-CNN中边缘不够精细的问题,考虑到掩码边缘的像素点一般为预测不准确的像素点,结合Kirillov等[23]提出的PointRend中先对这些不准确的点进行单独处理,再对其他部分的像素点采用直接插值的方法,对Mask R-CNN的掩码预测分支进行了进一步的改进。

在模型训练阶段和测试阶段设置了灵活地、自适应的选点策略,然后为每一个采样点重建特征向量,预测其分类,为掩码重新分割标签,优化了分割采样方法,实现了分类分割迭代上采样,通过一步步的循环迭代生成满足像素精度要求的分割掩码,避免了对像素点逐一计算所造成的算力过大的问题。

在测试阶段的每次迭代中,先使用双线性插值对其先前预测的裂隙分割结果进行一次上采样操作,然后在这个更密集的网络上进行裂隙边缘点的确定,具体过程如图6所示。

图6 PointRend模块[23]Fig. 6 PointRend module[23]

在训练阶段使用基于随机采样的非迭代策略,为裂隙掩码像素点逐点设定不确定性度量,选取多个最不确定的点作为一次采样点,这种灵活的选点策略能够避免在高分辨率的输出中出现过量的计算,造成算力的浪费。接下来,在对被选择出来的点进行特征提取时,通过在选定的点上组合细粒度特征和粗略的预测概率来重新构造逐点特征,为采样点提供更精细的分割细节以及更多的全局背景信息。最后,利用一个轻量型的多层感知机作为预测头网络来进行新的掩码预测,直至掩码精度达到像素要求,为边坡裂隙生成分辨率更高的新的掩码。

3 实验结果及分析

3.1 实验环境及数据准备

图7 边坡整体面貌Fig. 7 Overall appearance of slope

在裂隙检测实验中,需要大量的、带有数据标注及类别标签的边坡裂隙图像分别作为检测模型的训练集、验证集和测试集。但是,到目前为止,国内外还没有公开的带有数据标注和类别标签的、用于深度学习的露天矿边坡裂隙图像数据集。因此利用人工采集以及大疆无人机巡检的方式在某大型露天矿山现场进行了边坡岩体裂隙图像的采集,共采集到矿山现场边坡图像500张。某大型露天矿区总面积为2.51 km2,走向长1 420 m,倾向延伸1 120 m,厚度80~150 m,平均厚度125 m。目前开采境界长2 350 m,宽1 385 m,开采标高1 600~1 072 m,允许最大边坡高度528 m,生产台阶高12 m,最终并段为24 m,设计最终境界台阶为22个,边坡整体面貌如图7所示。

目前所采集到的500张露天矿边坡裂隙图像不能完全满足深度学习模型的训练、验证以及测试的需要,而若仅靠人工采集数据的方式,也将是一个具有挑战性的任务。因此在采集来的500张露天矿边坡裂隙图像的基础上,提出了一种基于滑动窗口算法的露天矿边坡裂隙图像数据集扩增方法,其具体流程如图8所示,该方法能将数据集的容量扩大4倍以上。

图8 基于滑动窗口算法的数据集扩增流程图Fig. 8 Flowchart of data set amplification based on the sliding window algorithm

首先,对在某大型露天矿山现场利用人工采集来的500张边坡裂隙图像(Crackimg1,Crackimg2,Crackimg3,…,Crackimg500)进行归一化处理,得到像素尺寸大小为3 000×2 560,分辨率为75×75的露天矿边坡裂隙数据集(crackimg1,crackimg2,crackimg3,…,crackimg500)。

然后,采用1 024×1 024的固定大小窗口在归一化后的边坡裂隙图像(crackimg1,crackimg2,crackimg3,…,crackimg500)上进行步长为512的重叠滑动,并将每一次滑动后窗口覆盖下的图像区域作为一个边坡图像面元(img1,img2,img3,…)。其中,把包含裂隙的边坡图像面元称为边坡裂隙面元,把不包含裂隙的边坡图像面元称为边坡背景面元。

最后,采用基于支持向量机(SVM)的图像二分类算法对扩增后的边坡图像面元进行分类,选出其中的边坡裂隙面元,经过人工筛查后,对边坡裂隙图像数据集进行水平、垂直翻转或者随机旋转等操作,进一步对数据集进行扩增。最终获得了包含2 052张图像的露天矿边坡裂隙图像数据集,将整个数据集划分为两个集合,其中训练集和验证集为一个集合共包含图像1 900张,用于模型训练;测试集包含剩下的152张图像,用于对模型的训练效果进行测试。

深度学习模型的训练、验证以及测试都需要大量的、带有标注标签的数据集,所以对数据集进行精确的标注也极其重要,本文中对人工扩增后的边坡裂隙图像数据集进行了精确标注。由于边坡裂隙图像形状及结构毫无规律,所以这个标注的过程也是十分艰巨的,为边坡图像中的裂隙分配了红色,其余部分分配了黑色,标注好的图像示例如图9所示。

图9 数据集标注示例Fig. 9 Example of data set annotation

算法的程序是使用Python语言基于深度学习的主流框架TensorFlow、Keras和计算机视觉开源库OpenCV编写的,实验环境为Intel(R)Core(TM)i7-9700 CPU,主频为3.00 GHz,GPU为NVIDIA GeForce GTX 1660Super,显存为6G。

3.2 检测性能分析

数据集的规模大小和质量以及骨干架构网络对于检测边坡裂隙的适应性都制约着裂隙检测模型的检测性能,本实验首先找出了最适合用于检测边坡裂隙的骨干架构网络,然后验证了数据增强对于检测性能所产生的影响。

首先,第1组实验用于测试不同的骨干架构网络对露天矿边坡裂隙检测性能的影响。本组实验包含了3个小实验,实验1,使用ResNet50-RPN-FPN进行模型构建,训练集经过50代训练后,选取最终拟合的权重对测试集进行测试;实验2,使用ResNet101-RPN-FPN构建模型,并对模型设置与实验1相同的初始化参数,并使用相同的训练集和测试集进行实验;实验3,使用ResNet152-RPN-FPN构建模型,其余设置均与实验1、实验2相同。第1组实验的3个小实验的loss值及valloss值的变化情况如图10所示。

图10 模型backbone的loss图Fig. 10 The loss diagrams of the model backbone

由图10(a)可知,当采用ResNet50为检测模型的骨干架构网络时,模型训练到第17代就会出现loss值消失的情况,模型不能得到完全的训练,从而不能获得较好的检测效果;由图(b)(c)可知,当采用ResNet101和ResNet152作为检测模型的骨干架构网络时,模型训练到第40代时已逐步收敛,loss值和valloss值变化趋于平缓,模型得到较好的训练效果。然后,为验证针对边坡裂隙检测模型所提出的基于滑动窗口算法的数据增强对于检测精度的影响,设计了1组对比实验,实验结果如表2所示。

表2 数据增强对露天矿边坡裂隙检测模型精度的影响

在图像分割中通常使用许多标准来衡量算法的精度,选取了PA(pixel accuracy,像素精度)、MPA(mean pixel accuracy,均像素精度)、MIoU(mean intersection over union,均交并比)以及FWIoU(frequency weighted intersection over union,频权交并比)4个评价指标。其中PA是最简单的度量,是检测出的标记正确的像素占总像素的比例;MPA是PA的一种简单提升,计算每个类内被正确分类像素数的比例,然后求所有类的平均;MIoU是语义分割的标准度量,对真实值(ground truth)和预测值(predicted segmentation)两个集合的交集和并集的比值进行计算;FWIoU是MIoU的一种提升,该方法根据每个类出现的频率为其设置权重;其公式如式(3)所示。

式中:IPA表示像素精度,IMPA表示均像素精度,IMIoU表示均交并比,IFWIoU表示频权交并比,k为不包含背景的类别数,pii表示被正确分类的像素数量,pij表示本属于类i但被预测为类j的像素数量,pji表示为本属于类j但被预测为类i的像素数量。根据表2中的数据对比,可以发现,无论Mask R-CNN的骨干网络架构采用ResNet101还是ResNet152,采用基于滑动窗口算法的数据增强都对检测精度有一定的正向影响,对采用数据增强前后的ResNet101和ResNet152在PA、MPA、MIoU以及FWIoU4个评价指标上进行数据对比,可以发现,以ResNet101作为骨干网络结构的裂隙检测模型的评价指标值也相对较高,数据集扩增对于ResNet101的检测精度提高程度较为明显。

3.3 检测效果分析

通过对模型检测性能的实验结果分析,ResNet101和ResNet152在边坡裂隙检测中模型性能接近,需进一步对其检测效果进行直观实验评价,部分实验结果如图11所示。

图11 不同骨干网络架构下边坡裂隙检测效果对比Fig. 11 Slope fracture detection results under different backbone network architectures

根据图11中分别采用ResNet152和ResNet101作为骨干网络架构的露天矿边坡裂隙检测效果对比,可以发现,直接采用Mask R-CNN进行露天矿边坡裂隙检测,在目标检测分支可以对裂隙进行较好的目标识别,但是在掩码分支分割的裂隙掩码精度较低,边缘不清晰,头尾两端较难分割得到。对比图11的第1行和第4行的(b)和(d)可以发现,利用ResNet101分割出的裂隙掩码比利用ResNet152的效果所呈现的连续性较好,边缘分割较精细,但仍存在分割所得的裂隙较宽,与实际裂隙吻合效果较差等缺点。综合上述检测性能实验结果分析中图像增强在ResNet101上所展现出的更好的适应性,可以判断,ResNet101更适合作为裂隙检测模型的骨干架构网络。

然后,为了进一步验证本文算法检测效果在检测精度上的提升,对图12中的第2列图像和第4列图像进行对比可知,本文中所构建的ASPP-PointRend-Mask R-CNN露天矿边坡裂隙检测模型在裂隙检测及分割方面的视觉效果更为精细,裂隙检测结果更为准确,分割出的边缘与真实的裂隙边缘吻合度较高,提取出的裂隙在原图上的定位效果也较为准确。

图12 本文裂隙检测算法与传统Mask R-CNN对于露天矿边坡裂隙检测的效果对比Fig. 12 Comparison of the effects of the proposed fracture detection algorithm with the traditional Mask R-CNN for open pit slope fracture detection

通过以上实验效果及量化分析结果的对比,可以看出相比于主流裂隙检测算法,该检测算法具有更好的适应性和更精细的裂隙边缘分割效果。在包含152张露天矿边坡裂隙图像的测试集上进行了测试,并对其测试结果进行4个方面评价指标值的计算,表3为检测评价结果,可以发现,本文算法在像素精度和均交并比方面的评价指标结果都有0.02以上的提升,检测效果更为精细。

表3 本文算法与原算法检测结果评价对比结果

4 结论与展望

提出了一种基于改进Mask R-CNN的露天矿边坡裂隙智能检测算法,讨论了针对露天矿边坡裂隙图像的基于滑动窗口算法的数据增强,并详细地介绍了该算法在Mask R-CNN上针对掩膜分支的改进点,同时对Mask R-CNN中最适合用于露天矿边坡裂隙检测的骨干架构网络进行了实验分析,并对该算法的改进效果进行了实验验证。实验结果表明,和传统的裂隙检测算法及Mask R-CNN相比,所提出的露天矿边坡裂隙智能检测模型具有更好的识别效果和更精准的分割边缘。

未来进一步的研究重点是:在不断提高算法的识别能力和裂隙分割结果的同时,提高算法的泛化能力,以及对所检测出的边坡裂隙进行进一步的统计分析,度量其属性信息,以便算法在实际的应用过程中,表现出更好的性能,并为进一步的边坡稳定性监测提供数据信息,有效预防露天矿边坡发生滑坡灾害。

猜你喜欢

掩码露天矿裂隙
备战铁矿露天矿与挂帮矿同时开采稳定性研究
裂隙脑室综合征的诊断治疗新进展
露天矿山土石方量的测量及计算
低面积复杂度AES低熵掩码方案的研究
基于布尔异或掩码转算术加法掩码的安全设计*
裂隙灯检查的个性化应用(下)
基于Delphi-TOPSIS法的露天矿采区接续方案优选
河北将对1881个露天矿山开展环境治理
《老炮儿》:在时代裂隙中扬弃焦虑
基于掩码的区域增长相位解缠方法