书馆banner

您的位置:首页 > 书馆 > 技术资料 > 隧道技术

基于计算机视觉技术和深度学习的隧道掌子面岩体裂隙自动识别方法研究

作者:罗 虎, Miller Mark,张 睿,方 勇  发布:2023/7/10  浏览:
单位:西南交通大学土木工程学院,四川川交路桥有限责任公司

摘 要:对掌子面图像的裂隙识别和特征提取进行研究,首先根据隧道中光照不足和光线不均匀的特点,对掌 子面图像集进行包含多种光照处理措施在内的数据增强;通过Unet网络识别掌子面轮廓,其平均交并比和平均相 似度为91%和93%;利用形态学操作使掌子面轮廓边缘平滑,消除噪点。然后利用拆分-拼接策略处理高分辨率掌 子面图像,通过 DeepCrack 网络模型迁移学习识别岩体裂隙,其平均交并比和平均相似度为 61% 和 75%。利用 Zhang-Suen算法和8邻域标记算法进一步对识别结果进行细化、骨架化和连通域分析。最后,通过控制点标记和腐 蚀标记法计算每条裂隙的像素级长度和倾角。

1 引 言

在山岭隧道建设过程中,由于地质条件复杂多变,往往前期的地质勘察不能全面反映实际的地质状况,因此随着隧道施工推进,需要随时关注隧道围岩条件的变化情况,及时对不合理的施工参数进行动态调整和修正,降低对施工质量的影响。围岩条件是设定施工参数的重要考虑因素之一,对隧道开挖方法选择、支护参数设计和爆破布置具有指导意义。

随着计算机视觉技术的发展和图像采集设备的普及,通过掌子面数字图像快速掌握围岩状况成为一个热点问题,特别是如何从掌子面表面图像获取岩体裂隙信息,进而描述节理倾向、倾角和间距等岩体特征。周春霖等提出“去噪-均衡化-阈值分割”的红外图像预处理思路,能够有效解决图像噪声和照度不均匀问题,并通过霍夫变换技术将围岩裂隙特征线性显示。冷 彪等通过二维傅里叶变换、直方图均衡化和灰度折线变换等方法对图像进行增强,然后利用HIS 色彩空间与C 均值聚类算法实现图像分割,并基于图像梯度与路径搜索算法设计“人工智能剪刀”实现对掌子面结构面边界的半自动化提取,并且开发了“隧道掌子面地质信息系统”,可对裂隙进行提取、编辑、过滤和分组等。王诗言在此基础上又提出利用Livewire算法对局部图像细节裂隙特征进行磁性追踪提取。上述研究都是基于传统的计算机视觉技术,近年来人工智能领域飞速发展,诞生了诸多用于图像领域的图像分类、语义分割和目标检测等任务的深度学习算法,例如 LeNet、AlexNet、ResNet、VGG、Inception、Unet 和 YOLOv 系列等卷积神经网络算法,并且广泛地运用在土木工程结构监测领域,例如盾构隧道的裂缝和渗漏水监测。在隧道掌子面图像信息提取任务中,引入卷积神经网络算法,能够提高图像处理的精度和速度。查焕奕利用 ResNet-51 模型对掌子面整体特征(岩石混合、破碎、涌水和粗糙程度等)进行分类以及对节理位置进行识别。李赤谋等基于SFM技术对掌子面进行三维重建,使用自研软件Bamboo拼接出全景展开图,然后分别基于Unet神经网络和ZhangSuen算法对节理进行迹线识别、提取和骨架化。

现有研究成果中,由于图像处理各阶段使用不同的软件或者半自动化操作,具有联系不紧密和处理不连贯的缺点,无法适应隧道快速建造中对智能化和效率的要求。因此,本文基于计算机视觉技术和深度学习算法(Unet 和 DeepCrack 卷积神经网络模型),研究隧道掌子面岩体裂隙识别系列方法,对隧道掌子面图像进行自动化图像增强、轮廓提取、裂隙识别和裂隙特征描述。

2 掌子面裂隙识别方法

本文对掌子面岩体裂隙识别的主要步骤为数据集制备、轮廓提取、裂隙识别和裂隙特征描述,流程如图1所示。

图1 掌子面裂隙识别方法

