DOI:10.14128/j.cnki.al.20264603.071
中图分类号:TN247;|TH165
陈琳, 江山, 朱训, 潘海鸿, 申毅莉
| 【作者机构】 | 广西大学机械工程学院; 梧州学院机械与资源工程学院 |
| 【分 类 号】 | TN247;TH165 |
| 【基 金】 | 广西研究生教育创新计划资助项目(YCBZ2024015) |
三线结构光传感器是单线结构光传感器的扩展,继承了线结构光传感器结构简单、低成本、测量速度快以及量程大等优势[1-3]。它能同时获取物体3个不同位置的表面信息,不仅缩短了三维重构所需的时间,还提升了检测效率,在工业检测、视觉引导、文物保护和自动化焊接等领域得到了广泛应用[4-6]。在线结构光视觉测量系统中,系统标定精度是决定测量结果准确性的关键因素[7-8]。系统标定包括相机标定和光平面标定,相机标定旨在获取相机的内参数、外参数和畸变系数,张氏标定法[9]是其中的经典方法之一。
光平面标定建立在相机标定的基础上,用于获取激光平面在相机坐标系中的位置和方向。包含提取光平面上的约束点或拟合光条直线、计算三维坐标、拟合光平面和计算光平面方程等步骤。众多研究者对光平面标定方法进行了深入研究并取得成果。杨凯等[10]通过交比不变原理计算特征点在相机坐标系下的坐标,再用最小二乘法拟合出光平面方程。李忠祥等[11]提取光条与圆形标靶的每列标靶连线的交点作为约束点并计算其相机坐标,再通过最小二乘法对多组约束点进行平面拟合得到光平面参数。Gao等[12]将特征点投影线和光条直线的公垂线中点作为标定点,并通过最小二乘法对多组标定点进行拟合得到光平面的参数。马媛媛等[13]基于靶标平面与像平面间的单应性矩阵和投影变换原理计算标定点的相机坐标,然后用RANSAC算法进行平面拟合得到光平面参数。Xu等[14]利用改进的灰度质心法提取光条中心线并获取标定点,再用RANSAC算法对多组标定点进行拟合得到光平面参数。Li等[15]利用RANSAC算法来拟合光平面,有效过滤掉标定数据中的异常值,提高了平面拟合的精度。
上述方法在正常情况下都能计算出光平面参数。但是,当标定点数量较少时,最小二乘法可能会遇到矩阵奇异的问题,导致算法不能计算出光平面参数。RANSAC算法虽然能筛选出标定数据中的离群点,在一定程度上提高拟合模型的精度,但其拟合模型的精度主要受模型迭代次数影响。因此,当标定点数量较少时,如何准确地计算出光平面参数仍是当前光平面标定方法研究的难点。
针对上述问题,本文提出了一种基于最小二乘向量寻优法的光平面拟合算法,以求进一步提升光平面标定的精度。该方法的独创性主要体现在三个方面:一是通过空间向量扩增机制将标定特征点转换为空间向量,显著提高数据样本量,避免矩阵奇异问题的发生;二是融合Steger和RANSAC激光线分类技术以及PnP(perspective-n-point)特征点生成技术,实现单一流程中多个光平面的同步标定,提高标定效率;三是在理论创新的基础上,通过实际工业级的实验验证,证明其标定精度和鲁棒性显著优于传统方法,测量误差均小于0.03 mm,满足工业高精度测量要求。
三线结构光传感器的标定包括单目相机标定和三线结构光平面标定两部分。单目相机标定主要是获取相机的内参和外参,内参包括像素坐标系与相机坐标系之间的相对位置关系以及相机的畸变系数,而外参则是相机坐标系与世界坐标系之间的相对位置关系。三线结构光平面标定的目标是确定三个激光平面在相机坐标系中的空间平面方程。
三线结构光传感器成像模型如图1所示,像素坐标系为Ouv,图像坐标系为O1xy,相机坐标系为OcXcYcZc,世界坐标系为OwXwYwZw。Xc、u和x三轴相互平行,Yc、v和y三轴相互平行,Oc点到O1点的距离为相机焦距f。S1、S2和S3分别为激光器发射出来的三个光平面,L1、L2和L3分别为3个光平面与标靶表面相交形成的3个光条纹。Qw是L2上任意一点,q是Qw在成像面上的二维成像点。Qw在世界坐标系下的齐次坐标为(xw,yw,zw,1)T,在相机坐标系下的齐次坐标为(xc,yc,zc,1)T,在图像坐标系下的齐次坐标为(x,y,1)T,在像素坐标系下的齐次坐标为(u,v,1)T。
图1 三线结构光传感器成像模型
Fig.1 Imaging model of three-line structured light sensor
根据相机成像模型可以得到世界坐标系到像素坐标系之间的转换关系:
(1)
式中:dx、dy表示单个像素的像元大小;u0、v0表示在像素坐标系下主点位置的偏移量;R和T分别为世界坐标转换为相机坐标时所对应的旋转矩阵和平移矩阵。记kx和ky分别为f/dx和f/dy,采用张正友标定法求出kx、ky、u0、v0、R、T和畸变系数,即可完成相机标定。该公式由相机针孔成像模型推导,具体可参考张正友标定方法[9]。
1.2.1 中心线提取与激光分类
采用Steger算法提取三线激光图像中的激光条纹中心线,由于图像本质上是由像素构成的,因此提取的中心线实际上是一系列点的集合(图2)。在提取中心线过程中,通常是逐行或逐列地搜索目标像素点,导致得到的中心线点集缺乏顺序。而三线激光测量系统包含三条激光线,难以直接确定中心线点集中每个点对应的激光平面,这使得标定工作无法直接进行。因此,需要先对3条激光线进行准确分类。
图2 激光线分类结果
Fig.2 Laser line classification results
首先,将提取到的中心线点集划分为3个独立的新点集,具体步骤如下:
(1)采用RANSAC算法处理原始中心线点集,以识别并提取出聚集在一条直线附近的数据点,形成一个新的点集,记为P1。
(2)从原始中心线点集中剔除已归入P1的数据,形成一个新的中心线点集。再次采用RANSAC算法对此新集合进行处理,以获得第二个点集P2。
(3)重复第二步的过程,以获得第三个点集P3。
其次,依次计算P1、P2和P3中所有点的y轴坐标的平均值,分别记为y1、y2和y3。
最后,通过比较y1、y2和y3的数值大小,将激光线按照y轴平均值从小到大的顺序进行排序,分别为L1、L2和L3,分类结果如图2所示。
1.2.2 特征点相机坐标计算
完成激光线分类后,从标定板与光平面的交线上选取一系列特征点并转换到相机坐标系下,为后续光平面拟合工作做准备。首先,拟合棋盘格中所有列直线在像素坐标系下的直线方程,并将这些参数收集到列直线参数集Ep{e1, e2, e3, e4}。同样地,拟合棋盘格中所有行直线在像素坐标系下的直线方程,并将这些参数收集到行直线参数集Sp{s1, s2, s3}。然后,如图3(a)所示,计算第一条激光线L1与所有列直线在像素坐标系下的交点并分别记为O、P1、P2和P3,计算过O点且与L1垂直的直线方程并记为L1′,求解L1′与s2和s3在像素坐标系下的交点并分别记为P4和P5,将所有交点组成点集Ps1{O, P1, P2, P3, P4, P5},其前4个点是第一个光平面在标靶上的特征点。同理,处理另外两条激光线后得到Ps2{O, P1, P2, P3, P4, P5}和Ps3{O, P1, P2, P3, P4, P5}。不同的是,Ps2中的P4和P5分别是L2′与s1和s3的交点,如图3(b)所示。Ps3中的P4和P5分别是L3′与s1和s2的交点,如图3(c)所示。最后,采用PnP方法计算得到点集Ps1、Ps2和Ps3中所有点的相机坐标,它们的前4个点分别是三个光平面在标靶上的特征点的相机坐标。
图3 标靶上用于PnP法的特征点
(a)第一个光平面;(b)第二个光平面;(c)第三个光平面
Fig.3 Feature points on the target for the PnP method
(a)The first light plane; (b)the second light plane; (c)the third light plane
1.2.3 最小二乘向量寻优法计算光平面参数
按照1.2.2节的方法计算出光平面上特征点的相机坐标后,可以进一步基于这些坐标数据计算光平面的参数。设激光平面在相机坐标系的平面方程为:
![]()
(2)
采用最小二乘向量寻优法求解光平面参数的原理如图4所示。已知一空间点集Pc:
![]()
(3)
图4 最小二乘向量寻优原理
Fig.4 Least squares vector optimization principle
首先,计算Pc的平均值点:
![]()
(4)
其次,将Pc中的每个点都与平均值点相减,得到一组空间向量Sc:
![]()
(5)
然后,将Sc中所有的向量两两叉乘,得到空间点集所在平面的法向量集Fc:
![]()
(6)
随后,以Fc中第一个向量的方向为基准,对Fc进行处理确保所有向量方向一致。最后,使用改进的最小二乘法来确定空间向量集所在平面的法向量,也就是原始空间点集所在平面的法向量,计算得出Fc的公共最优解:
![]()
(7)
之后,结合Fc的公共最优解与Pc的平均值点的值计算式(2)中的常数项d:
![]()
(8)
至此,空间点集所在平面的参数a,b,c,d全部解出。其中,公共最优解的具体计算方法如下:
首先,如图4所示,定义公共最优解为单位向量,且Fc中的任意一个向量Fr与Fc的公共最优解都有夹角θr,根据向量余弦公式的展开式可以得到:
(9)
理想情况下应满足:
(10)
但由于实际测量中不可避免的误差,Fc中的所有向量不可能完全重合于一个公共向量,所以式(10)在实际中无解。为了解决这一问题,采用改进最小二乘法来求解这个方程组,找到最佳拟合的解。定义目标函数E:
(11)
其次,为了最小化目标函数E,分别对a、b和c求偏导,并置为0,结果如式(12):
(12)
将式(12)展开、变形和化简,并将方程组变量独立出来,结果如式(13):
(13)
最后,将从光平面上提取出的所有特征点的空间坐标代入式(13)即可计算出变量a、b和c。
为了验证光平面标定的精度,设计并搭建了如图5所示的三线结构光测量系统。该系统中使用的相机镜头型号为MVL-HF2528-05S,其焦距为25 mm,分辨率为 3 072 pixel×2 048 pixel。三线激光发射器的波长为650 nm,功率为100 mW。标靶选择两种不同形状的标定板,一种是规格为4×3,格子边长为15 mm的棋盘格标定板;另一种是规格为4×3,直径为10 mm,圆心距为15 mm的圆形标定板。
图5 三线结构光测量系统
Fig.5 Three-line structured light measurement system
在对三线结构光测量系统进行标定之前,需要先调整相机的工作距离和焦距。首先,将棋盘格标定板放置于实验台上,调整相机的工作距离,确保标定板完全处于相机视野范围内,并将该距离记为预设工作距离。随后,调节相机镜头直至标定板的成像达到清晰可见。调整工作完成后,将标定板放置在实验台上,首先拍摄一张仅含标定板的图像。接着,在保持标定板位置不变的情况下,打开激光器,调节相机的曝光参数,并拍摄一张包含激光线条的标定板图像。此后,改变标定板位置和姿态,重复上述拍摄步骤,共计获取25组图像,部分采集的标定图像如图6(a)所示。在这些图像中,不包含激光线条的用于相机标定,而包含激光线条的用于光平面标定。同理,采集25组圆形标定板的标定数据,部分标定图像如图6(b)所示。
图6 部分标定图像
(a)棋盘格标定板;(b)圆形标定板
Fig.6 Partial calibration image
(a)Checkerboard calibration plate; (b)circular calibration plate
由于相机内参是固定的,因此选择任意一种标定板进行标定即可,文中选择棋盘格标定板进行相机标定。在C++开发环境下用Opencv库对相机进行标定,得到的内参数矩阵、25 组外参数矩阵、径向畸变系数和切向畸变系数如表1所示。
表1 相机标定结果
Table 1 Camera calibration results
ParameterCalibration resultsInternal parameter matrixExternal parameter matrixRadial distortion=0.080 76=-5.216 62=0Tangential distortionp1=0.003 91p2=0.006 26
完成相机标定后,继续标定光平面在相机坐标系下的方程。首先,从采集到的包含激光条纹的标定板图像中提取出激光条纹的中心线点集。然后,通过1.2.1节中所述的RANSAC算法实现中心线点集的分类与激光直线方程的拟合。接着,利用1.2.2节中所述的PnP法提取出3个光平面的特征点并转换到相机坐标系下。最后,根据1.2.3节中提出的最小二乘向量寻优法求解出光平面参数,得到光平面方程。拟合得到的3个光平面如图7所示,相应的参数计算结果列于表2和表3中。
表2 光平面计算结果(棋盘格标定板)
Table 2 Light plane calculation results (chessboard calibration plate)
Laser plane serial numberCalibration results10.031 3x+0.989 9y-0.146 4z+77.390 4=020.141 2x+0.980 9y-0.203 2z+80.762 4=030.104 6x+0.947 9y-0.333 8z+118.921 0=0
表3 光平面计算结果(圆形标定板)
Table 3 Light plane calculation results (circular calibration plate)
Laser plane serial numberCalibration results1-0.175 9x+0.988 3y-0.158 3z+81.959 2=020.278 4x+0.984 9y-0.181 0z+71.037 9=030.071 0x+0.958 7y-0.299 7z+102.376=0
图7 最小二乘向量寻优法拟合光平面
(a)棋盘格标定板;(b)圆形标定板
Fig.7 Least squares vector optimization method for fitting light plane
(a)Checkerboard calibration plate; (b)circular calibration plate
根据图1和相机针孔成像模型[9]推导可以得到相机坐标系到像素坐标系之间的转换关系:
(14)
结合(2)和式(14),得到将像素坐标转换到相机坐标的公式:
(15)
式中:(Xc,Yc,Zc)为特征点在相机坐标系下的坐标;(a, b, c, d)为光平面参数;(kx, ky, u0, v0)为相机内参;(u, v)为特征点在像素坐标系下的坐标。
为了验证最小二乘向量寻优法的标定精度,对两种不同尺寸的垫片进行内径测量实验。通过游标卡尺测量出两种垫片的内径分别为10.14 mm和12.10 mm,如图8所示,将这两个数值作为标准值。
图8 两种垫片的实际内径及采集的验证图像
(a)内径为10.14 mm的垫片;(b)内径为12.10 mm的垫片
Fig.8 The actual inner diameters of the two gaskets and the collected verification images
(a)Gasket with inner diameter of 10.14 mm; (b)gasket with inner diameter of 12.10 mm
调整相机到预设工作距离,将3个垫片放置于实验台上后打开激光。然后,调整垫片位置,使得3条激光线恰好投射在3个垫片的中间位置并采集图像,如图8(a)中右侧图像所示。保持相机工作距离不变,移动垫片或改变相机位姿,重复采集30组图像。
检测激光线在垫片内径上两个关键点的坐标,将其转换到相机坐标系下并计算欧式距离,所得结果为垫片内径的测量尺寸,将测量尺寸与标准值的差作为测量误差。重复上述步骤,得到30组测量误差,取其平均值作为光平面的标定精度。
根据上述步骤分别对两种垫片进行测量,统计其平均测量误差,并将结果分别汇总到表4和表5中。
表4 内径为10.14 mm的垫片测量30次的平均误差(mm)
Table 4 Average error of 30 measurements of a gasket with an inner diameter of 10.14 mm (mm)
Laser plane serial numberGasket inner diameterAverage measurement error12310.140.015 30.018 20.019 6
表5 内径为12.10 mm的垫片测量30次的平均误差(mm)
Table 5 Average error of 30 measurements of a gasket with an inner diameter of 12.10 mm (mm)
Laser plane serial numberGasket inner diameterAverage measurement error12312.100.023 50.021 20.027 4
为了评价最小二乘向量寻优法的有效性,将其与经典的最小二乘法和RANSAC算法进行对比分析。在同样的实验条件下,使用最小二乘法和RANSAC算法分别计算光平面的参数,在此基础上,对两种不同尺寸的垫片进行测量。采用RMSE作为评价标准,分别计算三种方法测量结果的RMSE,并将结果以直方图的形式呈现在图9中。结果显示,最小二乘向量寻优法在对两种不同尺寸的垫片测量时,其RMSE值均小于最小二乘法和RANSAC算法,证明了其有效性。
图9 3种方法测量不同垫片的均方根误差
(a)内径为10.14 mm的垫片;(b)内径为12.10 mm的垫片
Fig.9 Three methods to measure the root mean square error of different gaskets
(a)Gasket with inner diameter of 10.14 mm; (b)gasket with inner diameter of 12.10 mm
最小二乘向量寻优法RMSE值较小的主要原因如下:首先,本方法通过空间向量扩增机制,将特征点转换为更多的空间向量数据,有效提高了拟合数据的可靠性,降低了随机误差的影响;其次,与经典最小二乘法相比,该方法在向量构建过程中自然抑制了单个异常点对整体拟合结果的干扰;而与RANSAC算法相比,虽然RANSAC算法能够筛选异常点,但其结果依赖迭代次数及随机选择的数据,稳定性略低。因此,最小二乘向量寻优法综合提高了数据鲁棒性与拟合精度,从而获得了最低的RMSE值。
为了提高三线结构光传感器标定精度,提出一种基于最小二乘向量寻优的三线结构光平面标定方法。该方法以棋盘格标定板为标靶,首先使用Steger算法提取光条中心线,然后结合RANSAC算法拟合光条直线并对激光线分类,方便后续对3个光平面同时进行标定。同时,该方法将拟合光平面的数据从空间点转换为空间向量,增加了拟合平面数据的样本量,不仅解决了标定数据数量较少时经典最小二乘法可能会失效的问题,还提高了拟合平面的精度。经过实验验证,该方法能同时完成三线结构光测量系统中3个光平面的标定任务。对两种不同尺寸的垫片进行重复测量,该方法的平均测量误差均低于0.03 mm,满足一般工业精度要求。此外,通过对比实验证明,最小二乘向量寻优法的精度和稳定性均高于经典最小二乘法和RANSAC算法。在实际工业大规模应用中,最小二乘向量寻优法通过空间向量扩增的方法扩增了样本数据量,显著提升了计算复杂度,从而影响了系统的实时性。因此,如何通过算法优化或并行计算等方式提高计算效率是未来可考虑的改进方向。
[1] 徐献策, 张蕊华, 高长发, 等. 基于GWGCGM和DBSCAN的线结构光条纹中心提取方法[J]. 应用激光, 2024, 44(7): 164-171. XU X C, ZHANG R H, GAO C F, et al. Centerline extraction method of structured light stripe based on GWGCGM and DBSCAN[J]. Applied Laser, 2024, 44(7): 164-171.
[2] ZHOU J B, PAN L S, LI Y H, et al. Data-driven laser plane optimization for high-precision numerical calibration of line structured light sensors[J]. IEEE Access, 2021, 9: 57404-57413.
[3] 胡增, 高兴宇, 李伟明, 等. 基于消隐点的线结构光传感器光平面标定方法[J]. 组合机床与自动化加工技术, 2022(6): 168-171. HU Z, GAO X Y, LI W M, et al. Calibration method for line structured light sensor based on vanish points[J]. Modular Machine Tool &Automatic Manufacturing Technique, 2022(6): 168-171.
[4] ZHANG S. High-speed 3D shape measurement with structured light methods: A review[J]. Optics and Lasers in Engineering, 2018, 106: 119-131.
[5] 刘红光, 张宏, 石邦凯, 等. 一种基于二维平面靶标的线结构光标定方法[J]. 应用激光, 2022, 42(8): 129-138. LIU H G, ZHANG H, SHI B K, et al. A linear structured light calibration method based on 2D planar target[J]. Applied Laser, 2022, 42(8): 129-138.
[6] 邓仕超, 蒋应良, 高兴宇. 基于平面法向量的线结构光视觉传感器参数标定[J]. 组合机床与自动化加工技术, 2023(7): 69-72. DENG S C, JIANG Y L, GAO X Y. Parameter calibration of line structured light vision sensor based on plane normal vectors[J]. Modular Machine Tool &Automatic Manufacturing Technique, 2023(7): 69-72.
[7] XU X B, FEI Z W, YANG J, et al. Line structured light calibration method and centerline extraction: A review[J]. Results in Physics, 2020, 19: 103637.
[8] 田雄斌, 杨浩, 戴尔晗. 三维重建中的线结构光标定[J]. 应用激光, 2023, 43(9): 138-146. TIAN X B, YANG H, DAI E H. Calibration of line-structured light in 3D reconstruction[J]. Applied Laser, 2023, 43(9): 138-146.
[9] ZHANG Z. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334.
[10] 杨凯, 余厚云, 杨超. 基于自由靶标的线结构光视觉测量系统标定研究[J]. 机电工程, 2016, 33(9): 1066-1070. YANG K, YU H Y, YANG C. Calibration of line structured-light vision measurement system based on free-target[J]. Mechanical &Electrical Engineering Magazine, 2016, 33(9): 1066-1070.
[11] 李忠祥, 周哲海, 陈丽, 等. 一种线结构光平面的标定方法[J]. 激光技术, 2023, 47(6): 795-802. LI Z X, ZHOU Z H, CHEN L, et al. A method for calibrating the light plane of the linear structured light[J]. Laser Technology, 2023, 47(6): 795-802.
[12] GAO H P, XU G L, MA Z C, et al. A novel calibration method of line structured light plane using spatial geometry[J]. Sensors, 2023, 23(13): 5929-5942.
[13] 马媛媛, 彭凯, 杨伟东, 等. 随机抽样一致性算法在线结构光视觉测量系统中的应用[J]. 科学技术与工程, 2018, 18(3): 68-73. MA Y Y, PENG K, YANG W D, et al. Application technology of Radom sample consensus algorithm in line structured light vision measurement system[J]. Science Technology and Engineering, 2018, 18(3): 68-73.
[14] XU X B, FEI Z W, TAN Z Y, et al. Improved calibration method based on the RANSAC approach and an improved gray centroid method for a laser-line-based structured light system[J]. Applied Optics, 2019, 58(35): 9603-9613.
[15] LI W J, ZHANG Z H, JIANG Z S, et al. A RANSAC based phase noise filtering method for the camera-projector calibration system[J]. Optoelectronics Letters, 2022, 18(10): 618-622.
X