线结构光传感器标定方法与流程

文档序号:12060492阅读:644来源:国知局
线结构光传感器标定方法与流程

本发明涉及线结构光传感器技术领域,特别涉及一种线结构光传感器标定方法。



背景技术:

线结构光传感器的标定是型面数字化,外形检测不可缺少的工具,准确的标定线结构光参数是进行精确测量的前提。结构光方法是一种主动式光学测量技术,其基本原理是由结构光投射器向被测物体表面投射可控制的光点、光条或光面结构,并由图像传感器(如摄像机)获得图像,通过系统几何关系,利用三角原理计算得到物体的三维坐标。

线结构光发生装置包括:激光投射器以及摄像机。线结构光的数学模型:1、摄像机的透视投影模型2、结构光光平面方程。需要标定的内容:摄像机内参(相机焦距、主点、畸变系数),线结构光传感器结构参数(光平面方程)。主要指结构参数的标定,即光平面相对摄像机的位置。

众所周知,机器人在使用线结构光传感器前都必须有两个标定过程:线结构光传感器标定、手眼关系标定。手眼关系标定是为了计算空间中传感器系统和机器人系统之间的相互关系的过程;线结构光传感器标定是为了计算空间中传感器内部本身摄像机和结构光平面两者之间的相互关系的过程,其中标定方法中有2个重要的组成部分,一个是标定算法,一个是辅助的标定靶标。

近些年来线激光传感器标定方法越来越多,无论是标定算法还是辅助的标定装置都有很大的提升。但是无论是哪一种标定方法或多或少都有自身设计的缺陷,比如摄像机系统、结构光平面分开标定,标定精度差,需要外部的工装平台进行辅助,需要部分的人工参与,标定过程繁琐等问题。

本发明的发明人在实现本发明的过程中发现:现有技术所给出的线结构光传感器的标定方法中摄像机和结构光平面的标定通常是分开进行的,该种标定方法的标定精度不高、且标定过程繁琐。



技术实现要素:

本发明实施方式的目的在于提供一种线结构光传感器标定方法,使得线结构光传感器中的摄像机以及结构光平面实现联合标定,有利于提高标定精度、简化标定过程。

为解决上述技术问题,本发明的实施方式提供了一种线结构光传感器标定方法,包括:通过待标定的线结构光传感器采集N个3D靶标图像;其中,各3D靶标图像中均包含有大于或者等于第一预设数目的非共面特征点以及2条结构光条纹,其中,所述结构光条纹中包含有大于或者等于第二预设数目的非共面特征点,所述N为正整数;在所述N个3D靶标图像中选取第一预设数目的非共面特征点;根据选取的第一预设数目的非共面特征点对摄像机进行标定;在所述N个3D靶标图像的结构光条纹中选取第二预设数目的非共面特征点;根据选取的第二预设数目的非共面特征点以及摄像机的标定结果完成线结构光平面的标定。

本发明实施方式相对于现有技术而言,可以根据在N个3D靶标图像中选取的第一预设数目的非共面特征点,对摄像机进行标定。并且可以根据在N个3D靶标图像的结构光条纹中选取的第二预设数目的非共面特征点以及摄像机的标定结果,实现线结构光平面的标定。因此,本实施方式使得线结构光传感器中的摄像机和结构光平面能够实现联合标定,有利于提高标定精度、简化标定过程。

另外,根据选取的第一预设数目的非共面特征点对摄像机进行标定,具体包括:通过对第一预设数目的非共面特征点,求解立体靶标坐标系与图像像素坐标系之间的单应矩阵对摄像机进行标定。本发明实施方式,为摄像机的标定提供了可行性。

另外,根据选取的第二预设数目的非共面特征点以及摄像机的标定结果完成线结构光平面的标定,具体包括:通过利用第二预设数目的非共面特征点以及摄像机的标定结果计算得到线结构光平面上的特征点在摄像机坐标系下的坐标,建立线结构光平面线性方程,并利用最小二乘法,完成线结构光平面方程的标定。本发明实施方式,使得线结构光平面的标定更方便可行。

另外,通过待标定的线结构光传感器采集N个3D靶标图像中,各3D靶标图像的采集角度不同。这样,可以提高线结构光传感器的标定的可靠性。

附图说明

图1是根据本发明第一实施方式的线结构光传感器标定方法的流程图;

图2是根据本发明第一实施方式中的线结构光传感器模型的几何关系示意图;

图3是根据本发明第二实施方式的线结构光传感器标定方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种线结构光传感器标定方法,如图1所示,包括:

