光子学报  2017, Vol. 46 Issue (5): 512001-  DOI: 10.3788/gzxb20174605.0512001
0

引用本文  

张旭, 周涛. 平顶线结构光的中心检测算法及光刀平面标定[J]. 光子学报, 2017, 46(5): 512001-. DOI: 10.3788/gzxb20174605.0512001.
ZHANG Xu, ZHOU Tao. Center Detection Algorithm and Knife Plane Calibration of Flat Top Line Structured Light[J]. Acta Photonica Sinica, 2017, 46(5): 512001-. DOI: 10.3788/gzxb20174605.0512001.

基金项目

国家自然科学基金(Nos.51575332,61673252)和国家重点研发计划子课题(No.2016YFC0302401)资助

第一作者

张旭 (1982-), 男, 副教授, 博士, 主要研究方向为深度信息获取、计算机视觉、图像处理等.Email:xuzhang@shu.edu.cn

文章历史

收稿日期:2016-11-08
录用日期:2017-01-24
平顶线结构光的中心检测算法及光刀平面标定
张旭1,2, 周涛1    
(1 上海大学 机电工程与自动化学院, 上海 200072)
(2 机械系统与振动国家重点实验室, 上海 200240)
摘要:针对传统线结构光光刀平面标定方法测量精度不高,应用范围小的问题,提出基于平面标靶的线结构光系统光刀平面标定,对无激光的标靶图片进行迭代摄像机标定,有激光的标靶图片进行光刀平面标定.提出光强符合均匀分布的平顶激光检测中心算法,将平顶激光建模为矩形的台阶函数,估计背景亮度和前景亮度,确定亮条纹宽度,再将窗口内的有效像素参与重心计算,得到光条纹中心.用该算法对不同噪声及不同量块的图片进行处理,结果表明,处理后图像的均方根误差分别在0.149 pixel和0.176 pixel内,表明该算法抗噪声能力强、精度高.用该算法提取光条中心,计算光条在标靶上的位置,根据至少两个姿态下的光条中心三维点,基于最小二乘法拟合光刀平面.通过迭代摄像机标定和光刀平面标定,利用三角测量法,在立体视觉模型下获取物体的三维点云数据.实验测量两个距离为100.5 mm的标准球,相机与标准球距离为500 mm,比较两球心距离与标准距离,测得平均误差为0.236 mm.表明平顶激光检测中心算法切实可行,光刀平面标定方法基本满足要求.
关键词线结构光    中心检测    标定    光刀平面    光条中心    三维测量    
中图分类号:TP391      文献标识码:A      文章编号:1004-4213(2017)05-0512001-9
Center Detection Algorithm and Knife Plane Calibration of Flat Top Line Structured Light
ZHANG Xu1,2, ZHOU Tao1    
(1 School of Mechatronic Engineering and Automation, Shanghai University, Shanghai 200072, China)
(2 State Key Laboratory of Mechanical System and Vibration, Shanghai, 200240, China)
Foundation item: The National Natural Science Foundation of China (Nos. 51575332, 61673252) and National Key Research and Development Program (No.2016YFC0302401)
Abstract: Aiming at the problem that the traditional line structured light plane calibration measurement accuracy is not high and the range of applications is small, a light knife plane calibration method of structured light system based on plane target was proposed. The iterative camera calibration was performed for target image without laser, and the light knife plane calibration was performed for laser target picture. The flat top laser detection center algorithm was proposed that made the light intensity coincide with the uniform distribution. The flat top laser was modeled as a rectangular step function, then the brightness of the background and foreground brightness were estimated to determine light stripe width, and then the light stripe centerge was obtained by calculating the center of gravity within the window of effective pixels. The algorithm was used to deal with pictures with different noise and different blocks, the results show that the root mean square errors are within 0.149 pixel and 0.176 pixel, respectively, which means that the algorithm has high anti-noise ability and high precision. The light strip center was extracted by using the proposed algorithm, the position of the light bar on the target was calculated. According to the light strip center 3D points of at least two postures, the light knife plane was fitted by least squares. By means of iterative camera calibration and knife plane calibration, 3D point cloud data was obtained in the stereo vision model by using triangulation. Two standard balls with mutual distance of 100.5mm were experimental measured, the distance between the camera and the standard balls is 500mm, the distance between two ball centers and the standard distance were compared, the measured average error is 0.236mm. It shows that the flat top laser detection center algorithm is practicable, and the method of light knife plane calibration basically meets the requirements.
Key words: Line structured light    Center detection    Calibration    Knife plane    Stripes center    3D measurement    
OCIS Codes: 120.0120;140.3460;150.0150;150.1488;150.1135
0 引言