目前山岭隧道工程大多具有独立性,数据共享性差,与大数据和云计算技术的结合性弱,因此首先需要自行采集、处理和构建掌子面图像数据集。掌子面轮廓提取与裂隙识别分别是整体和局部图像的二分类语义分割问题,利用Unet神经网络能够快速高效地提取高级轮廓特征,DeepCrack 神经网络能够快速准确地识别低级裂隙特征。利用计算机视觉技术对裂隙进行细化、连通域分析和控制点标记,计算各裂隙的长度和倾角,实现对掌子面图像裂隙的特征描述。

3 数据集制备

3.1 图像采集

采集设备:佳能EOS 90D单反相机、手机、两台200 W的LED投射灯。

采集过程:山岭隧道每一次掘进循环的施工工序为钻孔、装药、爆破、出渣,在进行钻孔与装药工序时,掌子面前方架设有施工台车。为了在不影响施工进度、保证自身安全的前提下采集完整的掌子面图像,采集时间确定为装药后至爆破前和爆破后(排险后)至钻孔前这两个时间段。采集时,将投射灯放置在掌子面前方约5 m处,左右各一台,确保光线均匀。对每一个掌子面,拍摄多张不同角度和高度的照片。

利用上述方法在峨汉高速大峡谷隧道、沿江高速胜利隧道、鲁昆山隧道和宁南隧道采集不同地质和施工条件下的掌子面图像(图 2),形成原始图像数据集(表1)。图2(b)为装药后至爆破前图像,其中掌子面上分布有明显的引线;图2(c)为爆破后至出渣前图像,由于此时掌子面附近还未完成通风,空气中悬浮大量岩尘,使得掌子面图像较为模糊;图2(d)为出渣后至钻孔前图像,掌子面平整、清晰、无台车遮挡,但是局部可能存在挖掘机造成的划痕。

表1 图像数据集信息


图2 掌子面图像采集

3.2 数据增强

在采集隧道掌子面图像时,由于施工人员进行作业、施工台车遮挡、掌子面处通风效果不理想、投射灯布置不均匀等因素,可能造成图像模糊、掌子面不完整和光线差异大等问题。因此需要进行数据增强,增加数据量,提高模型的鲁棒性。由于隧道环境复杂,光线不足,图像色彩信息受环境光线分布和拍摄设备参数的影响较大,因此需要增加经过不同光线处理的图像集,提升模型的泛化能力。本文采取的数据增强手段主要分为3种:一是几何变换,包括镜面翻转、-45°~45°随机旋转和随机裁剪;二是添加随机椒盐和高斯噪声;三是随机光线处理,包括均值白平衡、灰度世界假设、自适应矫正、混合偏色矫正和直方图均衡化等。首先在保持图像长宽比的基础上,将其尺寸缩放至512×512(非图像区域用黑色填充),然后每张图片产生9张增强图像,图像数据集由219张扩充为1 971张,图像增强示意如图3所示。

图3 图像增强示意

3.3 图像标注

利用图像标注软件Labelme对掌子面轮廓和裂隙进行手动标注,将标注结果进一步二值化为对应的掩膜,其中掌子面区域内像素值为255,其他区域为 0。为防止图像像素发生变化,将所有掩膜图像保存为“.png”无损压缩格式。

4 轮廓提取

4.1 网络结构

采用Unet神经网络进行掌子面轮廓提取,其结构如图4所示。Unet网络结构简单,运行效率高,搭建方便,适用于小规模数据集,因此被广泛地运用在医学图像识别等语义分割任务中。在进行隧道掌子面轮廓提取时,为了后续能够按照掩膜图对原始图进行1∶1轮廓提取,编码(encoder)与解码(decoder)中的卷积层(反卷积层)参数设置如表2所示,使得输出的特征图尺寸与输入尺寸一致。

图4 Unet结构示意

表2 Unet模型结构参数设置

4.2 损失函数选择

损失函数分别采用交叉熵(Cross Entropy)函数、Dice系数函数和权重系数为0.5的交叉熵-Dice系数函数(记为组合函数)。使用PyTorch深度学习框架搭建模型,设定训练集、验证集和测试集之比为7∶1∶2。训练过程中损失函数变化曲线与验证集评价指标曲线如图5所示。可以看出,3种损失函数整体变化趋势相同,均能达到较好的训练效果;交叉熵损失函数与 Dice 系数损失函数后期波动幅度较大,而组合函数在训练后期收敛较明显;3种损失函数对应的验证集Dice系数值大小关系为:组合函数>Dice 系数函数>交叉熵函数。因此,采用组合函数作为损失函数的模型比采用单一交叉熵函数或Dice系数函数的模型具有更高的稳定性和准确性。