步骤101:通过待标定的线结构光传感器采集N个3D靶标图像。其中,各3D靶标图像中均包含有大于或者等于第一预设数目的非共面特征点以及2条结构光条纹,其中,2条结构光条纹中包含有大于或者等于第二预设数目的非共面特征点。拍摄的3D靶标图像数目N为正整数,采集适当数目的3D靶标图像有利于提高标定效率、提高标定精度,在一个例子中,N可以在[6,9]之间取值,例如N等于6。

本发明实施方式中,通过待标定的线结构光传感器采集的N个3D靶标图像中,各3D靶标图像的采集角度可以不同,例如可以在不同的位姿下采集3D靶标图像。由于不同位姿下采集的3D靶标图像的角度不同,这样,采集到的不同角度的3D靶标图像不会受限于某一位姿下的景深与特定位置,从而可以提高线结构光传感器标定的可靠性。

步骤102:在N个3D靶标图像中选取第一预设数目的非共面特征点。其中,第一预设数目由摄像机标定算法的数学模型决定,结合本实施方式摄像机标定算法(见下文),第一预设数目为6。

步骤103:根据选取的第一预设数目的非共面特征点对摄像机进行标定。具体地说,通过对所选取的第一预设数目的非共面特征点,求解立体靶标坐标系与图像像素坐标系之间的单应矩阵对摄像机进行标定。

步骤104:在N个3D靶标图像的结构光条纹中选取第二预设数目的非共面特征点。其中,第二预设数目可以为5。

步骤105:根据选取的第二预设数目的非共面特征点以及摄像机的标定结果完成线结构光平面的标定。具体地说,通过利用第二预设数目的非共面特征点以及摄像机的标定结果计算得到线结构光平面上的特征点在摄像机坐标系下的坐标,建立线结构光平面线性方程,并利用最小二乘法,完成线结构光平面方程的标定。

下面结合图2,对本实施方式的标定算法进行详细说明如下:

图2为线结构光传感器模型的几何关系示意图,在图2中,Owxwywzw为全局坐标系,Ouxuyu为图像坐标系,Ocxcyczc为摄像机坐标系,如图2所示,线结构光传感器模型包括摄像机201、图像平面202、线结构光传感器203、结构光发射器204、结构光平面205以及被测工件206。

设结构光平面205上有一点P,在图像坐标系下的投影为p,其在图像坐标系下的的齐次坐标为在全局坐标系下的齐次坐标为根据摄像机针孔成像模型可得:

其中,κ为比例常数;[R t]为摄像机的外参数矩阵,描述全局坐标系到摄像机坐标系的旋转矩阵和平移矢量;为摄像机的内参数矩阵,其中(u0,v0)表示图像主点的像素坐标,fx、fy分别表示X、Y轴向的等效焦距,γ表示成像平面倾斜因子;M为摄像机的投影矩阵。

同时,点P为结构光平面上的点,满足结构光平面方程。设P点的像素值为(u,v),结构光平面在摄像机坐标系下的方程为:

Alxc+Blyc+Clzc=Dl (2)

其中,Al、Bl、Cl、Dl分别表示结构光平面的4个系数。

则点P从结构光平面到摄像机坐标系Ocxcyczc下坐标(xc,yc,zc)的转化过程如下:其中,已标定得到摄像机内参数畸变系数k1、k2,结构光方程Alxc+Blyc+Clzc=Dl,结合Alxc+Blyc+Clzc=Dl得到:

根据选取的非共面特征点对摄像机进行标定求解的过程如下:

记单应性矩阵M=A[R t],由(1)我们可以得到:

显然3×4矩阵单应性矩阵M与一个比例因子相关。

记M=[m1 m2 m3 m4],mi=[mi1 mi2 mi3]T为M第i列元素,R=[r1 r2 r3],ri为R的第i列元素。由(4)可知

[m1 m2 m3 m4]=λA[r1 r2 r3 t] (5)

其中,λ为任意标量。

摄像机系统可由成像芯片和光学镜头组成,一般存在径向畸变和切向畸变,其中以径向畸变为主。

设(x,y)为不存在畸变时理想投影点规格化图像坐标系坐标,为存在畸变时的实际投影点规格化图像坐标系坐标。则有:

且由(1)可以得到其中,为图像实际像素坐标。

本发明实施方式中,Pi=(Xi,Yi,Zi)T、pi=(ui,vi)T分别表示点p在全局坐标系下目标点及图像坐标系下的点,齐次坐标记在实际中,由于获取图像点的过程中存在噪声干扰,使得Pi和pi并不能满足方程(1)。假设图像点受到均值为0协方差矩阵为的高斯噪声干扰,那么单映性矩阵H的最大似然估计可以通过使函数取最小值得到。其中,为矩阵M的第i行。

