基于K-means 聚类的结构光中心线提取方法研究

2023-09-02 06:34郭乃菊
沈阳理工大学学报 2023年5期
关键词:中心点中心线灰度

朱 永,蒋 强,郭乃菊

(沈阳理工大学自动化与电气工程学院,沈阳 110159)

随着视觉测量和数字图像处理技术的发展,结构光测量技术因其具有高精度、实时性、非接触等优点,在工业检测、三维人体扫描等领域得到了广泛的应用[1-2]。 结构光测量系统主要由工业相机、激光器和计算机等组成[3],通过激光三角法[4]获得特征点的坐标信息。 结构光有多种测量模式,其中基于线结构光的测量模式可以实现快速、精确和稳定测量,并具有结构简单、搭建成本低等优点[5]。 由于线结构光条纹具有一定的像素宽度,只有准确提取光条的中心线才能获得被测目标的特征点坐标[6]。 因此,如何快速、准确提取结构光中心线是实现测量的关键[7]。

传统线结构光中心线提取算法主要有灰度重心法、基于黑塞(Hessian)矩阵的斯蒂格(Steger)算法和方向模板法等[8]。 灰度重心法的算法简单、实时性好,但是易受噪声影响;Steger 算法精度高、受噪声影响小,但算法复杂导致其实时性较差;方向模板法具有一定的修补断线和抑制白噪声能力,但计算复杂、精度一般、稳定性较差[9]。针对传统算法存在的不足,研究人员完成了一定程度的算法优化。 Yang 等[10]提出一种改进灰度重心法提取光条中心算法,采用模板法检测光条的法线方向,并在该方向上应用灰度重心法精确提取光条中心。 南方等[11]提出一种基于Steger算法的自适应激光条纹中心线提取方法,提高了算法的精度,但也降低了算法的实时性。 Pang等[12]通过骨架细化法进行粗提取,然后利用方向模板法和灰度重心法进行精确提取,计算相对复杂、提取结果不够稳定。

针对结构光中心线提取的高精度、实时性、抗噪性等需求,以光滑金属表面为背景,提出一种基于K-means 聚类[13-14]的结构光中心线提取算法。算法结合图像预处理手段和动态聚类分割,通过灰度重心法提取光条中心,再进行最小二乘法拟合中心线,实现对传统算法的优化。

1 结构光中心线提取方法处理流程

基于K-means 聚类的结构光中心线提取方法处理流程为:首先分析结构光条纹特性;然后采用中值滤波对光条图像进行预处理,减少噪声对光条中心线的影响;再使用K-means 聚类算法对滤波后的图像上的所有像素点进行聚类分割,排除干扰光和无关光条的区域,以此得到光条感兴趣区域(ROI);对分割图像进行形态学闭运算[15],填充背景区域,得到饱满光条区域;最后运用灰度重心法对光条区域计算灰度重心,得到光条的中心线。 结构光中心线提取方法的流程如图1所示。

图1 结构光中心线提取方法流程

2 结构光中心线提取

2.1 线结构光条纹特性

线结构光投射到物体表面形成具有一定宽度的光条,其图像如图2 所示。 理想情况下,线结构光条横截面的灰度值呈高斯分布,但实际上由于受到实验环境和被测物体材质等因素的影响,实验采集到的光条往往含有各种噪声,导致其灰度分布呈现阶跃式变化。

图2 光条图像

对采集到的光条进行分析,绘制光条三个不同位置横截面的灰度值分布,如图3 所示。

光条的第100 列和第200 列是在铝板上,可以看出这两处受到了明显的噪声干扰,其中光条第200 列出现了明显的镜面反射现象,同时受光条以外的背景影响,其横截面的灰度值出现多个峰值。 光条的第300 列是在黑色幕布上,光条较细,整体上较符合高斯分布。 对第200 列光条横截面的灰度分布进行高斯拟合,拟合后的高斯分布即为理想情况下线结构光条纹特性。 光条横截面整体上呈近似高斯分布,而光条中心的提取依赖其横截面的高斯分量。

2.2 图像滤波

在数字图像处理过程中,图像滤波是图像预处理的关键环节。 由于采集到的图像往往夹杂着噪声信号,而噪声的存在会对光条中心提取产生不利的影响,需要对图像进行滤波处理,在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制。

常见的图像滤波方式有均值滤波、高斯滤波和中值滤波,其中均值滤波和高斯滤波均属于线性滤波,而中值滤波属于非线性滤波。 均值滤波和高斯滤波在滤波的同时也丢失了图像细节信息,使光条变得模糊,不利于光条的提取定位;而中值滤波不但可以抑制图像噪声,还可以保留光条边缘的细节信息,提升了图像的信噪比。 因此,选择中值滤波对采集的图像进行滤波处理。

