APP下载

基于平面法向量的线结构光视觉传感器参数标定*

2023-08-02邓仕超蒋应良高兴宇

组合机床与自动化加工技术 2023年7期
关键词:角点靶标标定

邓仕超,蒋应良,高兴宇

(桂林电子科技大学广西制造系统与先进制造技术重点实验室,桂林 541004)

0 引言

三维测量技术作为计算机视觉热点领域,在出现的许多方法中,线结构光三维测量技术有着非接触、成本低、结构简单、快速稳定、精度较高等优点,在文物修复、航空摄影测量、工业检测等三维重建领域广泛应用[1-3]。线结构光测量系统的硬件是线结构光视觉传感器(LSLVS),由工业相机和激光组成,影响系统精度的主要原因是线激光平面的标定,因此光平面标定是LSLVS标定的关键。

线结构光平面标定根据标定靶标可以分为1D靶标、2D靶标、3D靶标。3D靶标由于要求高精度,且制造成本高,因此应用一直受到限制。1D靶标和2D靶标可以自由移动,应用广泛。周富强等[4]提出的基于一维靶标的光平面标定可以现场实现LSLVS的大视场标定,但是靶标每次只能获取激光平面里的一个特征点,导致效率不高。陈新禹等[5]提出一种基于单个同心圆标定的方法,通过P3P和交比原理计算三维特征点坐标,利用最小二乘法进行平面拟合。洪磊等[6]提出了一种基于单应性矩阵的标定方法,与交比不变法相比,该方法获取标定点的效率高,靶标设计简单、通用性强,定位准确度为±0.473 mm。王春梅等[7]提出一种基于直角方框共线圆点靶标的标定方法,只要使光平面与靶标圆点中心平面在同一平面就可一次性标定光平面,精度较高,不足之处在于采集图像时需要调整相机的位置,且对位置的要求高,拍摄的光条轮廓为锐角时求解过程繁琐且易出错。王华等[8]针对标定存在精度低、局限性大等问题,提出一种空间高精度线结构光直接标定法,标定后沿x方向的平均绝对测量误差为0.015 6 mm,z方向为0.017 4 mm。魏一等[9]直接利用光条像素坐标求光条点在相机坐标系的三维坐标,从而拟合平面。基于交比的方法受限于特征点数量而影响平面拟合的精度。张瑞峰等[10]采用较多的特征点对光平面进行拟合,通过求取图像的任意光条中心与相机光心构成的直线和靶标平面之间的交点,改变靶物位姿获得更多特征点来完成标定,不足之处是易受噪音干扰。于龙龙等[11]先获得图像光条直线与相机光心形成的平面方程,再让这个平面与靶物平面相交能够得到空间直线方程,通过多条空间直线拟合出激光平面。胡增等[12]提出基于消隐点的激光平面参数标定法,只需获得一组平移运动的靶标就能够标定出参数,精度与标定效率均较高,但受限于鲁棒性不高。

针对以上方法的局限性,本文提出一种LSLVS的参数标定方法。此方法在相机坐标系下利用相机标定出的内外参数来标定靶标平面及光心与光条构成平面的两个法向量,从而得到激光光条的若干特征点,最后利用多组特征点拟合出光平面。本文方法不仅提高了棋盘格角点的定位精度,而且也提高了LSLVS的精度。

1 基本原理

1.1 角点检测原理

在对棋盘格进行角点检测和定位时,传统方法通常是先通过findChessboardCorners角点检测器检测粗角点,再使用find4quadcornersubpix角点检测器提取亚像素角点,但是这两个检测器提取角点的速度太慢,且对图像的质量要求较高,鲁棒性一般。

DUDA等[13]提出的新的棋盘格角点精确检测和定位方法遵循的是基于中心线的角点模型(如图1所示),需要计算沿中心线穿过亮区的所有像素的积分高于沿另一条中心线穿过暗区的像素的积分,若P点刚好为棋盘格的角点,那么这两个积分之间的差满足最大。

图1 基于中心线的连接模型

(1)

