APP下载

基于YOLO v3 的煤岩钻孔图像裂隙智能识别方法

2021-05-10苏钰桐杨炜毅李俊霖

煤矿安全 2021年4期
关键词:裂隙钻孔边界

苏钰桐,杨炜毅,李俊霖

(中国矿业大学 信息与控制工程学院,江苏 徐州221008)

现有的研究表明岩体内部的结构面分布决定了岩体的稳定性[1-2]。在煤矿生产过程中,为了评价巷道围岩稳定性,常采用煤岩体钻孔窥视的方法了解围岩裂隙发育状况[3-4],目前钻孔图像的裂隙识别、分类等工作多采用人工的方式。由于钻孔图像数量较多,工作量大,容易由于人为差别造成漏识别或识别误差[5]。采用机器智能识别可以有效减少误差,提高工作效率。

煤岩体钻孔裂隙机器识别的核心任务是确实裂隙分布的位置和大小,针对该问题,王川婴[6]通过观察钻孔图像上裂隙的产状,将正弦函数作为特征函数,提出了一种钻孔图像结构面识别方法,可以有效识别产状为正弦曲线的裂隙。夏丁[7]等首先对钻孔图像进行预处理,获取目标区域,采用低精度Hough变换快速检测和聚类算法计算出结构面的倾向、倾角等信息。对于破碎的巷道围岩,其围岩内部裂隙并不都是呈正弦曲线状,以上方法不能有效的识别非正弦曲线裂隙。为了解决这个问题,邹先坚[8]为了识别钻孔图像非正弦曲线特征裂隙,提出一种针对全景钻孔图像的结构面全自动识别方法,把非正弦曲线裂隙划分到距离最近正弦曲线裂隙中,以保证识别的完整性。针对非正弦结构状裂隙,李立[9]等基于自适应HSV 颜色空间模型,提出了钻孔图像中溶隙结构识别方法,此方法能对钻孔图像上的溶隙和土质层进行定位和识别。针对钻孔录像横向截图,邓兆鹏[10]等提出了一种基于改进的区域生长和Hough变换的钻孔孔壁图像水平裂隙识别算法,该裂隙识别算法对于不同的水平裂隙和离层图像都可以准确、自动地检测出裂隙。目前采用卷积神经网络进行钻孔图像裂隙识别鲜有报道。

卷积神经网络(Convolutional Neural Networks,CNN)是一种深度学习模型或类似于人工神经网络的多层感知器,在图像处理领域应用广泛,它可以将大数据量的图片降维成小数据量,并保留图片特征,符合图片处理的原则[11]。相比通用的目标检测任务,煤矿井下钻孔孔壁展开图像质量低,裂隙辨识度低,特别是煤体裂隙,需要将裂隙准确检测出来,这对目标检测算法的准确度提出了更高的要求。综合考虑,采用同时兼顾速度和检测精度的YOLO v3 算法,并建立煤岩体钻孔图像裂隙智能识别模型[12]。

1 检测算法与网络结构

1.1 YOLO v3 检测算法

钻孔图像裂隙检测过程如图1。

YOLO v3 算法采用一个单独的卷积神经网络模型实现end-to-end 的目标检测,先将图片分成S×S个网格单元(gird cell)进行图像特征提取。每个单元格会预测B 个边界框(bounding box)以及边界框的置信度C(confidence score)。每个边界框包含x、y、w、h 和置信度C 共5 个值,其中:x、y 为边界框中心点的置;w、h 为边界框的宽度和高度。置信度包含2个方面:①这个框中目标存在的可能性大小Pr(obj),若框中没有裂隙,则Pr(obj)=0,若含有裂隙则Pr(obj)=1;②这个边界框的位置准确度,采用IOU(交并比)的方法判断边界框的位置的准确度,即预测的框与真实框(ground truth)合并面积交并比记做IOU(intersection over union),IOU 计算示意图如图2。置信度为这个方面取值的乘积,置信度用来评判预测最准确的边界框。当多个边界框检测到同一目标时,通过非极大值抑制(NMS)来选择最终的结果,NMS 就是通过打分来选出最好的结果,与这个结果重叠的对象去掉,是一个不断迭代的过程。

图2 IOU 计算示意图Fig.2 IOU calculation diagram

YOLO v3 目标边界框坐标的预测过程如图3,图中σ 函数是sigmoid 函数,其目的是将预测偏移量缩放到0 到1 之间。假设1 个网格相对于图像左上角的偏移量是cx和cy,边框的宽度和高度分别为pw和ph。图中虚线矩形框为锚框(anchor box),实线矩形框为通过网络预测的偏移量计算得到的预测边界框(bounding box),锚框与预测边界框的对应关系如图中公式所示。预测偏移量(offsets)用tx、ty、tw、th表示,其中tx、ty是预测的坐标偏移值,tw、th是尺度缩放。偏移量根据原图尺寸进行归一化处理,可以有效的确保目标中心处于执行预测的网格单元中,防止偏移过多。

图3 目标边界框位置的预测过程Fig.3 Prediction process of target bounding box position

1.2 YOLO v3 网络结构

YOLOv3 架构图如图4。YOLO v3 调整了网络结构,图像特征提取采用的是Darknet-53 的网络结构,含有53 个卷积层,并借鉴了残差网络的做法,在一些层之间设置了快捷链路(shortcut connections),并增加了跳层的残差模块。YOLO v3 利用多尺度特征进行对象检测,网络在3 个不同尺度特征图中(82、94、106 层)进行对象检测。同时在每个尺度的特征图的每个网格设置3 个先验框。使用Logistic 取代Softmax 进行对象分类,支持多标签对象。YOLO v3进行5 次下采样提取特征,输出3 个不同尺寸的特征图。然后在85 层进行上采样,同样的操作在98层。

