-
激光产生的基本原理是大量粒子的受激辐射的现象[15]。线激光器通过将柱面镜和球面镜组合产生一种单色线激光。理想情况下,激光能量在光条截面上呈现对称高斯分布,激光条纹图像灰度值最大点就是条纹中心点。
由于被测物体材质以及噪声等因素的影响,如材料的表面粗糙度、透明度、均匀性等,使得被测物体表面对光的反射率并不均匀。这种偏差导致激光条纹截面的光强分布发生改变,从而使条纹图像截面的灰度值呈不对称的近似高斯分布。
图 1为实际采集的线结构光条纹图像及其分析过程。图 1a结构光条纹原始图像中含有噪声等因素造成的干扰;图 1b为条纹图像截面对应的灰度值分布,伴有较为明显的干扰;图 1c为阈值分割后的条纹图像,图像中除了干扰以外,条纹本身出现断续状况;图 1d为原始条纹图像x轴中心线方向对应的红绿蓝(red, green, blue, RGB)灰度值变化情况。可知,由于像素灰度值的不连续,导致了光条图像分割后出现断续现象。因此, 需要利用数字图像处理技术对采集的原始激光条纹图像进行区域限定及干扰消除等操作。
-
采用5×5模板的中值滤波用于抑制条纹图像中的噪声,对滤波后的图像使用最大类间方差法来得到图像分割的最佳阈值,并根据此阈值对条纹图像进行全局二值化操作,可以表示为:
$ I(x, y)=\left\{\begin{array}{l} 1, (g(x, y)>t) \\ 0, (g(x, y) \leqslant t) \end{array}\right. $
(1) 式中,t表示为最佳分割阈值,g(x, y)为条纹图像像素点灰度值,I(x, y)为二值化后的像素点灰度值。将二值化后的图像作为掩模,并与条纹灰度图像进行乘法运算,得到条纹图像初始感兴趣区域,其公式为:
$ \boldsymbol{G}(x, y)=I(x, y) \times g(x, y) $
(2) 式中,G(x, y)表示条纹图像初始感兴趣区域。使用掩模操作可以很大程度消除条纹图像中的干扰,在保留条纹图像灰度特征的基础上,同时也能达到获取感兴趣区域的目的。图像掩模操作如图 2所示。
-
Steger法将图像视为2维函数,利用Hessian矩阵计算特征值和特征向量,得到条纹中心坐标的法线方向,并在法线方向上将条纹灰度分布根据泰勒多项式展开,获取对应法线上的极值点,即在条纹截面灰度分布曲线上1阶导数为0,2阶导数为负数的极小值点,为所求取得条纹截面中心亚像素点。通过求取线结构光条纹图像像素点Hessian矩阵的特征值及其对应的特征向量来得到光条中心点法线方向[10]。Hessian矩阵表示为:
$ \begin{array}{c} \boldsymbol{H}(x, y)=\left[\begin{array}{cc} \frac{\partial^{2} S(x, y)}{\partial x^{2}} & \frac{\partial^{2} S(x, y)}{\partial x \partial y} \\ \frac{\partial^{2} S(x, y)}{\partial x \partial y} & \frac{\partial^{2} S(x, y)}{\partial y^{2}} \end{array}\right] \otimes \\ \boldsymbol{G}(x, y)=\left[\begin{array}{ll} r_{x x} & r_{x y} \\ r_{x y} & r_{y y} \end{array}\right] \end{array} $
(3) 式中,S(x, y)为2维高斯函数; rxx, rxy, ryy分别为高斯函数的2阶导数和2阶偏导数与图像的卷积。以(x0, y0)为中心点,其对应法线方向上的单位向量为n=(nx, ny),对线结构光条纹截面灰度分布函数沿单位向量方向进行2阶泰勒展开,则条纹截面中心点(x0+tnx, y0+tny)的像素值可表示为:
$ \begin{array}{l} \boldsymbol{G}\left(x_{0}+t n_{x}, y_{0}+t n_{y}\right)=\boldsymbol{G}\left(x_{0}, y_{0}\right)+ \\ t \boldsymbol{n} \cdot\left(r_{x}, r_{y}\right)^{\mathrm{T}}+\frac{t^{2}}{2 !} \cdot \boldsymbol{n}^{\mathrm{T}} \cdot \boldsymbol{H}(x, y) \cdot \boldsymbol{n} \end{array} $
(4) 式中,rx与ry分别为对应微分形式的高斯函数与G(x, y)卷积得到,表示为:
$ \left\{\begin{array}{l} r_{x}=(\partial S(x, y) / \partial x) \otimes \boldsymbol{G}(x, y) \\ r_{y}=(\partial S(x, y) / \partial y) \otimes \boldsymbol{G}(x, y) \end{array}\right. $
(5) 结构光条纹中心坐标满足约束条件(tnx, tny)∈$\left[ { - \frac{1}{2}, \frac{1}{2}} \right] \times \left[ { - \frac{1}{2}, \frac{1}{2}} \right]$以及$\frac{{\partial \mathit{\boldsymbol{G}}(x, y)}}{{\partial t}} = 0$,可得最佳分割阈值t:
$ t=-\frac{n_{x} r_{x}+n_{y} r_{y}}{n_{x}{}^{2} r_{x x}+2 n_{x} n_{y} r_{x y}+n_{y}{}^{2} r_{y y}} $
(6) 式中,条纹中心点亚像素坐标为(x0+tnx, y0+tny)。
由于Hessian矩阵运算量大,其中每个像素点都要进行5次(rx, ry, rxy, rxx, ryy)2维高斯卷积运算,导致Steger算法计算效率低,造成系统实时性下降。
本文中在保证线结构光条纹中心提取精度的基础上,基于Steger算法,利用主成分分析法[16]对协方差矩阵进行特征分解,求得特征值与特征向量,从而达到减小Steger算法的计算量、提高计算效率的目的。
-
线结构光条纹中心亚像素提取的主要流程如图 3所示。
(1) 通过最大类间方差法与图像掩模操作得到条纹图像感兴趣区域,保留了条纹图像灰度特征;(2)利用自适应卷积模板对感兴趣区域进行去噪处理,并求得条纹中心坐标的像素集合;(3)根据中心坐标的像素集合,应用二次加权灰度重心法提取条纹中心的初始点; (4)根据条纹中心坐标初始点,利用区域增长法得到条纹中心坐标的小范围区域,使用主成分分析代替多次求解高斯卷积过程求得条纹中心亚像素坐标。
-
在线结构光条纹图像采集过程中,由于环境因素以及相机性能的影响,对条纹图像进行中值滤波和掩模操作往往不能有效消除噪声干扰。因此,要对条纹图像进行进一步去噪处理,最小化噪声对提取结果准确性的影响。为便于观察,将掩模后的条纹灰度图像进行二值化操作,如图 4所示。噪声尚未被完全消除,其结果将会导致条纹中心提取精度下降。
本文中结合传统激光条纹中心提取方法对噪声敏感的特点,基于激光条纹的几何特征及其相关性[17],采用自适应卷积模板来解决此问题。首先计算自适应卷积模板的大小,自适应模板的大小和参量值取决于激光条纹的几何信息和相关性,其获取流程如图 5所示,通过图像与模板进行卷积操作达到去除噪声的目的。
图 5中,模板行数为R, 模板列数为C, 模板中心行元素设置为k, 模板其余元素设置为λk, λ为系数。对掩模后的灰度图像逐列搜索灰度值大于零的像素点,可获得条纹感兴趣区域截面上下边界的像素点坐标值,并根据其坐标求出每列的宽度Di,得到最大的截面宽度wm,统计条纹截面非零列的数量,可得出条纹的长度L,条纹宽度均值wp=∑Di/L,条纹截面宽度周围噪声区域可表示为(wm-wp),λ的取值小于1,用于减弱噪声区域,令矩阵元素的总和为1,可得到参量k值。
条纹感兴趣区域经过自适应卷积模板处理后,如图 6所示。可以发现, 噪声得到明显减弱,条纹轮廓得到了较好保留。通过掩模操作,获得感兴趣条纹区域,并利用自适应卷积模板,有效地消除了噪声对条纹中心提取的干扰,能够提高光条提取精度,满足测量系统的准确性要求。
-
由于被测物体材质影响,导致线结构光光强分布不均,条纹截面宽度并不一致,通过检测条纹的上下边界,即每列中的最上和最下的非零灰度值对应点的坐标值,并将其记为(xi, yi, u)和(xi, yi, d),可以得到条纹截面每列中心坐标所在的像素集合,采用二次加权灰度重心法提取条纹中心的初始位置,可以表示为:
$ {y_{{\rm{center }}}} = \frac{{\sum\limits_{y = {y_{i, {\rm{u}}}}}^{{y_{i, {\rm{u}}}} + {D_i}} g {{\left( {{x_i}, y} \right)}^2} \times y}}{{\sum\limits_{y = {y_{i, {\rm{u}}}}}^{{y_{i, {\rm{u}}}} + {D_i}} g {{\left( {{x_i}, y} \right)}^2}}} $
(7) 式中,g(xi, y)为图像中的第xi行第y列坐标点的灰度值,条纹每列截面宽度Di=yi, d-yi, u,yi, u与yi, d分别为条纹截面上下边界的像素坐标。
-
线结构光条纹在其法线方向上梯度最大,而在其条纹方向上梯度最小,条纹区域中像素点法向量的方向变化较小,如图 7所示。在一个较小的条纹区域内,像素点法向量方向变化较小,因此可利用此区域的平均梯度值来求条纹的法线方向。
首先将加权灰度重心法提取条纹中心坐标初始值作为区域生长的种子点,将灰度阈值设为生长准则,以种子点为中心遍历周围八邻域像素值,确定下一种子点。沿条纹方向生长点周围八邻域定义为生长连通域,通过判断像素点灰度差值,将小于灰度阈值的点归为一个连通域,可以有效防止过度生长。
区域生长完成后,该区域内的梯度向量为,构建协方差矩阵,其次利用主成分分析对其进行特征分解[16],求解特征值与特征向量,条纹的法向为绝对值最大的特征值对应的特征向量。
最后,使用泰勒2阶展开求得条纹中心点亚像素坐标位置,有效避免了使用Hessian矩阵多次求解高斯卷积的过程。由于线结构光条纹图像在法线方向上呈不对称的近似高斯分布,高斯核参量σ的选取直接影响条纹中心的提取效果,结合Steger算法,本文中的高斯核参量σ大小设为:
$ \frac{w_{\mathrm{p}}}{2 \sqrt{3}} \leqslant \sigma \leqslant \frac{w_{\mathrm{p}}}{2} $
(8) -
实验在CPU为Inetel-5500U、RAM为8G的计算机上利用MATLAB2019a软件编程实现,使用Allied Vision Technologies公司生产的Mako G-192C相机。为了验证本文中所提方法的有效性与准确性,将实验结果与传统灰度重心法和基于Hessian矩阵的Steger法得到的实验结果进行主观评价与客观评价,其中,图像大小为378pixel×300pixel,滤波器模板大小均为5×5,Steger法的高斯核参量设置为σ=15/$\sqrt 3 $。
-
不同方法提取的条纹中心线如图 8所示。图 8a~图 8d分别为原始条纹的灰度图像、灰度重心法提取结果、Steger法提取结果、本文中的方法提取结果。为便于观察条纹中心提取效果,图 8e~图 8h依次为其局部放大图像。由图 8可知,灰度重心法提取的条纹中心波动较为明显,Steger法提取的条纹中心存在大量光条外点,需要后期通过曲线拟合方法进行消除,增大了计算量,但相比灰度重心法,Steger法提取到的条纹中心较为平整,但这两种方法与理想的条纹中心均存在着一定偏离。本文中方法提取结果波动性最小,且不存在光条外点,更加接近于理想的条纹中心。
为进一步验证所提算法的有效性,分别对存在条纹分叉以及散斑噪声干扰的图像提取中心坐标。图 9为条纹分叉情况下提取的条纹中心。灰度重心法提取结果波动明显,Steger法提取结果存在较大的误差,而所提方法提取结果较为平滑。图 10是存在散斑噪声干扰情况下提取的条纹中心。由于图像灰度分布不均,灰度重心法提取结果上下波动最为剧烈,Steger法提取结果则存在大量的光条外点,而所提方法由于去除了噪声干扰,提取结果较为平滑。
-
由图 1b可知,噪声干扰严重影响条纹图像x轴的灰度值分布,降低条纹中心坐标的提取精度。存在条纹分叉的图像在交叉处也会降低提取中心坐标的准确性。
为进一步评价所提算法的准确性,利用提取到的条纹中心点x坐标到条纹中心真值x坐标的标准误差表示算法提取中心点的准确度。由于条纹中心真值无法测得,导致真差未知,通常使用残差$\left( {{x_i} - \bar x} \right)$来代替真差,根据贝塞尔公式,条纹中心点x坐标标准误差可以表示为:
$ s=\sqrt{\frac{\sum\limits_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2}}{n-1}} $
(9) 式中,n为提取的中心点个数;x表示中心点的x坐标平均值。表 1为提取到的3种条纹图像中心x坐标的标准误差。理想情况、分叉情况以及散斑噪声干扰下的图像标准误差依次对应表 1中的s1, s2和s3,理想情况为不存在条纹分叉以及噪声干扰较小的图像。表中加粗字体表示最优值。
Table 1. The standard error of extraction methods of light strip center line
method gray centroid
method/pixelSteger method/
pixelthe proposed
method/pixels1 87.3528 81.0810 80.9546 s2 2.2628 4.1015 2.0966 s3 7.0723 2.7891 2.5715 从表 1可知,对比其它两种方法,本文中所提方法由于去除了条纹图像中大量噪声,将条纹中心的初始点进行区域生长运算,提高了条纹中心坐标的提取精度,标准误差最小,准确度相对较高。
线结构光条纹中心坐标提取作为实现3-D视觉检测系统的关键技术之一,需要满足工业环境下实时性要求,因此, 条纹中心提取算法的运行时间是检测算法实用性的一项重要指标。采用5张线结构光条纹图像分别使用上述提取方法,每张图片运行10次,3种方法提取条纹图像中心坐标的平均运行时间如表 2所示。
Table 2. Average running time of extraction methods of light strip center line
method gray centroid
method/sSteger
method /sthe proposed
method/s1 0.3147 1.7305 0.4128 2 0.4297 1.7528 0.4981 3 0.3571 1.6675 0.4219 4 0.4188 1.6504 0.3636 5 0.3357 1.7095 0.3837 从表 2可知,本文中的方法平均运行时间较快,与灰度重心法相差不大,但优于Steger法运行时间。本文中使用主成分分析求解协方差矩阵代替Hessian矩阵的求解过程,无需进行大量高斯卷积运算,在保证提取精度的条件下,计算复杂度相对较小。
线结构光条纹中心亚像素自适应提取算法
Sub-pixel adaptive center extraction of line structured light stripe
-
摘要: 为了解决传统条纹中心提取算法对物体材质及噪声敏感问题, 采用自适应结构光条纹中心提取算法来提取条纹亚像素坐标。该算法首先对图像进行预处理, 利用图像掩模操作提取条纹图像感兴趣区域, 通过自适应卷积模板消除噪声干扰, 得到条纹区域截面宽度及条纹中心坐标的像素集合; 其次根据中心坐标的像素集合采用二次加权灰度重心法求取条纹中心初始坐标值, 将此作为种子点进行区域生长运算, 并结合主成分分析分解特征矩阵; 最终得到线结构光中心的亚像素坐标点。结果表明, 该算法能够有效快速地获取结构光条纹中心亚像素坐标, 相比灰度重心法, 所提算法实验结果波动性较小且标准误差也相对较小, 提取速度相比基于Hessian矩阵的Steger法提高近4倍, 满足工业测量系统实时性要求。所提出的结构光条纹中心提取算法具有较高的提取精度和良好的稳健性, 计算复杂度低, 具有较高的实时性, 可为后续3维视觉测量系统提供良好的精度保障。Abstract: In order to solve the problem that the traditional stripe center extraction algorithm is sensitive to material and noise, an adaptive structured light stripe center extraction algorithm was used to extract the fringe sub-pixel coordinates. The algorithm first preprocesses the image, extracts the region of interest of the stripe image by using the image mask operation, eliminates noise interference through the adaptive convolution template, and obtains the pixel sets of the stripe area cross-sectional width and center coordinates. Secondly, according to the pixel set of the central coordinates, the initial coordinate value of the stripe center was calculated by the quadratic weighted gray centroid method, which will be used as the seed point for regional growth operation, then combined with principal component analysis to decompose the characteristic matrix, and finally the sub-pixel coordinate point of the center of the linear structured light was obtained. The results show that the center sub-pixel coordinates of the structured light stripe can be effectively and quickly obtained by this algorithm. Compared with the gray-scale barycenter method, the extraction results of the algorithm in this paper are less volatile and have a relatively small standard error. The extraction speed is nearly 4 times higher than that of the Steger method based on Hessian matrix, which meets the real-time requirements of the industrial measurement system. The proposed algorithm in this paper has high extraction accuracy, good robustness, low computational complexity, and high real-time performance, which provides nice accuracy guarantee for the subsequent 3-D vision measurement system.
-
Key words:
- image processing /
- center extraction /
- weighted gray centroid /
- region grow /
- sub-pixel
-
Table 1. The standard error of extraction methods of light strip center line
method gray centroid
method/pixelSteger method/
pixelthe proposed
method/pixels1 87.3528 81.0810 80.9546 s2 2.2628 4.1015 2.0966 s3 7.0723 2.7891 2.5715 Table 2. Average running time of extraction methods of light strip center line
method gray centroid
method/sSteger
method /sthe proposed
method/s1 0.3147 1.7305 0.4128 2 0.4297 1.7528 0.4981 3 0.3571 1.6675 0.4219 4 0.4188 1.6504 0.3636 5 0.3357 1.7095 0.3837 -
[1] HUANG L F, LIU G D, ZHANG Ch, et al. Laser stripe center extraction algorithm based on gray weight model[J]. Laser Technology, 2020, 44(2): 190-195(in Chinese). [2] HYUN K J, SUNG B I, MIN H C. A digital approach to dynamic jaw tracking using a target tracking system and a structured-light three-dimensional scanner[J]. Journal of Prosthodontic Research, 2019, 63(1): 115-119. doi: 10.1016/j.jpor.2018.05.001 [3] LIU X L, HE D, CHEN H L, et al. Techniques of structured light measurement network with 3-D sensors[J]. Infrared and Laser Engineering, 2020, 49(3): 0303007(in Chinese). doi: 10.3788/IRLA202049.0303007 [4] ZHANG H, ZHAO B X, LIU G H, et al. Design of rail surface defect detection system based on binocular structure light[J]. Process Automation Instrumentation, 2018, 39(4): 92-95(in Chinese). [5] ZENG D W, XU G L, CHENG Y H, et al. Subpixel extraction of li-near structured light stripe center based on adaptive template[J]. Optoelectronic Technology, 2018, 38(2): 117-121(in Chinese). [6] NAN F, LI D H, GAO Q, et al. Implementation of adaptive light stripe center extraction of improved Steger algorithm[J]. Laser Journal, 2018, 39(1): 85-88(in Chinese). [7] ZENG Ch, WANG Sh J, LU H, et al. Center extraction algorithm of line structured light stripe[J]. Journal of Image and Graphics, 2019, 24(10): 1772-1780(in Chinese). [8] LENG H W, XU Ch G, XIAO D G, et al. A Method for measuring complicated deep-hole profile using line-structured-light sensor[J]. Transactions of Beijing Institute of Technology, 2013, 33(2): 139-143(in Chinese). [9] WANG Sh Y, LI D H, GAO Q, et al. Detection of structured light strip center line based on improved skeletal removal algorithm[J]. Laser Journal, 2018, 39(10): 39-43(in Chinese). [10] LI Y, CHENG F, ZHAO Zh L. Machining precision online measurement of large span pin hole using structured light[J]. Journal of Zhejiang University (Engineering Science Edition), 2020, 54(3): 557-565(in Chinese). [11] LI D, GENG N, KANG J N. Research on laser stripe center extraction algorithm under complex background[J]. Computer Applications and Software, 2013, 30(3): 271-273(in Chinese). [12] STEGER C. An unbiased detector of curvilinear structures[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998, 20(2): 113-125. doi: 10.1109/34.659930 [13] LIU J, LIU L H. Laser stripe center extraction based on hessian matrix and regional growth[J]. Laser & Optoelectronics Progress, 2019, 56(2): 021203(in Chinese). [14] LI F J, LI X J, LIU Zh. A multi-scale analysis based method for extracting coordinates of laser light stripe centers[J]. Acta Optica Si-nica, 2014, 34(11): 1110002(in Chinese). doi: 10.3788/AOS201434.1110002 [15] YANG Zh H, YANG L, LI H, et al. Stripe center extrication algorithm for structured-light in complex environment[J]. Computer Technology and Developmentm, 2018, 28(9): 7-10(in Chinese). [16] CAI H Y, FENG Zh D, HUANG Zh H. Centerline extraction of structured light stripe based on principal component analysis[J]. Chinese Journal of Lasers, 2015, 42(3): 0308006(in Chinese). doi: 10.3788/CJL201542.0308006 [17] YIN X Q, TAO W, FENG Y Y, et al. Laser stripe extraction method in industrial environments utilizing self-adaptive convolution technique[J]. Applied Optics, 2017, 56(10): 2653-2660. doi: 10.1364/AO.56.002653