基于标定物的相机标定及三维重建

时间:2022-10-08 10:15:47

基于标定物的相机标定及三维重建

摘要:针对传统三维建模的局限性,讨论了一种基于图像建模的技术,提出了利用普通相机和标定物对物体进行三维建模的方法,该方法利用一个在左右图像都存在的物体,对相机进行标定[1]。然后利用左右相机的相机矩阵,反算空间中的对应点和需要求取的关键点。最后利用这些点计算出来的空间位置[2],对物体进行重建,并用OpenGL进行漫游显示。实验表明,该算法计算准确,鲁棒性很高,能够满足于虚拟现实的需要。

关键词:标定;标定物;三维重建;OpenGL

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2008)11-20356-03

1 引言

三维建模的需求越来越多,通过建模软件如AutoCAD,3Dmax等建模有时难以满足现实需要。本文讨论了一种基于图像的建模。基于图像建模,有很多方法,文献[3-5]提出基于基本矩阵的方法进行分析。通过用普通数码相机拍照,本文使用基于标定的方法,首先都左右相机进行标定,然后依据标定的相机,基于双目计算空间点的位置,最后在OpenGL[6,7,8]中进行显示,试验表明本方法是切实有效的。

2 计算相机矩阵

若想由图像像素位置计算出空间点的3D世界坐标,必须要知道摄像机矩阵。求摄像机矩阵的过程就是摄像机的标定过程,也就是建立图像像素点位置与空间点位置之间的关系。这里,仅对线性模型摄像机标定做介绍。

由一对对应点能得到两个线性方程,即由一个空间点位置和它相应的图像像素位置可以建立两个方程。而摄像机矩阵中包含有11个未知数,为了求出这11个未知数,必须至少有11个方程才能解出。因此,就需要至少6个已知的空间点。这些点叫做标定点,它们的特点是:其相对于世界坐标系的位置在标定时应精确测定;随后用摄像机获取这些点的图像,得到标定点在图像上的像素位置;最后通过解方程组,计算出摄像机矩阵,也就完成了摄像机的标定。在有些研究中可能需要知道摄像机的内外部参数,那么就可以通过分析摄像机矩阵,进一步得到这些内外部参数。在本文的实验中,目的是计算空间点的世界坐标,只需要摄像机矩阵就足够了,因此这里对于进一步分解摄像机矩阵不在做介绍。

设共有n个标定点,每个标定点的世界坐标为(xi,yi,zi),图像坐标为(ui,vi),i∈[1,n]。由于一个标定点就对应两个方程,因此最终有2n个线性方程,所得的方程组用矩阵形式表示为:

如果将上式左边的2n×11矩阵设为K,c为未知的11维向量,U为上式右边的2n维向量,K和U都是已知向量,那么上式就可以简化成:

Kc=U

因为在上面已经提到本文实验应用的是线性模型,所以也是用线性最小二乘法来求解。在标定过程中,标定点的个数越多,使得方程的个数大大超过未知数的个数,从而用最小二乘法求解以降低误差造成的影响。当2n>11时,用最小二乘法求得的解为:

注:实际中可以在场景中放置一个盒子等物体,利用盒子边界定点进行标定。如:利用图像中左边的烟盒对左右相机进行标定,就可以对场景中的其他物体(如右边的鼠标盒子)进行计算边界点的位置。

通过上面的步骤,已经对摄像机进行了标定,并得出了世界坐标系和实际长度之间的缩放比例,

3 计算空间点位置

已知了两台摄像机的摄像机矩阵,那么就可以由此光斑的像素点计算出对应的空间点3D世界坐标。设左右摄像机图像上的像点坐标分别为[r1,c1]和[r2,c2],待求光斑的空间点3D世界坐标为[x,y,z]。由可得:

由上面两个公式,去掉齐次坐标s和t,就能得到下面的4个线性方程,其中包含有3个未知数x、y和z,也就是所要求的空间点3D世界坐标。显然这个方程组是可以解出的。从光学的角度来说,就是两条投影线空间相交,从而找到相交点的三维空间坐标。

通过求解上面的方程求解出世界坐标点[x,y,z]位置。

4 精度比较与分析

这种方法精度较高,适用面比较广泛。拿盒子程序为例:

左边是我们在标定相机过程中给出的真实位置点,右边是利用上面的方法反算出标定物的位置点。

我们可以看出误差比较大的点如划线部分标出,误差为0.568938/45≈1.2%,其他点的误差基本上都在1.0%以下。由此可以看出此种方法精度还是相当高的。

5 OpenGL中的显示

我们对首先利用一个箱子标定左右相机,然后跟据标定的相机,计算烟盒以及旁边鼠标盒的坐标,最后进行的显示,试验截图如下:

6 结论

随着三维技术的发展,三维模型在各个领域别是虚拟现实[9,10]的应用越来越广泛。通过实验和精度分析,我们可以看出本文的方法是切实有效的,完全可以用于虚拟现实等的建模要求。

参考文献:

[1] (美)Linda G. Shapiro,George C. Stockman.计算机视觉[M]. 机械工业出版社,2005.

[2] 马颂德,张正友.计算机视觉-计算理论与算法基础 [M].科学出版社,2005.

[3] B.Boufama,R.Mohr. Epipole and fundamental matrix estimation using virtual parallax [C]. ICCV,1995: 1030-1036.

[4] Quan-tuan luong,Olivier D. Faugeras. The Fundamental Matrix: Theory, Algorithms, and Stability Analysis [J]. International Joumal of Computer Vision, 1996,17(1): 43-75.

[5] Richard I. Hartley. Estimation of Relative Camera Positions for Uncalibrated Cameras [A]. In: Second European Conference on Computer Vision [C]. Sandini G ed. , Berlin :Springer-Verlag, 1992:579-587.

[6] (美) K. 霍金, D. 阿斯特. OpenGL游戏程序设计[M]. 科学出版社,2006.

[7] OpenGL体系结构审核委员会. OpenGL编程指南[M].第四版.人民邮电出版社,2005.

[8] (美)Richard S.Wright,Jr.Benjamin Lipchak.OpenGL宝典[M].第三版.人民邮电出版社,2005.

[9] 卞锋,江漫清,桑永英. 虚拟现实及其应用进展[J].计算机仿真, 2007,06:1-4.

[10] 霍妍妍,李爱军, 刘瑜. 虚拟现实技术发展综述[C].第一届中国图学大会,2007:243-247.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:基于软件总线的TinyOS集成开发环境研究与设计 下一篇:基于Oracle数据库的医院信息系统数据库升级方...