1. 引言
通常情况下直接开采的矿石只有极少数富含有用矿,大部分是含有大量脉石的贫矿。由于贫矿有用成分含量低且矿物组成复杂,如果直接用于冶金工业则需要消耗大量能源。因此在矿石冶炼之前必须先经过分选和富集,将大块矿石进行破碎,将各种有用矿物颗粒从矿石中解离出来。各种矿物颗粒的解离是一个粒度逐渐减小的过程。粉碎的矿石粒度过大和过小都会直接影响分选的结果。因此矿物粒度是反映选矿过程中破碎机工作状态的重要指标 [1]。在采用图像法对矿石粒度检测时,采集的图像中矿石大多数都是粘连在一起的。矿石粘连对粒度检测的准确性影响很大,因此粘连分割算法在粒度的检测中十分重要。
迄今为止,已经发展了多种粘连分割处理方法。王天江等人提出基于距离算法分割粘连物体,先跟踪边界,然后根据真实欧式距离所提取的局部极大值点信息来进行分割 [2];王平等人针对黏连图像提出一种简单快速的凹点匹配分割算法,该算法主要通过计算黏连区域的凸闭包,得出黏连区域的凹区。再根据点到特定对角线的最小或最大距离,确定原图像的凹点集合,最后选择最优分割线对黏连区域进行分割 [3];柳冠伊等对粘连二值图使用欧氏距离变化,在距离图的基础上进行分水岭分割,实现了玉米果穗粘连籽粒的分割 [4]。杨蜀泰等人提出了基于极小值合并的分水岭分割算法,该方法应用形态学膨胀将邻近的局部极小值合并成一个区域,使每个米粒内部只有一个局部极小值,再用分水岭算法进行分割 [5]。孙卫红等针对粘连蚕茧难以分割定位的问题,提出了一种基于凹点定向腐蚀的图像分割方法,该方法对图像边界的粘连蚕茧也能实现较好的分割 [6]。孔繁圣等人在此基础上利用改进的多层次距离变换并结合分水岭的分割算法分割粘连的蚕茧图像并计数。在保证单个蚕茧不被分割的情况下逐步将黏连蚕茧进行分离,并将多层次距离变换后的图像作为种子,利用分水岭算法,将蚕茧分割开来 [7]。朱大庆等人提出一种基于两阶段深度学习的砂石图像粒径检测方法,该方法通过第一阶段的网络分割模型对砂石目标进行目标分割。对分割目标进行形态学处理后,很多砂石目标紧密粘连在一起,再通过第二阶段的网络分离模型将粘连的砂石目标分离开来,得到分割且分离的结果图 [8];李晓语等人提出一种基于超像素粒化及同质图像粒聚类的分割方法,将线性迭代聚类方法与纹理特征相结合来进行粘连分割 [9]。
以上粘连分割方法中,有的基于凹点分割、有的基于分水岭算法分割、或基于神经网络分割。其中,基于凹点分割的方法由于岩石表面形状不规则,因此粘连凹点检测可能会有较大误差,容易造成过分割。分水岭算法在粘连程度较大且形状不规则的情况下容易产生欠分割。基于神经网络分割的方法需要先训练模型,然后再进行分割,消耗的资源过大。基于超像素分割算法效果比较好,通过超像素分割将局部区域内的相似像素分配到具有相等像素值的较大超像素区域内,然后通过超像素合并,将相似的超像素块归并为一个像素。但是当连通域面积过小时,传统的超像素分割会使局部区域内的超像素块过多,造成过度分割,同时计算时间也会变长。对此,本文提出了一种基于凹点检测的超像素分割算法。首先对图像进行边缘锐化,将具有相同的像素值的相邻像素组成的集合标记为一个连通域,然后检测每一个连通域的凹点和特征点,通过计算凹点到前驱特征点和后驱特征点的距离来判断该凹点是否为待分割特征点,进而得到该连通域内超像素块的数量来解决过度分割和欠分割的问题。同时提出的算法消耗较少的时间,提高了检测的实时性。
2. 超像素分割
超像素算法是Ren等人于2003年提出和发展起来的图像分割技术,超像素块指具有相似的纹理、颜色和亮度等特征的相邻像素构成的不规则像素块 [10]。简单线性聚类(simple linear iterativeclustering)是基于超像素概念提出的一种思想简单、实现方便的算法。SLIC算法将彩色图像转化为CIELAB颜色空间和XY坐标下的5维特征向量,然后对5维特征向量构造距离度量标准,实现对图像的局部聚类 [11]。SLIC的主要优点有:生成的超像素如同细胞一般紧凑整齐,邻域特征比较容易表达。该方法不仅可以分割彩色图,也可以兼容分割灰度图;需要设置的参数非常少,默认情况下只需要设置一个预分割的超像素的数量 [12]。相比其他的超像素分割方法,SLIC在运行速度、生成超像素的紧凑度、轮廓保持方面都比较理想。SLIC算法的主要步骤如下:
1) 首先将图像从RGB空间转换到Lab空间。Lab空间是基于人眼对颜色的感觉设计的。其主要有三个参数,分别为:L代表亮度、a表示从绿色到红色的分量、b表示从蓝色到黄色的分量。其中,L的取值范围为0~100,a和b的取值范围为−128~127。
2) 初始化种子点(聚类中心)。假设图片总共有N个像素点,预分割为K个相同尺寸的超像素,那么每个超像素的大小为N/K,则相邻种子点的距离近似为
。为了避免种子点处在图像边缘的位置,以及对后续的聚类过程造成干扰,需要将种子点在以它为中心的3 × 3窗口内移动到梯度最小的位置,同时为每一个种子点分配单独的标签。
3) 相似度衡量。对于每个像素点分别计算与之距离最近的种子点之间的相似程度,将最相似种子点的标签赋给该像素。重复迭代该过程,直到收敛。相似程度的计算公式如下:
(1)
(2)
(3)
(4)
其中,
、
和
分别表示种子点在Lab颜色空间中的三个参数;
、
和
表示像素点在Lab颜色空间中的参数;
表示种子点在图片的位置坐标;
表示像素点坐标;
表示像素点与种子点的颜色差异;
表示像素点到种子点的距离;S表示种子点的间距;m为平衡参数,用来衡量颜色值和空间信息在相似度衡量中的比重。
3. 凹点检测
凹点是指目标轮廓上局部曲率最大的点,由于岩石表面很粗糙,因此在检测过程中会有很多凹点,这些凹点不能全部用来分割。为了提取待分割凹点,采用凹度判据,通过判断目标由于粘连所形成的凹区域的凹陷程度是否满足一定的角度范围来决定凹点是否为候选分割凹点。
该方法分别计算每个凹点对应的前驱凹点所形成的直线
和该凹点对应的后驱凹点所形成的直线
之间的夹角
,计算公式如下:
(5)
(6)
(7)
其中,
表示前凹点与当前凹点所构成的直线与水平方向的夹角,同理,
为当前凹点与后凹点所构成的直线与水平方向的夹角。分别计算并判断各个凹点所对应的夹角大小
是否满足设定的角度范围来判断当前凹点是否为待分割凹点。角度范围根据目标的形状进行调整。如果粘连类圆形目标图像中的目标形状与扁平的椭圆较为相近,则粘连区域形成的凹区域的凹陷程度则较为平坦,可以适度增大该角度阈值的范围。对于表面形状不规则的岩石可以选择较小的角度区间。在本文中,凹点所对应的夹角范围设为π/3, 2π/3]。凹度判据的示意图如图1所示。

