-
在标定物表面上,用一束激光以一定的角度照射,激光在标定物表面发生反射,在另一个角度用成像系统对激光反射光进行汇聚成像。由于入射和反射光构成一个三角形,如果标定物沿着激光束的方向发生位移时,则相机成像平面上的像点也会发生相应位移,通过物像位移之间的关系可以计算出被测物面各点的坐标。
按入射激光光束与被测物面的角度不同,可以把激光三角测量法分为斜射式和直射式两种。斜入射和直入射都可以实现对标定物进行非接触测量。一方面,直入射较斜入射式体积更小,光强集中,光斑变形小;另一方面,直入射式与斜入射式的测量模型在本质上是一致的,所以采用直入射法进行标定方法的研究。
-
垂直激光三角测量原理如图 1所示。图中,s为激光器光束端面A与基准面R的垂直距离,d为端面A与相机焦点O′的距离,d0是OO′的距离,f是相机焦距,可以使用基于2-D平面靶标的摄像机标定方法标定得到,Δ为被测物体距离基准面的距离,θ是激光束与OO′的夹角,δ是在成像平面上成像点偏移的距离,可以求得公式:
$\mathit{\Delta = }{\mathit{d}_{\rm{0}}}/\left( {{\mathit{\delta }^{ - 1}}f\sin \mathit{\theta + }{\rm{cos}}\mathit{\theta }} \right) $
(1) 式中,虽然OO′的长度d0、镜头的焦距f、激光束与镜头的夹角θ均为定值,在测量时是固定不变的,但是在测距系统装配时很难获得其准确值。因此,为了让激光三角测量系统精确地测量位移,在激光三角测量系统装配完毕后需要对这些参量进行精密标定。
-
如图 1所示,由于激光器发出激光束端面A无法准确判定,所以在标定时端面A与被测物体的距离无法直接测得。本文中提出了一种根据距离差进行标定的新方法,根据(1)式得到如下公式:
$\begin{array}{l} {\mathit{\Delta }_{i + 1}} - {\mathit{\Delta }_i} = {\mathit{\delta }_{i + 1}}/\left[ {{d_0}^{ - 1}\left( {f\sin \mathit{\theta + }{\mathit{\delta }_{i + 1}}\cos \mathit{\theta }} \right)} \right] - \\ \;\;\;\;\;\;\;\;\;\;\;\;{\mathit{\delta }_i}/\left[ {{d_0}^{ - 1}\left( {f\sin \mathit{\theta + }{\mathit{\delta }_i}\cos \mathit{\theta }} \right)} \right] \end{array} $
(2) 式中,i和(i+1)为两次标定物移动的次数,δi, δi+1为像点在成像平面上的横坐标,可以通过对所拍图像的处理得到,Δi+1-Δi为任意两次标定物移动的距离,可以直接通过测量得到。令a=f sinθ/d0,b=cosθ/d0,y=Δi+1-Δi,xi+1=1/δi+1,xi=1/δi,得到公式:
$y = {\left( {a{x_{i + 1}} + b} \right)^{ - 1}} - {\left( {a{x_i} + b} \right)^{ - 1}} $
(3) 由于Δi+1-Δi与δi,δi+1的值之间是非线性关系,本文中利用非线性回归分析的方法来求a,b的值,并由公式θ=arctan(af-1b-1)和d0=b-1cosθ计算得到θ和d0的值,从而完成激光三角测量系统的准确标定。
本文中采用高斯-牛顿迭代法来计算a,b的估计值。首先,选取a0,b0作为a,b的初始估计值,将(3)式在点(a0, b0)处展开成泰勒级数,并忽略2阶以上的高阶项,得到如下方程:
$y - \mathit{\hat y = m}{\rm{d}}\mathit{a + n}{\rm{d}}\mathit{b} $
(4) 式中,da, db为参量a, b的微分量,$\mathit{\hat y}$为函数y泰勒展开式的第1项,m和n为函数y泰勒展开式1阶项的系数;其中:
$\left\{ \begin{array}{l} m = \frac{{ - {x_{i + 1}}}}{{{{\left( {a{x_{i + 1}} + b} \right)}^2}}} + \frac{{{x_i}}}{{{{\left( {a{x_i} + b} \right)}^2}}}\\ n = \frac{{ - 1}}{{{{\left( {a{x_{i + 1}} + b} \right)}^2}}} + \frac{1}{{{{\left( {a{x_i} + b} \right)}^2}}}\\ \mathit{\hat y = }\frac{1}{{{a_0}{x_{i + 1}} + {b_0}}} - \frac{1}{{{a_0}{x_i} + {b_0}}} \end{array} \right. $
(5) 根据(4)式给出标定公式的矩阵描述:
$\mathit{\boldsymbol{Z = HX + \varepsilon }} $
(6) ${\rm{其中, }}\left\{ \begin{array}{l} \mathit{\boldsymbol{Z = }}{\left[ {{y_1} - {{\mathit{\hat y}}_1}{\rm{\;\;\;\;}}{\mathit{y}_2} - {{\mathit{\hat y}}_2}{\rm{\;\;\;\;}}{\mathit{y}_3} - {{\mathit{\hat y}}_3}{\rm{\;\;\;\;}} \cdots } \right]^{\rm{T}}}\\ \mathit{\boldsymbol{H = }}{\left[ {\begin{array}{*{20}{c}} {{m_1}}&{{m_2}}&{{m_3}}& \cdots \\ {{n_1}}&{{n_2}}&{{n_2}}& \cdots \end{array}} \right]^{\rm{T}}}\\ \mathit{\boldsymbol{X = }}{\left[ {{\rm{d}}\mathit{a}{\rm{\;\;\;\;d}}\mathit{b}} \right]^{\rm{T}}} \end{array} \right. $
(7) 式中,ε为误差项矩阵,(6)式可使用加权最小二乘法进行计算,当计算出X后,执行ai+1=ai+da,bi+1=bi+db,可迭代固定次数或者改正量小于某一阈值, 即可迭代计算,直到第n次计算得到比较理想的参量估计值an和bn,并以此次的计算值作为a和b的标定值。
-
本文中的测量系统使用的是线激光光源,线激光光源照射到被测物面的光带是有一定宽度的,因而它在相机上的成像并不是一个像素的宽度,激光束在成像平面上的成像宽度是占用几个像素甚至几十个像素,如图 2所示。所以在图像处理的过程中就涉及到激光线中心点提取的问题。
一般认为,激光光带的灰度分布是成高斯对称分布的。但由于受到外界环境和传感器内部噪声影响,接收的光斑波形发生改变。根据这个特性,本文中采用重心法求激光带中心点坐标[2]。首先,确定一个光带边界的灰度阈值T,然后在图像的每一行上判断出灰度值大于T的像素,利用重心公式计算光心的位置。假设在图像的一行上,灰度值大于阈值T的像素点坐标为uj,其灰度值为gj,其中,j=1, 2, 3, …, M(M为大于阈值T的像素的个数)。利用重心公式可以得到光心的位置u为:
$\mathit{u = }\sum\limits_{j = 0}^M {{g_j}{u_j}} /\sum\limits_{j = 0}^M {{g_\mathit{j}}} $
(8) 利用这种方法得到的光带中心是亚像素级的,该算法在图像背景较暗的情况下具有很好的效果。
-
测量系统标定过程中,标定物移动的方向与激光束的方向不会完全一致,如图 3所示。当标定物移动方向与激光束方向夹角为α时,移动距离BC′=BC,有效移动距离为BD,其长度小于BC′,使得标定物的实际移动距离Δ2′-Δ1小于标定计算中使用的移动距离Δ2-Δ1,从而产生误差。本文中将标定物移动方向与激光束方向之间的误差角α导致的标定误差称为非垂直误差。
令标定物移动的距离为l,则标定物移动方向与激光束方向夹角α和标定距离误差e的关系如下所示:
$\mathit{e = l - l} \times {\rm{cos}}\mathit{\alpha } $
(9) 对非垂直误差的分析在第2节中详细分析说明。
-
首先搭建激光三角测量系统的实验装置,本文中研究的测量系统硬件系统包括:线激光器、红外滤镜、标定物和相机。激光器和相机固定在工作台上,如图 4所示。
本系统需要采集多组相对深度数据,取一个标定模板放置于线激光器正前方,使标定物与激光束的方向垂直,沿激光束方向多次移动标定物,移动距离分别为30.000mm, 50.000mm, 100.000mm, 150.000mm, 200.000mm, 250.000mm, 300.000mm, 350.000mm, 400.000mm, 450.000mm,共移动10次。随着标定物移动距离的增加,激光束在相机成像平面上的成像位置在不断移动,如图 5所示。
-
相机的焦距经标定得到f=15.332mm,利用第1.2节中的原理处理所拍图像,得到a=0.00520, b=0.00159,由此计算可得测量系统的参量θ=12.041°, d=128.316mm,激光器与基准面距离s=601.560mm。
同样采用距离差的方法来验证标定的准确性,重新在实验中每隔50.000mm移动一次标定物并采集一组图像。通过分析图像得到的参量δ和标定实验中计算得到的测量系统的参量,利用(1)式计算得到激光束端口与标定物距离,从而检验这些参量是否准确,见表 1。
Table 1. Recalculate of calibration distance
number of moves distance between laser beam port and calibration object/mm actual moving distance of calibration object /mm 1 430.993 0.000 2 477.480 46.487 3 526.487 49.007 4 578.472 51.985 5 628.450 49.978 6 679.815 51.365 7 732.246 52.431 8 782.891 50.645 9 831.363 48.472 10 878.855 47.492 从表 1中的数据可以看出,在400.000mm~900.000mm的范围内测距,实验中由非垂直误差以及实验仪器本身的精度等一系列因素引起的误差优于4.000mm,满足要求。上述实验数据表明,本文中提出的实验标定方法的测量精度能够达到毫米级。
如果采用未改进的测量系统的标定方法,直接测量激光器端口与标定物的距离,假定激光器端口与标定物的距离测量时误差为比实际距离减少5.000mm,利用前面计算得到的激光器与基准面距离为已知值,通过第1.2节中的原理处理所拍图像, 并采用最小二乘法对(1)式进行计算的得到测量系统的参量θ=10.725°,d=101.075mm,激光器与基准面距离s=533.648mm。
采用前面改进方法中验证标定的准确性所采集的数据进行复核计算。利用(1)式计算得到激光束端口与标定物距离,与改进方法中复核计算的标定距离作比较,从而检验这些参量是否准确,如表 2所示。
Table 2. Two recalculation of calibration distance
number of moves check distance with no improvement method/mm the actual moving distance without improved method/mm check distance with improvement method/mm two times calculation calibration distance/mm 1 370.653 0.000 430.993 60.340 2 414.078 43.425 477.480 63.402 3 460.716 46.638 526.487 65.771 4 511.181 50.465 578.472 67.291 5 560.690 49.509 628.450 67.760 6 612.618 51.928 679.815 67.197 7 666.752 54.134 732.246 65.494 8 720.159 53.470 782.891 62.732 9 772.333 52.174 831.363 59.030 10 824.489 52.156 878.855 54.366 从表中的数据可以看出,由于测量激光器端口与标定物的距离减少了5.000mm,最终标定出来的测量系统的测量误差很大, 其测量出的移动距离精度也略低于改进方法的精度; 同时, 与改进后的测量方法测量标定物的实际距离相差了50.000mm以上,而改进后的测量系统测量标定物的距离经测量验证与实际距离误差很小,所以未改进的方法测量出的距离误差比较大。上述实验数据表明,本文中提出的实验标定方法的测量精度比与未改进的测量方法准确了很多。
-
第1.3节中已经分析了当标定物移动方向与激光束方向存在误差角α时,标称移动距离比实际移动距离要大。
假设每次标定物移动的距离l=50.000mm,随着α的增加,标定距离误差如图 6所示。
由图 6可以看出,标定距离误差与α大小呈非线性变化。同时开展仿真研究,探索非垂直误差对最终测量结果的影响规律。令相机参量为f=15.000mm,三角测量系统参量θ=12.000°, d=120.000mm,激光器与基准面距离设定为s=564.560mm。假设α=5.000°时,初始标定物距离为450.000mm时,每隔50.000mm采集一次图像,即实际标定的距离为450.000mm, 499.809mm, 549.619mm, 599.429mm, 649.239mm, 699.049mm, 748.859mm, 798.669mm, 848.479mm, 898.289mm,经标定后得到的三角测量系统的参量为θ=12.0001°,d=120.46mm,激光器与基准面距离s=566.718mm。
图 7为含有非垂直误差的激光三角测量系统。利用含有非垂直误差的标定参量进行测量计算,结果与实际距离的比较如表 3所示。
Table 3. Comparison of actual distance and measurement distance for α=5°
number of moves actual distance/mm measuring distance/mm 1 450.0 451.723 2 500.0 501.914 3 550.0 552.105 4 600.0 602.296 5 650.0 652.487 6 700.0 702.678 7 750.0 752.869 8 800.0 803.059 9 850.0 853.250 10 900.0 903.441 由此可见,当激光三角测量系统存在非垂直误差时,每次测量距离的间隔变为50.191mm,随着测量距离的增加,测量距离与实际的误差也在增加。这是由于在标定的时候,存在非垂直误差,使得计算中将每次标定物的实际移动距离49.809mm作为50.000mm进行计算,从而使得到的激光三角测量系统测量的距离比实际距离要大。在测量时,标定物移动距离50.000mm,测量得到的距离间隔为50.191mm,即测量得到的距离间隔比实际距离间隔要大。
一种激光三角测量的标定方法及误差分析
Calibration method and error analysis of laser triangulation measurement
-
摘要: 为了解决激光三角测量法在标定时,不能直接准确地测量激光器端口与标定物的距离的问题,采用了一种基于距离差进行标定的方法。该方法利用标定物移动的距离作为标定输入,改进了测量系统的标定方法;采用高斯-牛顿迭代法计算测量系统的参量,分析了测量系统在标定时可能产生的激光像点提取误差和非垂直误差。结果表明,测量距离的精度可达到4.000mm。该方法能够准确标定激光三角测量系统的参量。Abstract: In order to solve the problem that the distance between laser port and calibration object couldn't be measured directly and accurately, a new method based on distance difference of calibration was presented. The moving distance of calibration object was used as the calibration input to improve the traditional calibration method of measurement system. Gaussian-Newton iterative method was used to calculate the parameters of measurement system. The extraction error and non-vertical error of laser image point were analyzed. The results show that the precision can reach 4.000mm. The method can be used to calibrate the distance between calibration object and laser port accurately.
-
Table 1. Recalculate of calibration distance
number of moves distance between laser beam port and calibration object/mm actual moving distance of calibration object /mm 1 430.993 0.000 2 477.480 46.487 3 526.487 49.007 4 578.472 51.985 5 628.450 49.978 6 679.815 51.365 7 732.246 52.431 8 782.891 50.645 9 831.363 48.472 10 878.855 47.492 Table 2. Two recalculation of calibration distance
number of moves check distance with no improvement method/mm the actual moving distance without improved method/mm check distance with improvement method/mm two times calculation calibration distance/mm 1 370.653 0.000 430.993 60.340 2 414.078 43.425 477.480 63.402 3 460.716 46.638 526.487 65.771 4 511.181 50.465 578.472 67.291 5 560.690 49.509 628.450 67.760 6 612.618 51.928 679.815 67.197 7 666.752 54.134 732.246 65.494 8 720.159 53.470 782.891 62.732 9 772.333 52.174 831.363 59.030 10 824.489 52.156 878.855 54.366 Table 3. Comparison of actual distance and measurement distance for α=5°
number of moves actual distance/mm measuring distance/mm 1 450.0 451.723 2 500.0 501.914 3 550.0 552.105 4 600.0 602.296 5 650.0 652.487 6 700.0 702.678 7 750.0 752.869 8 800.0 803.059 9 850.0 853.250 10 900.0 903.441 -