一种多视图结构光系统自标定方法
技术领域
本发明涉及图像处理、计算机视觉、计算方法、数学、三维重建等领域,尤其是一种多视图结构光系统自标定方法。
背景技术
通过二维图像来重建物体三维信息作为计算机视觉中一门重要学科已应用到多种工业生产领域,如障碍物检测、图像绘制、场景分析、逆向工程等。编码结构光系统由一个投影仪与一个或多个摄像机组成,这个投影仪可代替双目视觉中一个摄像机的作用,可避免传统双目视觉三维信息获取中因匹配而产生的误差,同时结构光系统以重建精度高、鲁棒性强等优点受到越来越多的重视。结构光系统基于三角测量原理,将投影仪产生的编码光模板(由唯一的光模块编码)投到待测物体上,摄像机获取光照物体上光条纹信息来完成三维重构。为完成待测物的三维重构,一个必不可少的任务就是通过标定来得出摄像机的内参数以及摄像机与投影仪的外参数。
传统的结构光系统标定需分两部通过手动操作来完成,首先摄像机标定需依靠标定板由人工操作完成,标定板由精确的标定设备组成,通过标定板上提供的精确的角点坐标可有效完成标定任务,其次,通过获取若干幅带投影条纹的待测物图像来完成投影仪标定。在上面这种方法中,当投影仪或摄像机的位置发生改变时必须重新进行系统标定,这种方法显然不适合应用在机器人进行海底勘测,机器人现场爆破等一些不易人工操作的场合中。因此,发明一种有效而合理的机器视觉自标定算法便成为机器视觉领域亟待解决的一个问题。通过这种方法,当摄像机和投影仪内参数或者位置发生变化时,结构光系统可以自动标定摄像机和投影仪的内外参数而不需要别的外在设备来辅助完成。
机器视觉自标定算法在近些年已经得到深入研究,但是大部分自标定算法都是基于被动视觉如双目视觉等,对于主动视觉标定算法主要是基于静态标定和人工标定。近几十年,在主动立体视觉方面基于结构光标定的算法得到深入研究,Fofi et al等提出一种结构光自标定算法,该算法是在假设投影到物体上的投影模板为正方形的前提下进行的,但事实上这种情况并不是完全成立。在已获得摄像机和投影仪内参数的前提下,陈胜勇和李有福等人提出了一种当摄像机和投影仪之间的外参数发生变化时自动重标定的算法,这种算法局限于摄像机和投影仪内参数须保持不变。Furukawa和Kawasaki提出了一种基于多视图几何的自标定方法,在这种算法中投影仪近似于一个摄像机,在获得摄像机内参数并且保持不变的前提下,当投影仪和摄像机的外参数发生变化时,系统外参数矩阵可自动算出。在上面的自标定方法在实现过程前均需要一些先验条件来帮助实现,这种特点使得这些方法有一定的局限性。在假设投影仪的参数已知的前提下,Li和Lu提出了一种自标定算法可自动得出摄像机的内外参数,然而当工作环境光线改变需要改变投影仪焦距时该标定算法就显局限性。Fofi等提出一种结构光无标定重构算法,该算法首先对等测图像完成射影重构,然后利后各种约束条件完成欧氏重构,这种算法虽然不需标定完成重建,但假设摄像机和投影仪为仿射模型并不是在任何条件下都满足。基于多视图几何理论,Li和Lee提出一种包括两个摄像机和一个投影仪的结构光系统分层自标定方法,但该算法中假设图像象素为正方法并符合常理,同时两个摄像机大大增加了系统的成本。
发明内容
为了克服已有多视图结构光自标定方法的计算复杂、适用性差、成本高的不足,本发明提供一种简化计算、适用性良好、降低成本的多视图结构光自标定方法。
本发明解决其技术问题所采用的技术方案是:
一种多视图结构光自标定方法,包括以下步骤:
1)所述多视图结构光系统包含一个摄像机和一个投影仪,投影仪投出一个网格图案,所述网格图案基于位置唯一原理进行编码产生,摄像机在三个不共线的位置获取三幅图片,摄像机在三个不同位置记为c1,c2,c3;
2)摄像机内参数矩阵标定过程:
定义Kc为摄像机内参数矩阵,π1和π2为两条任意投影仪平面,Hi是摄像机在c1到c2以及c1到c3通过平面π1透导得出的单应矩阵,i=1,2,Kct为摄像机c1的极点表示为Kct=t3e2,其中t3是摄像机c1到摄像机c2的转移矩阵t的第三个原素,e2是归一化后的极点坐标;
任一平面的消影线表示为:
l~Kc -Tn (1)
其中,“~”代表和等号相差一个比例因子,l表示平面π在摄像机坐标系下的消影线,n表示平面π的法向量;
H∞是摄像机c1和c2通过无穷远平面π∞透导的无穷单应矩阵,两摄像机通过平间一平面π透导的单应矩阵表示为:
H~K2RK1 -1+K2tnT/dK1 -1 (2)
其中,d是摄像机光心到平面π的几何距离,K1和K2分别是两个摄像机的内参数矩阵,R是两个摄像机坐标系之间的旋转关系矩阵,t是两个摄像机的平移关系;
当d为无穷大时(2)式表示为:
假设l=t3/dKc -Tn.,公式(2)式转变成(4):
s1H1=KcRKc -1+e2lT (4)
其中,s1是使单应矩阵归一化的比例系数,由(3)式可知(4)式等式右边KcRKc -1近似为一个由摄像机c1到c2的无穷单应矩阵,将(4)式e2lT移到等式左边得如式(5):
s1H1-e2lT=KcRKc -1=H∞c1c2 (5)
其中H∞c1c2表示平面π1在摄像机c1中的消影线以及摄像机c1和c2通过平面π1透导的单应矩阵和极点e2,由旋转矩阵性质得到RRT=I,I是一个三阶单位矩阵,联立(4)和(5)式,得出式(6):
(s1H1-e2lT)(KcKc T)(s1H1-e2lT)T=KcKc T (6)
设定摄像机和投影仪扭曲参数为0,摄像机光心坐标为原点,矩阵KcKc T表示成如下形式:
将(6)式等式左边矩阵假设为“M”,则M12=0,M13=0,M23=0,M33=1,其中Mij是矩阵M的第i行第j列原素,得出方程:
AX=B (8)
其中:
B=[-h13h23 -h13h33 -h23h23]T
其中,X是一个包含六个未知变量的列向量,hij是矩阵s1H1的第i行第j列的原素,ei是极点坐标e2的第i个原素,i=1,2,3,li是消影线l的第i个元素,i=1,2,3;通过摄像机获取两幅图像上的匹配点求得单应矩阵H1和极点ei,同理可求出摄像机c1和c2以及摄像机c1和c3‘之间的单应矩阵,假设比例系数s1已知的前提下(8)式获得六个方程和六个未知数,得出含有未知比例系数s1的X解,然后通过M33=1求出未知比例系数s1,由(9)式得出消影线l和摄像机内参数矩阵的表达式:
进一步,所述自标定方法还包括步骤:
3)投影仪内参数矩阵标定过程:
l1和l2分别是平面π1和π2在摄像机c1视图中的消影线,h1和h2分别为平面π1和π2与投影仪图像平面的交线,由此得:
hi~N∞c1pli i=1,2 (10)
其中N∞c1p是直线hi与li之间的单应矩阵,每组对应关系得出两个独立方程,在获得至少四组对应关系的前提下求出N∞c1p;根据点和线之间单应矩阵的关系得式(11):
H∞c1p=H∞c1p -T (11)
投影仪内参数矩阵与无穷单应H∞c1p之间的关系如下式所示:
KpKp T~H∞c1p(KcKc T)H∞c1p T (12)
通过(12)式求出矩阵KpKp T,其中,未知变量经归一化矩阵KpKp T来求得,然后再由Cholesky方程得出投影仪内参数的矩阵Kp。
本发明的技术构思为:三维空间中任意两个平行平面在无穷远平面π∞相交于直线l,直线l的像就是这两个平行平面的消影线,其中π∞是无穷远平面。如果一个摄像机内参数矩阵K已知,则任一平面π的消影线可表示为
l~K-Tn (1)
其中,“~”代表和等号相差一个比例因子。
无穷单应H∞是摄像机c1和c2通过无穷远平面π∞透导的无穷单应矩阵,两摄像机通过平间一平面π透导的单应矩阵可表示为:
H~K2RK1 -1+K2tnT/dK1 -1 (2)
其中d是摄像机光心到平面π的几何距离,K1和K2分别是两个摄像机的内参数矩阵,R是两个摄像机坐标系之间的旋转关系矩阵,t是两个摄像机的平移关系。所以当d为无穷大时(2)式可表示为:
仅需要一个摄像机在三个非共线位置拍摄图像,当摄像机和投影仪内参数或外参数发生改变时可自动计算出内参数和外参数。在自标定过程中不需要标定板等先验条件。该方法可广泛应用于主动视觉系统中。
本发明的有益效果主要表现在:简化计算、适用性良好、降低成本。
附图说明
图1是单结构光系统的示意图。
图2是摄像机和投影仪之间的结构关系示意图。
图3是仿真结构光多视图系统的示意图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图3,一种多视图结构光自标定方法,所述多视图结构光系统包含一个摄像机和一个投影仪,投影仪投出一个网格图案,这个图案基于位置唯一原理进行编码产生。摄像机在三个不共线的位置获取三幅图片,摄像机在三个不同位置记为c1,c2,c3,根据消影线和单应矩阵原理可完成结构光系统的自标定。
如图1所示,投影仪投出的每条光平面在待测物上形成一条曲线,通过摄像在不同的位置获取这些信息来完成自标定和度量重构。通过图像上的对应的条纹点可以得到不同摄像机之间通过每个条纹平面透导的单应矩阵和基础矩阵。在本文中c2和c3为摄像机c1在不同位置工作。因此可以定义Kc为摄像机内参数矩阵,π1和π2为两条任意投影仪平面,Hi(i=1,2)是摄像机在c1到c2以及c1到c3通过平面π1透导得出的单应矩阵,根据多视图几何知识可知Kct为摄像机c1的极点可表示为Kct=t3e2,其中t3是摄像机c1到摄像机c2的转移矩阵t的第三个原素,e2是归一化后的极点坐标。由(1)式,l表示平面π在摄像机c1坐标系下的消影线且和实际值相差一个比例因子。因此,我们可以假设l=t3/dKc -Tn.(2)式可变成:
s1H1=KcRKc -1+e2lT (4)
其中s1是使单应矩阵规一化的比例系数,由(3)式可知(4)式等式右边KcRKc -1近似为一个由摄像机c1到c2的无穷单应矩阵,将(4)式e2lT移到等式左边得如下式子
s1H1-e2lT=KcRKc -1=H∞c1c2 (5)
其中H∞c1c2可表示为平面π1在摄像机c1中的消影线以及摄像机c1和c2通过平面π1透导的单应矩阵和极点e2,由旋转矩阵性质知RRT=I,这里I是一个三阶单位矩阵,联立(4)和(5)式,可得出式(6):
(s1H1-e2lT)(KcKc T)(s1H1-e2lT)T=KcKc T (6)
在本算法中目的是完成一个度量重构,因此可假设摄像机和投影仪扭曲参数为0,摄像机光心坐标为原点。从而矩阵KcKc T可表示成如下形式:
将(6)式等式左边矩阵假设为“M”,则M12=0,M13=0,M23=0,M33=1,其中Mij是矩阵M的第i行第j列原素,可得出方程
AX=B (8)
其中
B=[-h13h23 -h13h33 -h23h23]T
其中,X是一个包含六个未知变量的列向量,hij是矩阵s1H1的第i行第j列的原素,ei(i=1,2,3)是极点坐标e2的第i个原素,li(i=1,2,3)是消影线l的第i个元素。通过摄像机获取两幅图像上的匹配点可求得单应矩阵H1和极点ei,同理可求出摄像机c1和c2以及摄像机c1和c3之间的单应矩阵,假设s1已知的前提下(8)式获得六个方程和六个未知数,从而得出含有未知比例系数s1的X解,然后通过M33=1这一关系可求出未知比例系数s1,由(9)式可得出消影线l和摄像机内参数矩阵的表达式:
投影仪内参数矩阵Kp:如图2所示,l1和l2分别是平面π1和π2在摄像机c1视图中的消影线,h1和h2分别为平面π1和π2与投影仪图像平面的交线,由此可得:
hi~N∞c1pli (i=1,2) (10)
其中N∞c1p是直线hi与li之间的单应矩阵,每组对应关系可得出两个独立方程,在获得至少四组对应关系的前提下,N∞c1p便可求出来。根据点和线之间单应矩阵的关系可得如下式子:
H∞c1p=H∞c1p -T (11)
根据无穷单应的性质,投影仪内参数矩阵与无穷单应H∞c1p之间的关系如下式所示:
KpKp T~H∞c1p(KcKc T)H∞c1p T (12)
通过(12)式可求出矩阵KpKp T,其中未知变量可经归一化矩阵KpKp T来求得,然后再由Cholesky方程可得出投影仪内参数的矩阵。
实验结果分析:首先采用一些仿真数据来验证本文提到的算法的有效性,如图3所示,摄像机放在三个非共线的位置,在三维空间中取五行五列共二十五个点与报影仪光心组成五个平行和五个垂直平面,其中摄像c1,c2,c3分别代表摄像机在c1,c2,c3不同位置,假设摄像机内参选数矩阵和外参数矩阵都已知,可以求出每个条纹平面的图像坐标
在上述仿真实验中,假设摄像机投影仪参数如下:fx=1000,fy=1200,fpx=1000,fpy=1200,tc1p=[-10,10,0]T,Rc1p=rotoy(pi/4)*rotoz(pi/3)*rotox(-pi/2).为了有效分析该算法的有效性,原图像图像坐标加入了0.3,0.5不同比例的高斯白噪声。对每种噪声,自标定实验进行10次并取结果的平均值,结果如表1所示,通过结果分析可知该算法具有可行性。
表1:不同噪声下的自标定结果参数:
也应用到主动视觉真实实验中,所用结构光系统包括一个1400万象素的摄像机和一个1280×1024的DLP投影仪,投影仪和摄像机的位置可以自由移动,投影仪被一台电脑控制投射单幅彩色编码模板图案用来投射到待测物体上,摄像机放在三个非共线的位置上为了获取不同的图像。