针孔相机模型
设P点坐标为
[X,Y,Z]⊤
,
P′
坐标为
[X′,Y′,Z′]⊤
, 根据三角形等比关系有
Zf=−XX′=−YY′
在对称的成像平面上为:
Zf=XX′=YY′
所以得到:
X′=fXZ
and
Y′=fYZ
.
摄像机内外参数矩阵
内参数矩阵
设像素平面
P′
的坐标为
[u,v]⊤
. 注意到摄像机的坐标系为
O−x−y−z
, 像素坐标定义为
o′−u−v
, 其中
u
与
x
平行,
v
与
y
平行.像素平面与成像平面相差一个缩放因子和平移因子:
u−v
轴上缩放
α
倍和放
β
倍, 平移量为
[cx,cy]⊤
. 则:
{u=αX′+cxv=βY′+cy
代入上式合并
fx=αf
和
fy=βf
:
{u=fxXZ+cxv=fyYZ+cy
展开成矩阵形式:
⎡⎣⎢⎢uv1⎤⎦⎥⎥=1Z⎡⎣⎢⎢⎢fx000fy0cxcy1⎤⎦⎥⎥⎥⎡⎣⎢⎢XYZ⎤⎦⎥⎥=△1ZKP⃗
整理可得:
Z⎡⎣⎢⎢uv1⎤⎦⎥⎥=⎡⎣⎢⎢⎢fx000fy0cxcy1⎤⎦⎥⎥⎥⎡⎣⎢⎢XYZ⎤⎦⎥⎥=△KP⃗
这里
K
称为摄像机的内参数矩阵
.
外参数矩阵
下面推导外参数矩阵。P点的坐标是由世界坐标
Pw
根据当前位姿变换到相机坐标下的结果,位姿由旋转矩阵
R
和平移量
t⃗
来描述:
ZPuv=Z⎡⎣⎢⎢uv1⎤⎦⎥⎥=K(RPw+t⃗ )=KTPw
相机的位姿
R,t⃗
称为
相机的外参数
.
畸变
径向畸变
径向畸变:由透镜形状引起的畸变称之为径向畸变。主要包括,桶形畸变和枕形畸变。
[x,y]
是未纠正的点坐标,
[xcorrected,ycorrected]
是纠正后的点坐标,皆为归一化平面上的点。校正公式为
{xcorrected=x(1+k1r2+k2r4+k3r6)ycorrected=y(1+k1r2+k2r4+k3r6)
切向畸变
切向畸变:在相机的组装过程中由于不能使得透镜和成像面严格平行也会引入切向畸变。
可用两个参数
p1,p2
来校正:
{xcorrected=x+2p1xy+p2(r2+2x2)ycorrected=y+2p2xy+p1(r2+2y2)
所以,对于相机坐标系的点
P(X,Y,Z)
, 可通过五个畸变系数找到其正确位置。
1) 首先将空间点投影到归一化平面上,归一化坐标为
[x,y]⊤
;
2) 归一化的点进行径向畸变和切向畸变:
{xcorrected=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ycorrected=y(1+k1r2+k2r4+k3r6)+2p2xy+p1(r2+2y2)
3) 将纠正后的点通过内参数投影到像素平面,得到点的正确坐标:
{u=fxxcorrected+cxv=fyycorrected+cy
注意这里一共有四种坐标:世界坐标
O−X−Y−Z
、相机坐标
O−x−y−z
、归一化相机坐标
O−x−y−z
(
z=1
), 和图像像素坐标
O−u−v
.
双目相机模型
空间点
P
在左眼和右眼的点为
PLandPR
, 理想情况下只在u-轴上有位移,左侧位置记为
uL
, 右侧位置
uR
.根据三角形相似关系有:
z−fz=b−uL+uRb
整理得:
z=fbd, d=uL−uR
其中,
d
表示视差(disparity),
d
很难计算。
RGB-D模型
1) 红外结构光(structed light):发射一束光线,根据返回的结构光图案计算距离。
2) Time-of-flight, ToF: 发射脉冲,根据发送到返回之间的光束飞行时间确定自身距离。
弊端:易受日光或其他发射红外光装置的干扰,不能在室外和多个装置一起工作。不能测量透射材质的物体。