中值滤波的计算公式为

式中:g(x,y)表示中值滤波后图像某像素点(x,y)处的像素灰度值;f(x,y)表示输入图像的像素灰度值;median表示中值滤波函数;A表示滤波模板。

中值滤波在去除椒盐噪声方面很有效。 图4所示为添加椒盐噪声的图像和通过中值滤波后的图像,对比图4(a)与图4(b)可以看出,中值滤波对椒盐噪声抑制效果明显,也没有丢失光条边缘的细节信息。

图4 中值滤波

2.3 K-means 聚类

K-means 聚类是一种基于样本集合划分的无监督学习方法,根据数据到聚类中心的距离划分该数据所属类别。

假设样本集合为Y={y1,y2,…,yn};每个样本由m维特征向量表示。 样本之间的距离用欧式距离平方表示,计算公式为

式中:d(yi,yj)为样本yi与yj之间的欧式距离;yki、ykj分别表示第k个样本类别中的第i个样本与第j个样本。

若Nh表示第h个聚类Ch中含有的样本数目,则该聚类中的样本y′均值uh的计算公式为

由此定义样本,与其所属聚类Ci中均值的距离总和为损失函数W(Ci),计算公式为K-means 聚类通过反复优化聚类结果,使损失函数最小化,即所有样本到其所属类别中心的距离越小,则相同类中的样本相似程度就越高,聚类效果就越好。 K-means 算法的流程如下:

1)随机选取k个样本点作为初始聚类中心,记为

2)计算样本与k个初始聚类中心的距离,将每个待聚类样本分配到距其最近的聚类中心所在的类群中,得到本次聚类结果C(0);

3)计算第l个聚类结果C(l)中各个类群的样本均值,作为新的聚类中心,即然后对样本进行聚类,得到新的聚类结果C(l);

4)迭代计算,若聚类结果使损失函数最小,或者聚类结果C(l+1)=C(l),即聚类结果不变,则停止迭代,否则令l=l+1,返回3)。

2.4 形态学闭运算

数学形态学是以集合基础分析几何形状和结构的数学方法。 在数字图像处理中,通过结构元素处理目标图像,常见的形态学运算有腐蚀和膨胀。 腐蚀运算可以消除目标图像的边界点,而膨胀运算可以填充目标图像的内部孔洞。

形态学闭运算是一种腐蚀和膨胀的复合运算,先对图像进行膨胀运算,再进行腐蚀运算。 其表达式为

式中:A为输入图像;B为结构元素;⊕为膨胀运算;Θ 为腐蚀运算。 对目标图像进行形态学闭运算可以达到平滑轮廓的效果,同时还可以对细长的沟壑和狭窄的间断进行弥合,消除较小的空洞。

2.5 灰度重心法

灰度重心法是根据结构光的光条横截面上像素点的灰度值和其坐标求取灰度重心的位置。 该方法需要通过设定阈值减小结构光光条截面的搜索范围,提高搜索效率。 对光条图像中像素点i进行阈值设定如下。

式中:f(w)为像素点w的灰度值;fth为设定的灰度阈值。 通过阈值的设定可以得到第xw列光条截面的上、下限区间为[a(xw),b(xw)],则灰度重心法的计算公式为

式中:f(xw,y)为像素坐标(xw,y)处的灰度值,y(xw)为计算出的第xw列光条重心的纵坐标。

2.6 最小二乘法拟合光条中心线

本文采用最小二乘法进行光条中心线的拟合。 根据灰度重心法提取到的光条中心点数据基本分布在一条直线附近,设此直线方程为

以上是使用最小二乘法对线性函数进行拟合,实际应用可推广到多项式函数的拟合,能更好地进行光条中心线拟合。

3 实验与结果分析

3.1 实验平台

为验证基于K-means 聚类的结构光中心线提取方法的可行性,搭建了如图5 所示的实验平台。激光器采用的是波长为650 nm 的鲍威尔一字激光器,相机采用的是大恒MER-160-227U3M-L 工业相机,其分辨率为1 440 ×1 080。 激光器和相机固定在升降台上,高度可调。

图5 实验平台

3.2 结构光中心线提取实验

打开激光器将结构光投射到表面光滑的铝板上,采集到的原始光条图像如图6 所示。

图6 原始光条图像