式中:Rflocal[x,y,α]函数为局部Radon变换,目的是为给定像素坐标(x,y)周围的所有可能中心线提供积分;fc[x,y]是用来计算给定像素点(x,y)周围所有可能中心线的最大积分值和最小积分值差的平方的函数,m指定图像中的角点预计有多大。通过最小-最大搜索将图像转换为响应图就可识别棋盘角点,与Harris探测器响应图[14]不同,它是在图像平面的x和y方向上围绕选定点旋转。在响应图中确定局部极大值后,可以通过亚像素峰值算法估计相应角点的亚像素位置。此方法不仅能够保持高亚像素精度,而且对低对比度和图像噪声具有更好的鲁棒性。

1.2 Huber Loss

当前,在对数据进行直线拟合处理时,经常使用的损失函数是L2损失和L1损失。L2损失对异常点敏感,随着数据误差的增加,其损失是呈平方增加的,这将使损失函数的值增加,进而导致拟合出来的直线偏离正常数据,因此L2损失函数的鲁棒性较差。

(2)

式中:e表示生成数据与真实值的残差,下同。

L1损失的值呈线性增加,比L2损失要更加鲁棒,但是其在0处是不可导的,因此对数据优化比较困难。

s(e)=|e|

(3)

Huber损失[15]继承了L2损失和L1损失的优点,对数据中的异常点没有L2损失那么敏感,并且在每一处都可导。如图2所示,Huber损失在本质上是绝对误差,只是在误差很小时,就变为平方误差。误差降到多小时变为二次误差由超参数τ来控制,当残差e在[-τ,τ]之间时,等价为L2损失,而在[-∞,τ]和[τ,+∞]时等价为L1损失。

图2 τ=1时3种损失函数曲线图

(4)

2 标定方法

2.1 相机标定

在机器视觉中,要确定世界坐标系(O-XwYwZw)与图像像素坐标系(U-O-V)之间的转换关系,就必须对相机的参数进行标定。目前经典且高效的方法是张氏标定法[16]:

(5)

2.2 法向量标定

线结构光三维测量模型如图3所示,Oc为相机坐标系原点(即光心);L为线激光投射在靶标平面的光条;L′为激光条纹在像素坐标系下的成像。

图3 线结构光三维测量模型

在二维图像中,某条直线的方程可以表示为:

(6)

先提取图像的激光光条中心点的像素坐标,然后对提取的中心点使用Huber Loss进行直线拟合,得到直线方程的向量表示:

(7)

式中:(u0,v0)为直线方程中的一点,(m,n)为直线的方向向量。联立式(6)、式(7)可以推出α=n,β=-m,γ=m·v0-n·u0。

在相机坐标系下的空间直线与相机光心构成一个平面,此平面过相机坐标系原点,故这个平面方程的常数项系数为0,如图3所示,假设这个平面的法向量为no=(A0,B0,C0)T,则此平面的方程可以表示为:

(8)

对式(6)的像素坐标进行一个空间变换,将其转换到相机坐标系后可表示为:

(9)

即:

(10)

联立式(8)和式(10)可以得到此平面的法向量:

(11)

把世界坐标系建在棋盘格靶标平面上,其坐标原点与棋盘格第一个角点重合,Z轴垂直于靶标平面(如图3所示)。取靶标平面的法向量nw=(0,0,1)T,平面靶标上的第一个特征点p0=(0,0,0),其在相机坐标系下的坐标为pc0=(x0,y0,z0),因此靶标平面在相机坐标系下的法向量:

nc=[r1r2r3]·nw=r3

(12)

特征点的坐标为:

(13)

故靶标平面在相机坐标系下的方程可以表示为:

(14)

至此两个平面的法向量均已标定,并且统一到了相机坐标系下。将获得的两个法向量进行叉乘,即可求得在相机坐标系下两平面相交的空间直线的点向式方程:

(15)

式中:(a,b,c)为相机坐标系下空间直线的方向向量,(xp,yp,zp)为此空间直线上的一点,可由式(8)与式(14)得到。

2.3 光平面标定

采集棋盘靶标在不同位姿下的图像,通过式(15)可以获得在相机坐标系下的若干条空间直线。最后通过最小二乘法对这些空间坐标拟合出激光平面[17],从而求得激光平面方程:

AC·XC+BC·YC+CC·ZC+DC=0

(16)

式中:AC、BC、CC、DC为相机坐标系下激光平面方程的系数,为方便计算设DC=1。

