光学仪器  2018, Vol. 40 Issue (4): 20-25   PDF    
高精度光斑中心定位算法
李道萍, 杨波     
上海理工大学 光电信息与计算机工程学院, 上海 200093
摘要: 光斑中心定位是光学测量中的关键技术之一,检测算法的精度和速度直接影响了测量的精度及速度,传统的检测算法如灰度质心法、Hough变换法等在检测精度或速度上存在不足。鉴于此,提出了一种高精度光斑中心定位算法,该算法不仅能定位光斑中心还能拟合出圆半径。用计算机生成的光斑和实验生成的光斑对该算法进行验证,并与其他传统算法进行比较,结果表明,该算法的误差小于0.5像素且比其他经典算法更精确。
关键词: 光斑圆心定位     迭代运算     衍射光斑     误差分析    
High-precision center location algorithm of light spot
LI Daoping, YANG Bo     
School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China
Abstract: Light spot center location is one of the key technologies of optical measurement.The precision and speed of the detection algorithm affect those of the optical measurement system directly.The traditional algorithms such as gravity model and Hough transform are unsatisfactory under some conditions.This paper presents a high-precision light spot center location algorithm, which can not only locate the spot center but also fit the circle radius.Artificial light spot picture and experimental light spot picture are used to validate the algorithm.Other traditional algorithms are compared.The result shows the error is less than 0.5 pixels and more accurate than other traditional algorithms.
Key words: light spot center location     iterative method     diffractive light spot     error analysis    
引言

基于光学原理的三维测量, 由于其具有高精度、非接触、易于控制等优点, 日益受到人们的重视。光学三维测量的本质是通过分析被三维物体面形调制的光场分布来获得被测物体的三维信息。目标光斑对应的三维曲面上某点的高度是由该点在摄相机CCD表面的位置来确定的, 那么光斑位置是否准确是决定测量精度的关键因素。目前比较常见的检测光斑中心的算法有灰度质心法、圆拟合法、Hough变换法以及多种改进算法等。

灰度质心法对于均匀光斑能够较准确定位, 计算速度快, 但是抗干扰能力差, 对于情况复杂的实际图像, 定位精度很差, 而且只能定位中心, 不能计算半径[1-3]。圆Hough检测是目前应用最为广泛的方法之一, 其可靠性高, 对噪声、变形、部分区域残缺、边缘不连续等有较好的适应性, 但其缺点是计算量大, 占据内存多, 同时Hough变换需要对参数空间离散化, 限制了检测精度, 另外参数空间得票最多的点未必唯一, 选择不同的点得到的图像空间曲线差异比较大[4-9]。圆拟合法时间复杂度较小, 运算的精度很高, 而且算法的速度非常快; 但它也有十分明显的缺点, 即抗干扰能力很差, 当随机噪声存在时, 中心运算精度会明显降低, 当遇到很强的外界干扰时, 所得到的圆心甚至可能会产生明显的错误[10-12]

如果光斑光强分布均匀, 使用恰当的算法可以使光斑定位精度达到亚像素级别, 但是在一些实际测量中, 光斑存在散斑, 加之目标物体的反射以及各种干扰, 使得CCD采集到的光斑强度极不均匀, 严重影响了定位精度, 上述方法均不再适用。为此, 本文提出了一种光斑中心定位算法, 该算法能够有效克服噪声及光强不均匀的情况, 同时, 通过选取合适的二值化阈值, 不仅能够定位光斑中心, 而且能够获取光斑半径。

1 传统中心定位算法 1.1 灰度质心法

灰度质心法就是应用像素的灰度值作为权重来计算光斑的质心, 设图片的像素为m×n, 每个像素点的灰度值为G(x, y), 那么计算的质心(x0, y0)可表示为

(1)
1.2 最小二乘圆拟合法

基于圆拟合检测激光光斑中心的算法的依据是:采用最小二乘法的原理(残差平方和最小)来逼近激光光斑的轮廓。

最小二乘法圆拟合曲线为

(2)

(3)

