石头:2229 - 371 x
Suchi阿帕德海耶1, S.K.Singh2Manoj古普塔3.,Ashok K. Nagawat4
|
有关文章载于Pubmed,谷歌学者 |
更多相关文章请访问全球计算机科学研究杂志。
本文研究了在立体视觉系统中对摄像机进行标定,找出恢复目标深度估计所需的摄像机内、外部参数
关键字 |
相机定标,蔡氏算法,立体视觉,线性定标,非线性定标,深度估计 |
介绍 |
三维投影是一种数学变换,用于将三维点投影到二维平面上。通常这样做是为了模拟相机与主题的关系。在计算机图形学中,三维投影通常是二维表示三维形状的第一步。透视投影是一种在平面(2D)表面上以图形方式近似三维物体图像以近似实际视觉感知的渲染方式。 |
为了从二维图像中提取度量信息,摄像机标定是三维计算机视觉中必不可少的一步。很多工作已经完成,开始在摄影测量社区,最近在计算机视觉。张正友[1]给出了“一维物体相机标定”的思路。根据校准对象的尺寸,他可以将校准技术分为三类: |
自校准:这里不使用校准对象,只需要图像点对应。 |
二维平面标定 |
基于三维参考对象的校准 |
摄像机标定是确定摄像机内部和外部参数的过程,从而确定摄像机所观察到的物体的位置[2]。如果采用精确的相机定标方法,则从立体图像对中恢复深度信息的问题大大简化。 |
摄像机标定技术主要有两个参数,一个是内在参数,另一个是外在参数。内在参数定义相机的内部几何和光学特性,而外在参数定义相机在任意定义的三维坐标系[3]中的位置和方向。 |
摄像机标定二维案例 |
这种基于二维平面的校准技术需要观察一个平面图案(图2)。与蔡康英的技术不同,不需要了解平面运动,因为几乎任何人都可以自己制作这样的校准图案。 |
假设 |
像素坐标: |
像素坐标的测量是从二维投影图像平面上进行的。 |
(a)单位为像素 |
(b)来源:左上角 |
(c) x值从左到右递增 |
(d) y值从上到下递增 |
世界坐标: |
世界坐标的测量取自任意世界参考系。 |
用户定义的 |
为了测量对象的实际大小,必须从每个像素坐标映射到世界坐标。 |
摄像机参数介绍 |
摄像机的参数包括内部参数和外部参数,如下: |
内部参数: |
CCD几何 |
dx:像素在x方向上的中心到中心距离 |
dy:像素在y方向上的中心到中心距离 |
主点 |
Xp:主点的x坐标,相对于中心 |
图像 |
Yp:主点相对于图像中心的y坐标 |
相机常数 |
F:焦距 |
透镜畸变系数 |
K1:一阶透镜畸变系数 |
K2:二阶透镜畸变系数 |
K2:三阶透镜畸变系数 |
帧缓冲区属性 |
xs:比例因子 |
外部参数: |
刚体变换 |
Rx:绕x轴旋转 |
Ry:绕y轴旋转 |
Rz:绕z轴旋转 |
Tx: x方向的平移 |
Ty: y方向的平移 |
Tz: z方向的平移 |
摄像机标定三维机箱 |
三维相机标定是通过观察一个标定对象,其在三维空间中的几何形状是已知的,具有非常好的精度。 |
校准对象通常由两个或三个相互正交的平面组成(图5)。有时也使用经过精确已知平移的平面,等效地提供3D参考点。 |
蔡康永的透视投影相机模型 |
Tsai使用针孔相机模型来描述3D空间中的点到相机帧缓冲区中的像素的转换。Tsai的相机模型由11个参数组成:6个外在的“外在取向”参数(Rx,Ry,Rz,Tx,Ty,Tz)和5个内在的“内在取向”参数(f,Cx,Cy,sx,k1)。对于固定镜头,所有11个相机参数都是由单个相机视图的校准数据估计的常数(即相机的外部和内部方向是固定的)。 |
蔡康永的相机模型包含以下参数: |
R一个3x3的旋转矩阵 |
R |
平移向量 |
F相机的焦距 |
图像捕获硬件引入的不确定性因素 |
k1径向透镜畸变系数 |
(Cx,Cy)图像中心 |
其中R, T, f, sx和k1将使用Tsai的算法进行校准。Cx和Cy可以事先确定,不需要重新校准。 |
在Tsai的模型中,如图1所示,相机中心坐标系(xc,yc,zc)的原点与相机的前节点重合;zc轴与相机的光轴重合。假设成像平面平行于(xc,yc)平面,距离原点为f,其中f为针孔相机的有效焦距。点P在世界坐标(xw,yw,zw)中的位置与点在相机帧缓冲区(Xf,Yf)中的图像之间的关系由一系列坐标转换定义。第一个变换是从世界坐标系(xw,yw,zw)到相机中心坐标系(xc, yc, zc)的刚体旋转和平移。这是由 |
是描述相机在世界坐标系中的方向的3x3旋转矩阵。R也可以表示为 |
R =腐(Rx)腐(Ry)腐(Rz) (3) |
绕世界坐标系的x、y、z轴三次旋转的乘积 |
第二个转换是相机坐标中的点的透视投影(使用理想的针孔相机模型)到其图像在未扭曲的传感器平面坐标中的位置(Xu,Yu)。这种转换描述为 |
第三个变换,如图6所示,从点图像在传感器平面上的未畸变(理想)位置到点图像的真实位置(Xd,Yd),这是由几何透镜畸变引起的。这是由 |
式中,k1为透镜径向畸变系数。 |
最后的变换是该点图像在传感器平面上的真实位置与其在相机帧缓冲区中的坐标(Xf,Yf)之间的转换。这是由 |
式中,Cx和Cy为zc轴与相机传感器平面的交点坐标(单位为像素);Dx和dy是相机传感器元件在xc和yc方向上的有效中心到中心距离;sx是一个比例因子,用于补偿CCD上的传感器元素数量与相机帧缓冲区中x方向[7]的像素数量之间比率的任何不确定性。 |
蔡的算法 |
蔡崇信给出的算法是一个两阶段的过程,在没有操作员协助的情况下执行。它校准了上述相机模型的R, T, f, k1和sx参数(图3)。由于没有大规模的非线性搜索,该算法在PC硬件上执行得很快。 |
该算法需要一个校准模式,Tsai提供了不同版本的共面和非共面校准模式。这是一个单视图算法;然而,它可以适应用于校准模式的多个视图。该过程的第一阶段确定了外部参数sx, R和平移向量的前两个分量Tx和Ty。在这一阶段还估计了平移向量Tz的焦距f和z分量。这是通过求解一个线性方程组来实现的,其输入是校准模式中点的坐标,无论是在图像中还是在现实世界中。然后从该系统的解决方案中恢复各种参数。这个过程的第二阶段包括最陡的下降搜索。这是用来确定径向畸变因子k1,不能从校准模式确定;f和Tz也在搜索[3]期间进行了调整。 |
系统实现 |
使用线性最小二乘方法校准一个射影相机,不考虑径向畸变。 |
给定一个MATLAB数据文件,其中包含场景中一些点的3D坐标及其在图像中的2D投影。我们必须写一个MATLAB函数线性校准,计算投影相机参数。函数的签名应该如下-函数[camcalibrb] = linearcalibrb [Points 3D, Points 2D]输入:Points 2D = N个2D点的2xN矩阵。点3D =一个4xN矩阵的N 4D齐次坐标。 |
输出:CamCalib =一个3x4投影相机矩阵 |
H/W和S/W要求 |
基本温湿度要求 |
CPU: Intel-Original, PentiumIV, 2.4 GHz更快 |
RAM: 256 MB或更大以获得最佳性能 |
硬盘:40gb,至少10gb可用空间 |
网络摄像头:罗技快速摄像头Pro 3000 |
数码相机:佳能功率镜头- A420, 4.0百万像素,放大倍率11倍。 |
基本S/W需求 |
操作系统:Windows XP with Service Pack 2 |
开发工具:MATLAB 7.1 |
DirectX:版本9或更高版本 |
项目流程图 |
本工作主要包括两部分:线性和非线性摄像机标定技术。用于线性摄像机标定技术;我们使用了单摄像机对该网格图形物体进行观测,并采用了非线性摄像机标定技术;两台相机或同一台相机已被使用两次,以拍摄相同的单独视图。在立体视觉系统中,非线性摄像机定标技术提供了目标的深度信息。所以工作流程图可以考虑为以下两部分: |
摄像机标定流程图 |
步骤1:将两个平面以棋盘格的形式呈直角放置。 |
Step2:我们知道所选点在目标世界坐标系中的位置。步骤3:我们将相机放置在目标前面,并以像素为单位找到图像坐标。 |
Step4:在MATLAB中得到了计算投影矩阵M的函数。 |
Step5:现在我们找到了相对于世界参考系中目标的相机内在参数和外在参数。 |
深度估计流程图 |
步骤1:将两个平面以棋盘格的形式呈直角放置 |
Step2:根据要考虑的固定世界坐标捕获图像。 |
Step2:相对于固定的世界坐标,从移位的位置捕获相同的图像 |
Step3:生成二维投影图像,作为输入,计算投影矩阵M。 |
第四步:投影矩阵M给出了摄像机参数fx, fy, Ox, Oy, R, t。第五步:从这些参数中我们可以得到深度比R l Z / Z。 |
结论 |
本文讨论了一种在立体视觉系统中标定单摄像机和估计目标深度的方法。对摄像机进行标定,得到摄像机的内在参数和外在参数。这些参数可以进一步用于获取立体视觉系统中物体的深度信息。利用深度和方向可以在二维平面上重建物体的三维图像,也称为三维重建。 |
我们之前的工作给出了立体视觉系统中物体的深度信息,从这些深度信息中我们可以得到物体的网格概念,我们希望它能帮助我们在不久的将来重建三维物体。 |
参考文献 |
|