张振江,张宝金,刘伟新,李云涛,任海龙,荆洪迪,王子介
(1.鞍钢集团矿业有限公司 眼前山分公司, 辽宁 鞍山市 114000;2.中国科学院 沈阳自动化研究所, 辽宁 沈阳 110169)
矿岩的块度不仅是验证爆破工艺的主要指标,也影响着矿山生产效率、成本与安全。因此,实现矿岩图像实时、准确分割对矿山生产有着重要意义。然而由于矿岩分布状况复杂,堆积矿岩相互遮挡现象严重,为矿岩图像分割带来了巨大困难,同时传统分析技术存在精度低、工作量大和局限性强等问题。目前,矿岩图像分割主要采用最大类间方差法(也称OTSU)[1-2]、聚类分析[3-4]、分水岭及其改进方法[5-9],以及基于图论的分割算法[10-11]等方法,它们对特定矿岩图像进行分割,但由于局限性强,需要精确的参数调整[12]。
深度卷积网络由于在图像分割问题中具有分割高效、结果准确的特点,在医学图像领域[13]已经得到广泛应用。深度学习[14]也可以用于矿岩图像分割领域,徐江川等[15]采用U-Net[16]深度卷积网络来解决爆堆图像的分割问题,实现了对岩堆的快速分割。本文为实现复杂工况下地下矿爆堆块度精准、快速识别,提出了一种基于 U-Net卷积网络和OpenCV的矿岩图像分割算法。
由图1(a)可以看出,矿岩颗粒光照不均,颗粒表面纹理复杂,对比度不够明显,这些因素都会影响最后的分割效果。另外,原始图像采用 RGB格式,这将增加网络训练中的计算复杂度。为此,采用以下预处理步骤:灰度化、双边滤波和同态滤波(见图 1)。由图 1(d)可以看出,处理后的矿岩颗粒的图像亮度更加均衡,图像各部分之间对比度增加,暗区图像细节被加强,颗粒间隙更加明显。
图1 现场岩石图像预处理结果
U-Net是基于FCN卷积神经网络的一种变形,其网络结构主要由收缩路径和扩展路径组成。左侧为收缩路径,执行卷积、激活和池化等操作,右侧为扩展路径,用上采样代替池化操作来提高输出分辨率,通过浅层和深层网络层的信息融合,弥补了由池化操作所引起的特征信息丢失。最后,当输入层和网络层的分辨率相同时,再次执行4次卷积操作,如图2所示。
图2 输入尺寸为48×48的网络结构
图 2的 U-Net网络结构中蓝色矩形表示网络层,最上面的数字代表特征通道数,网络层的分辨率大小位于矩形的右下角,白色矩形表示复制的网络层。
实验数据集包括从露天矿采集到的分辨率均为1920×1440的17张矿岩的训练图片,以及3张从网上采集的不同于训练图片风格的矿岩图片。为创建深度学习样本集,以及实验结果对比分析的需要,利用图像处理软件人工描绘矿岩边界得到人工分割图,20张图片总共耗时34 h。
本文算法要求用U-Net深度卷积神经网络对2组训练样本进行训练,分别保存每次训练的模型和权重。第一次训练的样本总数为850 000个,训练样本是从 17张训练图中随机截取得到,平均每张图片截取50 000个样本,每个样本尺寸为48×48。第二次训练的样本总数为34 000个,训练样本是利用第一次U-Net训练得到的模型和权重对17张训练图测试后得到的 17张概率图,平均从每张概率图截取2000个样本,每个样本尺寸是480×480。
(1)绘制概率图。将测试图预处理后平均分割成若干个 48×48小图片,通过已训练好的输入尺寸为48×48的U-Net模型测试得到概率图1。除了概率图1以外,概率图n是将概率修正图n-1平均分割成若干个 480×480小图片,通过已训练好的输入尺寸是480×480的U-Net模型测试得到的。利用OpenCV查找概率图中所有的闭合轮廓及每一个闭合轮廓的周长L和面积A。令从而得到每一个闭合轮廓的k值。
(2)绘制轮廓图。预设定一个值h,利用OpenCV将概率图n的二值化图像中满足k<h和的轮廓绘制出来,得到轮廓图n和S值。n图3展示了某一概率图的部分轮廓图绘制效果。
图3 轮廓图绘制效果
式中,Tn为概率图的二值化图像中满足绘制条件的所有轮廓面积的和,M×N为概率图的分辨率。
(3)绘制概率修正图。利用Opencv将轮廓图n与概率图1合并后,得到概率修正图n。图4展示了某一测试图的部分概率修正图绘制效果。
图4 概率修正图绘制效果
(4)通过对概率图 1中矿岩颗粒边界轮廓的循环优化,得到轮廓图n,若Sn≥1,则得到最终分割图。反之,则利用OpenCV和已训练的U-Net模型继续循环优化概率图1。
基于U-Net卷积网络和OpenCV的矿岩图像分割算法流程步骤如下。
(1)初始值令n=1,Sn=0,h=2。
(2)将测试图像经过灰度化、双边滤波和同态滤波处理后,放入已训练好的U-Net模型进行测试,得到概率图1。
(3)利用OpenCV,通过概率图1得到轮廓图1、S1和概率修正图1。
(4)将概率修正图n放入U-Net网络进行测试,令n=n+1,得到概率图n。利用OpenCV得到轮廓图n、Sn。若Sn<Sn-1,则令h=h+1,再执行步骤(6);若Sn-1≤Sn<1,执行步骤(5);若Sn≥1,执行步骤(7)。
(5)通过轮廓图n,得到概率修正图n。
(6)令n=n-1,重复步骤(4)。
(7)利用OpenCV将轮廓图n和轮廓图n-1合并得到最终结果图。
在实验过程中,对测试图片采用边界补零的方法使图片宽和长变为480的倍数,从而使得该算法能适用于任意分辨率的图片。由于如何准确分割大量堆积的矿岩图像一直是矿岩图像分割方法的难点所在,因此本文采用具有不同矿岩颗粒数量的堆积矿岩图片作为实验图像。实验配置是:Linux操作系统、基于Tensorflow的Keras框架、Intel i5-6500 CPU和NVIDIA GTX 1060图像显卡,U-Net模型训练共耗时90 h左右。
在实验室条件下,通常采用构建数学模型的方法客观评价分割算法的分割精度。在本文中,用 2个性能指标对分割算法进行评价,即正确率(KTPR)和误差率(KEPR),定义为:
式中,Num(y)为集合y中元素的数量,WP为正确分割的矿石目标集合,WTP为分割算法检测的矿石目标集合。
式中,WIN为人工检测的矿岩目标集合,WON为分割算法检测到的矿岩目标集合。
为验证基于U-Net和OpenCV的矿岩图像分割算法实际效果,按照矿岩颗粒数量的不同选取随机矿岩图片进行分割实验,并与OTSU、边缘提取、聚类分析和U-Net分割方法进行比较。由图5能够看出,OTSU法矿岩颗粒粘连严重;边缘提取的方法会出现大量边缘断裂的现象;聚类分析方法对暗区的矿岩颗粒分割效果差,欠分割状况严重;仅采用U-Net模型测试矿岩图像,得到效果图中颗粒间边缘不连续;而本文算法对于堆积矿岩的图像分割效果较好,虽然也存在欠分割的问题,但相较于其他分割算法来说,欠分割数量较少,视觉效果良好。
图5 各种算法的分割效果
由表1可知,本文算法分割矿岩图像准确率较高,在检测大块矿岩时精度达到95%以上,有效降低了过分割现象,分割效果优于其他几种分割方法,可以更好地满足日常矿岩图像分割需求。
表1 各种算法测试结果的性能指标
(1)本文提出了基于 U-Net深度卷积网络和OpenCV的矿岩图像分割算法,提高了提取轮廓的准确率,减少了过分割和欠分割现象,也避免了现有矿岩图像分割方法光照自适应差及参数调整复杂等问题。
(2)针对 U-Net模型测试边缘不连续和粘连问题,利用OpenCV循环优化U-Net模型测试得到的概率图,使得粘连矿岩颗粒的边缘得到准确分割。
(3)本文提出的矿岩图像分割算法鲁棒性较高,可以应用于采场爆堆的爆破效果评价和传送带上的矿石测量。随着人工神经网络的普及,采用深度学习解决矿山存在的问题,对于加快矿山数字化、智能化建设具有十分重要的意义。