线结构光有结构简单、精度高、测速快等特点,被广泛应用于三维重建领域[1].线结构光传感器[2]由CCD摄像机和线结构光投射器构成,线结构光投射器将线结构光投射到被测物体表面,CCD摄像机采集带有线结构光的被测物体图像,根据CCD摄像机和线结构光投射器间的位置关系,用三角测量法[3]在立体视觉模型下获取被测物体特征点在世界坐标系中的三维坐标.

传统结构光光刀平面标定方法主要包括机械调整法、细丝散射法和基于交比不变法.机械调整法[4-5]由人为凭借经验调整机构且把摄像机模型简化成理想透视模型,测量精度不高,应用范围小.细丝散射法[6-7]利用线结构光投射器投射可见光到标靶上来获取线结构光标定点,由于线结构光标定点数目少,标定复杂,获取的线结构光标定点图像坐标精度不高,导致准确度不高.基于交比不变方法[8-9]根据交比不变原理来获取线结构光标定点,由于线结构光标定点数目少,且线结构光标定点易受摄像机畸变的影响,导致准确度不高.

线结构光光条中心提取是线结构光三维视觉测量中的关键技术,由于线结构光条纹一般具有3~12个像素宽度,而光条纹中心线上点的位置坐标才是测量所需的最准确的信息,所以必须对线结构光条纹进行光条纹中心提取,因此,光条纹中心提取的精度直接决定了测量结果的精度.传统的光条中心提取技术主要有极值法[10]、灰度重心法[11]、骨架细化法[12]、Steger法[13]等,这些方法应用的前提是激光光强符合高斯分布,光条中间部分亮度最高,靠近两端部分亮度逐渐降低.

本文采用平顶激光作为线结构光,光强不符合高斯分布,而是符合均匀分布,不适合采用光强符合高斯分布的传统激光中心提取算法[14].提出平顶线结构光光条中心提取算法,能保证光条中心精度以及提取速度.同时进行线结构光系统标定,包括迭代摄像机标定和光刀平面标定.

1 线结构光系统模型

线结构光投射器和CCD摄像机构成线结构光传感器系统[2-3].线结构光投射器将线结构光投射于物体表面,在物体表面形成光条纹图像,该图像由另一位置的摄像机采集.然后提取线结构光光条中心,根据立体视觉系统参数,利用三角测量法求出三维空间点的坐标.获取立体视觉系统参数,需要进行摄像机标定和光刀平面标定,获取摄像机内外参数和线结构光参数.

线结构光系统测量原理如图 1,线结构光投射器在物体表面形成激光光条,点P是激光光条上的一个中心点,OcXcYcZc表示摄像机坐标系,P′点是点P在成像平面上的成像点.由小孔成像原理可知摄像机光心Oc与成像平面成像点P′的连线通过待测点P,因此求直线OcP′与光平面的交点即可求得点P的三维坐标.

图 1 线结构光系统测量原理 Fig.1 Structured light system measurement schematics
2 线结构光系统标定

线结构光系统标定流程图如图 2,可得到整个系统的三维重建.

图 2 线结构光系统标定流程 Fig.2 Flowchart of the line structured light calibration
2.1 迭代摄像机标定