Figure 1. Schematic diagram of the concave criterion
图1. 凹度判据示意图
其中
为连接当前凹点与前凹点的直线;
为连接该凹点与后凹点的直线;
两条直线的夹角即为公式(7)中的
。
4. 几种粘连图像分割方法的对比
在传统的超像素分割算法中,其分割的像素块在算法运行前就已经确定了。由于未被处理的岩石颗粒分布不均匀,而且每块岩石的颗粒粒度也不确定,因此对于连通域面积较大的区域可能会造成欠分割,而对于连通域面积较小的区域可能会出现分割过度。本文提出的结合待分割凹点个数来确定超像素块的方法,可以很好地减少这些分割误差还能省略超像素聚类的步骤,从而节省计算时间。在visual studio2015 + opencv的环境下对分割结果进行仿真,并与传统的分水岭算法和超像素分割进行比对,结果如图2所示。
图2每一行给出了一个岩石图像的处理结果。从左至右依次为原始图像、基于分水岭算法分割的结果、基于SLIC算法分割的结果和基于凹点检测的SLIC算法分割结果。当岩石分布不均匀且粘连程度较大的时候,分水岭算法只能识别出大体的分布区域,对于粘连程度比较大的部分并不能有效的分割;传统的超像素分割算法由于岩石的颜色分布不均匀、形状不规则,因为出现过度分割的现象,同时消耗的时间也较多(如表1所示);本文提出的方法可以根据每一个连通域的待分割凹点数量进行动态分割,可以有效地分割粘连区域,与传统的超像素分割方法相比较好的降低了过度分割的程度。同时因为省略了超像素聚类的步骤所以相较于传统的超像素分割明显的节省了时间。表1为各个算法消耗的平均时间。可以看出对于第一组和第四组图像,在岩石颗粒分布比较均匀、形状较规则并且岩石颗粒数目较少的情况下,分水岭算法的计算速度明显优于传统的超像素分割算法和本文的算法。对于第二组、第三组、第五组和第六组的图像,由于岩石颗粒分布不均匀,形状多样而且岩石颗粒数目较多的情况下,分水岭算法和本文的算法计算时间相近,但是都明显优于传统的超像素分割算法。


Figure 2. Comparison of different segmentation methods
图2. 不同分割方法比较

Table 1. Time-consuming comparison of the three image segmentation algorithms
表1. 三种图像分割算法的耗时比较
5. 总结
本文给出了一种可以用于粘连岩石分割的动态算法。首先对图像进行滤波并对滤波后的图像进行形态学处理,然后提取连通域并进行编号。通过检测每一个连通域内的待分割凹点的数量来确定超像素块的数量,然后进行粘连分割。实验结果表明,该方法在分割效果上明显优于传统的分水岭算法和超像素分割算法,同时计算时间也明显优于超像素分割算法。但是本文依旧存在过度分割的现象,主要原因是由于岩石表面不光滑,会影响凹点检测的结果,因此对于粘连岩石的准确分割还有待进一步研究。