式中:R为圆的半径; AB为常数。

圆的另一种形式为

(4)

a=-2A, b=-2B, c=A2+B2-R2, 则只需求出参数a, b, c即可求出圆的圆心和半径。

1.3 Hough变换法

Hough变换是利用点-线对偶性, 将图像空间中的曲线通过曲线公式转换到对应的参数空间, 对相同参数进行累加, 那么图像空间的提取曲线就转化成求取参数空间的峰值问题。

(5)

式中:(a1, a2, …, an)是参数空间中的点; (x, y)是解析曲线上的点, 对于圆形曲线来说, 半径是r, 圆心是(a, b), 解析式为

(6)

那么, 图像空间中的一个圆(xi, yi)对应参数空间中的一个点(a, b, r)。

圆变换的参数空间为三维的, 在三维空间上进行数据累加的时间、空间消耗是非常大的。在具体应用中几乎是不可实现的。

2 光斑中心定位算法描述

图 1为光斑中心定位的处理流程。

图 1 图片处理流程 Figure 1 Flow chart of Image processing

准备一张如图 2(a)所示的光斑图, 首先将图像转变为灰度图像, 使用最大类间方差法[13]找到图片的一个合适的阈值, 然后在MATLAB中采用graythresh函数, 最后用函数im2bw进行二值化, 得到如图 2(b)所示的二值化图像。选择合适的结构元素对二值图进行闭操作, 闭操作通常能够消除狭窄的间断和细长的鸿沟, 消除小的空洞, 并填补轮廓线中的断裂[14], 如I=imclose(IM, SE), (IM为待处理图像, SE为结构元素), 进行闭操作后得到如图 2(c)所示的图片。由于二值图的像素值只有0和1, 首先运用find函数找到像素值为1的部分(即白色部分), 并对其求均值得到(x0, y0), 即

(7)
图 2 图片处理流程 Figure 2 Flow chart of image processing

这样就可以找到光斑圆心的大致位置。接着再找出图片中像素值为0的一系列点(x, y), 然后进行以下循环:

(1) 求出距离圆心(xm, ym)(m=0, 1, 2, …)最近的点(xi, yi), 距离为rm

(8)

(2) 移动圆心(xm, ym)使之与点(xi, yi)的距离在直线方向上增加1, 即

(9)

此时, 圆心位置进行了更新。

(3) 不断地重复(1)(2)步骤, 每一循环需要判断计算出的距离是否小于上一循环的距离, 直到计算出的距离rm+1rm, 退出循环。

(4) 求出距离点(xm+1, ym+1)最近的黑点, 距离即为所求的半径rm+1, 圆心为(xm+1, ym+1)。如图 2(d)所示。

3 与传统算法的比较

用MATLAB产生一组夫琅禾费衍射光斑, 图像大小为300×300, 400×400, …, 900×900, 1 000×1 000共8幅图片, 并对其加入随机噪声, 如图 3所示, 采用4种中心定位算法计算其圆心位置。

图 3 计算机生成的夫琅禾费衍射图样(含噪声) Figure 3 Computer generated Fraunhofer diffraction pattern(with noise)

应用新算法和其他3种算法分别对这8幅图像的光斑中心进行定位, 得到中心坐标减去理论坐标后的误差, 如图 4所示, 并对不同算法的误差进行了统计, 如表 1所示。从中可以看出, 该算法误差小于0.5像素且比其他经典算法精度高, 稳定性也最好。

图 4 4种算法计算得到的8张衍射图样的圆心位置误差 Figure 4 The error of the center location for 8 diffraction patterns calculated by 4 kinds of algorithms

表 1 各算法误差统计 Table 1 Error statistics of the algorithms
4 对实验生成的光斑进行定位