采用圆环图案特征的迭代摄像机标定,大大提高了光刀数据点测量精度.迭代摄像机标定先利用OpenCV函数获取摄像机标定用的数据,再根据张正友摄像机标定[15]获得摄像机内外参数,将原始图像转换到平行视图 (即标靶平面与图像平面平行的视图),再进行圆环中心点检测,然后将得到的圆环中心点转换到原始图像点,得到图像点与新的三维空间点的对应数据,利用对应数据再次进行摄像机标定.重复上述过程,直到标定精度不再提高.迭代摄像机标定算法主要步骤为:

1) 获取摄像机标定用的数据

先在圆环图案标定区域手动选择四个点,根据选择点连线的黑白变化计算特征点行列个数和初始圆环中心位置,然后用亚像素计算圆环中心位置,即根据初始圆环中心位置和相邻圆环中心点关系选择感兴趣区域 (Region Of Interest,ROI) 区域,利用OpenCV函数进行边缘检测,拟合椭圆,然后再对两个椭圆中心求均值即得到ROI区域的圆环中心坐标;

2) 张正友摄像机标定并优化内外参数

根据张正友摄像机标定,计算摄像机内外参数的初始值.再用摄像机畸变系数来校正,可以重新计算像点估计坐标的值,然后重新应用最大似然估计,并利用Levenber-Marquarat算法[16]迭代进行最小化处理,进一步优化摄像机内外参数参数;

3) 校正畸变获取对应性数据

校正投影畸变和镜头畸变,使圆环中心点检测精度提高.根据初始的摄像机内外参数,将原始图像转换到平行视图 (标靶与图像平面平行).使用圆检测,确定圆环中心位置,再利用OpenCV函数将平行视图检测出的圆环中心点映射到三维平面点,然后将三维平面点映射到原始图像点,获得对应性数据;

4) 判断收敛性

根据方向投射误差是否缩小,或者迭代步数是否已达到最大来判断是否收敛.

2.2 光刀平面标定 2.2.1 使用平面标定板

使用平面标定板获得数据进行线结构光系统光刀平面标定,关闭激光,摄像机拍摄 (过曝的图片);打开激光,摄像机拍摄 (灰暗的图片,这样激光线中心提取更加准确).过曝或灰暗的图片是通过调节曝光时间来获取的,然后根据无激光的图片进行迭代摄像机标定,根据有激光的图片进行光刀平面标定.采集在不同位姿下各28张有无线结构光的标靶图片, 圆图案的标靶图片如图 3(a),用于迭代摄像机标定,图 3(b)有激光的标靶图片用于光刀平面标定.

图 3 有无激光的标靶照片 Fig.3 Target picture with or without laser

按照2.1节迭代摄像机标定步骤,标定界面如图 4,完成摄像机参数标定.

图 4 标定界面 Fig.4 Calibration Interface
2.2.2 平顶线结构光光条中心提取

当线结构光投射器投射结构光到被测物体表面时,光条具有一定宽度,因此确定的光条位置直接影响测量结果的精度.光强符合高斯分布,当激光器非垂直投射时,存在一定离轴角时,如图 5,真正的分布将不是高斯分布.使用传统线结构光光条中心提取算法将导致激光条纹中心检测结果不一样.而光强符合均匀分布时,随着离轴角的变化,如图 6,亮度不会改变.

图 5 高斯分布的光强 Fig.5 Gaussian distribution of light intensity
图 6 均匀分布的光强 Fig.6 Uniform distribution of light intensity

由于本文线结构光使用的是平顶激光,提出平顶激光中心算法,该算法对每一行 (列) 的灰度图像,利用2.2.2.1和2.2.2.2阐述的方法进行重心检测.

2.2.2.1 估计背景亮度和前景亮度,确定亮条纹宽度

平顶激光可以建模为矩形的台阶函数, 如图 7.