图5 损失函数曲线与验证集评价曲线

4.3 图像识别评价指标

采用交并比(IoU)和相似度(Dice)对模型精度进行评价。其中IoU为预测结果与真实标签像素的交集与并集之比,用于对分割区域的完整性进行评价;Dice为集合相似度度量指标,反映了预测结果与真实标签的相似程度与模型预测的精度。

式中:p为像素;T、P分别为真实标签和预测标签的前景区域。

计算测试集的评价指标,其平均交并比为91%,平均相似度为93%。掌子面轮廓识别结果如图6所示,可以看出,模型对于掌子面轮廓识别效果较好,能够完整地识别出整个掌子面的外轮廓。

图6 掌子面轮廓识别结果

4.4 边界平滑处理

利用Unet神经网络提取掌子面轮廓后,为了使轮廓更加贴合,需进一步对提取出的图像进行平滑处理,消除轮廓边缘锯齿和图像中的噪点。利用计算机视觉技术中的形态学操作对二值图像中的前景进行处理,可以有效地细化掌子面轮廓,使边缘光滑。对图像进行开运算操作:先对图像进行腐蚀,收缩轮廓,消除噪点,然后对腐蚀结果进行膨胀,使轮廓适当地扩张,填充锯齿和微小缺口,减小前景图像的损失,如图7所示。同时通过形态学操作能够提高掩膜图像的IoU和Dice评价指标。

图7 掌子面轮廓提取流程

5 裂隙识别

5.1 网络结构

采用DeepCrack 网络结构进行掌子面裂隙特征识别。模型架构与经典的边缘检测模型HED类似,如图8所示,由拓展完全卷积网络(FCN)和深度监督网络(DSN)两部分组成,其中 FCN 以 VGG-16模型的前13层为骨干网络,并在卷积层和ReLU激活函数之间加入批规范化层(BN)以提高模型泛化能力,通过尺寸为1×1的卷积核向侧输出层输出特征图,经过上采样处理,形成一张尺寸与输入图像相同的中间特征图,最终将各个侧输出层多尺度和多层次的特征图融合,通过GF方法细化后输出,形成特征预测结果。由于DeepCrack结构组成中不含全连接层(FC),因此可以接收任何尺寸图片的输入。

图8 DeepCrack网络结构图

5.2 损失函数

设 训 练 集 为 {( Xn,Yn ), n = 1, ...,N},其 中 Xn ={ x j ( n ), j = 1, ..., | Xn | }为输入掌子面图像,Yn = { y j( n ) , j =1, ..., | Yn |, yj( n ) ∈ { 0, 1}}为对应的二值化掩膜图。记骨干网络中的所有参数为 W,侧输出层的权重为w = { w( m ),m = 1, ...,M }(M为侧输出层的个数)。侧输出层具有深度监督学习作用,每个侧输出层连接一个 Softmax 分类器,并且以交叉熵函数作为损失函数。由于掌子面图像中裂隙区域与非裂隙区域的比值很小,因此为了提高损失函数的敏感性,对交叉熵函数引入类平衡权重系数w0和w1。其中w0为1,w1为训练集中非裂隙与裂隙区域像素点数量之比。所以,侧输出层的损失函数表示为:

融合层的损失函数同样为类平衡交叉熵损失函数:

最终整体的损失函数由侧输出层和融合层两部分的目标函数组成:

ℒ = ℒside ( X,Y,W,w ) + ℒfuse ( X,Y,W )             (6)

5.3 掌子面图像拆分与拼接

为了保留更细致的掌子面裂隙信息,在制定模型输入与输出图像数据集时应当减少尺寸的变化,减少图像质量的损失。但是如果单张图像的像素过大,会导致模型训练和预测时内存占用大。因此本文首先将拍摄的高清掌子面图像进行适应性尺寸调整(式7),将原图像(w0 × h0)缩小至能够整除窗口尺寸(w × h)的最大尺寸(w′ × h′),然后按照窗口尺寸进行图像拆分。拆分后形成小尺寸图像集和拓扑关系数据,其中拓扑关系数据包含原始图像信息表(图像编号id和尺寸w×h)和小尺寸图像信息表(小尺寸图像编号 id、中心坐标 x,y 和对应的原始图像编号img_id)。

