APP下载

基于边缘检测与凹点匹配的接触珍珠分离方法*

2023-05-12杨子萱金守峰刘新颖肖福礼

计算机与数字工程 2023年1期
关键词:夹角珍珠轮廓

杨子萱 金守峰 刘新颖 肖福礼 严 楠 陈 罡

(1.西安工程大学机电工程学院 西安 710600)(2.陕西省计量科学研究院 西安 710100)(3.宁波职业技术学院机电工程学院 宁波 315800)(4.浙江机电职业技术学院自动化学院 杭州 310053)

1 引言

利用机器视觉进行珍珠形状参数检测过程中,由于珍珠之间存在相互接触,导致形状参数的检测误差较大,不能客观表征珍珠形状。

对于相互接触目标之间的分离问题,国内外学者进行了深入研究。汤一平等[1]提出基于单目多视角机器视觉的珍珠在线分类系统,能够实时性完成珍珠的颜色、光泽度及均匀度等分类;王鑫等[2]提出了基于先验条件的分水岭算法,提取目标细胞边界对粘连细胞进行分离,由于算法的计算量大,实时性不高;王粤等[3]提出了基于内外轮廓线曲率方向的粘连米粒分离算法,通过检测米粒的粘连点获取粘连点间的距离及曲率方向判断分离点,该算法提高了粘连米粒分离的准确率,但是会受到粘连密度和方向的干扰;闫磊等[4]基于分水岭算法[5~6]对粘连颗粒进行分割,提取颗粒的形态特征和颜色特征,通过计算马氏距离识别混杂在谷物中的杂质;王品等[2]基于多特征Mean-shift 聚类算法实现胰腺细胞抹片显微图像细胞核的自动分割,采用CA⁃GA 结合SVM[7~8]选择最优特征子集实现细胞核的分类识别;张文飞等[9]针对多目标图像分离时粘连分布不均影响图像分离精度的问题,采用形态学运算和距离变换的分水岭算法将粘连目标进行精确分离;张建华等[10]提出融合H-minima 分水岭方法和最小二乘圆法解决棉花叶部病斑之间粘连问题,实现粘连病斑的自动分割;陈树越等[9~10]提出一种改进的凹点检测和精确分离点定位的粘连害虫分离算法,能够准确地计算粘连害虫的分离线;李冰等[11]提出一种基于背景骨架特征的粘连米粒图像自动分割算法,解决了粘连米粒的分割与识别;赵晓晴等[12]提出一种基于深度学习的粘连白细胞分离算法,强化模型对细胞边界特征的学习;古亭等[13]采用距离变换的粘连蚕茧分割方法,采用结合归一化及形态学算法提高了粘连蚕茧的分割效果;李文勇等[14]针对害虫识别过程中出现的粘连等情况,基于形状因子和分割点定位的方法提高了识别准确率,在目标过大时算法会导致过分割现象;陈名等[15]利用像素块扫描的种子点替代算法实现粘连细胞图像的分离,该方法仅适用于细胞面积相差不大粘连细胞;张新伟等[16]提出一种遗传算法与改进脉冲耦合神经网络相融合的分割方法,解决玉米籽粒粘连导致穗粒数统计准确率低的问题;权龙哲等[17]为实现玉米粒群图像的自动分离和形态校正,提出了改进的分水岭算法,利用多尺度小波分析法对玉米籽粒图像检测。

在现有的粘连分割方法的基础上,针对大量珍珠形状检测中相互接触的分离问题,本文提出一种基于凹点检测的接触珍珠分离方法。采用背光成像获取大量珍珠图像信息,以连通域标记的面积比提取接触珍珠区域,建立接触区域边缘轮廓点夹角数学模型提取凹点信息,通过凹点匹配消除干扰点,以欧氏距离作为距离度量函数完成接触珍珠的分离。

2 多颗接触珍珠区域提取

2.1 珍珠图像的预处理

珍珠表面存在纹理及光泽[18],为了降低这些因素对珍珠形状检测的干扰,本文采用背光成像法采集的多颗珍珠图像如图1(a)所示,通过同态滤波、均值滤波等预处理算法提高了图像的对比度、减少了噪声等影响,预处理后的结果如图1(b)所示。

图1 珍珠图像预处理

2.2 珍珠图像的二值化处理

按图像的灰度特性,采用最大类间方差法[19]将图像分成背景和珍珠目标两个部分,如图2(a)所示,图中珍珠既有单颗独立存在,也有多颗珍珠接触在一起,各区域的轮廓特征明显。

图2 图像二值化与连通域标记

2.3 基于连通域标记的接触珍珠区域提取

对二值化后的珍珠图像进行连通域标记如图2(b)所示,统计各连通域的像素面积为S1,S2,…,Sn,如表1 所示,对面积序列进行排序得到其中的最大面积为Smax和最小面积为Smin,其表达式为

式中,n为连通域个数。

由表1 可知,最大面积为41467,最小面积为13211。

表1 连通域面积及面积比

由图2(b)可知,最小连通域的像素面积对应为单颗独立的珍珠,为了获取相互接触的珍珠区域,通过各连通域的像素面积与最小连通域面积Smin的比值来确定是否为接触区域,其表达式为

式中,Kn为面积比。

由于大量珍珠随机平铺放置,不存在堆叠状态,因此面积比选取经验值为1.5 作为判别珍珠是否存在接触的阈值,当Kn>1.5 时则存在接触,反之则为单颗独立的珍珠。由表1 可知,S1~S8均小于1.5,则这8 个区域不存在接触的珍珠,S9、S10均大于1.5,则这两个区域存在相互接触的珍珠。通过边缘跟踪算法提取相互接触的珍珠边缘轮廓特征如图2(b)中的白色轮廓。

