基于二次平滑算法的线结构光中心线提取方法 下载: 923次
1 引言
随着科技的发展与进步,以数字图像处理为基础的线结构光非接触测量应运而生,成为三维测量研究的热点。该方法测量速度快、结果精准,且易于实现[1-2],因此被广泛应用于考古学、机器人学、医学、**、汽车、工业等多个领域[3-6]。
利用数字图像处理技术从光条图像中提取激光条纹中心线的像素坐标是线结构光三维测量的关键,其精度直接影响了最终测量结果[7-9]。目前,提取线结构光中心线的方法主要包括:1)基于几何中心的提取方法,如细化法、边缘法、阈值法,此类方法速度快,但精度低,只能达到像素级别;2)基于灰度特征的提取方法,如灰度重心法、方向模板法、Hessian矩阵法,此类方法精度高,但速度慢[10]。为了同时提高算法的提取效率和精度,且满足稳定性好的条件,众多学者对其进行了深入研究。文献[ 11]先用二维高斯卷积得到条纹图像的梯度分布,再用极值法获取激光条纹中心线的初始位置,利用主成分分析确定这些点的法线方向,最后将条纹的灰度分布函数在法线方向进行二阶泰勒展开获得激光条纹中心线的精确位置。该方法计算复杂,难以保证实时性的要求。文献[ 12]采用改进的灰度-重力法计算了图像中所有列的激光条纹中心线点,提取精度有明显提高,但耗时为原算法的15倍。文献[ 13]提出了一种基于改进灰度重心法的光带中心提取算法,与原算法相比在精度上略有提高。本文在灰度重心法的基础上提出了基于二次平滑算法的线结构光中心线提取方法,减小了激光光强分布不均对提取精度的影响,提高了激光条纹中心线的提取精度,且满足实时性强的要求。
2 提取激光条纹中心线
改进灰度重心法的主要思想:先对采集的图像进行感兴趣区域(ROI)裁剪以减少激光条纹中心线提取的计算量;然后用灰度重心法获取激光条纹中心线初始值,再用均值法平滑初始中心的大凸起和毛刺;最后用Savitzky-Golay滤波算法消除初次平滑后的小凸起和毛刺得到最终的激光条纹中心线。
2.1 ROI裁剪
由于提取激光条纹中心线的初始位置是逐行逐列处理图像上每个像素[13],速度较慢。为了减少算法的计算量,提高计算速度,预处理后再裁剪图像中的ROI。具体步骤:
1) 将相机采集的分辨率为1280 pixel×720 pixel的图像切分为100个128 pixel×72 pixel的小图像;
2) 因预处理后图像的条纹处灰度值为255,其他地方的灰度值为0。定义W,V,S,Q四个一维数组,对第一行10个图像从左到右逐个处理,判断每个图像中的像素最大灰度值是否为255。若是,则将这个图像的第1列在原图中的列数储存在数组W中,第128列在原图中的列数储存在数组V中,第1行在原图中的行数储存在数组S中,第72行在原图中的行数储存在数组Q中;相反,则处理下一个图像。按相同的方法依次处理其余图像;
3) 令数组W、S中的最小值为w、s,数组V、Q中的最大值为v、q,以w,v,s,q为ROI边界裁剪图像。
裁剪前后的图像如
图 1. 裁剪前后图像。(a)裁剪前图像;(b)裁剪后图像
Fig. 1. Image before and after cropping. (a) Image before cropping; (b) image after cropping
2.2 灰度重心法
灰度重心法[14]将每一行激光条纹截面的灰度值质心作为激光条纹中心线。具体步骤:
1) 先求出图像上第一行激光条纹光强灰度值最大点Gmax;
2) 再确定阈值L=Gmax-g(一般取10~20),然后在Gmax两侧找出灰度值大于L的像素点,将其灰度值储存在数组I中,位置储存在数组H中;
3) 最终该行激光条纹中心点的纵坐标可表示为
式中,r为数组H和I的元素个数;
4) 重复以上步骤,直至处理完整个图像。
灰度重心法是对极值法的改进,很大程度上减小了激光条纹灰度值分布不均匀造成的提取误差,且提取速度快。但精度仍会受到激光条纹光强的影响,稳定性不高,特别是激光条纹光强饱和时,提取结果会有大的凸起和毛刺,与实际激光条纹中心线偏差较大[15],如
2.3 初次平滑
针对灰度重心法提取激光条纹中心线带有凸起和毛刺的问题,用均值法对其进行初次平滑。设该行激光条纹中心线初始位置为(ai,bi),具体步骤:
1) 令激光条纹中心线新的位置为(ci,li),在[1,j-10]的范围内(j为数组a的长度)。
2)补偿第一步平滑的缺陷,在[1,5]∪[j-4,j]的范围内
经初次平滑后的激光条纹中心线如
2.4 二次平滑
1964年提出的Savitzky-Golay滤波算法[16]主要思想是对原始数据中某一连续2M+1个数据点(窗口宽度),选用某一拟合阶次N进行最小二乘拟合,取拟合曲线在窗口中心点处的值为滤波后的值,然后移动窗口,重复上述操作,对所有数据进行处理[17]。为使激光条纹中心线提取的精度更高,实验用Savitzky-Golay滤波算法对初次平滑后的条纹做二次平滑。具体步骤:
1) 设原始数据为x(n),则拟合后的数据p(n)可表示为
式中,k为多项式的阶数,dk为多项式系数;
2) 拟合数据的均方误差θN可表示为
3) 令
由微积分原理可解出多项式系数dk;
4) 将dk代入(6)式中,取数据中心点(横坐标为0处)的值作为滤波后的值,即p(0)=d0。然后以大小为2M+1的滑动窗口,重复上述过程。
二次平滑后的结果与初次平滑后的结果如
3 实验结果与分析
首先建立三维测量系统,标定好系统的相关参数,取直径为59 mm和深度为45.7 mm的标准块放在运动平面上,然后拍摄投影在标准块上的激光条纹,采用本方法提取激光条纹中心线,最后根据相关数学模型计算其直径和深度。实验器材:分辨率为1280 pixel×720 pixel的CMOS相机、功率为5 mW、波长为650 nm的一字激光器。拍摄的激光条纹及中心线提取结果如
图 5. 标准块上激光条纹中心线的提取结果。(a)圆柱标准块;(b)深度标准块
Fig. 5. Center line of the upper laser stripe on the standard block and its extraction results. (a) Cylinder standard block; (b) depth standard block
通过数学模型将标准块上的激光条纹中心线像素坐标转化为三维坐标,并与实际值比较,得到本方法的测量误差,如
图 6. 标准块误差。(a)直径误差;(b)深度误差
Fig. 6. Error of standard block. (a) Diameter error; (b) depth error
本方法不仅可用于工件直径和深度的测量,还可用于工厂钢板长度的在线测量[18]、机器人自动焊缝跟踪[19]、列车钢轨磨损测量[20]、焊缝宽度检测[21]等方面。为进一步验证本方法的准确性、实时性及稳定性,以上述四个应用方面涉及到的直线、断线、曲线、折线激光条纹为研究对象,分别采用灰度重心法和本方法提取了四种线型的激光条纹中心线,结果如
图 7. 四种典型线型。(a)直线;(b)断线;(c)曲线;(d)折线
Fig. 7. Four typical line types. (a) Straight line; (b) bolt; (c) curve; (d) broken line
3.1 准确度分析
用灰度重心法和本方法提取
表 1. 激光条纹中心线提取误差
Table 1. Center error of laser stripe extraction
|
3.2 运行时间分析
由于提取激光条纹中心线要求同时兼备高精度和实时性的特点,因此对
表 2. 运行时间
Table 2. Operation timeunit: s
|
3.3 稳定性分析
为比较两种方法的稳定性,用相机在同一位置、不同光照条件下采集了四幅激光条纹图像,如
图 8. 不同光照条件下的激光条纹图像
Fig. 8. Laser fringe pictures under different illumination conditions
表 3. 激光条纹中心线提取坐标比较
Table 3. Comparison of coordinates extracted from laser fringe centerunit: pixel
|
4 结论
分析了激光条纹中心线提取的现状和问题,针对传统灰度重心法提取激光条纹中心线易受光照影响等问题,提出了一种基于二次平滑算法的线结构光中心线提取方法,消除了激光条纹中心线初始位置的凸起和毛刺。实验结果表明,与灰度重心法相比,本方法提取激光条纹中心线的精度提高了19.15%~44.87%,且运算量小、提取速度较快,能满足实时性要求,同时环境变化对提取结果的影响较小,稳定性更强。此外,该方法还能应用于其他激光条纹中心线的提取,具有较强的实用价值。
[1] He L Y, Wu S S, Wu C. Robust laser stripe extraction for three-dimensional reconstruction based on a cross-structured light sensor[J]. Applied Optics, 2017, 56(4): 823-832.
[2] 张斌, 常森, 王桔, 等. 基于遗传算法的激光视觉焊缝特征点提取[J]. 中国激光, 2019, 46(1): 0102001.
[3] KoyuncuB, KulluK. Development of an optical 3D scanner based on structured light[C]∥Proceedings of the 9th WSEAS International Conference on Artificial Intelligence, Knowledge Engineering and Data Bases, February,2010, Cambridge, UK, 2010: 17- 22.
[4] 李凤娇, 李小菁, 刘震. 基于多尺度分析的激光光条中心点坐标提取方法[J]. 光学学报, 2014, 34(11): 1110002.
[5] 林帅, 宋展, 陈寅, 等. 使用白色结构光编码的三维几何发型重建[J]. 计算机辅助设计与图形学学报, 2017, 29(4): 593-598.
Lin S, Song Z, Chen Y, et al. 3D geometric hair reconstruction using white structure-of-light coding[J]. Journal of Computer-Aided Design & Computer Graphics, 2017, 29(4): 593-598.
[6] 薛婷, 吴斌, 张涛, 等. 基于线结构光视觉传感器的圆孔定位误差分析[J]. 光学精密工程, 2008, 16(4): 624-629.
[7] Usamentiaga R, Molleda J, Garcia D F, et al. Removing vibrations in 3D reconstruction using multiple laser stripes[J]. Optics and Lasers in Engineering, 2014, 53: 51-59.
[8] Sun Q C, Chen J, Li C J. A robust method to extract a laser stripe centre based on grey level moment[J]. Optics and Lasers in Engineering, 2015, 67: 122-127.
[9] Zhang Z Y, Yuan L. Building a 3D scanner system based on monocular vision[J]. Applied Optics, 2012, 51(11): 1638-1644.
[10] 杨建华, 杨雪荣, 成思源, 等. 线结构光三维视觉测量中光条纹中心提取综述[J]. 广东工业大学学报, 2014, 31(1): 74-78.
Yang J H, Yang X R, Cheng S Y, et al. Review of extracting the centers of linear structured light stripes for 3D visual measurements[J]. Journal of Guangdong University of Technology, 2014, 31(1): 74-78.
[11] 蔡怀宇, 冯召东, 黄战华. 基于主成分分析的结构光条纹中心提取方法[J]. 中国激光, 2015, 42(3): 0308006.
[12] Li Y H, Zhou J B, Huang F S, et al. Sub-pixel extraction of laser stripe center using an improved gray-gravity method[J]. Sensors, 2017, 17(4): 814.
[13] 张小艳, 王晓强, 白福忠, 等. 基于改进灰度重心法的光带中心提取算法[J]. 激光与红外, 2016, 46(5): 622-626.
Zhang X Y, Wang X Q, Bai F Z, et al. Improved gray centroid method for extracting the centre-line of light-stripe[J]. Laser & Infrared, 2016, 46(5): 622-626.
[14] 刘剑, 刘丽华. 基于海森矩阵与区域增长的激光条纹中心提取[J]. 激光与光电子学进展, 2019, 56(2): 021203.
[15] 李丹, 耿楠, 亢娟娜. 复杂背景下光条中心提取算法研究[J]. 计算机应用与软件, 2013, 30(3): 271-273, 314.
Li D, Geng N, Kang J N. Research on laser stripe centre extraction algorithm under complex background[J]. Computer Applications and Software, 2013, 30(3): 271-273, 314.
[17] 陈书旺, 王军星, 盛伟楠, 等. Savitzky-Golay滤波器最优参数的SPR信号分析[J]. 光谱学与光谱分析, 2015, 35(4): 1124-1128.
[18] 梅天灿, 仲思东, 何对燕. 可变环境光照条件下的结构光条纹检测[J]. 仪器仪表学报, 2011, 32(12): 2794-2801.
Mei T C, Zhong S D, He D Y. Structured light stripe detection under variable ambient light[J]. Chinese Journal of Scientific Instrument, 2011, 32(12): 2794-2801.
[19] 甘文龙, 罗会信, 王中任. 管道焊接激光视觉跟踪的定位方法研究[J]. 激光与红外, 2018, 48(6): 675-681.
Gan W L, Luo H X, Wang Z R. Research on positioning method of laser vision tracking for pipeline welding[J]. Laser & Infrared, 2018, 48(6): 675-681.
[20] 孙军华, 王恒, 刘震, 等. 钢轨磨耗动态测量中激光光条中心的快速提取[J]. 光学精密工程, 2011, 19(3): 690-696.
[21] Wang XP, Bai RL, Liu ZT. Weld seam detection and feature extraction based on laser vision[C]∥Proceedings of the 33rd Chinese Control Conference, July 28-30, 2014, Nanjing, China. New York: IEEE, 2014: 1589- 1592.
[22] 刘振, 李声, 冯常. 基于互相关算法的激光条纹中心提取[J]. 中国激光, 2013, 40(5): 0508004.
Article Outline
杨毅, 闫兵, 董大伟, 黄燕, 唐忠智. 基于二次平滑算法的线结构光中心线提取方法[J]. 激光与光电子学进展, 2020, 57(10): 101504. Yi Yang, Bing Yan, Dawei Dong, Yan Huang, Zhongzhi Tang. Method for Extracting the Centerline of Line Structured Light Based on Quadratic Smoothing Algorithm[J]. Laser & Optoelectronics Progress, 2020, 57(10): 101504.