图 7 线激光截面矩形模型 Fig.7 Line laser cross section graphical models
$B\left( x \right) = \left\{ {\begin{array}{*{20}{l}} {{I_1}} & {x \in \left[ {0,{x_1}} \right]}\\ {{I_2}} & {x \in \left[ {{x_1},{x_2}} \right]}\\ {{I_3}} & {x \in \left[ {{x_2},1} \right]} \end{array}} \right.$ (1)

式中,B(x) 为平顶激光的截面强度函数,I1为背景的亮度,I2为平顶激光的亮度,x1x2为激光条纹的两侧,激光的中心在$\frac{{{x_1} + {x_2}}}{2}$.对式 (1) 分别求0阶、1阶、2阶、3阶矩可得

$\left\{ {\begin{array}{*{20}{l}} {\smallint _0^1{\rm{d}}x = 1}\\ {\smallint _0^1B\left( x \right){\rm{d}}x = {I_1}\left( {1 + {x_1} - {x_2}} \right) + {I_2}\left( {{x_2} - {x_1}} \right)}\\ {\smallint _0^1{B^2}\left( x \right){\rm{d}}x = I_1^2\left( {1 + {x_1} - {x_2}} \right) + I_2^2\left( {{x_2} - {x_1}} \right)}\\ {\smallint _0^1{B^3}\left( x \right){\rm{d}}x = I_1^3\left( {1 + {x_1} - {x_2}} \right) + I_2^3\left( {{x_2} - {x_1}} \right)} \end{array}} \right.$ (2)

由于图像是数字图像,积分应该转化为数字积分,则1~3阶矩可通过式 (3) 求解,即

${m_i} = \frac{1}{e}\sum\limits_{j = 0}^{n - 1} {{{\left( {{I_j}} \right)}^i} \times j} $ (3)

式中,e为像素个数,i=0, 1, 2, 3,根据文献[17-19]可得两个亮度的值,即

$\left\{ {\begin{array}{*{20}{l}} {{I_1} = \frac{{ - b - \sqrt {{b^2} - 4ac} }}{{2a}}}\\ {{I_2} = \frac{{ - b + \sqrt {{b^2} - 4ac} }}{{2a}}}\\ {a = {m_2} - m_1^2 \ge 0}\\ {b = {m_1} \cdot {m_2} - {m_3} \le 0}\\ {c = {m_1} \cdot {m_3} - m_2^2 \ge 0} \end{array}} \right.$ (4)

将式 (4) 代入式 (2) 可得

${x_2} - {x_1} = \frac{{{m_1} - {I_1}}}{{{I_2} - {I_1}}}$ (5)

激光条纹的宽度为w=n(x2x1),n为窗口宽度.

2.2.2.2 重心法确定条纹中心

条纹重心值p

$p = \left\{ {\begin{array}{*{20}{l}} {\frac{{\sum\limits_{j = 0}^{n - 1} {I\left( i \right)i} }}{{\sum\limits_{j = 0}^{n - 1} {I\left( i \right)} }}} & \begin{array}{l} {\rm{for}}\;\;I\left( j \right) - {I_1} > T\\ \;\;{\rm{if}}\;\;{I_2} - {I_1} > T \end{array}\\ {{\rm{none}}} & {\;\;{\rm{if}}\;\;{I_2} - {I_1} \le T} \end{array}} \right.$ (6)

式 (6) 表明:当前景亮度和背景亮度差距小于阈值T,则无激光重心;当前景亮度和背景亮度差距大于阈值T,则计算激光重心.对于窗口内的任意一个像素,减去背景亮度,差值大于T的为有效像素参与到重心计算中,否则则不参与到重心计算中.

2.2.2.3 算法操作步骤

平顶激光中心算法操作步骤为:

Step 1:求该行 (列) 图像中亮度最大值所在位置Pmax

Step 2:以该亮度最大值为中心,取窗口n(要求为奇数,窗口宽度为 (n-1)/2);对此窗口内的数据使用2.2.2.1方法确定前景亮度 (即激光条纹亮度) 和背景亮度 (即未照射激光的环境亮度),得到条纹宽度;用式 (3) 分别计算一阶、二阶、三阶矩;用式 (4) 分别计算前景亮度I2和背景亮度I1,条纹宽度w

Step 3:比较I1I2与阈值T的大小,若I1I2较小,则该行无激光条纹中心,返回-1;否则,进入下一步;

Step 4:根据式 (6) 计算条纹重心,并统计参于重心计算的像素个数n1

Step 5:比较n1w,当n1大于等于w,则为有效重心值p,输出;否则,为不可靠重心值,返回-2;

Step 6:换算重心坐标到图像坐标系,即${p_{{\rm{center}}}} = {P_{{\rm{max}}}} - \frac{{n + 1}}{2} + p$.

2.2.3 计算光条中心在标靶上的三维位置

根据迭代摄像机标定的内参数、外参数、畸变参数、光条中心图像位置,计算得到在平面标靶坐标系下的三维点.

首先校正透镜畸变,包括径向畸变和切向畸变,畸变校正的过程是一个反复迭代的过程,根据非线性畸变模型式 (7),利用OpenCV函数对图像进行变换来抵消径向和切向镜头变形,求得非畸变校正图像的坐标[uv 1]T,即

$\left\{ {\begin{array}{*{20}{l}} {\left[ {\begin{array}{*{20}{l}} {{u_d}}\\ {{v_d}} \end{array}} \right] = \left( {1 + {k_{c1}} \cdot {r^2} + {k_{c2}} \cdot {r^4} + {k_{c5}} \cdot {r^6}} \right)\left[ {\begin{array}{*{20}{l}} u\\ v \end{array}} \right] + {\mathit{\boldsymbol{d}}_x}}\\ {{\mathit{\boldsymbol{d}}_x} = \left[ {\begin{array}{*{20}{l}} {2{k_{c3}} \cdot uv + {k_{c4}} \cdot ({r^2} + 2{u^2})}\\ {{k_{c3}} \cdot \left( {{r^2} + 2{v^2}} \right) + 2{k_{c4}} \cdot uv} \end{array}} \right]}\\ {{r^2} = {u^2} + {v^2}} \end{array}} \right.$ (7)

式中,参数kc2kc3是径向畸变系数,参数kc4kc4是切向畸变系数.再根据摄像机针孔成像模型式 (8),光条在标靶坐标系下z轴坐标为ZW=0.其中光条图像坐标[uv 1]Tri表示旋转矩阵R的第i列向量.将式 (8) 化简为非齐次线性方程组,使用最小二乘法求解可得到光条在平面标靶坐标系下的三维点.

$\left[ {\begin{array}{*{20}{l}} u\\ v\\ 1 \end{array}} \right] = \mathit{\boldsymbol{K}}\left[ {\begin{array}{*{20}{l}} {{r_1}} & {{r_2}} & {{r_3}} & t \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X_W}}\\ {{Y_W}}\\ 0\\ 1 \end{array}} \right] = \mathit{\boldsymbol{K}}\left[ {\begin{array}{*{20}{c}} {{r_1}} & {{r_2}} & t \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X_W}}\\ {{Y_W}}\\ 1 \end{array}} \right]$ (8)

其中摄像机内参数矩阵$\mathit{\boldsymbol{K}} = \left[ {\begin{array}{*{20}{c}} {{\alpha _u}} & 0 & {{u_0}}\\ 0 & {{\alpha _v}} & {{v_0}}\\ 0 & 0 & 1 \end{array}} \right]$, αu, αv分别为图像u轴和v轴上的尺度因子,(u0, v0) 为主点坐标.

2.2.4 基于最小二乘法的光刀平面方程拟合

将平面标靶坐标系下的特征点,乘以摄像机外参数转换到摄像机坐标系下.再用所有标定姿态下的三维光刀特征点,基于最小二乘法来拟合平面方程,平面参数方程为

$Ax + By + Cz + D = 0$ (9)

可化为

$z = {a_0}x + {a_1}y + {a_2}$ (10)

式中${a_0} = - \frac{A}{C},{a_1} = - \frac{B}{C},{a_2} = - \frac{D}{C},C \ne 0$,用一系列的f个点 (xi, yi, zi)(i=0, 1…n-1) 来拟合式 (10),使式 (11) 中目标函数S最小,即

$S = \sum\limits_{i = 0}^{f - 1} {{{\left( {{a_0}x + {a_1}y + {a_2} - z} \right)}^2}} $ (11)

式 (11) 应满足$\frac{{\partial S}}{{\partial {a_k}}} = 0\left( {k = 0,1,2} \right)$,解得a0, a1, a2,即得到光刀平面方程.

3 试验与分析 3.1 实验系统

试验采用Point Grey的CM3-U3-13Y3M-C相机,分辨率为1280×1024像素,镜头为KOWA,焦距为16 mm.线激光器采用美国相干公司的STR-660-35-A-FL-01L-45-E-TX激光器,波长为660 nm,功率为35 mW.

3.2 平顶线结构光中心算法精度分析 3.2.1 仿真实验

用MATLAB生成具有如图 6光强符合均匀分布的光条图像.分别加入均值为0、标准差σ为0.0、0.1、0.2、0.4、0.6、0.8的高斯分布噪声.随着噪声的增加,分别运用平顶激光光条中心算法、灰度重心法、骨架细化法、Steger法获取光条纹中心,与标准光条纹中心对比.重复300次求均方根 (Root Mean Square,RMS) 误差来分析光条中心检测精度.由于MATLAB生成的图片光条位于正中心,所以只需要比较X方向像素与实际像素的绝对偏差.

图 8(a)为加入均值为0,标准差为0.4的高斯噪声图片,图 8(b)~(e)分别为不同算法对图 8(a)方框中ROI获取的光条纹中心.表 1为光条图像在不同噪声情况下,采用不同算法所得的RMS比较结果.从表中可知,随着噪声增大,RMS逐渐增大;并且在相同噪声水平下,本文算法的RMS比其它三种方法都要小,各次实验的RMS均在0.149 pixel内.

图 8 仿真图片的条纹中心提取结果对比 Fig.8 Comparisons of stripe center extraction results for simulation image
表 1 提取条纹中心的RMS结果对比 (单位:pixel) Tab.1 Comparison of RMS of extracting stripe center (unit: pixel)
3.2.2 实际实验

分别使用100 mm、90 mm、60 mm、40 mm量块,将激光投射到量块表面,计算恢复出的直线度.分别运用平顶激光光条中心算法、灰度重心法、骨架细化法、Steger法获取光条纹中心,理想激光线是一条直线,然后用计算的条纹中心拟合直线,求基于拟合直线预测值和实际值之间的RMS,来进行直线度精度分析.

实际的量块测量系统如图 9,量块作为被测对象来验证算法的有效性.图 10(a)为激光投射到100 mm量块表面获取的图像,图 10(b)~(e)分别为不同算法对图 10(a)中亮光ROI获取的光条纹中心.

图 9 实际的量块测量系统 Fig.9 Actual gauge measurement system
图 10 量块的条纹中心提取结果比较 Fig.10 Comparision of stripe center extraction results for block

表 2为对量块图像采用不同算法所得的RMS比较结果,从表中可知,对同一量块,本文算法的RMS比其它三种方法都要小,各次实验的RMS都在0.176 pixel内.在CPU 2.2GHz,内存1.99 GB的PC机上,Visual C++6.0运行环境下,本文算法处理一张1280pixel×1024pixel的激光图像平均时间为85 ms,可以满足实际在线测量的实时性要求.

表 2 直线度的RMS结果对比 (单位:pixel) Tab.2 Comparison of RMS of straightness (unit: pixel)
3.3 三维重建结果分析

实际的线结构光测量系统如图 11,通过迭代摄像机标定,得到摄像机内参如焦距fc=[3395.561;3394.905],主点cc=[630.449;527.227],畸变kc=[-0.049;0.428;-0.001 -0.000],重投影误差error=[0.015;0.014].固定两个50 mm的标准球 (加工精度为0.28μm),距离相机大约500 mm,使用三座标测量仪测量获得半径值和两个球心的坐标.测得标准球球心之间距离为100.5 mm,将该值作为基准值.线结构光系统投射激光到两个固定的标准球上,如图 12(a).测量获得两个球面截线的三维点云数据,如图 12(b).分别对两个球面截线拟合圆,然后利用标准球的半径计算球心坐标,如图 12(c),根据线激光测量圆球物体,获得界面圆的轮廓,通过圆拟合可确定圆的半径为r,圆心坐标为p,圆平面法线为n.又知球的直径R,可确定球心坐标O

图 11 实际的标准球测量系统 Fig.11 Actual standard ball measurement system
图 12 标准球测量 Fig.12 Standard ball measurement
$O = P \pm \sqrt {{R^2} - {r^2}} n$ (12)

根据两个球心点的距离与标准距离比较,验证测量精度.

分别运用平顶激光光条中心算法、灰度重心法、骨架细化法、Steger法获取光条纹中心,得到球面截线的三维数据.计算两个球心点的距离并与标准距离比较,分析四种中心检测算法的精度.重复4次测量实验,如表 3,可知本文算法的误差比其它三种方法都要小,平均误差为0.232 mm,各次实验误差在0.260 mm以内.

表 3 检测算法比较 (单位:mm) Tab.3 Comparison of detection algorithms (unit: mm)

根据摄像机内外参数将圆环中心点的世界坐标反投影到图像坐标系中,计算投影点与实际提取像素的差值,以验证迭代摄像机标定精度.再根据两个球心点的距离与标准距离比较,验证光刀平面标定精度.重复10次标定实验,数据如表 4.从表中可知,迭代摄像机标定的平均误差为0.077 pixel,各次实验的平均误差均在0.086 pixel以内;线结构光光刀平面的平均误差为0.236 mm,各次实验的误差在0.262 mm以内.本文三维重建结果符合实际测量要求,通过迭代摄像机标定和光刀平面标定,可以获取更多、更精确的标定点,从而得到更准确的三维坐标.

表 4 标定实验数据 Tab.4 Calibration experimental data
4 结论

本文提出光强符合均匀分布的平顶激光检测中心算法.将本文算法分别与灰度重心法、骨架细化法、Steger法进行对比,结果表明:本文算法在处理不同噪声情况下仿真图像时,均方根误差均在0.149 pixel内;处理不同量块实际图片时,均方根误差均在0.176 pixel内.可知该算法抗噪声能力强,精度较高,处理结果稳定性高,对平顶激光具有实用价值.

提出基于平面标靶的线结构光系统光刀平面标定方法,只需采集至少2个位姿下有无激光的圆图案的标靶图片,进行迭代摄像机标定和线结构光光刀平面标定,利用三角测量法,在立体视觉模型下进行三维测量.通过标定精度分析,迭代摄像机标定的平均误差为0.077 pixel.实验测量距离为500 mm,标准球球心距离为100.5 mm,线结构光光刀平面的平均误差为0.236 mm,实验结果表明该方法切实可行.

参考文献
[1] LI Guan-nan, TAN Qing-chang, KOU Ying, et al. A new method for calibrating line strured light 3D measurement model[J]. Acta Photonica Sinica, 2013, 42(11): 1334-1339.
李冠楠, 谭庆昌, 寇莹, 等. 一字线结构光三维测量模型的新型标定方法[J]. 光子学报, 2013, 42(11): 1334-1339.
[2] HONG Lei, TIAN Qi-liang, JI Bao-jian. Calibration method for line strured light parameters based on homography matrix[J]. Acta Photonica Sinica, 2015, 44(12): 1212003.
洪磊, 田啟良, 嵇保健. 基于单应性矩阵的线结构光参量标定法[J]. 光子学报, 2015, 44(12): 1212003.
[3] XIONG Sheng-jun, ZHAO Fei, ZHAO Heng, et al. Three-dimensional shape measurement systtem based on auto-synchronous scanners with line strured light[J]. Acta Photonica Sinica, 2014, 43(11): 1112004.
熊胜军, 赵飞, 赵恒, 等. 线结构光自同步扫描三维形貌测量系统[J]. 光子学报, 2014, 43(11): 1112004.
[4] NIOAL V, ROSSI C, SAVINO S, et al. A method for the calibration of a 3-D laser scanner[J]. Robotics and Computer-Integrated Manufacturing, 2011, 27(2): 479-484. DOI:10.1016/j.rcim.2010.06.030
[5] VILACA J, FONSECA J C, PINHO A M. Calibration procedure for 3D Measurement systems using two cameras and laser line[J]. Optics & Laser Technology, 2009, 41(2): 112-119.
[6] DEWAR R. Self-generated targets for spatial calibration of structured light optical sectioning sensors with respect to an external coordinate systems[C]. Proceeding of Robots and Vision, 1988:5-13.
[7] JAMES K W. Noncontact machine vision metrology within a CAD coordinate System[C]. Proceeding of Autofact, 1988:9-17.
[8] ZHAO Y, CHEN X. The circular points-based camera self-calibration study on three classification Algorithms[J]. Journal of Computational Information Systems, 2011, 7(4): 1140-1147.
[9] HU Z X, WANG Y B, YANG J W, et al. A novel calibration method for three-dimensional modeling system used in virtual maintenance[C].Proceeding of Advanced Computer Control, 2010, 5:301-303.
[10] LV Z H, ZHANG Z Y. Build 3D scanner system based on binocular stereo vision[J]. Journal of Computer, 2012, 7(2): 399-404.
[11] OHTSU N. A threshold selection method from gray-level histo-grams[J]. IEEE Transactions on Systems Man & Cybernetics, 1979, 9(1): 62-66.
[12] ZHANG T Y, SUEN C Y. A fast parallel algorithm for thinning digital patterns[J]. Communications of the ACM, 1984, 27(3): 236-239. DOI:10.1145/357994.358023
[13] ZHOU Fu-qiang, WANG Fei, ZHANG Guang-jun. Three-step extraction method for line-stripe in structuered light vision[J]. Chinese Journal of Mechanical Engineering, 2008, 44(11): 215-219.
周富强, 王飞, 张广军. 结构光直线光条图像特征的三步法提取[J]. 机械工程学报, 2008, 44(11): 215-219.
[14] SUN Q, CHEN J, LI C. A robust method to extract a laser stripe centre based on grey level moment[J]. Optics and Lasers in Engineering, 2015, 67: 122-127. DOI:10.1016/j.optlaseng.2014.11.007
[15] ZHANG Z. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334. DOI:10.1109/34.888718
[16] MORE J J. The Levenberg-Marquardt algorithm:implementation and theory[M]. Numerical analysis. Springer Berlin Heidelberg, 1978: 105-116.
[17] SUN Q C, HOU Y Q, TAN Q C, et al. A fast and robust detection algorithm for extraction of the centre of a structured light stripe[J]. Lasers in Engineering, 2015, 31: 41-51.
[18] SUN Q, HOU Y, TAN Q, et al. A robust edge detection method with sub-pixel accuracy[J]. Optik-International Journal for Light and Electron Optics, 2014, 125(14): 3449-3453. DOI:10.1016/j.ijleo.2014.02.001
[19] USAMENTIAGA R, MOLLEDA J, GARCIA D F. Fast and robust laser stripe extraction for 3D reconstruction in industrial environments[J]. Machine Vision and Applications, 2012, 23(1): 179-196. DOI:10.1007/s00138-010-0288-6