法律状态公告日
法律状态信息
法律状态
2023-05-12
专利权的转移 IPC(主分类):G01B11/25 专利号:ZL2018113311897 登记生效日:20230428 变更事项:专利权人 变更前权利人:扬州市职业大学 变更后权利人:法尔美科技(江苏)有限公司 变更事项:地址 变更前权利人:225000 江苏省扬州市文昌西路 变更后权利人:225100 江苏省扬州市扬州高新技术产业开发区开发西路217号2510
专利申请权、专利权的转移
2020-05-26
授权
授权
2019-04-02
实质审查的生效 IPC(主分类):G01B11/25 申请日:20181109
实质审查的生效
2019-03-08
公开
公开
技术领域
本发明涉及测量技术领域,更具体地说,它涉及一种基于单应性矩阵的多线结构光视觉测量方法。
背景技术
在主动视觉测量技术中,结构光视觉测量具有非接触、速度快、效率高等特点,成为高速在线检测、质量控制、逆向工程中常用的测量方法之一。其中,线结构光由于其检测精度高、稳定性好、适应性强等特点在工业检测领域得到广泛应用。线结构光测量系统的标定作为整个测量过程的基础环节,标定的精度及稳定性直接决定后续测量环节的精度及稳定性。线结构光视觉测量系统的标定包括相机参数标定及光平面参数标定两部分。其中相机参数标定方法较为成熟,因此,光平面参数的标定是线结构光视觉测量系统标定的关键所在。
传统的线结构光光平面标定方法主要有拉丝标定法、基于三维立体靶标和交比不变性的标定法和锯齿靶标法等,这三种标定方法都需要精密的标定辅助设备,标定过程比较复杂,并且不适合进行现场标定。针对这一问题有人提出基于平面参照物的线结构光标定方法,其优点是标定设备制作简单,便于进行现场标定,但是这种方法需要在平面标定板上建立局部世界坐标系,并且标定板每移动一个位置都要计算这个位置下局部世界坐标系与世界坐标系的转换矩阵,一定程度上增加了标定的复杂程度。
为了快速、方便的对线结构光视觉测量系统中的光平面进行参数标定,针对典型的线结构光测量模型中的线面模型、面面模型,本发明提出了一种基于单应性矩阵的多线结构光视觉测量方法。该方法利用双目立体视觉中基于平面诱导的单应性矩阵来表示线结构光在两幅视图中的匹配关系,然后利用双目视觉中的视差原理进行三维重建,在标定过程中无需特定标定物、无需计算线结构光在局部世界坐标系中的坐标、无需通过求取光平面方程来完成标定,完全依赖线结构光在两个视图中的二维图像匹配点(不共线且匹配点个数大于4对)就可以完成光平面参数的标定,并且最少采集一张图片就可以完成激光平面的参数标定,具有操作简单,标定速度快的特点。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种基于单应性矩阵的多线结构光视觉测量方法,其具有操作简单,标定速度快的特点,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供了如下技术方案:
一种基于单应性矩阵的多线结构光视觉测量方法,包括以下步骤:
步骤一、构建基于立体视觉的多线结构光测量模型
构建基于双目立体视觉的平行多线结构光测量模型,所述平行多线结构光测量模型包括一个双目立体视觉系统和一个平行线结构激光传感器或者多线平行激光传感器,所述双目立体视觉系统包括双目相机,所述双目相机包括左相机和右相机,所述平行线结构激光传感器或者所述多线平行激光传感器将激光条纹投射至被测物体表面并在双目相机中成像,通过求取激光条纹在双目视图中的匹配点,利用双目视差原理重建激光条纹的三维空间坐标,
所述平行多线结构光测量模型的测量原理如下:假设激光条纹上任意一个三维空间点Pw=(X,Y,Z,1)T在左右相机当中的图像匹配点分别是pl=(xl,yl,1)T、pr=(xr,yr,1)T,将世界坐标系的原点设置在左相机的光心位置,由相机成像原理可知:
λlpl=Kl[I|0]Pw>
λrp'r=Kr[R|t]Pw>
联立公式(1)(2)并将矩阵运算展开可得三维空间点的坐标为:
其中:A=(xr-crx)/frx,B=(yr-cry)/fry,C=(xl-clx)/flx,D=(yl-cly)/fly;flx,fly,frx,fry分别为左右相机焦距在不同方向的分量;(clx,cly),(crx,cry)分别为左右相机的主点坐标;
步骤二、基于单应性矩阵的平行结构光条纹进行匹配,其包括步骤S1和S2:
步骤S1.新型匹配方法的数学推导
在所述平行多线结构光测量模型中,相机参数的标定及激光条纹在双目视图当中的匹配是测量的关键环节,激光条纹L1是结构光光平面Ω1=(v1,1)T与被测物体表面的交线,假设Pw1为激光条纹上任意一点,左右相机的射影矩阵分别为M=K[I|0]、M'=K'(R|t),其中K、K'分别为左右相机的内参矩阵,I为单位矩阵,R、t分别为右相机相对于左相机的旋转与平移矩阵,Pw1在左右相机中的图像分别是pl1、pr1可得:
pl1=MPw1=K[I|0]Pw1>
pr1=M'Pw1=K'[R|t]Pw1>
易知Pw1与左相机光心连线上任意一个三维空间点都会投影至图像点pl1,该直线上的三维空间点集为
Pw1∈Pt>
Pw1∈Ω1>
所以:
联立公式(6)(7)(8)可得
将公式(9)带入(5)可得
因此可以通过公式(10)推出如下单应性变换表示激光条纹的匹配关系,变换公式如下:
pr1=Hα1pl1>
其中
因此通过标定激光平面所对应的单应性矩阵来确定激光条纹在左右视图中的匹配关系;
步骤S2.平行线结构光条纹匹配分析
通过步骤S1的数学推导可知,可以通过激光平面所对应的单应性矩阵来表示激光条纹在两幅视图当中的匹配关系,在所述平行多线结构光测量模型中,确定相机采集到的激光条纹所属激光平面,进而利用对应的单应性矩阵求解它在另外一个视图当中的匹配点,假设激光投射器共投射n条激光条纹,其中第i个光平面在左右视图当中对应的单应性矩阵为Hαi(i=1,2...n),那么属于第i个激光平面的激光条纹上任意一点在左右视图当中的图像匹配点plj、prj具有如下关系:
prj=Hαiplj>
由公式(13)可知,如果已经确定了某一条激光条纹所对应的单应性矩阵,则经过公式(13)的变换后所得的图像点和该激光条纹在另外一个视图当中的匹配点会重合,以此为依据确立如下多线激光条纹匹配方法,
首先将多线激光器以不同的位置投射至平面物体上并确保求解单应性矩阵时匹配点不在同一条直线上,投射的激光条纹应保证每一条激光条纹无间断,激光条纹在图像当中顺序容易区分,对左右视图集做立体矫正并细化激光条纹,利用opencv中的findcontours()函数提取细化后的激光条纹轮廓,基于findcontours()函数的性质,投射至平板上的激光条纹从左到右依次被提取为n个轮廓,将其依次记作:条纹1、条纹2…条纹n,通过图像立体矫正后对极线约束的性质获取相同激光条纹之间的图像匹配点,然后利用公式(13)求取相应的单应性矩阵,以此对光平面单应性矩阵标定,标定求得的单应性矩阵集记作:
{Hα1,Hα2...Hαn}>
其中:
然后利用上述标定的单应性矩阵确定投射至被测物表面的激光条纹所属的光平面,在这一过程中首先通过相机采集投射至待测物表面的左右视图图像,对图像进行立体矫正并对激光条纹进行细化处理,由于待测物形状的不同,激光条纹会发生不同程度的弯曲或断裂,需要对匹配图像当中细化的激光条纹进行分块处理,利用opencv当中的findcontours()函数提取激光条纹并将不同的激光条纹存储至不同vector容器,条纹2投射至被测物后断为两段,因此findcontours()在左右视图各提取到n+1个轮廓单元,分别记为:
{unitl1,unitl2...unitl(n+1)}>
{unitr1,unitr2...unitr(n+1)}>
其中:
{unitli|unitli=(pl1(xl1,yl1,1)...plm(xlm,ylm,1)),i=1,2...n+1}>
{unitri|unitri=(pr1(xr1,yr1,1)...prq(xrq,yrq,1)),i=1,2...n+1}>
然后将公式(14)中的单应性矩阵集合带入公式(13)对左视图容器公式(16)当中的第i个单元施加n个单应性变换,unitli将产生n个变换后的单元,记作:
{unit'li1,unit'li2...unit'lin}>
接着通过如下流程判断公式(20)的单元集中哪一个是正确匹配点集合:
1)令a=1,b=1;
2)计算unit'lia中的点在unitrb具有对应点的个数mab,并将mab存入容器A;其中判断unit'lia中的任意一个点p'li=(x'li,y'li,1)在unitrb具有对应点的方式如下:计算p'li与unitrb中所有点的欧式距离的最小值dismin,如果dismin<shredValue0,则认为p'li在unitrb中具有对应点;
3)如果b<=n+1,令b=b+1,返回步骤2),否则进行下一步;
4)此时A={ma1,ma2...ma(n+1)},选取RightNuma=max{ma1,ma2...ma(n+1)}作为unit'lia的最终对应点个数,并将RightNuma存入容器集合B;
5)令a=a+1,如果a<=n,令b=1,并返回步骤2);
6)此时B={RightNum1,RightNum2...RightNumn},如果容器集合B当中的第r个元素的值最大,然后按照如下公式计算:
如果RightRate>shredValue,则点集unit'lir为点集unitli对应的匹配点集,
按照上述步骤确定公式(16)对应集合中所有点集的匹配点,最后利用双目视差原理便可以求解激光条纹的三维空间点。
综上所述,本发明主要具有以下有益效果:
1、本发明,分析了基于立体视觉的多线结构光测量模型,利用平面诱导的单应性矩阵的数学模型,推导出线结构光光平面上任意点所对应的单应性矩阵唯一,并且可以利用该单应性变换直接求取左右视图的匹配点;
2、本发明,利用线结构光在空间中可抽象为一个平面,并且该平面相对于相机位置不变的特性,提出了一种不依赖于特定标定物,标定过程简单,标定速度快,适用性强的线结构光传感器光平面参数标定方法;
3、本发明,很好的剔除了由于由于激光线断裂造成的多线激光条纹误匹配等问题,测量效果良好。
附图说明
图1为本发明一种实施方式的测量模型示意图;
图2为本发明一种实施方式的多线激光标定及匹配原理示意图;
图3为本发明一种实施方式的平面待测物光平面单应性矩阵标定及光平面拟合示意图;
图4为本发明一种实施方式的非平面待测物光平面单应性矩阵标定及光平面拟合示意图;
图5为本发明一种实施方式的台阶块标准件的示意图;
图6为本发明一种实施方式的标准块测量点云及平面拟合示意图;
图7为本发明一种实施方式的小猪石膏模型示意图;
图8为本发明一种实施方式的模型测量点云示意图;
图9为本发明一种实施方式的待测面具模型及激光条纹示意图;
图10为本发明一种实施方式的待测面具模型测量点云俯视图;
图11为本发明一种实施方式的待测面具模型测量点云侧视图;
图12为本发明一种实施方式的待测面具模型测量点不同激光条纹光平面拟合示意图;
图13为本发明一种实施方式的部分平面参数及关键参数对比示意图。
具体实施方式
以下结合附图1-13对本发明作进一步详细说明。
实施例1
一种基于单应性矩阵的多线结构光视觉测量方法,包括以下步骤:
步骤一、构建基于立体视觉的多线结构光测量模型
如图1所示,构建基于双目立体视觉的平行多线结构光测量模型,所述平行多线结构光测量模型包括一个双目立体视觉系统和一个平行线结构激光传感器或者多线平行激光传感器,所述双目立体视觉系统包括双目相机,所述双目相机包括左相机和右相机,所述平行线结构激光传感器或者所述多线平行激光传感器将激光条纹投射至被测物体表面并在双目相机中成像,通过求取激光条纹在双目视图中的匹配点,利用双目视差原理重建激光条纹的三维空间坐标,
所述平行多线结构光测量模型的测量原理如下:假设激光条纹上任意一个三维空间点Pw=(X,Y,Z,1)T在左右相机当中的图像匹配点分别是pl=(xl,yl,1)T、pr=(xr,yr,1)T,将世界坐标系的原点设置在左相机的光心位置,由相机成像原理可知:
λlpl=Kl[I|0]Pw>
λrp'r=Kr[R|t]Pw>
联立公式(1)(2)并将矩阵运算展开可得三维空间点的坐标为:
其中:A=(xr-crx)/frx,B=(yr-cry)/fry,C=(xl-clx)/flx,D=(yl-cly)/fly;flx,fly,frx,fry分别为左右相机焦距在不同方向的分量;(clx,cly),(crx,cry)分别为左右相机的主点坐标;
步骤二、基于单应性矩阵的平行结构光条纹进行匹配,其包括步骤S1和S2:
步骤S1.新型匹配方法的数学推导
在所述平行多线结构光测量模型中,相机参数的标定及激光条纹在双目视图当中的匹配是测量的关键环节,激光条纹L1是结构光光平面Ω1=(v1,1)T与被测物体表面的交线,假设Pw1为激光条纹上任意一点,左右相机的射影矩阵分别为M=K[I|0]、M'=K'(R|t),其中K、K'分别为左右相机的内参矩阵,I为单位矩阵,R、t分别为右相机相对于左相机的旋转与平移矩阵,Pw1在左右相机中的图像分别是pl1、pr1可得:
pl1=MPw1=K[I|0]Pw1>
pr1=M'Pw1=K'[R|t]Pw1>
易知Pw1与左相机光心连线上任意一个三维空间点都会投影至图像点pl1,该直线上的三维空间点集为
Pw1∈Pt>
Pw1∈Ω1>
所以:
联立公式(6)(7)(8)可得
将公式(9)带入(5)可得
因此可以通过公式(10)推出如下单应性变换表示激光条纹的匹配关系,变换公式如下:
pr1=Hα1pl1>
其中
因此通过标定激光平面所对应的单应性矩阵来确定激光条纹在左右视图中的匹配关系;
步骤S2.平行线结构光条纹匹配分析
如图2所示,通过步骤S1的数学推导可知,可以通过激光平面所对应的单应性矩阵来表示激光条纹在两幅视图当中的匹配关系,在所述平行多线结构光测量模型中,确定相机采集到的激光条纹所属激光平面,进而利用对应的单应性矩阵求解它在另外一个视图当中的匹配点,假设激光投射器共投射n条激光条纹,其中第i个光平面在左右视图当中对应的单应性矩阵为Hαi(i=1,2...n),那么属于第i个激光平面的激光条纹上任意一点在左右视图当中的图像匹配点plj、prj具有如下关系:
prj=Hαiplj>
由公式(13)可知,如果已经确定了某一条激光条纹所对应的单应性矩阵,则经过公式(13)的变换后所得的图像点和该激光条纹在另外一个视图当中的匹配点会重合,以此为依据确立如下多线激光条纹匹配方法,
首先将多线激光器以不同的位置投射至平面物体上并确保求解单应性矩阵时匹配点不在同一条直线上,投射的激光条纹应保证每一条激光条纹无间断,激光条纹在图像当中顺序容易区分,对左右视图集做立体矫正并细化激光条纹,利用opencv中的findcontours()函数提取细化后的激光条纹轮廓,基于findcontours()函数的性质,投射至平板上的激光条纹从左到右依次被提取为n个轮廓,将其依次记作:条纹1、条纹2…条纹n,通过图像立体矫正后对极线图像匹配点纵坐标相同的约束性质获取相同激光条纹之间的图像匹配点,然后利用公式(13)求取相应的单应性矩阵,以此对光平面单应性矩阵标定,标定求得的单应性矩阵集记作:
{Hα1,Hα2...Hαn}>
其中:
然后利用上述标定的单应性矩阵确定投射至被测物表面的激光条纹所属的光平面,在这一过程中首先通过相机采集投射至待测物表面的左右视图图像,对图像进行立体矫正并对激光条纹进行细化处理,由于待测物形状的不同,激光条纹会发生不同程度的弯曲或断裂,需要对匹配图像当中细化的激光条纹进行分块处理,利用opencv当中的findcontours()函数提取激光条纹并将不同的激光条纹存储至不同vector容器,条纹2投射至被测物后断为两段,因此findcontours()在左右视图各提取到n+1个轮廓单元,分别记为:
{unitl1,unitl2...unitl(n+1)}>
{unitr1,unitr2...unitr(n+1)}>
其中:
{unitli|unitli=(pl1(xl1,yl1,1)...plm(xlm,ylm,1)),i=1,2...n+1}>
{unitri|unitri=(pr1(xr1,yr1,1)...prq(xrq,yrq,1)),i=1,2...n+1}>
然后将公式(14)中的单应性矩阵集合带入公式(13)对左视图容器公式(16)当中的第i个单元施加n个单应性变换,unitli将产生n个变换后的单元,记作:
{unit'li1,unit'li2...unit'lin}>
接着通过如下流程判断公式(20)的单元集中哪一个是正确匹配点集合:
1)令a=1,b=1;
2)计算unit'lia中的点在unitrb具有对应点的个数mab,并将mab存入容器A;其中判断unit'lia中的任意一个点p'li=(x'li,y'li,1)在unitrb具有对应点的方式如下:计算p'li与unitrb中所有点的欧式距离的最小值dismin,如果dismin<shredValue0,则认为p'li在unitrb中具有对应点;
3)如果b<=n+1,令b=b+1,返回步骤2),否则进行下一步;
4)此时A={ma1,ma2...ma(n+1)},选取RightNuma=max{ma1,ma2...ma(n+1)}作为unit'lia的最终对应点个数,并将RightNuma存入容器集合B;
5)令a=a+1,如果a<=n,令b=1,并返回步骤2);
6)此时B={RightNum1,RightNum2...RightNumn},如果容器集合B当中的第r个元素的值最大,然后按照如下公式计算:
如果RightRate>shredValue,则点集unit'lir为点集unitli对应的匹配点集,
按照上述步骤确定公式(16)对应集合中所有点集的匹配点,最后利用双目视差原理便可以求解激光条纹的三维空间点。
本实施例中,shredValue0=0.85shredValue=0.90
实施例2
本发明还对一种基于单应性矩阵的多线结构光视觉测量方法提出实验与分析方法,其包括实验设备和三个实验步骤:
所述实验设备包括两个分辨率为1280x960的CCD相机及七个波长为660nm的单线激光器组成,所述激光器之间通过平行安装支架固定,为了提高激光线的提取精度,在左右相机的镜头前方安装了红色滤光片,并且在其周围安装红色环形LED光源;
三个所述实验步骤如下:
第一步、验证单线结构光传感器光平面单应性矩阵标定
为了验证基于单应性矩阵标定激光光平面参数的合理性及验证利用单应性变换表示激光条纹在两幅视图中匹配关系的合理性,采用了单线结构光(遮挡激光传感器,只留一条激光条纹)验证实验,首先采用张正友标定法[对双目相机进行参数标定,获取相机的内外参数。然后标定单线结构光传感器光平面对应的单应性矩阵。情况一,将线结构光投射至平面物体的5个不同位置,左右相机同时采集若干张图片,利用步骤S2中提供的步骤标定光平面所对应的单应性矩阵,然后利用单应性变换求取激光条纹匹配点,接着利用双目视差原理重建求解激光条纹的空间坐标并拟合光平面(图5),平面系数为w=(0.975,-0.222,0.022,1.000);情况二,将线结构光投射至非平面物体的5个不同位置,标定单应性矩阵并重建出的激光线三维点云拟合空间平面(图6),平面系数为w'=(0.966,-0.218,0.026,1.000),易得,两次拟合的光平面(图3和图4)大致相同,说明该标定方法具有一定的稳定性。
第二步、对单应性矩阵标定及匹配系统测量可行性分析
为了验证标定的光平面对激光条纹重建精度的影响,选取台阶状零件标准块(台阶高度为5±0.01mm)为被测对象,左右相机同时采集若干张序列图像,利用标定好的单应性矩阵,通过公式(11)求得激光条纹在左右视图中的匹配点,然后利用双目视差原理重建激光线,并且将每个视角下重建的激光条纹转换至同一个世界坐标系,然后对重建的台阶面拟合平面(图6),同时对小猪石膏模型(图7)进行三维测量,检验该方法测量复杂实物模型的可行性,被测物及测量点云如图8所示。从各个平面上随机选取10个点,计算该点与其余两个平面的距离如表1所示,由表1可以估算测量误差在+0.235mm~-0.242mm之间,满足一定的测量精度要求。
表1台阶标准块台阶面之间距离
第三步、对多线平行结构光激光条纹重建实验
为了验证本文所述方法对多线平行激光条纹匹配的可行性,一次性在被测物体上投射多条平行激光条纹,步骤S2中的所述方法标定单应性矩阵集合,并进一步完成激光条纹的匹配,然后利用双目视差原理重建对应激光条纹,被测物及测量点云数据如图9-12所示,测量效果良好,并且由投射至面具模型的激光条纹易知条纹4、5、6属于同一个光平面(由于被测物的形貌,同一个光平面上的激光条纹断裂),如图13对重建点云拟合光平面并对比平面4、5、6的法矢等关键参数,发现平面4、5、6关键参数基本相同,说明利用单应性矩阵标定多个光平面参数及完成激光条纹匹配的可行性及准确性,可以很好的避免由于激光条纹断裂造成的图像误匹配等问题。
综上所述,本发明,分析了基于立体视觉的多线结构光测量模型,利用平面诱导的单应性矩阵的数学模型,推导出线结构光光平面上任意点所对应的单应性矩阵唯一,并且可以利用该单应性变换直接求取左右视图的匹配点;利用线结构光在空间中可抽象为一个平面,并且该平面相对于相机位置不变的特性,提出了一种不依赖于特定标定物,标定过程简单,适用性强的线结构光传感器光平面参数标定方法,并通过实验验证该标定方法的可行性,并进行相关测量验证实验,实验效果良好;基于单应性矩阵进行多线结构光测量实验,该方法很好的剔除了由于由于激光线断裂造成的多线激光条纹误匹配等问题,测量效果良好。
本发明中未涉及部分均与现有技术相同或可采用现有技术加以实现。
本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
机译: 使用单应性运算符校准视觉传感器
机译: 用于计算立体物体的立体视觉处理的校正单应性的系统和方法
机译: 单应性的光传输矩阵