首先对原始光条图像进行中值滤波处理,采用3 ×3 滤波模板,滤波处理后图像如图7(a)所示。 由图7(a)可见,滤波处理后的图像背景中仍然含有灰度值较高的噪声光斑,因此需要进行图像分割以获得目标光条区域。 采用K-means 聚类算法分割图像,通过迭代优化后的聚类结果如图7(b)所示。 排除干扰光和无关光条的区域,得到的ROI 光条区域如图7(c)所示。 然后对分割得到的ROI 光条区域进行形态学闭操作,采用矩形作为结构元素,平滑光条轮廓并填充背景区域,得到饱满光条区域如图7(d)所示。

图7 图像处理

通过对原始光条进行图像预处理,消除了大面积的光斑噪声,得到了形状较为完整的目标光条图像。 通过灰度重心法计算目标光条的灰度重心,得到的光条中心线如图8(a)所示。 由图8(a)可见,灰度重心法提取的一系列光条中心点存在波动,所以需要从全局角度保证提取的中心点之间可以平滑过渡。 采用最小二乘法对提取的光条中心点进行直线拟合,拟合结果如图8(b)所示。

图8 光条中心线

拟合前后中心点数据如图9 所示。

图9 拟合前后中心点数据

3.3 不同算法的对比

针对实验采集的原始光条图像,选择传统的灰度重心法、Steger 算法以及方向模板法与本文算法进行对比实验,实验结果如图10 所示。

图10 对比实验结果

由图10 可见,传统灰度重心法的抗干扰能力不强,提取的部分光条中心出现很大的偏差;Steger 算法提取的光条中心线出现了分段现象,左右两侧光条中心未能提取;方向模板法提取的光条中心线出现了干扰噪点和部分光条信息缺失现象。 而图8 给出的本文算法提取的光条中心线较为完整且平稳,没有出现较大的波动和分段现象,提取结果比上述传统算法更为准确。

3.4 实验结果分析

3.4.1算法精度和实时性分析

为验证本文算法的有效性,需要对光条中心线提取的精度进行评价。 由于采集到的光条中心的真值无法测得,本文利用提取的光条中心点到最小二乘法拟合直线距离的标准差评价算法的精度。 标准差越小,则算法提取出的光条中心点的离散性越小,即算法精度越高。 标准差的计算公式为

式中:p为算法提取的光条中心点的数;de为第e个光条中心点到拟合中心线的距离;¯d为所有光条中心点到拟合中心线距离的平均值。de可由点到拟合直线的距离公式计算得到,计算公式为

式中:(xe,ye)为第e个光条中心点位置;k′和b′为拟合直线方程的参数。

在实际工程应用中,结构光测量系统需要满足测量的快速性,所以光条中心线提取算法应具备实时性。 本文采用不同算法各运行10 次,各算法的标准差σ和平均运行时间¯t如表1 所示。

表1 各算法精度和实时性评价结果

从表1 可见,本文算法提取的中心点到拟合中心线距离的标准差最小,即本文算法提取光条中心点的精度优于传统算法;Steger 算法计算相对复杂,导致运行时间过长,而本文算法的运行时间仅次于灰度重心法,综合仿真实验的结果可知,本文算法运行效率较高、实时性较好。

3.4.2算法鲁棒性分析

为验证算法的抗噪声干扰能力,需要对光条中心线提取的鲁棒性进行分析。 通过调节环境光和添加噪声,得到无光斑噪声图、有光斑噪声图和添加椒盐噪声图。 运用本文算法进行光条中心线提取,针对不同图像的提取结果如图11 所示,算法的标准差见表2。

表2 不同噪声干扰下算法的标准差

图11 光条中心线提取

由图11 可见,本文算法在光斑噪声和椒盐噪声的影响下,仍有较好的提取效果。 从表2 可以看出,提取的中心点到拟合中心线距离的标准差均较小,说明算法的提取精度可以保持相对稳定。

4 结论

本文在分析线结构光条纹特性的基础上,结合动态聚类分割和传统光条中心线提取算法,提出一种基于K-means 聚类的结构光中心线提取方法。 该方法在对原始图像进行滤波处理后,采用K-means 聚类算法分割出ROI 光条区域,然后对二值图像进行数学形态学操作,最后利用灰度中心法提取光条中心。 对比传统算法,本文算法的提取精度更高,算法运行效率更快,且具有一定的抗噪声干扰能力,对结构光测量具有理论指导价值。

猜你喜欢
中心点中心线灰度
采用改进导重法的拓扑结构灰度单元过滤技术
基于灰度拉伸的图像水位识别方法研究
Scratch 3.9更新了什么?
如何设置造型中心点?
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算
第十讲 几何公差代号标注示例10
——目镜套筒
汉字艺术结构解析(二)中心点处笔画应紧奏
X线摄影中中心线对DR摄影质量的重要性
寻找视觉中心点