在实际应用中,如果每个点的提取都相互独立,则可以简单地假设对于所有的i存在在这种情况下,单映性矩阵M的求解变成了一个非线性最小二乘求解问题。非线性最小化问题可以使用Levenberg-Marquardt(列文伯格-马夸尔特法)准则求解。该准则需要一个初始值,该初始值可通过下面的方法可以得到。

记由(5)不妨令m43=1,则(4)式变为:其中假设有n个点,记方程组为L2n×11X=K2n×1,其中有11个未知量,只要n≥6即可解出X,且有X=(LTL)-1LTK,从而,可以得到单映性矩阵M的初始值。

标定参数A、[R t]的求解过程如下所示:

由(5)可知:

m1=λAr1m2=λAr2m3=λAr3m4=λt (6)

考虑到R为正交阵,则存在下面的约束关系:

以及

其中,B为对称矩阵,定义向量b=[B11B12B22B13B23B33]T,则有其中,

(7),

假设采集了n张标定模型图像,将n组如(5)的方程组成如下方程:

Vb=0 (8)

其中,V是一个5n×6的矩阵。如果n≥2,那么能够得到唯一解b。如果n=1,可以令成像平面倾斜因子γ=0,即给方程(8)增加一个约束方程[0 1 0 0 0]b=0。方程(8)的解为矩阵VTV最小特征值对应的特征向量。

根据b计算出矩阵B,矩阵B与一个比例因子相关,即B=λA-TA-1,λ为任意标量。根据下面的公式可以计算出内参数矩阵:

计算出内参数矩阵A后,根据(6)分别计算每张图像的外参数矩阵:

其中,κ=1/||A-1h1||=1/||A-1h2||=1/||A-1h3||。由于噪声的干扰,上面计算出的矩阵[r1 r2 r3]并不是单位正交矩阵。

令Q=[r1 r2 r3],其奇异值分解为Q=USVT,其中S=diag(σ123),则R=UVT为与Q最近似的正交矩阵,即最小。

本发明实施方式还可以对得到的摄像机参数进行优化,具体优化过程如下所示:

假设采集n张参考物图像,每张图像上取m个标定点,且提取图像点时相互独立且这些点受到相同分布的噪声干扰。我们可以通过使函数最小得到优化参数。

在函数f中mij为第i张图像第j个点的像素值,k1,k2分别为引入的一阶二阶畸变系数,Mij为第i张图像第j个像素点对应的参考坐标,A为摄像机内参数,[Ri,ti]为第i张图像时的摄像机外参数。I(mij,A,k1,k2)为由图像像素坐标计算出的规格化图像坐标系坐标,为由物体参考坐标及外参数矩阵计算出的规格化图像坐标系坐标。在优化时,将旋转矩阵Ri转化为俯仰滚(RPY)角度φ,θ,并将φ,θ,作为参数进行优化。

非线性最小化可以使用Levenberg-Marquardt准则求解。该准则需要一个初始值。畸变系数的初始值可以通过求解,其中,

假设一共采集n张,每张图像上取m个标定点则可以得到2mn个方程。记上述方程组为Mk=d,可以得到畸变系数初始值k=[k1k2]'=(MTM)-1MTd,其余参数初始值在前面已经得到。

结构光面上的点在摄像机坐标系下Ocxcyczc的坐标为下坐标(xc,yc,zc)都满足方程结构光平面方程Alxc+Blyc+Clzc=Dl,通过图选取的结构光平面上的图像坐标系点,然后通过计算出的摄像机标定参数,可转换成摄像机坐标系下的对应的点坐标,把摄像机坐标系下的点坐标带入上述结构光平面方程并使用最小二乘便可求解方程的未知参数。这样,可方便的实现线结构光平面的标定。

本发明实施方式相对于现有技术而言,可以根据在N个3D靶标图像中选取的第一预设数目的非共面特征点,对摄像机进行标定。并且可以根据在N个3D靶标图像的结构光条纹中选取的第二预设数目的非共面特征点以及摄像机的标定结果,实现线结构光平面的标定。因此,本实施方式能够实现线结构光传感器中摄像机和结构光平面的联合标定,并且可以采用基于数学模型的标定算法进行标定,从而有利于提高标定精度、简化标定过程。

本发明的第二实施方式涉及一种线结构光传感器标定方法。第二实施方式在第一实施方式的基础上作了进一步的改进,主要改进之处在于:在本发明第二实施方式中,根据选取的第二预设数目的非共面特征点以及摄像机的标定结果完成线结构光平面的标定之后,还包括:计算并显示标定误差。如图3所示,本实施方式的线结构光传感器标定方法包括:

