摄像机模型

Posted 庖丁解牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了摄像机模型相关的知识,希望对你有一定的参考价值。

摄像机是三维空间物体与二维图像之间的一种映射。成像模型就是三维空间物体到二维视平面的投影关系。

针孔模型

透视投影(Perspective Projection)是最常用的成像模型,可以用针孔成像模型来近似表示。透视投影成像模型的特点是所有来自场景的光线均通过一个投影中心,它对应于透镜的中心,经过投影中心且垂直于图像平面(成像平面)的直线称为投影轴或光轴。

clip_image002

中心投影可以非常简单地表示成齐次坐标之间的线性映射。

Z_c*\\begin{bmatrix}x\\\\y\\\\1\\end{bmatrix}=\\begin{bmatrix}fX_c\\\\fY_c\\\\Z_c\\end{bmatrix}=\\begin{bmatrix}f&&0&&0&&0\\\\0&&f&&0&&0\\\\0&&0&&1&&0\\end{bmatrix}*\\begin{bmatrix}X_c\\\\Y_c\\\\Z_c\\\\1\\end{bmatrix}

[X_c,Y_c,Z_c] 为摄像机坐标系中的物体坐标 [x,y] 是物体投影在图像平面的位置。

K=\\begin{bmatrix}f&&0&&0&&0\\\\0&&f&&0&&0\\\\0&&0&&1&&0\\end{bmatrix}

则有 x=K*X, 其中K为3*4的摄像机投影矩阵。

摄像机模型

针孔模型的X是相对摄像机坐标系而言的,而往往摄像机是不断运动的(位姿在不断变化),空间点的世界坐标系是恒定不变的。摄像机坐标系和世界坐标系可以通过旋转和平移相联系。

\\begin{bmatrix}X_c\\\\Y_c\\\\Z_c\\\\1\\end{bmatrix}=R*(\\begin{bmatrix}U\\\\V\\\\W\\\\1\\end{bmatrix}-C)

R是摄像机相对于世界坐标系的旋转矩阵,C表示位移。令 t=-RC 得:

Z*\\begin{bmatrix}x\\\\y\\\\1\\end{bmatrix}=K*\\begin{bmatrix}R&&t\\\\0^T&&1\\end{bmatrix}*\\begin{bmatrix}U\\\\V\\\\W\\\\1\\end{bmatrix}

摄像机模型可表示为:

P=K*[R|t]=K*\\begin{bmatrix}R&&t\\\\0^T&&1\\end{bmatrix}

x=P*X 此处X是世界坐标系下的位置。

上述推导的摄像机模型是假定图像坐标在两个轴向上有等尺度的欧式坐标。但CCD摄像机的像素可能不是正方形。如果图像坐标以像素来测量,那么需要在每个方向上引入非等量尺度因子。

所以:K=\\begin{bmatrix}\\alpha_x&&0&&u_0&&0\\\\0&&\\alpha_y&&v_0&&0\\\\0&&0&&1&&0\\end{bmatrix}

其中 \\alpha_x=f*m_x\\alpha_y=f*m_y ,m分别表示在x和y方向上图像坐标单位距离的像素数, (u_0,v_0) 表示像素量纲上图像的原点。

摄像机模型的参数

x=P*X

P=K*[R|t]

K是内参,R和t成为外参。

R为旋转矩阵

在三维空间中,旋转可以分解为绕各自坐标轴的二维旋转,如果依次绕x,y,x轴旋转角度

R_x(\\alpha)=\\begin{bmatrix}1&&0&&0\\\\0&&cos\\alpha&&sin\\alpha\\\\0&&-sin\\alpha&&cos\\alpha\\end{bmatrix}

R_y(\\beta)=\\begin{bmatrix}cos\\beta&&0&&-sin\\beta\\\\0&&1&&0\\\\sin\\beta&&0&&cos\\beta\\end{bmatrix}

R_z(\\gamma)=\\begin{bmatrix}cos\\gamma&&sin\\gamma&&0\\\\-sin\\gamma&&cos\\gamma&&0\\\\0&&0&&1\\end{bmatrix}

旋转矩阵R可以表示为 R_x, R_y, R_z 的乘机,因此R=R_x(\\alpha)*R_y(\\beta)*R_z(\\gamma) 

t为平移向量

表示摄像机坐标系原点在世界坐标系中的位置。

内外参数

P有10个自由度,3个来自R,3个来自t,4个是K中的内参。另外,由于P为3*4的不可逆矩阵,在已知P的情况下,为了得到空间点的三维世界坐标,就必须有两个或更多的相机构成的视觉系统模型才能实现。

以上是关于摄像机模型的主要内容,如果未能解决你的问题,请参考以下文章

摄像机模型

摄像机模型,畸变模型及畸变图像的矫正

16080401(面向摄像机的Instance模型)

Unity中将模型旋转模型很模糊是为啥?怎么修改?

如何在 Blender 中从不同的摄像机角度渲染 3d 模型的不同贴图(漫反射、深度、镜面反射、阴影)?

摄像机标定--矫正畸变