摄像机模型
本章是重点章节. 主要介绍两种摄像机模型: 1.光心在有穷点 2. 光心在无穷点, 也叫仿射摄像机
6.1 有穷摄像机
假设在相机坐标系下有一点X=(X,Y,Z), 由于摄像机的平面在Z=f f就是焦距, 那么(X,Y,Z)就变到了(fX/Z,fY/Z)(图像坐标系), 写成矩阵就是如下形式
⎝⎛fXfYZ⎠⎞=⎣⎡ff1000⎦⎤⎝⎛XYZ1⎠⎞
到了图像坐标系以后, 我们继续转换到像素坐标系
(X,Y,Z,1)就变成了(fX/Z+px,fY/Z+py), (px,py)就是摄像机的光心.
⎝⎛fXfYZ⎠⎞=⎣⎡ffpxpy1000⎦⎤⎝⎛XYZ1⎠⎞
我们可以写
K=⎣⎡ffpxpy1000⎦⎤
K就是摄像机的内参
最后, 我们还需要从世界坐标系转换到相机坐标系, 所以有一个旋转加平移的矩阵
⎝⎛fXfYZ⎠⎞=⎣⎡ffpxpy1000⎦⎤[R0t1]⎝⎛XYZ1⎠⎞
其中
[R0t1]
就是相机的外参
相机内参有时候会加一个偏斜系数,因为相机的两个轴不是完全垂直的
K=⎣⎡fsfpxpy1000⎦⎤
把整个摄像机矩阵写成P, P就是一个3×4的矩阵, 反过来任何一个3×4的矩阵都可以是(有限)摄像机矩阵, 只要他左边3×3的子矩阵不是奇异矩阵就可以.
如果该矩阵是奇异矩阵, 那么该摄像机模型就是仿射摄像机.
那么我们把P写成P=[M∣p4], pi代表列. 将摄像机性质总结如下:
- 光心位置C, M 不奇异, 则C=(−M−1p4,1)T. C是奇异矩阵则C=(d,0)T
- p1,p2,p3是x,y,z轴的消失点,p4是相机坐标系的原点
- P的最后一行就是主平面
- P的第一第二行是轴平面
- 主点是Mm3 m3就是相机矩阵第三行
6.2.1 下面我们详细说明一下相机的各个关键词
相机中心 P的rank是3, 那么它就有一个1维的零空间C, 满足PC=0, 这个C就是相机的中心
列向量 前三个列向量是消失点, 最后一个列向量是世界原点
行向量 行向量代表平面,如上节3,4所属
主平面 主平面就是通过相机中心,并且与成像平面平行的平面
主轴 主轴通过主平面并且与其垂直, 交点是相机中心
6.2.2 投影与反投影
空间点X投影到x=PX, 图像点x反投影就形成了一个射线X(λ)=P+x+λC
6.2.3 点的深度
空间点X=(X,Y,Z,T)T, 摄像机矩阵P=[M∣p4], 我们假设P(X,Y,Z,T)T=w(x,y,1)
depth(X;P)=T∣∣m3∣∣sign(detM)w
已知P求摄像机中心
假设中心C=(X,Y,Z,T)T, 有以下公式可以计算出C
X=det([p2,p3,p4])
Y=−det([p1,p3,p4])
Z=det([p1,p2,p4])
T=−det([p1,p2,p3])
求摄像机内参和位姿R
P=[M∣−MC]=K[R∣−RC]. 所以直接把M做QR分解就可以了
6.3 无穷远处的摄像机
无穷远处摄像机的意思是P左边3×3的子矩阵是奇异的. 这种摄像机可以分成两类. 仿射摄像机和非仿射摄像机.
仿射摄像机的定义是P最后一行是(0,0,0,1).
我们可以想象摄像机主点往无穷远处移动, 同时摄像机的焦距逐渐增大, 主点到了无穷远, 最后一行自然成了(0,0,0,1)
6.3.2 仿射摄像机的误差
一个点, 投影到仿射摄像机和普通摄像机上的坐标是有差别的. 点离摄像机越远, 点越会偏离主点.
6.3.3 仿射摄像机矩阵的分解
其矩阵可以写成如下形式
[K2×2001][R0t1]
左边的矩阵就是内参
6.3.4 广义的无穷远摄像机
如前文所述, 仿射摄像机就是摄像机的中心在无穷远, 主平面也在. 或者说P左边3×3 的子矩阵是奇异矩阵, 因为最后一行是0. 但是还有一种情况, 就是该子矩阵是奇异的, 但是最后一行不是0, 那就是说相机中心在无穷远, 但是主平面不在