采集的图像经过相机标定后可以获得像素坐标系与相机坐标系之间的投影关系:

(17)

相机内参K即为投影矩阵,联立式(16)与式(17)能够得到像素坐标(u,v)对应相机坐标系下的空间坐标(XC,YC,ZC)的具体计算表达式:

(18)

至此,线结构光传感器参数标定完成,通过图像中的激光条纹中心能够获得物体表面在相机坐标系下的三维成像。

3 实验与分析

实验所用平台如图4所示,传感器中的一字线激光波长为650 nm,功率100 mW,工作电压为DC 12 V。相机选用某公司的MV-HS510GC工业相机,分辨率为2000 ×2000 pixel,镜头为手动聚焦的定焦镜头BT-23C0814MP5,焦距为8 mm。参照物选择内角点为11×8的棋盘格。

图4 实验平台

标定激光平面的完整流程如下:

步骤1:拍摄激光照射在棋盘格空白区域的图像,改变棋盘格位姿,理论上2幅图像就能满足要求,为提高拟合的精度,一共采集12幅有效图像;

步骤2:使用高精度亚像素角点检测方法[13]对图像进行角点检测和定位,然后对相机使用张正友标定法获得相机内外参数;

步骤3:使用基于Hessian的Steger算法对所采集的图像的激光条纹中心进行提取[18],然后通过Huber Loss[15]函数对中心点进行直线拟合,得到图像光条直线的某一点及方向向量;

步骤4:利用相机的内外参分别求出在相机坐标系下棋盘格平面的法向量及图像光条直线与光心所构成平面的法向量,然后求这两个平面相交形成的空间直线的点向式方程;

步骤5:重复步骤3和步骤4,能够得到相机坐标系下12条空间直线点向式方程。每条直线在Y轴方向等距提取若干空间特征点,将所获得的特征点应用最小二乘法进行平面拟合。

为验证本文所提方法的有效性,采用文献[10-11]以及本文所提算法使用同一组实验图像对LSLVS进行标定,得到的激光平面方程如表1所示。

表1 光平面标定结果

从表1能够看出,本文方法与文献[10-11]方法的标定结果非常接近,因此本文所提方法是可行的。为了确定本文所提方法的传感器系统精度如何,使用表1中标定的3个平面方程分别对图5所示长度为7±0.06 mm的标准量块生成点云。

图5 量块图像

然后进行5次对比测量,得到的测量结果如表2所示。

表2 量块测量结果

可以看出,本文标定的LSLVS所测量量块的平均测量误差约为0.036 mm,测量的精度高于文献[10]的方法,其原因一方面是文献[10]方法在图像光条中心点提取与实际中心点有偏差时,光心与归一化平面中心点所构成的射线与靶标平面相交时形成的特征点的偏差会进一步被放大。另一方面,本文使用的角点检测算法对噪声更鲁棒,损失函数在误差很小时变为平方误差。虽然本文方法的平均测量误差比文献[11]方法略高,但也在标准量块的尺寸偏差范围之内。

4 结论

本文提出了一种线结构光视觉传感器标定方法,通过标定两个平面的法向量,从而得到这两平面相交的空间直线方向向量,改变靶标位姿能够获得多条空间直线的方向向量,最后在每条直线上等距取点进行激光平面拟合。首先,本文方法获得了较多的特征点,解决了传统方法特征点少导致系统精度低的问题。其次,基于快速角点检测算法与损失函数,提升了系统标定的速度与抗干扰能力。实验表明此方法鲁棒性较好,能够适应较复杂的环境。但此方法在曝光不足时存在特征点识别不准确,曝光过度时存在激光光条提取出错的情况,这也是下一步需要解决的难题。

猜你喜欢

角点靶标标定
“百灵”一号超音速大机动靶标
使用朗仁H6 Pro标定北汽绅宝转向角传感器
纳米除草剂和靶标生物的相互作用
基于FAST角点检测算法上对Y型与X型角点的检测
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
基于边缘的角点分类和描述算法
复杂场景中航天器靶标的快速识别
船载高精度星敏感器安装角的标定
基于圆环模板的改进Harris角点检测算法
前列腺特异性膜抗原为靶标的放射免疫治疗进展