图4 YOLO v3 架构图Fig.4 The architecture diagram of YOLO v3

1.3 损失函数

YOLO v3 的损失函数置信度损失和分类损失为二值交叉熵损失,其能刻画2 个概率分布之间的距离,也就是说,交叉熵值越小,2 个概率分布越接近,同时利用sigmoid 将神经网络的输出映射到一个(0,1)区间[13]。YOLO v3 的损失函数定义如下:

2 钻孔图像数据集

挑选不同煤矿井下顶板300 张钻孔图像作为样本,采用开源工具LabelImg 软件绿色矩形框对钻孔图像的裂隙进行人工标记、注释和编号,制作VOC 2007 数据集,将xml 格式文件全部放入Annotations文件夹,将所JPEG 格式图片文件放入JPEGImg 文件夹中,然后将文件夹中20%的图片作为验证集,80%图片作为训练集,其中1 号孔~6 号孔钻孔图像裂隙分布数据集如图5。

图5 钻孔图像裂隙分布数据集Fig.5 Fractures distribution data sets of borehole image

在目标检测中xml 格式训练数据的标签通常是基于绝对坐标的表示方式的,而在训练的过程中通常会有尺度大小的变换,这就需要将边框坐标转换为归一化后的形式,即txt 格式数据,转换如式(2),通过编写Python 小程序转后的txt 格式文件分别包含类别序列(label),标注边界框(ground truth)中心点x 方向坐标,目标中心点y 方向坐标y,标注框宽w,标注框高h。

式中:xmax、ymax为边框右下角坐;xmin、ymin为边框左上角坐标;a、b 分别为图像宽和高。

3 训练环境及参数配置

基于TensorFlow 及Keras 框架搭建神经网络,试验采用DarkNet53 深度学习框架。计算机配置为Intel Core i7-8700H CPU,2.20 GHz 6 核12 线程,显卡为NVIDIA Quadro P1000 4GB 独立显卡,32 G 内存,所有程序均在Windows 10 系统下用Python 3 语言编写,图像显示处理调用OpenCV 库、数据计算调用CUDA、CuDNN 等。

采用k-means 算法对训练集上的预测框(boudnding box)尺度做聚类,图像转换为416×416 像素,以适于YOLO v3 的输入。然后再分成13×13 像素的网格单元,以便于输入网络进行训练。以1 幅图像为1 个批次,每训练1 批图像,更新1 次权值参数。权值的衰减速率(decay)设为0.000 5,学习率调整策略采用steps,动量因子(momentum)设为0.9,最大训练次数设置为50 020,初始学习率(learning rate)设为0.000 1。在开始训练时设置burn_in 参数用于稳定模型,burn_in 设置为1 000 在迭代次数为40 000和45 000 时,学习率降低为初值的10%和1%,使模型在训练后期振荡减小,从而更加接近最优解。

在训练过程中,通过绘制模型损失曲线观察训练动态过程,损失函数的输出结果如图6。由图6 可看出,模型在前期迭代中损失值快速缩减,模型快速拟合,第1 个循环结束损失值下降至53,第11 次循环时,损失值收敛至35 时,不在变化,结束训练。

图6 损失函数的输出结果Fig.6 Output results of loss function

4 训练结果验证

训练完成后,将测试集分别输入到训练好的网络模型中进行测试验证,得到目标检测算法对测试集中钻孔图像裂隙的检测结果,识别速度为2 s 左右,裂隙识别结果如图7(图7 中横坐标为x 像素坐标,纵坐标为y 像素坐标),裂隙识别位置信息见表1。

图7 裂隙识别结果Fig.7 Recognition results of fractures

表1 裂隙识别位置信息Table 1 Location information of fracture recognition

由图7 可以看出,钻孔图像上的裂隙基本被识别出并进行了标记。从图7(a)可以看出,不仅横向裂隙别识别出来,纵向裂隙也被识别出;从图7(b)可以看出,对于裂隙分布比较密集的钻孔图像,所有裂隙均被识别出来,识别精度较高;从图7(c)可以看出,对于裂隙分布不明显的图像,不明显裂隙均被识别出;从图7(d)可以看出,由于钻孔设备造成的类似裂隙痕迹的完整钻孔图像,识别结果为无裂隙,表明网络模型具有一定的抗干扰能力。表1为程序自动生成的裂隙坐标位置与裂隙率,可以大概估计裂隙数量和裂隙分布面积,有助于评价岩体稳定性。

5 结 语

为了实现煤岩体中各种特征裂隙智能快速识别,提出了基于深度神经网络YOLO v3 算法的裂隙检测方法。方法采用最新Darknet-53 网络模型,增加跳层的残差模块以改进网络结构,同时融合多维度特征。试验结果表明YOLO v3 算法可以快速识别钻孔图像不同发育特征裂隙,满足煤岩体裂隙检测的要求。

猜你喜欢

裂隙钻孔边界
充填作用下顶板底部单裂隙扩展研究①
守住你的边界
高应力岩层巷道钻孔爆破卸压技术
旋挖钻孔灌注桩在软土地基处理中的应用研究
某高架桥水上钻孔灌注桩施工及质量控制
潘庄煤层气区块3号煤多尺度裂隙特征
突破非织造应用边界
裂隙脑室综合征的诊断治疗新进展
建筑施工中钻孔灌注桩技术研究
意大利边界穿越之家