基于CV 技术的矿物粒度分析算法研究进展
2023-03-15熊振宇石若愚任可一高悠扬
熊振宇,石若愚,任可一,高悠扬
(中国矿业大学(北京)化学与环境工程学院,北京 100083)
1 研究背景
矿物粒度组成作为矿物加工过程中的一项重要指标,主要分析方法包括筛分分析法、沉降分析法、计数法、超声波粒度法等。目前比较有代表性的设备有美国丹佛公司的PSM400 超声波粒度分析仪,原理为利用超声波通过矿物时的能量衰减对矿物粒度进行检测[1];以及PSI-500 激光衍射粒度分析仪,其通过激光照射颗粒时,散射光随着颗粒的直径增加而衰减[2]。
矿物粒度组成对于成品质量有着较大的影响,例如对金属球团矿而言,铁精矿粒度对生球的落下强度和爆裂温度存在影响[3]。至于煤炭洗选加工过程中,可以通过控制旋流器入料粒度组成进一步提高分选效率,此外对于成品商品煤对粒度也有着一定的要求,循环流化床锅炉的入料煤粒度需要在8~13 mm 之间,否则将无法形成流化层[4]。因此基于CⅤ技术的矿物粒度的快速准确分析在实际生产中有着广泛的应用前景。
2 CV 技术基本原理
GILSON 于20 世纪50 年代提出的“光流”是研究机器视觉的开始,从那时起开始对二维图像识别进行研究,70 年代Marr 视觉理论的出现是机器视觉快速发展的时期,如今CⅤ技术作为近年来快速发展的学科,在工业、农业、军事、医药、航空等方面有着广泛的应用,其具有测量速度快及准确度高的特点。相较于同样具有快速粒度分析的XRD(X 射线衍射)技术而言,CⅤ技术不同于XRD 利用X 射线对粉体粒径进行测量。
机器视觉技术是计算机视觉在工业上的重要应用,其通过视觉捕捉装置捕获图片后经过图像处理系统,根据处理结果对设备进行控制。分析矿物粒度的CⅤ技术包括图像预处理技术与图像分割技术。例如,对煤的图像预处理需要先将相机拍照或摄像得到图像进行去噪处理,减少图像获取过程中的自然光及外界补光的影响,再进行灰度变换及亮度变换,降低黑色背景的皮带对煤等矿物的干扰作用,提高局部图像的对比度并降低后续的图像处理量;随后进行图像的滤波,通过滤波器对图像上的煤进行处理,使得其边缘更加锐利,便于后续的分割与识别[5];经过预处理的图像通过图像分割与计算后得出矿物的粒度。
3 矿物图像的粒度分析算法
3.1 图像预处理算法
图像预处理是图像处理的一个重要步骤,由于煤的对比度不高并相互覆盖,再加上实际生产过程中不同区域的灯光差异、皮带的强烈振动、物料的运动均对图像的处理有着较大的影响。因此,通过一系列的变换将图片转变为更适合计算机识别的形式,无论是对于后续的图像分割处理难度还是处理结果的准确率都有着较大的影响。
3.1.1 图像变换
在煤炭加工过程中所做的图像变换主要包括灰度变换和亮度变换,而目前比较简单的方法就是将图像二值化。通过相机拍摄的彩色图像与阈值进行对比,改变图像的灰度将图像转化为0 和1 二值图。常用算法包括Otsu 二值化算法与Kittler 二值化算法。
Otsu 算法也称为最大类间方差法,算法的思想是使阈值与图像背景和目标主体这2 类的类间差距尽可能地大,因此需要使用灰度直方图计算灰度值大小作为横轴,而纵轴为灰度相同的像素块的数量。高斯滤波降噪后直方图将呈现双峰式分布特点,取直方图双峰之间中间值作为阈值。而Kittler 算法则是将图片的平均灰度作为阈值,相对于Otsu 算法而言,Kittler 算法的处理速度更快,适合处理像素较高的图像[6]。
3.1.2 图像滤波
图像滤波又称为图像平滑,在矿物图像处理过程中用的较多的为高通滤波和低通滤波,高通滤波作用于空间域上。高通滤波器会阻止正弦曲线中振幅变化较小的区域通过而放行变化较大的区域,经过滤波变化的图片会保留像素快速变化的区域而使图像锐化;而低通滤波则会保持低频像素值区域,使图像变得平滑,保留物体大致轮廓信息。
3.2 矿物颗粒图像分割算法
图像分割是机器视觉中一个至关重要的技术,是图像处理中不可或缺的一环,煤粒图像能否准确提取决定了后续粒度计算的准确率。由于在图像获取过程中存在着噪声、光照不均匀、煤粒堆叠等情况,导致了图像分割过程中可能存在过分割或欠分割等现象。因此,选择一个合适的图像分割算法在矿物粒度分析过程中极为重要。
3.2.1 Sobel 算法
Sobel 算法的主要思想是考察图像的每个像素上下左右邻点灰度的加权差及与之接近的邻点权大[7],而加权差超过一定阈值时判定为边界。具体可以通过Sobel 算子对图像进行卷积计算来实现。Sobel 算子如图1 所示,其中Gx左侧为负,右侧为正;而Gy上侧为正;下侧为负。经过卷积运算后Gx相当于像素点右侧灰度减去左侧然后乘以权重,Gy则相当于下侧灰度减去上侧再乘以权重。
图1 Sobel 算子
进行计算时,先令Sobel 算子的中心与图像的某个像素在同一位置,以该点为中心取3 行3 列的图像灰度值,其每个像素的灰度值与相对应的算子相乘后累加起来,将卷积函数计算出来的最大值作为该像素新的灰度值,取代图像中模板中心位置的像素值[8]。以幅值Gxy衡量变化率,若幅值大于阈值,则将其视为边界。将像素点沿x、y轴移动,遍历整张图片从而实现边界分割的功能。其中Gxy表达式如下:
Sobel 算子计算方法简单,使用加权平均算法能够有效地抑制图像的随机噪声。但是只利用2 个方向的模板[9]对图像进行边缘检测,检测边缘很不完整存在过分割现象。当用Sobel 算法来检测紧密排列的煤粒时,图像分割出的某些细节部分的边缘太粗,导致后续粒度分析误差增加。
3.2.2 Roberts 算法
与Sobel 算法相似,Roberts 算法同样是通过卷积运算出Gx与Gy,通过式(1)计算出幅值Gxy。比较幅值的大小与设定的阈值来判断是否为边界,移动像素点位置遍历整张图片的边界。Roberts 算子是一种交差差分算子,如图2 所示,其根据对角线方向相邻2个像素的灰度差来计算幅值[10]。由图2 算子的形式可知,Gx为左上角像素点灰度与右下角像素点灰度相减,Gy为右上角像素点灰度与左下角像素点灰度相减。表达式为:Gx=f(i,j)-f(i+1,j+1),Gy=f(i,j+1)-f(i+1,j)。
图2 Roberts 算子
Roberts 算子对图像边缘检测而言定位精度高,在水平和垂直方向效果较好[11]。但该算子对噪声较敏感,无法消除局部干扰,当检测煤粒图像时,由于煤粒与皮带的背景颜色相似,导致煤粒的边缘分割出现间断。Roberts 算法在处理矿物图像时具有很大的局限性。
3.2.3 Canny 算法
利用一般的单阈值算法处理后的二值图像有2 个缺点:①选取的阈值过低时将会包含许多伪边缘,不能准确检测出真正的边缘;而当阈值选取的过高时将会导致过分割,形成边缘破裂。②检测出来的边缘过粗,无法得到某些细节部分的边缘[12]。Canny 算法是1986 年提出的一个基于Sobel 算子的最佳边缘检测算子[13],包括非极大值抑制法和双阈值方法,可以很好地解决上述单阈值算法的2 个缺点。
Canny 算法首先将经过高斯滤波后的图像根据3.2.1 中Sobel 算法卷积计算像素点的Gx和Gy,随后根据公式(1)(2)计算出幅值Gxy与角度θ,非极大值抑制法如图3 所示。已知g1、g2、g3、g4的梯度幅值与θ,根据插值法可求出g5与g6的值,当O点的幅值大于其经过的临近点g5、g6时将O点设为保留点,否则将抑制非极大值点O。而双阈值法是通过给定的高低阈值来进行边缘的检测,进行伪边缘点的剔除和边缘的连接[14],若梯度幅值大于高阈值则认定其必定为边界,而若其低于低阈值则认定其必定不是边界并将其灰度设为0。只有在高阈值与低阈值之间的像素点会检测该像素点8 个相邻点的幅值,若相邻某点被判定为必定为边界,该点也会同时被设定为边缘。
图3 非极大值抑制法
Canny 算法由于采用了高斯滤波,虽然可以过滤高斯噪声[15],但是将导致某些图像某些边缘信息的丢失。在后续的处理中这些重要边缘可能会被双阈值给过滤掉,不利于后续的粒度分析。其次,由于双阈值的选取具有主观性,通常依赖操作人员的经验,而阈值选取的好坏将直接影响图像分割的效果[12]。在实际的皮带煤粒的检测中,其分割效果好于Sobel 算法。
3.2.4 分水岭算法
分水岭算法主要针对灰度变化,图像上每个像素点的灰度代表该像素点的地势的高度,因此图像整体可以根据灰度抽象为一个曲面。通过向地势最低点的盆地注水找到山脊,而盆地的边界则会形成分水岭,根据分水岭划分的区域即为目标区域。
具体方法为先通过遍历整张图片中的像素及其领域内的像素灰度值找到极小值区域,若领域内某像素点有相同最小值则再搜索一次该像素点领域,查看是否还有相等的灰度值,若还存在则重复上述操作,这样就能得到极小值区域,并将极小值区域设为一种颜色。注水过程是用一个队列实现,将极小值区域中每个值加入队列中,每次选择其中灰度值最小值将其赋值视为被淹没,接着将其的邻域加入队列,并继续选择队列中的最小值幅值将其淹没,循环操作直至队列清空处理完整张图片。淹没的颜色取决于该点邻域的颜色,2 种颜色的交界部分即为分水岭,如图4 所示。
图4 分水岭算法
传统分水岭算法的分割过程是比较盲目的,易受噪声点的影响产生过多的极小值点,在进行像素排序和模拟浸没的过程中,误把噪声点区域当成盆地。目前发明了许多基于分水岭的改进算法,如基于距离变换的分水岭算法具有较好的效果,在矿石分割领域对于过分割具有良好的优化效果[16]。
3.2.5 三维图像点云分割
对于煤粒图像的分割除上述算法外还可以利用双摄像头拍摄图像,将三维成像图分割成包含当前位置的坐标值、颜色值、时间等信息的点云图。通过点云分割的算法实现煤粒图像分割。RANSAC 算法便是一种常见的点云分割算法。其主要思想是将现实中常见的几何体如平面、球形、圆柱等作为基本模型来模拟拟合点云图。通过不断地迭代优化方法得到最佳的拟合模型参数,而随着迭代次数的增加会提高参数合理的概率[17]。
RANSAC 算法先从样本集中选出一组子样本用来表达目标模型,并且计算模型参数。随后通过判断该模型内局内点的数量,如果模型内的点即局内点数量越多而局外点越少则表示该模型的质量越好。不断重复上述的操作,迭代更新质量最好的模型直到迭代次数达到后得到最终结果。据研究,三维点云分割算法图像处理效果较二维算法有着较大的提升,可以有效分割出煤粒区域。不过在处理紧密排列的煤粒时仍然存在一定误差[18]。
3.3 矿物粒度分析
通过矿物图像分析粒度时常使用等效替代法,即通过计算煤粒的特征参数达到使用标准矩形或圆形等效替代矿物粒径的目的。常用特征参数包括周长、面积径、外接矩形长等。以面积径为例,当对图像面积进行计算时得到的只是像素点的数量,为了得到实际的面积需要使用以下公式进行标尺转换,即r=某方向实际长度/该方向像素点个数,单位为mm/px。转换后的真实面积S根据公式计算,即可得到等效替代后的粒径D[19]。
4 结论
本文对近年来的CⅤ技术在矿物粒度分析中所用到的图像预处理、图像分割、粒度计算等算法进行了综述。随着计算机的发展,图像处理技术越来越多地应用于工业生产中,相较于传统基于经验的人工操作,通过计算机进行图像分析与识别有着速度快效率高的特点,可以很好地满足企业节省时间提高效率的需求。然而由于目前生产的大型化已经成为趋势,矿物的堆叠及现场复杂环境对摄像机拍摄照片的影响都制约着CⅤ技术在实际中的应用。根据前人的研究,目前的图像分割算法在处理堆叠矿物图像时除RANSAC 算法的效果相对较好之外,其他算法都有着一定的局限性。除RANSAC 算法外,在处理含有复杂细节的图像时基于距离变换的分水岭算法优于Canny 算法,并优于上述其他算法。当然,未来的CⅤ技术分析矿物粒度随着硬件设备及算法的更新换代,势必有着更广阔的前景。