最后将预测局部图片按照拓扑关系合并拼接形成完整的掌子面裂隙图。这种对原图像进行适应性调整-拆分-提取-合并的处理方法能够在尽可能保证图像质量的前提下,提取更多的图像细节裂隙,并且进一步扩充了数据集,利用标准化小尺寸图像进行网络模型的训练与预测,对计算机的内存需求降低,裂隙识别流程如图9所示。


图9 裂隙识别流程示意

5.4 模型识别精度评价

采用 PyTorch 搭建神经网络模型,训练时利用预训练权重初始化网络参数,对模型进行微调,设定学习率为10-5( 初始学习率的1/10)。通过计算评价指标定量评判模型的识别效果,测试集的平均交并比和平均相似度分别为61%和75%,说明模型能够有效准确地识别出大部分的掌子面岩体裂隙。从图10所示的识别结果可以看出,所有岩体裂隙的位置和形态均能被正确标识,但是受光线照射角度和岩体不规则表面影响,局部会产生少许的“伪裂隙”和噪点,其中“伪裂隙”可以通过调整灯光照射角度降低不规则边缘与周边的对比度进行优化,噪点可以通过裂隙细化进行消除。


图10 掌子面岩体裂隙识别结果

6 裂隙细化

为了对识别的岩体裂隙进行量化,需要对裂隙灰度图(或二值图)进行进一步细化处理。

6.1 裂隙骨架提取

采用经典的Zhang-Suen快速并行算法对裂隙进行骨架化。算法每一次迭代过程分为两部分进行,每一部分均遍历像素值为1的点,对满足指定条件的像素点进行标记和删除。经过多次循环迭代上述两个部分,直到整个图像中没有满足条件的点,最后得到单层像素宽度的裂隙骨架(图11)。

式中:A ( P1 )表示P1邻域(若无特别说明,均表示如图12所示的8邻域)中非零像素点的个数;B ( P1 )表示P1邻域中,像素值按照顺时针方向从 0到1变化的次数。

图11 岩体裂隙识别与骨架化


图12  8邻域示意

6.2 连通域分析

采用改进的 8 邻域标记算法对裂隙骨架进行分析,得到前景像素点的拓扑关系,并对每一条或一组独立裂缝进行区分(图 13)。遍历所有前景图像的像素点,标记规则如下:

(1)若 P9,P2,P3,P8 均为 0,则 P1 属于新的连通域;

(2)若 P8,P3 均为 1,则将两点所在的连通域合并,标记为两点中的较小标记值,P1 同属于该连通域;

(3)若 P9,P3 均为 1,则将两点所在的连通域合并,标记为两点中的较小标记值,P1 同属于该连通域;

(4)若P1的邻域不符合上述三种情况,则按照P8—P9—P2—P3的顺序,对P1进行标记。

图13 裂隙连通域分析

6.3 像素点标记

对裂隙骨架图像中的前景像素点进行分类标记(图14),一共分为四类:裂隙点、端点、分叉点和孤立噪点,其中端点和分叉点为裂隙的控制点,用于表示裂隙的始末位置。记8邻域像素值之和为S,遍历前景像素点,对像素点P1标记规则如下:

(1)S = 0时:P1为孤立噪点;

(2)S = 1时:P1为裂隙端点;

(3)S = 2时:P1为裂隙像素点,即构成裂隙的非控制点;

(4)3 ≤ S ≤ 5 时:若 B ( P1 ) ≤ 2,则 P1 为裂隙点,若B ( P1 ) > 2,则P1为分叉点;

(5)6 ≤ S ≤ 8时:P1为分叉点。

图14 裂隙控制点标记

6.4 计算裂隙长度和倾角

本文提出一种“腐蚀标记”的方法对裂隙长度进行计算,其中裂隙的基本构成形式分为三种:端点-裂隙点-端点、端点-裂隙点-分叉点、分叉点-裂隙点-分叉点。对属于同一连通域的裂隙进行长度和倾角(与水平线逆时针方向的夹角,0°~180°)计算的流程为:

(1)以端点为起始点的搜索:将P1标记为0,依次检查P1邻域中的对角邻接点(P3,P5,P7,P9)和4邻接点(P2,P4,P6,P8),将第一个像素值为1的点标记为裂隙路径上的点,其他像素值为1的点标记为0,并计算标记点到P1的距离,然后再次以标记点为P1进行重复操作。直到P1点为未被腐蚀(标记为0)的端点或者分叉点时,该点便为此裂隙分支的结束点,计算起始点和结束点构成线段的倾角,停止搜索。

(2)对包含两个及以上分叉点的连通域而言,需进行以分叉点为起始点的搜索:记分叉点为 P1,将其邻域中值为1的点视为一个路径分支,按照对角邻接点、4 邻接点的顺序对每一个分支进行路径点搜索和长度累计,计算方法与(1)相同。对每一个分支,直到某一个P1点的邻域中包含未被腐蚀(值为1)的分叉点时,停止该分支的搜索。当所有分支均停止搜索时,计算起始点和结束点构成线段的倾角,结束搜索。

(3)将长度像素值为小于2的裂隙视为毛刺,进行舍弃。

按照上述的“腐蚀标记”法对图14中的裂隙进行分析,并将计算结果与人工对原图裂隙标注计算结果进行对比,以人工标注结果为约定真值分别计算裂隙长度和角度的相对误差,如图15所示。统计裂隙描述信息如表 3 所示,可以看出,误差基本在7%以内,其中裂隙计算长度一般大于标注长度,这是因为手动标注采用多段线对裂隙拟合会忽视裂隙局部细节,整体精度满足工程需要。

图15 裂隙分支信息(单位:pixel)

表3 裂隙描述信息

7 结 论

通过对掌子面图像进行处理分析,提取裂隙信息,能够反映节理发育和岩体裂隙分布情况。本文结合深度学习和计算机视觉技术,对隧道掌子面图像进行光线处理、轮廓提取和裂隙识别,得出以下结论:(1)在采集掌子面数字图像时,由于隧道内环境复杂、光线不足,导致图像的噪点增多、光线分布不均以及色彩变化大,需要对图像进行光线矫正处理或色彩扰动,以增强模型对不均匀光照的适应能力。

(2)使用Unet神经网络提取掌子面轮廓,具有适应小规模数据集、速度快、效率高和准确率高的特点。对 Unet 神经网络提取的轮廓图进行开运算操作,能够进一步平滑轮廓线,提高轮廓的完整性和相似度。

(3)基于 DeepCrack 神经网络结构的微调模型能够快速提取掌子面表面裂隙。通过对图像的拆分和拼接,能保留高分辨率图像中更多的裂隙细节,利于卷积神经网络模型识别图像中的低级语义特征,同时对电脑内存要求降低。

(4)利用本文的方法可以自动提取掌子面岩体裂隙,并且对裂隙的长度和倾角特征进行自动计算。从输入掌子面数字图像开始,到输出显示岩体裂隙的分布和特征描述信息结束,整个过程可以自动进行,无需手动调节超参数。

限于人力不够和数据集的丰富性不足,本文仅进行了裂隙识别与部分特征值描述,后续将在扩大图像和标注数据集的基础上,进一步对掌子面裂隙种类进行细分,研究裂隙特征的分组描述方法,并建立裂隙特征与围岩分级指标的关联模型,实现对隧道掌子面整体或局部稳定性的自动、快速、准确分析。

摘自《现代隧道技术》

隧道网版权及免责声明:

凡本网注明“来源:隧道网”的所有作品,版权均属于隧道网,未经本网授权,不得转载、摘编或以其它方式使用上述作品。已经本网授权使用作品的,须在授权范围内使用,并注明“来源:隧道网”。违反上述声明者,本网将保留追究其相关法律责任的权利。凡本网来源注明为非隧道网的作品,均转载自其它媒体,转载目的在于传递更多信息,该文章仅代表作者观点,并不代表本网赞同其观点或对其真实性负责,请读者自行核实相关内容,仅作参考。如因作品内容、版权和其它问题请与本网联系。

关键词

相关文章

网友评论

发表评论

发表评论 (回复限1000字以内!)

加载更多...


隧道网手机版
隧道网微信公众号
╳ 关闭