图1所示的是最基本的是双目立体视觉测量原理,对于空间物体表面上任意一 点P,其在摄像机C1对应的像平面I1上所成的图像点用P1表示,P点位于摄像机
光心和P1的连线上无法通过像点P1恢复P点的三维位置,而P点同时亦位于摄像 机C2对应的像平面I2上图像点P2和其光心的连线上,因此通过两个摄像机就可以 唯一确定空间点P的三维位置。
图2所示的立体视觉半实物仿真系统包括投影仪1、摄像机2、摄像机
云台3、 投影屏幕4、计算机5和6构成,各部分均固定在室内
墙壁或稳定
支架上,所述的 投影仪1选用Sony公司生产的VPL-CX71便携型投影机,与计算机5相连接,在 投影屏幕4上投出计算机5中虚拟视景软件生成的虚拟三维视觉图像,系统在使用 过程中投影仪1的参数必须固定不变。摄像机2选用普通CCD摄像机,摄像机2 的镜头为12mm,
分辨率为768×576,其固定在摄像机云台3上,通过
图像采集卡 将采集的图像数据传送至计算机6,并通过计算机6对摄像机云台3的控制实现摄 像机2的视场选取,当确定摄像机2的理想位置后,开始进行系统参数的标定,在 系统使用的过程中摄像机云台3不能转动,摄像机2的镜头的选取以摄像机2的视 场尽量包含投影仪1的图像而又不超出为原则,为达到高精度,系统中投影仪1、 摄像机2、摄像机云台3及投影屏幕4必须固定在室内墙壁或支架上,它们之间位 置不能出现相对变化。
如图3所示,本发明的立体视觉半实物仿真系统建立了三个投影变换的模型: 虚拟摄像机模型7、投影仪成像模型8和摄像机成像模型9,这三个模型之间具有 输入输出的关系,其中,虚拟摄像机模型7通过计算机虚拟视景软件实现,由人为 设置的参数得到不同条件下的虚拟摄像机成像结果,其摄像机模型是线性的,虚拟 摄像机参数可以通过虚拟视景软件所设置的参数计算求出;而投影仪成像模型8和 摄像机成像模型9是实际的硬件环境,它们之间是“面—面”的投影变换,摄像机 模型是非线性的,其参数需要标定。
如图4所示,本发明在进行立体视觉半实物仿真时,主要包括以下步骤:
第一步,由计算机的虚拟视景软件生成虚拟三维场景图像,并获得在同一时刻 不同两个或多个视点的立体视觉虚拟三维视觉图像,在该步中须在虚拟视景软件中 输入如下参数:首先在虚拟视觉软件中输入如下参数:透视投影变换的垂直视场角 θ、视场的长宽比Aspect、视点到近裁剪平面的距离NearPlane、视点到远裁剪平面 的距离FarPlane;视点的空间位置,即世界
坐标系下的三维坐标值XPos、YPos、 ZPos;视线方向
偏航角度θYaw、
俯仰角度θPitch和
滚转角度θRoll;
第二步,由投影仪分别将各虚拟三维视觉图像投影到屏幕上;
第三步,通过实际摄像机分别拍摄屏幕上不同视点各虚拟三维视觉图像,而得 到仿真系统在该测量时刻的最终输出图像;
第四步,计算虚拟摄像机参数、标定实际摄像机成像模型参数和投影仪成像模 型参数;
第五步,根据立体视觉的基本原理计算得到图像中虚拟三维场景的三维空间坐 标。
下面,建立虚拟摄像机模型:
其中[μv,vv,1]T为虚拟三维视觉图像的齐次坐标,[Xvw,Yvw,Zvw,1]T为虚拟场景的 三维空间齐次坐标,sv为比例因子,αvx和αvy分别为虚拟摄像机x轴和y轴方向尺 度因子,μv0和vv0为虚拟摄像机图像中心,Rv和Tv为旋转矩阵和平移向量,即虚拟 摄像机外部参数。M1v和M2v分别为虚拟摄像机的内部参数矩阵和外部参数矩阵, Mv为虚拟摄像机的投影矩阵。虚拟摄像机参数Mv各元素可以通过虚拟视景软件所 设置的参数计算求出。
建立投影仪成像模型:
以上公式中参数定义与前面一样,由于投影仪成像是“面—面”的投影变换, 因此可设Zpw=0,则由上式可得:
其中mp=[up vp 1]T,r1p,r2p分别为Rp的第1、2列,
建立实际摄像机成像模型:
公式中参数定义与前面一样,这里摄像机成像也是“面—面”的投影变换,因 此也可设Zcw=0,则由上式可得:
其中m=[uc vc 1]T,r1c,r2c分别为Rc的第1、2列,
实际情况下,摄像机并不是理想的透视成像,而是带有不同程度的畸变,这里 只考虑一阶径向畸变k,下面是对该模型中的参数进行标定以及转换计算。
下面计算虚拟摄像机的参数,这里设定虚拟摄像机图像分辨率为1024×768。
(1)内部参数
通过视场角和图像的分辨率可求得虚拟摄像机的内部参数矩阵。如图5所示, O为视点,平面P为成像面,成像面的分别率为w×h,
像素物理尺寸为dx,dy,u轴 和v轴方向的尺度因子为αx,αy,虚拟摄像机的焦距为f,垂直视场角为θ
则由图5中的几何关系可得:
由上式可得:
虚拟摄像机是理想的针孔成像模型,其μ轴和v轴方向的尺度因子相等,设为 αx=αy=α,摄像机光轴与像平面交点为像平面中心,即图像中心。由此即确定虚 拟摄像机内部参数矩阵。
(2)外部参数
外部参数即为R,T的求解通过坐标变换实现。由视点在世界坐标系中的位置, 以及视线方向的偏航角度、俯仰角度和滚转角度可实现R,T的求解:
虚拟摄像机在虚拟世界坐标系中的初始状态(视点在虚拟世界坐标系原点,偏 航角度、俯仰角度和滚转角度都为0),如图6所示:虚拟世界坐标系为X,Y,Z, 为黑色坐标系所示。虚拟摄像机坐标系初始状态为Xc0,Yc0,Zc0,即视线方向指向虚 拟世界坐标系的X轴方向,则虚拟摄像机坐标系从与虚拟世界坐标系重合位置变换 到图6中初始位置的旋转矩阵Rv1为:
虚拟摄像机在初始状态下按照先滚转再偏航最后俯仰的顺序进行旋转,而确定 虚拟摄像机旋转后的最终位置,其旋转矩阵为Rv2,再将虚拟摄像机视点位移到所 设置的位置即完成了从虚拟世界坐标系到虚拟摄像机坐标系的变换。
坐标旋转矩阵Rv2可以用欧拉角表示法求得,根据前面所规定的虚拟摄像机旋 转顺序可知欧拉角表示法中旋转顺序为:绕Z轴→绕Y轴→绕X轴,旋转角度正负 按右手坐标系法则确定,绕X轴、Y轴、Z轴的角度分别为α,β,γ后,可推导求得 旋转矩阵为:
其中α=θPitch,β=θYaw,γ=θRoll。
由此虚拟世界坐标系和虚拟摄像机坐标系之间的旋转矩阵Rv=Rv2*Rv1 设虚拟摄像机视点在虚拟世界坐标系中的坐标值为TvW,则平移向量为:
Tv=-(Rv*TvW)
最终得到虚拟摄像机外部参数矩阵为:
下面介绍投影仪成像模型和摄像机成像模型参数的标定:
在实际应用中,我们不需要分别确定图3中投影仪成像模型和摄像机成像模型 的参数,即无需分别求解投影仪图像到投影屏幕、投影屏幕到摄像机之间的变换关 系,而只需确定摄像机和投影仪图像之间的变换关系即可,因此可将摄像机和投影 仪作为一个整体进行标定,由于摄像机镜头焦距小(12mm),摄像机存在较大的径 向畸变,所以系统需采用非线性系统标定方法进行标定,其参数的标定步骤如下:
首先,根据Lenz和Tsai提出的变焦距法(参见Lenz.R.K,Tsai.R.Y,Techniques for Calibration of the Scale Factor and Image Center for High Accuracy 3-D Machine Vision Metrology, IEEE Transactions on Pattern Analysis and Machine Intelligence.Volume 10.Issue 5.September 1988.Pages:713-720)可求得摄像机的图像中心。
然后,将投影仪模型简单作为线性模型,则投影仪计算机图像、投影仪屏幕图 像和摄像机坐标系像平面中空间共线四点之间具有交比不变性质,利用张广军等提 出的基于交比不变的摄像机畸变系数标定方法(参见张广军编著,《
机器视觉》,北 京:科学出版社,2005.)可实现对摄像机径向畸变系数的标定。
最后,在求出摄像机的图像中心和径向畸变系数的基础上,可由靶标的像素图 像坐标(uc,vc)计算得到其在摄像机坐标系下图像坐标(X,Y)。而摄像机图像(X,Y) 到投影仪计算机图像(up,vp)是一个线性变换关系,可通过下式表示:
其中H为3×3矩阵,由靶标上多个角点可由(1)式建立线性方程,利用最小二 乘法即可求出矩阵H,即完成对摄像机成像模型和投影仪成像模型的标定。
下面通过一具体
实施例来说明本发明的立体半实物视觉仿真的优点:
首先,由与投影仪连接的计算机生成的平面靶标图像和摄像机获取的靶标图像 其图像分辨率为1024×768,摄像机拍摄的靶标图像分辨率为768×576,由以上图 像进行标定的结果如下表1所示:
表1系统标定结果
其中标定误差是利用标定结果,由靶标摄像机图像中未参与标定计算的角点坐 标反算得到的投影仪计算机图像对应角点坐标值与真实的投影仪计算机图像角点 坐标值之间差值的均方值。
然后,通过虚拟视景软件设计一组已知空间坐标的四棱锥体,设置两个视点的 对应参数,得到两幅不同视点的虚拟三维视觉图像,两个视点的参数设置分别如表 2中所示:
表2虚拟视景软件两个视点的参数设置 视点序号 透视投影变换 视场角θ(度) 视点坐标(米) 视线角度(度) XPos YPos ZPos θYaw θPitch θRoll 1 30.0 -296.96 4924.04 815.87 -20.0 -80.0 0 2 30.0 334.94 4829.63 1250.00 15.0 -75.0 0
由以上参数可以求出左右虚拟摄像机参数,如表3所示:
表3虚拟左右摄像机参数 虚 拟 摄 像 机 内部参数矩阵M1v 外部参数矩阵M2v
然后,将虚拟视景不同视点的两幅图像分别投影到屏幕上,经过摄像机拍摄得 到的左右摄像机图像。
选取图中四棱锥
顶点及部分底面角点作为立体视觉三维坐标计算对象,由以上 标定结果和左右虚拟摄像机参数应用立体视觉方法计算得到各点的三维坐标如表4 所示:
表4测试点三维坐标结果 测 试 点 计算得到的3D坐标 测试点3D坐标(正确参 考值) 误差绝对值 x (m) y (m) Z (m) x (m) y (m) z (m) x (m) y (m) z (m) 1 -797.431385 50.127005 -797.777763 -800.0 50.0 -800.0 2.568615 0.127005 2.222237 2 -1.001740 107.039278 -794.380440 0.0 100.0 -800.0 1.001740 7.039278 5.619560 3 796.842689 195.600301 -796.937523 800.0 200.0 -800.0 3.157311 4.399699 3.062477 4 -797.141975 103.440312 -0.900943 -800.0 100.0 0.0 2.858025 3.440312 0.900943 5 -0.804717 210.602164 0.101009 0.0 200.0 0.0 0.804717 10.602164 0.101009 6 794.319775 406.063174 1.453075 800.0 400.0 0.0 5.680225 6.063174 1.453075 7 -795.761508 207.047241 794.217551 -800.0 200.0 800.0 4.238492 7.047241 5.782449 8 -0.290521 405.913170 795.739763 0.0 400.0 800.0 0.290521 5.913170 4.260237 9 794.324599 804.210911 795.545259 800.0 800.0 800.0 5.675401 4.210911 4.454741 10 -1200.416783 -14.100085 -799.657616 -1200.0 0.0 -800.0 0.416783 14.100085 0.342384 11 -398.896403 7.953799 -0.981987 -400.0 0.0 0.0 1.103597 7.953799 0.981987 12 396.572498 6.668576 794.327192 400.0 0.0 800.0 3.427502 6.668576 5.672808
最后,进行精度分析,由上表数据可计算得到三维坐标的均方误差为:
x值:3.189168
y值:7.296316
z值:3.576814
当在虚拟场景中把视点设在四棱锥体的上方海拔为3000米左右位置,进行相 同实验测试时,可得到测试点三维坐标的均方误差为:
x值:1.747925
y值:4.028061
z值:1.940519
由于立体视觉测量精度会随着测量范围变大而降低,因此我们通过场景的三维 坐标误差值与测量距离的比值来衡量立体视觉系统测量的精度,由以上实验数据可 知,该系统通过系统进行立体视觉三维重建精度在1/1000左右。
以上所述的仅是本发明的优选实施方式。应当指出,对于本领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以作出若干变型和改进,这些也应视 为属于本发明的保护范围。