摄像机模型
有限摄像机
基本针孔模型
- 投影中心/摄像机中心/光心 C C C位于欧式坐标系的原点
- 图像平面或聚焦平面为 Z = f Z=f Z=f
- 摄像机中心到图像平面的垂线称为摄像机的主轴或主射线
- 主轴与图像平面的交点称为主点 p p p
- 过摄像机中心且平行于图像平面的平面称为摄像机的主平面
- 从世界坐标系到图像坐标系的中心投影: ( X , Y , Z ) T ⟼ ( f X / Z , f Y / Z ) (X,Y,Z)^T \longmapsto (fX/Z,fY/Z) (X,Y,Z)T⟼(fX/Z,fY/Z)
齐次坐标表示中心投影
[ X Y Z 1 ] ⟼ [ f X f Y Z ] = [ f 0 f 0 1 0 ] [ X Y Z 1 ] \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix} \longmapsto \begin{bmatrix} fX \\ fY \\ Z \end{bmatrix} = \begin{bmatrix} f & &&0 \\ &f &&0\\ &&1& 0\\ \end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix} XYZ1 ⟼ fXfYZ = ff1000 XYZ1
设
P
P
P为齐次摄像机投影矩阵,则上式可写为
x
=
P
X
P
=
d
i
a
g
(
f
,
f
,
1
)
[
I
∣
0
]
\pmb x = P\pmb X \\ P = diag(f,f,1)[\pmb I \mid \pmb 0]
x=PXP=diag(f,f,1)[I∣0]
主点偏置
实际情况中,图像平面的坐标原点不一定在主点上,主点的坐标为 ( p x , p y ) (p_x,p_y) (px,py)
(
X
,
Y
,
Z
)
T
⟼
(
f
X
/
Z
+
p
x
,
f
Y
/
Z
+
p
y
)
T
(X,Y,Z)^T \longmapsto (fX/Z+p_x,fY/Z+p_y)^T
(X,Y,Z)T⟼(fX/Z+px,fY/Z+py)T
用齐次坐标表示为
[
X
Y
Z
1
]
⟼
[
f
X
+
Z
p
x
f
Y
+
Z
p
y
Z
]
=
[
f
p
x
0
f
p
y
0
1
0
]
[
X
Y
Z
1
]
\begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix} \longmapsto \begin{bmatrix} fX+Zp_x \\ fY+Zp_y \\ Z \end{bmatrix} = \begin{bmatrix} f & &p_x&0 \\ &f &p_y&0\\ &&1& 0\\ \end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix}
XYZ1
⟼
fX+ZpxfY+ZpyZ
=
ffpxpy1000
XYZ1
设
K
K
K为摄像机标定矩阵,
X
c
a
m
\pmb X_{cam}
Xcam表示摄像机被设定在欧式坐标系的原点且摄像机的主轴沿着
Z
Z
Z轴的指向,这样的坐标系被称为摄像机坐标系
x
=
K
[
I
∣
0
]
X
c
a
m
\pmb x = \pmb K[\pmb I \mid \pmb 0] \pmb X_{cam}
x=K[I∣0]Xcam
摄像机旋转与平移
一般,空间点采用不同的欧氏坐标系表示,称为世界坐标系。
X
c
a
m
=
[
R
−
R
C
~
0
T
1
]
[
X
Y
Z
1
]
=
[
R
−
R
C
~
0
T
1
]
X
\pmb X_{cam} = \begin{bmatrix} R & -R \widetilde{\pmb C} \\ \pmb 0^T & 1 \end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \\1 \end{bmatrix} = \begin{bmatrix} R & -R \widetilde{\pmb C} \\ \pmb 0^T & 1 \end{bmatrix} \pmb X
Xcam=[R0T−RC
1]
XYZ1
=[R0T−RC
1]X
图像平面上投影点坐标为
x
=
K
R
[
I
∣
−
C
~
]
X
=
P
X
\pmb x = KR[I \mid - \widetilde {\pmb C}] \pmb X = P\pmb X
x=KR[I∣−C
]X=PX
一般针孔摄像机
P
P
P有
9
9
9个自由度:包含在
K
K
K中的参数为摄像机的内参数或内部校准,包含在
R
,
C
~
R,\widetilde{\pmb C}
R,C
中的参数称为外参数或外部校准
为了方便,通常不标出摄像机中心,而是把世界到图像的变换表示成
X
~
c
a
m
=
R
X
~
+
t
,
t
=
−
R
C
~
\widetilde{\pmb X}_{cam} = R \widetilde{\pmb X} + \pmb t,t = -R \widetilde {\pmb C}
X
cam=RX
+t,t=−RC
,则摄像机矩阵简化为
P
=
K
[
R
∣
t
]
P =K[R \mid \pmb t]
P=K[R∣t]
CCD摄像机
CCD摄像机的像素可能不是正方形。如果在
x
x
x和
y
y
y方向上图像坐标单位距离的像素分别是
m
x
,
m
y
m_x,m_y
mx,my,那么由世界坐标系到像素坐标系的变换要左乘一个附加的因子
d
i
a
g
(
m
x
,
m
y
,
1
)
diag(m_x,m_y,1)
diag(mx,my,1),因此CCD摄像机的标定矩阵的一般形式是
K
=
[
α
x
x
0
α
y
y
0
1
]
K = \begin{bmatrix} \alpha_x & &x_0 \\ &\alpha_y &y_0 \\ &&1 \end{bmatrix}
K=
αxαyx0y01
其中,
α
x
=
f
m
x
,
α
y
=
f
m
y
\alpha_x = fm_x,\alpha_y = fm_y
αx=fmx,αy=fmy分别把摄像机的焦距换算成
x
,
y
x,y
x,y方向的像素量纲;
x
~
0
=
(
x
0
,
y
0
)
T
\widetilde{\pmb x}_0 = (x_0,y_0)^T
x
0=(x0,y0)T是像素量纲表示的主点,
x
0
=
m
x
p
x
,
y
0
=
m
y
p
y
x_0=m_xp_x,y_0=m_yp_y
x0=mxpx,y0=mypy。一个CCD摄像机有
10
10
10个自由度
有限射影摄像机
有限射影摄像机的标定矩阵多了一个扭曲参数
s
s
s,如果
s
≠
0
s\neq 0
s=0说明CCD阵列的像素元素产生扭曲使得
x
,
y
x,y
x,y轴不垂直,一般不可能发生,现实中多出现于对图像再次取像(重拍或放大),二次拍摄的轴与被放大的图像平面不垂直导致。
K
=
[
α
x
s
x
0
α
y
y
0
1
]
K = \begin{bmatrix} \alpha_x &s &x_0 \\ &\alpha_y &y_0 \\ &&1 \end{bmatrix}
K=
αxsαyx0y01
一个有限射影摄像机有
11
11
11个自由度,与定义到相差一个任意尺度因子的
3
×
4
3\times 4
3×4矩阵的自由度一样
P
=
K
R
[
I
∣
−
C
~
]
P = KR[I \mid - \widetilde{\pmb C}]
P=KR[I∣−C
]
M
=
K
R
M=KR
M=KR为
P
P
P矩阵的左边
3
×
3
3\times 3
3×3子矩阵(对
M
M
M进行
Q
R
QR
QR分解得到
K
R
KR
KR),矩阵
P
P
P可写为
P
=
M
[
I
∣
M
−
1
p
4
]
P=M[I \mid M^{-1}\pmb p_4]
P=M[I∣M−1p4],其中
p
4
\pmb p_4
p4是
P
P
P的最后一列
- 有限射影摄像机的摄像机矩阵集合等于左边 3 × 3 3 \times 3 3×3子矩阵为非奇异的 3 × 4 3\times 4 3×4齐次矩阵所构成的几何
一般射影摄像机
有限射影摄像机去掉左边 3 × 3 3 \times 3 3×3子矩阵是非奇异的约束。一般射影摄像机由秩为 3 3 3的任意 3 × 4 3\times 4 3×4齐次矩阵表示,它有11个自由度。如果秩小于 3 3 3,则矩阵映射的值域是一条直线
射影摄像机
P = [ M ∣ p 4 ] P=[M \mid \pmb p_4] P=[M∣p4]
摄像机构造
-
摄像机中心:摄像机中心 C C C是 P P P的一维右零空间,即 P C = 0 PC=0 PC=0
- 有限摄像机( M M M非奇异): C = ( − M − 1 p 4 , 1 ) T C = (-M^{-1 }\pmb p_4,1)^T C=(−M−1p4,1)T
- 无穷远摄像机( M M M奇异): C = ( d , 0 ) T C = (\pmb d,0)^T C=(d,0)T,其中 d d d是 M M M的 3 3 3维零向量 M d = 0 M\pmb d=\pmb 0 Md=0
-
列点:对于 i = 1 , 2 , ⋯ , 3 i=1,2,\cdots,3 i=1,2,⋯,3,列向量 p i p_i pi分别对应于 X , Y , Z X,Y,Z X,Y,Z轴在图像上的消影点。列 p 4 p_4 p4是坐标原点的图像
-
主平面:摄像机的主平面是 P P P的最后一行 P 3 P^3 P3
-
轴平面:平面 P 1 , P 2 P^1,P^2 P1,P2表示空间中过摄像机中心的平面,分别对应于映射到图像上直线 x = 0 , y = 0 x=0,y=0 x=0,y=0的点
-
主点:图像点 x 0 = M m 3 \pmb x_0 = M\pmb m^3 x0=Mm3是摄像机的主点,其中 m 3 T \pmb m^{3T} m3T是 M M M的第三行
-
主射线:摄像机的主射线是过摄像机中心 C C C而方向是 m 3 T m^{3T} m3T的射线,主轴向量 v = d e t ( M ) m 3 v=det(M) m^3 v=det(M)m3指向摄像机的前方
射影摄像机对点的作用
正向投影
在无穷远平面上的点
D
=
(
d
T
,
0
)
T
D=(d^T,0)^T
D=(dT,0)T表示消影点,这些点映射到
x
=
P
D
=
[
M
∣
p
4
]
D
=
M
d
\pmb x = P \pmb D = [M \mid p_4] \pmb D = M \pmb d
x=PD=[M∣p4]D=Md
点到射线的反向投影
给定图像中的一个点
x
\pmb x
x,确定空间中的哪些点被映射到该点,这些点组成过摄像机中心的一条空间射线。该射线过点
C
C
C和
P
+
x
P^+\pmb x
P+x,该射线表示为
X
(
λ
)
=
P
+
x
+
λ
C
\pmb X(\lambda) = P^+ \pmb x + \lambda \pmb C
X(λ)=P+x+λC
记
P
=
[
M
∣
p
4
]
P=[M\mid p_4]
P=[M∣p4],摄像机中心为
C
~
=
−
M
−
1
p
4
\widetilde{\pmb C} =-M^{-1}p_4
C
=−M−1p4,图像点
x
\pmb x
x反方投影的射线交无穷远平面于点
D
=
(
(
M
−
1
x
)
T
,
0
)
T
D=((M^{-1}\pmb x)^T,0)^T
D=((M−1x)T,0)T另一种表示方法为
X
(
μ
)
=
μ
[
M
−
1
x
0
]
+
[
−
M
−
1
p
4
1
]
=
[
M
−
1
(
μ
x
−
p
4
)
1
]
X(\mu) = \mu \begin{bmatrix} M^{-1}x \\ 0 \end{bmatrix}+ \begin{bmatrix} -M^{-1}p_4 \\ 1 \end{bmatrix} = \begin{bmatrix} M^{-1}(\mu x - p_4) \\ 1 \end{bmatrix}
X(μ)=μ[M−1x0]+[−M−1p41]=[M−1(μx−p4)1]
点的深度
考虑三维空间的点 X = ( X , Y , Z , 1 ) T = ( X ~ , 1 ) T \pmb X=(X,Y,Z,1)^T=(\widetilde{\pmb X},1)^T X=(X,Y,Z,1)T=(X ,1)T被摄像机矩阵 P = [ M ∣ p 4 ] P=[M \mid p_4] P=[M∣p4]投影到图像点 x = w ( x , y , 1 ) T = P X \pmb x=w(x,y,1)^T=PX x=w(x,y,1)T=PX。令 C = ( C ~ , 1 ) T C=(\widetilde{\pmb C},1)^T C=(C ,1)T为摄像机中心,那么 w = P 3 T X = P 3 T ( X − C ) w=\pmb P^{3T} \pmb X = \pmb P^{3T}(\pmb X-\pmb C) w=P3TX=P3T(X−C),因为 P C = 0 PC=0 PC=0。另外, P 3 T ( X − C ) = m 3 T ( X ~ − C ~ ) P^{3T}(X-C) = m^{3T} (\widetilde{\pmb X} - \widetilde{\pmb C}) P3T(X−C)=m3T(X −C ),其中 m 3 T m^{3T} m3T是主射线方向,因此 w = m 3 T ( X ~ − C ~ ) w =m^{3T} (\widetilde{\pmb X} - \widetilde{\pmb C}) w=m3T(X −C )可以解释为:从摄像机中心 C \pmb C C到点 X \pmb X X在主射线方向上的深度。
为了避免总是处理归一化矩阵,可以用下面的方式计算点的深度
假定
P
(
X
,
Y
,
Z
,
T
)
T
=
w
(
x
,
y
,
1
)
T
P(X,Y,Z,T)^T = w(x,y,1)^T
P(X,Y,Z,T)T=w(x,y,1)T,那么
d
e
p
t
h
(
X
;
P
)
=
s
i
g
n
(
det
M
)
w
T
∥
m
3
∥
depth(\pmb X;P) = \frac{sign(\det M)w}{T \parallel \pmb m^3 \parallel }
depth(X;P)=T∥m3∥sign(detM)w
欧氏与射影空间
前面假设世界坐标系和图像坐标系都是欧氏的。最一般的射影摄像机是一个从
I
P
3
IP^3
IP3到
I
P
2
IP^2
IP2的映射,并包含一个三维空间的射影变换、一个从三维空间到图像的投影和一个图像的射影变换的复合
P
=
[
3
×
3
homography
]
[
1
0
0
0
0
1
0
0
0
0
1
0
]
[
4
×
4
homography
]
P = [3 \times 3 \text{ homography}] \begin{bmatrix} 1 & 0 & 0& 0 \\ 0 & 1 & 0& 0 \\ 0 & 0 & 1& 0 \end{bmatrix} [4 \times 4 \text{ homography}]
P=[3×3 homography]
100010001000
[4×4 homography]
- 有限射影摄像机 P P P的分解所获得的欧氏解释仅在图像和世界坐标系都是欧式坐标系才有意义
- P P P的零向量是摄像机的中心的解释在射影坐标系下仍有效
- P 3 P^3 P3解释成主平面至少要求图像和三维空间是仿射坐标系
- m 3 m^3 m3解释成主射线要求一个仿射图像坐标系和一个欧式坐标系
无穷远摄像机
无穷远摄像机是指中心在无穷远平面上的摄像机。它意味着摄像机矩阵 P P P的左边 3 × 3 3 \times 3 3×3矩阵是奇异的。
无穷远相机可以分为:仿射摄像机和非仿射摄像机。仿射摄像机是矩阵 P P P的最后一行 P 3 T P^{3T} P3T形如 ( 0 , 0 , 0 , 1 ) (0,0,0,1) (0,0,0,1)的摄像机。之所以称它为仿射摄像机是因为无穷远点被它映射为无穷远点。
仿射摄像机
考虑将摄像机向后拉的同时通过变焦放大物体保持同样大小这一情形。通过对这一过程进行建模,得到将摄像机中心移动到无穷远时仿射摄像机的摄像机矩阵 P ∞ P_{\infty} P∞
分析有限摄像机矩阵
P
0
=
K
R
[
I
∣
−
C
~
]
=
K
[
r
1
T
−
r
1
T
C
~
r
2
T
−
r
2
T
C
~
r
3
T
−
r
3
T
C
~
]
P_0 = KR[I \mid -\widetilde{\pmb C}] = K \begin{bmatrix} \pmb r^{1T} & -\pmb r^{1T}\widetilde{\pmb C} \\ \pmb r^{2T} & -\pmb r^{2T}\widetilde{\pmb C} \\ \pmb r^{3T} & -\pmb r^{3T}\widetilde{\pmb C} \end{bmatrix}
P0=KR[I∣−C
]=K
r1Tr2Tr3T−r1TC
−r2TC
−r3TC
按照之前的知识,摄像机主射线与
r
3
\pmb r^3
r3同向,
d
0
=
−
r
3
T
C
~
d_0=-\pmb r^{3T}\widetilde{\pmb C}
d0=−r3TC
是世界坐标点到摄像机中心在主射线上的距离。考虑摄像机在时间
t
t
t内以单位速度向后移动,使得摄像机中心移动到
C
~
−
t
r
3
\widetilde{\pmb C} - t\pmb r^3
C
−tr3时,摄像机矩阵为
P
t
=
K
[
r
1
T
−
r
1
T
(
C
~
−
t
r
3
)
r
2
T
−
r
2
T
(
C
~
−
t
r
3
)
r
3
T
−
r
3
T
(
C
~
−
t
r
3
)
]
=
K
[
r
1
T
−
r
1
T
C
~
r
2
T
−
r
2
T
C
~
r
3
T
d
t
]
P_t = K \begin{bmatrix} \pmb r^{1T} & -\pmb r^{1T}(\widetilde{\pmb C}-t\pmb r^3) \\ \pmb r^{2T} & -\pmb r^{2T}(\widetilde{\pmb C}-t\pmb r^3) \\ \pmb r^{3T} & -\pmb r^{3T}(\widetilde{\pmb C}-t\pmb r^3) \end{bmatrix} = K \begin{bmatrix} \pmb r^{1T} & -\pmb r^{1T} \widetilde{\pmb C} \\ \pmb r^{2T} & -\pmb r^{2T} \widetilde{\pmb C} \\ \pmb r^{3T} & d_t\\ \end{bmatrix}
Pt=K
r1Tr2Tr3T−r1T(C
−tr3)−r2T(C
−tr3)−r3T(C
−tr3)
=K
r1Tr2Tr3T−r1TC
−r2TC
dt
其中,
d
t
=
−
r
3
T
C
~
+
t
d_t=-\pmb r^{3T} \widetilde{\pmb C}+t
dt=−r3TC
+t是世界坐标系相对于摄像机中心在摄像机主射线
r
3
r^3
r3的深度
下一步,将焦距放大
k
k
k倍,下一章将证明等价于对
K
K
K矩阵右乘
d
i
a
g
(
k
,
k
,
1
)
diag(k,k,1)
diag(k,k,1)。为了保持图像大小不变,取
k
=
d
t
/
d
0
k=d_t/d_0
k=dt/d0,所得的摄像机矩阵是
P
t
=
K
[
d
t
/
d
0
d
t
/
d
0
1
]
[
r
1
T
−
r
1
T
C
~
r
2
T
−
r
2
T
C
~
r
3
T
d
t
]
=
d
t
d
0
K
[
r
1
T
−
r
1
T
C
~
r
2
T
−
r
2
T
C
~
r
3
T
d
0
/
d
t
d
0
]
P_t = K \begin{bmatrix} d_t/d_0 & & \\ & d_t/d_0 & \\ &&1 \end{bmatrix} \begin{bmatrix} \pmb r^{1T} & -\pmb r^{1T} \widetilde{\pmb C} \\ \pmb r^{2T} & -\pmb r^{2T} \widetilde{\pmb C} \\ \pmb r^{3T} & d_t\\ \end{bmatrix} = \frac{d_t}{d_0} K \begin{bmatrix} \pmb r^{1T} & -\pmb r^{1T} \widetilde{\pmb C} \\ \pmb r^{2T} & -\pmb r^{2T} \widetilde{\pmb C} \\ \pmb r^{3T} d_0/d_t & d_0\\ \end{bmatrix}
Pt=K
dt/d0dt/d01
r1Tr2Tr3T−r1TC
−r2TC
dt
=d0dtK
r1Tr2Tr3Td0/dt−r1TC
−r2TC
d0
忽略因子
d
t
/
d
0
d_t/d_0
dt/d0,当
t
→
∞
t \rightarrow \infty
t→∞,
P
∞
=
lim
t
→
∞
P
t
=
K
[
r
1
T
−
r
1
T
C
~
r
2
T
−
r
2
T
C
~
0
T
d
0
]
P_\infty = \lim_{t \rightarrow \infty } P_t = K \begin{bmatrix} \pmb r^{1T} & -\pmb r^{1T} \widetilde{\pmb C} \\ \pmb r^{2T} & -\pmb r^{2T} \widetilde{\pmb C} \\ \pmb 0^T & d_0\\ \end{bmatrix}
P∞=t→∞limPt=K
r1Tr2T0T−r1TC
−r2TC
d0
刚好是将原来的摄像机矩阵最后一行的前三个元素取零
应用仿射摄像机的误差
可以看到:在过世界原点并垂直于主轴方向
r
3
\pmb r^3
r3的平面上的任何点饿的图像在这种变焦和运动的复合作用下保持不变,可记为
X
=
[
α
r
1
+
β
r
2
1
]
\pmb X = \begin{bmatrix} \alpha \pmb r^1 + \beta \pmb r^2 \\ 1 \end{bmatrix}
X=[αr1+βr21]
因为
r
3
T
(
α
r
1
+
β
r
2
)
=
0
\pmb r^{3T}(\alpha \pmb r^1 + \beta \pmb r^2) = 0
r3T(αr1+βr2)=0,故
P
0
X
=
P
t
X
=
P
∞
X
P_0 \pmb X = P_t \pmb X = P_\infty \pmb X
P0X=PtX=P∞X
对于不在该平面的点,由
P
0
,
P
∞
P_0,P_\infty
P0,P∞映射产生的图像是不同的。设
X
\pmb X
X离该平面的垂直距离是
Δ
\Delta
Δ,则该点表示为
X
=
[
α
r
1
+
β
r
2
+
Δ
r
3
1
]
\pmb X = \begin{bmatrix} \alpha \pmb r^1 + \beta \pmb r^2 + \Delta \pmb r^3\\ 1 \end{bmatrix}
X=[αr1+βr2+Δr31]
被摄像机
P
0
,
P
∞
P_0,P_\infty
P0,P∞分别映射到
x
p
r
o
j
=
P
0
X
=
K
[
x
~
y
~
d
0
+
Δ
]
,
x
a
f
f
i
n
e
=
P
∞
X
=
K
[
x
~
y
~
d
0
]
x_{proj} = P_0X = K \begin{bmatrix} \widetilde x \\ \widetilde y \\ d_0+\Delta \end{bmatrix} \text{ , } x_{affine} = P_\infty X = K \begin{bmatrix} \widetilde x \\ \widetilde y \\ d_0\end{bmatrix}
xproj=P0X=K
x
y
d0+Δ
, xaffine=P∞X=K
x
y
d0
其中,
x
~
=
α
−
r
1
T
C
~
,
y
~
=
β
−
r
2
T
C
~
\widetilde x = \alpha - \pmb r^{1T} \widetilde {\pmb C},\widetilde y = \beta - \pmb r^{2T} \widetilde {\pmb C}
x
=α−r1TC
,y
=β−r2TC
,记标记矩阵为
K
=
[
K
2
×
2
x
~
0
0
~
T
1
]
K = \begin{bmatrix} K_{2 \times 2} & \widetilde {\pmb x}_0 \\ \widetilde{\pmb 0}^T & 1 \end{bmatrix}
K=[K2×20
Tx
01]
则有
x
p
r
o
j
=
[
K
2
×
2
x
~
+
(
d
0
+
Δ
)
x
~
0
d
0
+
Δ
]
,
x
a
f
f
i
n
e
=
[
K
2
×
2
x
~
+
d
0
x
~
0
d
0
]
x_{proj} = \begin{bmatrix} K_{2\times 2} \widetilde {\pmb x} +(d_0+\Delta) \widetilde {\pmb x}_0 \\ d_0 + \Delta \end{bmatrix} \text{ , } x_{affine} = \begin{bmatrix} K_{2\times 2} \widetilde {\pmb x} +d_0 \widetilde {\pmb x}_0 \\ d_0 \end{bmatrix}
xproj=[K2×2x
+(d0+Δ)x
0d0+Δ] , xaffine=[K2×2x
+d0x
0d0]
对图像点通过除以对最后一个元素消去齐次化得到
x
~
p
r
o
j
=
x
~
0
+
K
2
×
2
x
~
/
(
d
0
+
Δ
)
x
~
a
f
f
i
n
e
=
x
~
0
+
K
2
×
2
x
~
/
d
0
\widetilde {\pmb x}_{proj} = \widetilde {\pmb x}_0 + K_{2 \times 2} \widetilde {\pmb x}/(d_0+\Delta) \\ \widetilde {\pmb x}_{affine} = \widetilde {\pmb x}_0 + K_{2 \times 2} \widetilde {\pmb x}/d_0
x
proj=x
0+K2×2x
/(d0+Δ)x
affine=x
0+K2×2x
/d0
因此两点之间的关系是
x
~
a
f
f
i
n
e
−
x
~
0
=
d
0
+
Δ
d
0
(
x
~
p
r
o
j
−
x
~
0
)
\widetilde {\pmb x}_{affine} - \widetilde {\pmb x}_{0} = \frac{d_0+\Delta}{d_0}(\widetilde {\pmb x}_{proj} - \widetilde {\pmb x}_{0})
x
affine−x
0=d0d0+Δ(x
proj−x
0)
- 用 P ∞ P_\infty P∞仿射近似真实摄像机矩阵 P 0 P_0 P0的效应是把 X X X的图像径向地靠近或离开主点 x ~ 0 \widetilde {\pmb x}_{0} x 0,其加权因子是 ( d 0 + Δ ) / d 0 = 1 + Δ / d 0 (d_0+\Delta )/d_0 = 1+\Delta / d_0 (d0+Δ)/d0=1+Δ/d0
仿射成像条件
由
x
~
p
r
o
j
,
x
~
a
f
f
i
n
e
\widetilde{\pmb x}_{proj},\widetilde{\pmb x}_{affine}
x
proj,x
affine的表达式可得
x
~
a
f
f
i
n
e
−
x
~
p
r
o
j
=
Δ
d
0
(
x
~
p
r
o
j
−
x
~
0
)
\widetilde{\pmb x}_{affine} - \widetilde{\pmb x}_{proj} = \frac \Delta{d_0}(\widetilde{\pmb x}_{proj} - \widetilde{\pmb x}_{0})
x
affine−x
proj=d0Δ(x
proj−x
0)
表明有限摄像机映射点位置与仿射摄像机映射点位置在以下情况下距离相差不大:
- 深度起伏 Δ \Delta Δ相对于平均深度 d 0 d_0 d0较小
- 点离主轴的距离较小
P ∞ P_\infty P∞的分解
经过一系列变换和替代,仿射摄像机矩阵可以写成
P
∞
=
[
K
2
×
2
0
^
0
^
T
1
]
[
R
^
t
^
0
T
1
]
P_\infty = \begin{bmatrix} K_{2 \times 2} & \hat{\pmb 0} \\ \hat{\pmb 0}^T &1 \end{bmatrix} \begin{bmatrix} \hat {\pmb R} & \hat {\pmb t} \\ {\pmb 0}^T & 1 \end{bmatrix}
P∞=[K2×20^T0^1][R^0Tt^1]
平行投影和有限摄像机的本质区别是:
- 平行投影矩阵 [ 1 0 0 0 0 1 0 0 0 0 0 1 ] \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} 100010000001 代替了有限摄像机矩阵的规范射影矩阵 [ I ∣ 0 ] [I \mid \pmb 0] [I∣0]
- 标定矩阵 [ K 2 × 2 0 ^ 0 ^ T 1 ] \begin{bmatrix} K_{2 \times 2} & \hat{\pmb 0} \\ \hat{\pmb 0}^T &1\end{bmatrix} [K2×20^T0^1]代替了有限摄像机的 K K K
- 主点无定义
仿射摄像机的分层
类似于有限摄像机的推导,下面将从平行投影的基本操作开始建立一个摄像机模型的层级,它逐步地表示平行投影的更一般情形
正投影
考虑沿
Z
Z
Z轴的投影,该映射把点
(
X
,
Y
,
Z
,
1
)
T
(X,Y,Z,1)^T
(X,Y,Z,1)T映射到图像点
(
X
,
Y
,
1
)
T
(X,Y,1)^T
(X,Y,1)T,即去掉
Z
Z
Z坐标
P
=
[
1
0
0
0
0
1
0
0
0
0
0
1
]
P = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
P=
100010000001
为得到一般正投影映射,在此之前加一个欧式变换
H
=
[
R
t
0
T
1
]
H = \begin{bmatrix} R & t \\ 0^T &1\end{bmatrix}
H=[R0Tt1]
则正投影摄像机为
P
=
[
r
1
T
t
1
r
2
T
t
2
0
T
1
]
P = \begin{bmatrix} \pmb r^{1T} & t_1 \\ \pmb r^{2T} & t_2 \\ \pmb 0^{T} & 1 \\ \end{bmatrix}
P=
r1Tr2T0Tt1t21
缩放正投影
缩放正投影是正投影紧接着一个均匀缩放
P
=
[
k
k
1
]
[
r
1
T
t
1
r
2
T
t
2
0
T
1
]
=
[
r
1
T
t
1
r
2
T
t
2
0
T
1
/
k
]
P = \begin{bmatrix} k &&\\ &k&\\ &&1 \end{bmatrix} \begin{bmatrix} \pmb r^{1T} & t_1 \\ \pmb r^{2T} & t_2 \\ \pmb 0^{T} & 1 \\ \end{bmatrix} = \begin{bmatrix} \pmb r^{1T} & t_1 \\ \pmb r^{2T} & t_2 \\ \pmb 0^{T} & 1/k \\ \end{bmatrix}
P=
kk1
r1Tr2T0Tt1t21
=
r1Tr2T0Tt1t21/k
弱透视投影
与有限
C
C
D
CCD
CCD摄像机类似,考虑两个轴缩放因子不同
P
=
[
α
x
α
y
1
]
[
r
1
T
t
1
r
2
T
t
2
0
T
1
]
P = \begin{bmatrix} \alpha_x &&\\ &\alpha_y&\\ &&1 \end{bmatrix} \begin{bmatrix} \pmb r^{1T} & t_1 \\ \pmb r^{2T} & t_2 \\ \pmb 0^{T} & 1 \\ \end{bmatrix}
P=
αxαy1
r1Tr2T0Tt1t21
仿射摄像机 P A P_A PA
考虑扭曲
s
s
s
P
A
=
[
α
x
s
α
y
1
]
[
r
1
T
t
1
r
2
T
t
2
0
T
1
]
P_A = \begin{bmatrix} \alpha_x &s&\\ &\alpha_y&\\ &&1 \end{bmatrix} \begin{bmatrix} \pmb r^{1T} & t_1 \\ \pmb r^{2T} & t_2 \\ \pmb 0^{T} & 1 \\ \end{bmatrix}
PA=
αxsαy1
r1Tr2T0Tt1t21
仿射摄像机的最一般的形式是
P
A
=
[
m
11
m
12
m
13
t
1
m
21
m
22
m
23
t
2
0
0
0
1
]
P_A = \begin{bmatrix} m_{11} & m_{12} & m_{13} & t_1 \\ m_{21} & m_{22} & m_{23} & t_2 \\ 0 & 0 & 0 & 1 \end{bmatrix}
PA=
m11m210m12m220m13m230t1t21
另一方面,仿射摄像机包含三个变换的复合:一个三维空间的仿射变换、一个从三维空间到图像的正投影及一个图像平面的仿射变换
P
A
=
[
3
×
3
affine
]
[
1
0
0
0
0
1
0
0
0
0
0
1
]
[
4
×
4
affine
]
P_A = [3 \times 3 \text{ affine}] \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} [4 \times 4 \text{ affine}]
PA=[3×3 affine]
100010000001
[4×4 affine]
仿射摄像机下的投影是一个关于非齐次坐标的线性映射加上一个平移
[
x
y
]
=
[
m
11
m
12
m
13
m
21
m
22
m
23
]
[
X
Y
Z
]
+
[
t
1
t
2
]
\begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} m_{11} & m_{12} & m_{13} \\ m_{21} & m_{22} & m_{23} \end{bmatrix} \begin{bmatrix} X\\ Y \\ Z \end{bmatrix}+ \begin{bmatrix} t_1\\ t_2 \end{bmatrix}
[xy]=[m11m21m12m22m13m23]
XYZ
+[t1t2]
紧凑形式为
x
~
=
M
2
×
3
X
~
+
t
~
\widetilde{\pmb x} = M_{2\times 3} \widetilde{\pmb X} + \widetilde{\pmb t}
x
=M2×3X
+t
t
~
\widetilde{\pmb t}
t
是世界坐标系的原点
仿射摄像机的其他性质
- 主平面是无穷远平面的任何射影摄像机矩阵是仿射摄像机矩阵
- 平行的世界直线被投影成平行的图像直线
- 满足 M 2 × 3 d = 0 M_{2 \times 3} d =0 M2×3d=0的向量 d d d是平行投影的方向, ( d T , 0 ) T (d^T,0)^T (dT,0)T是摄像机中心