[发明专利]一种基于单应性矩阵的多线结构光视觉测量方法有效
申请号: | 201811331189.7 | 申请日: | 2018-11-09 |
公开(公告)号: | CN109443245B | 公开(公告)日: | 2020-05-26 |
发明(设计)人: | 姚海滨;李想;崔海华;贾华宇;程筱胜 | 申请(专利权)人: | 扬州市职业大学 |
主分类号: | G01B11/25 | 分类号: | G01B11/25 |
代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 任毅 |
地址: | 22500*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 单应性 矩阵 结构 视觉 测量方法 | ||
1.一种基于单应性矩阵的多线结构光视觉测量方法,其特征在于,包括以下步骤:
步骤一、构建基于立体视觉的多线结构光测量模型
构建基于双目立体视觉的平行多线结构光测量模型,所述平行多线结构光测量模型包括一个双目立体视觉系统和一个平行线结构激光传感器或者多线平行激光传感器,所述双目立体视觉系统包括双目相机,所述双目相机包括左相机和右相机,所述平行线结构激光传感器或者所述多线平行激光传感器将激光条纹投射至被测物体表面并在双目相机中成像,通过求取激光条纹在双目视图中的匹配点,利用双目视差原理重建激光条纹的三维空间坐标,
所述平行多线结构光测量模型的测量原理如下:假设激光条纹上任意一个三维空间点Pw=(X,Y,Z,1)T在左右相机当中的图像匹配点分别是pl=(xl,yl,1)T、pr=(xr,yr,1)T,将世界坐标系的原点设置在左相机的光心位置,由相机成像原理可知:
λlpl=Kl[I|0]Pw (1)
λrp'r=Kr[R|t]Pw (2)
联立公式(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 (4)
pr1=M'Pw1=K'[R|t]Pw1 (5)
易知Pw1与左相机光心连线上任意一个三维空间点都会投影至图像点pl1,该连线上的三维空间点集为其中R代表实数域,又因为:
Pw1∈Pt (6)
Pw1∈Ω1 (7)
所以:
联立公式(6)(7)(8)可得
将公式(9)带入(5)可得
因此可以通过公式(10)推出如下单应性变换表示激光条纹的匹配关系,变换公式如下:
pr1=Hα1pl1 (11)
其中
因此通过标定激光平面所对应的单应性矩阵来确定激光条纹在左右视图中的匹配关系;
步骤S2.平行线结构光条纹匹配分析
通过步骤S1的数学推导可知,可以通过激光平面所对应的单应性矩阵来表示激光条纹在两幅视图当中的匹配关系,在所述平行多线结构光测量模型中,确定相机采集到的激光条纹所属激光平面,进而利用对应的单应性矩阵求解它在另外一个视图当中的匹配点,假设激光投射器共投射n条激光条纹,其中第i个光平面在左右视图当中对应的单应性矩阵为Hαi(i=1,2...n),那么属于第i个激光平面的激光条纹上任意一点在左右视图当中的图像匹配点plj、prj具有如下关系:
prj=Hαiplj (13)
由公式(13)可知,如果已经确定了某一条激光条纹所对应的单应性矩阵,则经过公式(13)的变换后所得的图像点和该激光条纹在另外一个视图当中的匹配点会重合,以此为依据确立如下多线激光条纹匹配方法,
首先将多线激光器以不同的位置投射至平面物体上并确保求解单应性矩阵时匹配点不在同一条直线上,投射的激光条纹应保证每一条激光条纹无间断,激光条纹在图像当中顺序容易区分,对左右视图集做立体矫正并细化激光条纹,利用opencv中的findcontours()函数提取细化后的激光条纹轮廓,基于findcontours()函数的性质,投射至平板上的激光条纹从左到右依次被提取为n个轮廓,将其依次记作:条纹1、条纹2…条纹n,通过图像立体矫正后对极线约束的性质获取相同激光条纹之间的图像匹配点,然后利用公式(13)求取相应的单应性矩阵,以此对光平面单应性矩阵标定,标定求得的单应性矩阵集记作:
{Hα1,Hα2...Hαn} (14)
其中:
然后利用上述标定的单应性矩阵确定投射至被测物表面的激光条纹所属的光平面,在这一过程中首先通过相机采集投射至待测物表面的左右视图图像,对图像进行立体矫正并对激光条纹进行细化处理,由于待测物形状的不同,激光条纹会发生不同程度的弯曲或断裂,需要对匹配图像当中细化的激光条纹进行分块处理,利用opencv当中的findcontours()函数提取激光条纹并将不同的激光条纹存储至不同容器,条纹2投射至被测物后断为两段,因此findcontours()在左右视图各提取到n+1个轮廓单元,分别记为:
{unitl1,unitl2...unitl(n+1)} (16)
{unitr1,unitr2...unitr(n+1)} (17)
其中:
{unitli|unitli=(pl1(xl1,yl1,1)...plm(xlm,ylm,1)),i=1,2...n+1} (18)
{unitri|unitri=(pr1(xr1,yr1,1)...prq(xrq,yrq,1)),i=1,2...n+1} (19)
然后将公式(14)中的单应性矩阵集合带入公式(13)对左视图容器公式(16)当中的第i个单元施加n个单应性变换,unitli将产生n个变换后的单元,记作:
{unit′li1,unit′li2...unit′lin} (20)
接着通过如下流程判断公式(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)对应集合中所有点集的匹配点,最后利用双目视差原理便可以求解激光条纹的三维空间点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州市职业大学,未经扬州市职业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811331189.7/1.html,转载请声明来源钻瓜专利网。