为了对算法进行验证, 我们采集了两种光斑图样, 如图 5所示, (a)图为激光光源直接打在CCD上形成的图样, (b)图为夫琅禾费衍射系统接收到的图样。实验中采集到的光斑图像由于受到空气中杂质、CCD暗电流噪声、光子散粒噪声、反射面不均匀等的影响, 不适用于直接提取光斑中心, 在求取光斑中心之前, 必须要对图像进行预处理以消除光斑外的小亮点、小暗点和其他杂散光的影响。从图中可以看出, 新算法对光斑进行了较准确的定位, 光斑轮廓拟合也很合理。

图 5 光斑图 Figure 5 Light spot
5 结论

通过对常用定位算法的分析, 提出了采用迭代法逐步逼近的方法计算出光斑半径及圆心。对计算机生成的8张含有噪声的衍射图样进行中心定位, 并与其他传统算法进行比较, 统计出各算法的误差, 结果表明, 该算法误差小于0.5像素且比其他经典算法精确。采用CCD相机、激光器等搭建了夫琅禾费圆孔衍射测试系统, 经采集光斑图像并对其进行光斑定位, 进一步验证了本文算法的正确性与合理性。

参考文献
[1] 史少龙, 尹达一. 改进型灰度质心实时算法研究[J]. 光电工程, 2013(12): 18–24. DOI:10.3969/j.issn.1003-501X.2013.12.004
[2] 王宇. 基于灰度质心法的雷达干扰源定位方法研究[J]. 自动化技术与应用, 2016, 35(2): 63–66.
[3] 崔屹. 图象处理与分析——数学形态学方法及应用[M]. 北京: 科学出版社, 2000.
[4] CAMURRI M, VEZZANI R, CUCCHIARA R. 3D Hough transform for sphere recognition on point clouds[J]. Machine Vision and Applications, 2014, 25(7): 1877–1891. DOI:10.1007/s00138-014-0640-3
[5] HULIK R, SPANEL M, SMRZ P, et al. Continuous plane detection in point-cloud data based on 3D Hough Transform[J]. Journal of Visual Communication and Image Representation, 2014, 25(1): 86–97. DOI:10.1016/j.jvcir.2013.04.001
[6] 朱桂英, 张瑞林. 基于Hough变换的圆检测方法[J]. 计算机工程与设计, 2008, 29(6): 1462–1464.
[7] 周封, 杨超, 王晨光, 等. 基于随机Hough变换的复杂条件下圆检测与数目辨识[J]. 仪器仪表学报, 2013, 34(3): 622–628. DOI:10.3969/j.issn.0254-3087.2013.03.021
[8] 章秀华, 杨坤涛. 一种改进的二维Hough变换提取激光光斑参数方法[J]. 激光与红外, 2006, 36(10): 995–997. DOI:10.3969/j.issn.1001-5078.2006.10.023
[9] 孙亦南, 刘伟军, 王越超, 等. 一种用于圆检测的改进Hough变换方法[J]. 计算机工程与应用, 2003, 39(20): 35–37. DOI:10.3321/j.issn:1002-8331.2003.20.012
[10] 刘珂, 周富强, 张广军. 半径约束最小二乘圆拟合方法及其误差分析[J]. 光电子·激光, 2006, 17(5): 604–607. DOI:10.3321/j.issn:1005-0086.2006.05.023
[11] 孔兵, 王昭, 谭玉山. 基于圆拟合的激光光斑中心检测算法[J]. 红外与激光工程, 2002(3): 275–279. DOI:10.3969/j.issn.1007-2276.2002.03.020
[12] 吴泽楷, 李恭强, 王文涛, 等. 基于改进圆拟合算法的激光光斑中心检测[J]. 激光与红外, 2016, 46(3): 346–350. DOI:10.3969/j.issn.1001-5078.2016.03.021
[13] 齐丽娜, 张博, 王战凯. 最大类间方差法在图像处理中的应用[J]. 无线电工程, 2006, 36(7): 25–26. DOI:10.3969/j.issn.1003-3106.2006.07.010
[14] 张大坤, 罗三明. 形态学中闭运算功能的扩展及其应用[J]. 计算机工程与应用, 2010, 46(27): 185–187. DOI:10.3778/j.issn.1002-8331.2010.27.052