步骤301:通过待标定的线结构光传感器采集N个3D靶标图像。其中,各3D靶标图像中均包含有大于或者等于第一预设数目的非共面特征点以及2条结构光条纹。

步骤302:在N个3D靶标图像中选取第一预设数目的非共面特征点。其中,第一预设数目基于标定算法确定。

步骤303:根据选取的第一预设数目的非共面特征点对摄像机进行标定。具体地说,通过对所选取的第一预设数目的非共面特征点,求解立体靶标坐标系与图像像素坐标系之间的单应矩阵对摄像机进行标定。

步骤304:在N个3D靶标图像的结构光条纹中选取第二预设数目的非共面特征点。其中,第二预设数目可以为5。

步骤305:根据选取的第二预设数目的非共面特征点以及摄像机的标定结果完成线结构光平面的标定。具体地说,通过利用第二预设数目的非共面特征点以及摄像机的标定结果计算得到线结构光平面上的特征点在摄像机坐标系下的坐标,建立线结构光平面线性方程,并利用最小二乘法,完成线结构光平面方程的标定。

步骤306:计算并显示标定误差。

步骤301中,采集3D靶标图像的操作包括,在标定工装台上放置好3D靶标,连接好传感器,接通电源,在不同的位姿下采集22图像(采集图像的数量不做具体限制),将采集的图像从1到22命名保存为bmp格式。

其次,通过待标定的线结构光传感器采集多个3D靶标图像后,打开MATLAB标定程序,在命令窗口输入getpixel(n),n为对应的图片序号,根据提示依次完成预设的相关指令。这样,可以获得靶标坐标系及其在图像坐标系下的坐标、结构光平面上的点在图像坐标系下的坐标。

在获取靶标坐标系及其在图像坐标系下的坐标、结构光平面上的点在图像坐标系下的坐标后,可以在MATLAB命令窗口输入STEPLaserVisionCali(m),m为已做处理的图片总数,即可完成线结构光传感器的标定,生成最终线结构光传感器的标定结果STEPSensor.cali。并且,图像与物体单应性矩阵的求解、摄像机畸变的优化、摄像机标定及结构光平面方程的标定等工作均可在MATLAB中完成。

最后,可以根据得到的标定结果进行误差分析。其中,本实施方式的标定误差及其计算方法包括:

1、摄像机标定误差及其计算方法

将3D靶标特征点(即选取的第一预设数目的非共面特征点)转换到图像坐标系下,在标定算法中可以获得到一组实际靶标特征点和经过畸变矫正后的理想靶标特征点,再次通过2范数计算两者之间的位置残差,并将此位置残差作为摄像机标定误差。

2、结构光平面拟合误差

通过获得的所有激光条纹特征点(即第二预设数目的非共面特征点)拟合结构光平面(Alxc+Blyc+Clzc=Dl),然后通过点到面的计算公式计算得到每条结构光条纹中的各非共面特征点到结构光平面的距离:

将结构光条纹中的所有非共面特征点的距离作为结构光平面的拟合误差。其中,xc0、yc0、zc0是结构光平面上某个结构光条纹点的坐标,A,B,C,D是结构光平面方程的系数。

需要说明的是,本发明实施方式中,第一预设数目以及第二预设数目的非共面特征点均在MATLAB中选取。并且,根据选取的第一预设数目的非共面特征点对摄像机进行标定以及根据选取的第二预设数目的非共面特征点以及摄像机的标定结果完成线结构光平面的标定均在MATLAB软件中执行。由于靶标特征点(即待选取的第一预设数目的非共面特征点)或者激光平面特征点(即待选取的第二预设数目的非共面特征点)都是靶标坐标系标识线的交点或者激光条纹及其交点,因此,在一个例子中,获得这些特征点的步骤是:

按照规定的顺序,依次在待标定特征点所在直线两端单击鼠标,再通过2点确定一条直线,可以最终获得特征点所在的靶标标识线或者激光条纹线。

依此类推,获得满足特征点属性的所有靶标标识线及激光条纹线,通过2条非平行直线确定一个交点(即调用MATLAB中的solve()函数),最终计算出所有特征点的坐标位置,从而不仅可以通过提高特征的坐标精度而提高标定精度,而且可以提高标定效率。

本发明实施方式中,根据选取的第二预设数目的非共面特征点以及摄像机的标定结果完成线结构光平面的标定之后,还可以计算并显示标定误差。这样,便于用户了解标定结果。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1