3 基于凹点检测的接触珍珠的分离方法

凹点信息是图像中目标边缘轮廓上曲率极大值的点,单颗独立的珍珠形状为类圆形,表面曲率变化平稳,因此不具有凹点特征[20]。多颗相互接触的珍珠在接触点处存在较大的曲率突变,具有明显的凹点特征。在提取相互接触珍珠的边缘轮廓基础上,本文基于凹点检测对相互接触的珍珠进行分离。

3.1 边缘轮廓点夹角的建立

图3 为接触珍珠边缘轮廓局部放大图,设接触珍珠边缘轮廓上三个连续点Pk-1(xk-1,yk-1),Pk(xk,yk),Pk+1(xk+1,yk+1)。

图3 接触珍珠边缘轮廓局部放大

直线Pk-1Pk与直线PkPk+1相交,所得到的夹角θ即为珍珠边缘轮廓点夹角。

由余弦定理可知夹角θ为

由式(6)可知,边缘轮廓夹角越小则该点为凹点,反之则不是凹点。通过对图3 的边缘轮廓点进行轮廓夹角的计算,角度分布图如图4 所示,由于珍珠表面存在纹理,轮廓夹角存在波动。角度在30°-60°范围内为珍珠相互接触导致轮廓夹角变小,初步可以确定为凹点。角度在150°~180°范围内,确定不是凹点。

图4 角度分布图

3.2 基于凹点检测的分离方法

由图4 角度分布可知,轮廓夹角所确定的凹点存在干扰点,如图5 中圆圈内的各点,为了精准确定珍珠接触区域的凹点,本文对候选的凹点进行匹配算法,其步骤如下:

图5 初步凹点检测

1)根据候选凹点之间的距离,采用K 均值聚类算法将候选凹点分为A、B两类;

2)寻找A 类与B 类之间距离最短的一对候选凹点;

3)连接该对候选点,并找出连接线的中垂线;

4)计算中垂线在连接线附近某一设定范围内点的坐标;

5)根据这些点的坐标,查找在原图的灰度值;

6)点的灰度值若均为珍珠的灰度,则这对候选凹点就真正凹点;若既有珍珠的灰度又有背景的灰度则表明这6个候选凹点只包含一个真正凹点;

7)若只包含一个真正凹点,则增加候选凹点的数目,返回步骤1)。

凹点匹配的结果如图6 所示,精准确定了珍珠接触点的一对凹点(a1,b1)、(a2,b2)。

图6 凹点匹配

图7 珍珠分离

4 结果与分析

4.1 实验条件

本文构建了基于机器视觉的珍珠形状检测系统由相机、镜头、光源、计算机、载物台等组成,相机光轴垂直于载物台,镜头距离载物台距离为250mm,珍珠随机平铺在载物台上,光源采用LED阵列面光源,照度为40000Lux。相机、待检测珍珠、光源以背光成像方式获取珍珠图像。系统软件为Open CV、Python3.7 进行算法的开发。实验以淡水珍珠为样本,直径为7mm~8mm。

4.2 实验分析

4.2.1 分离评价参数

为了更客观地分析接触珍珠分离算法的有效性,本文采用面积损失率(Z)来评价接触珍珠的分离精度。假设珍珠A 的面积为Sa,珍珠B 的面积为Sb,非接触状态的面积和为(Sc=Sa+Sb),接触状态的总面积为Sd。

珍珠A 在非接触状态与接触状态下的面积占比为K1和K2:

由此得到面积损失率Z的表达式为

面积损失率Z 越小,则接触珍珠的分离精度越高,反之则越低。

4.2.2 实验分析

对2 颗、3 颗、4 颗及多颗珍珠在接触情况分别实验得到的数据如表2所示。

表2 不同方法对不同数量接触珍珠分离结果

由表2可知,随着接触珍珠的颗数增加,接触点越多,接触情况越复杂,本文方法与Harris 算法[21]的分离正确率随之降低、面积损失率随之增加,耗时也增加。本文方法相对于Harris 算法,分离成功率提高了4.45%,面积损失率减小了1.921%,分离速度提高了0.052s。

5 结语

1)针对相互接触珍珠珍珠之间的分离问题,提出了一种基于凹点检测的分离方法,实验结果表明,该方法的分离正确率为97.825%,平均运行时间为0.322s,提高了算法效率及分离精度。

2)为了判断相互接触的珍珠区域,统计各连通域的像素面积,计算了各连通域的像素面积与最小连通域面积的比值,根据面积比设置阈值,判断出了接触珍珠和独立珍珠。

3)针对大量珍珠存在的相互接触影响珍珠轮廓提取的问题,对接触珍珠进行凹点检测,然后通过凹点匹配算法确定了真正凹点,基于欧氏距离实现了接触珍珠的分离;通过单独、接触两种状态下同一颗珍珠的面积占比,利用分离误差面积变化率模型实现了面积损失率的计算。

猜你喜欢

夹角珍珠轮廓
“小珍珠”
探究钟表上的夹角
OPENCV轮廓识别研究与实践
求解异面直线夹角问题的两个路径
为了喝到珍珠
基于实时轮廓误差估算的数控系统轮廓控制
“种”珍珠真神奇
绿珍珠城(上)
任意夹角交叉封闭边界内平面流线计算及应用
直线转角塔L形绝缘子串夹角取值分析