相机模型P矩阵
公式:
P
=
K
R
[
I
∣
−
C
∽
]
P = KR[I | -C^{\backsim}]
P=KR[I∣−C∽]
其中
C
∽
C^{\backsim}
C∽表示平移矩阵 为齐次坐标 即世界坐标系原点到相机坐标系原点的距离
R
R
R同样表达的也是这个关系。
也写成这种形式:
P
=
M
[
I
∣
M
−
1
p
4
]
P = M[I | M^{-1}p_4]
P=M[I∣M−1p4]
其中
M
=
K
R
M = KR
M=KR,
p
4
p_4
p4为P的第四列
如果
M
M
M矩阵不可逆时 为无穷远相机
原文对相机中心点坐标的描述:
相机模型P矩阵分解
行向量
P
=
[
p
11
p
12
p
13
p
14
p
21
p
22
p
23
p
24
p
31
p
32
p
33
p
34
p
41
p
42
p
43
p
44
]
=
[
P
1
T
P
2
T
P
3
T
]
P = \begin{bmatrix} p_{11} & p_{12} & p_{13} & p_{14} \\ p_{21} & p_{22} & p_{23} & p_{24} \\ p_{31} & p_{32} & p_{33} & p_{34} \\ p_{41} & p_{42} & p_{43} & p_{44} \\ \end{bmatrix} = \begin{bmatrix}P^{1T} \\ P^{2T} \\ P^{3T} \\ \end{bmatrix}
P=⎣⎢⎢⎡p11p21p31p41p12p22p32p42p13p23p33p43p14p24p34p44⎦⎥⎥⎤=⎣⎡P1TP2TP3T⎦⎤
P
3
T
P^{3T}
P3T为主平面 通过相机光心点并且平行于相机成像平面
P
2
T
P^{2T}
P2T通过相机光心点和成像平面的X轴 另一个同理
列向量
P
=
[
p
11
p
12
p
13
p
14
p
21
p
22
p
23
p
24
p
31
p
32
p
33
p
34
p
41
p
42
p
43
p
44
]
=
[
P
1
P
2
P
3
P
4
]
P = \begin{bmatrix} p_{11} & p_{12} & p_{13} & p_{14} \\ p_{21} & p_{22} & p_{23} & p_{24} \\ p_{31} & p_{32} & p_{33} & p_{34} \\ p_{41} & p_{42} & p_{43} & p_{44} \\ \end{bmatrix} = \begin{bmatrix}P_{1} & P_{2} & P_{3} & P_{4} \\ \end{bmatrix}
P=⎣⎢⎢⎡p11p21p31p41p12p22p32p42p13p23p33p43p14p24p34p44⎦⎥⎥⎤=[P1P2P3P4]
P
1
P_{1}
P1为世界坐标系X轴的消影点 x轴方向为
D
=
(
1
,
0
,
0
,
0
)
T
D = (1, 0, 0, 0)^T
D=(1,0,0,0)T 所以
P
1
=
P
D
P_{1} = PD
P1=PD
同理
P
2
P_{2}
P2为世界坐标系Y轴的消影点
P
3
P_{3}
P3为世界坐标系Z轴的消影点
P
4
P_{4}
P4为世界坐标系原点的图像点
P
4
=
P
(
0
,
0
,
0
,
1
)
T
P_{4} = P(0, 0, 0, 1)^T
P4=P(0,0,0,1)T
消影点投影
设消影点的齐次坐标为
D
=
(
d
T
,
0
)
D = (d^T, 0)
D=(dT,0) 则消影点映射到成像平面的公式为:
x
=
P
D
=
[
M
∣
p
4
]
D
x = PD = [M | p_4]D
x=PD=[M∣p4]D
但是此时D的最后一维为0 所以
p
4
p_4
p4相当于没有计算(很容易推)所以结果为:
x
=
M
d
x = Md
x=Md
可见消影点投影只与M有关 与相机的位置无关
点的深度问题
x
=
ω
(
x
,
y
,
1
)
T
=
P
X
x = \omega(x, y, 1)^T = PX
x=ω(x,y,1)T=PX
ω
\omega
ω其实为三维点原深度 也可以解释为从相机中心到三维空间点的射线与主轴方向的点积。
(
x
,
y
,
1
)
(x, y, 1)
(x,y,1)在第三维只有深度的体现 所以可以单独求出深度:
ω
=
P
3
T
X
=
P
3
T
(
X
−
C
)
=
m
3
T
(
X
∽
−
C
∽
)
\omega = P^{3T}X = P^{3T}(X - C) = m^{3T}(X^{\backsim} - C^{\backsim})
ω=P3TX=P3T(X−C)=m3T(X∽−C∽)
其中C为相机中心 PC = 0 所以随便加
另外从齐次到非齐次 丢掉了最后一个维度 所以P相应也舍去最后一个维度 又因为前面是
M
[
I
∣
t
]
M[I | t]
M[I∣t]最后一个维度t干掉后 只剩
M
∗
I
M * I
M∗I 所以等于M矩阵的第三行 即
m
3
T
m^{3T}
m3T
主点与主轴方向
主轴即通过相机光心 并且垂直于主平面的轴 主轴和成像平面的交点称为主点
已知主平面和主平面的法向量 讲主平面的法向量写成无穷远点的形式:
(
p
31
,
p
32
,
p
33
,
0
)
(p_{31}, p_{32}, p_{33}, 0)
(p31,p32,p33,0)
经过相机的任何一条射线 与像平面的交点可以表示为:
P
D
PD
PD 这个也等价于这个点的无穷远点在像平面的投影 P是3 * 4 D要求是 4 * 1嘛 最后一维就是0 已知三维点非齐次坐标 变成无穷远点的齐次坐标只需在最后一维添加0即可
所以主点即为主平面的法向量的无穷远点形式在像平面的投影
P
m
a
i
n
=
P
P
i
n
f
i
n
e
=
[
M
∣
p
4
]
P
i
n
f
i
n
e
P_{main} = PP_{infine} = [M | p_4]P_{infine}
Pmain=PPinfine=[M∣p4]Pinfine
然后干掉第四维 和上面的消影点投影那里一样
p
4
p_4
p4就不参与运算了:
P
m
a
i
n
=
M
P
i
n
f
i
n
e
=
M
m
3
T
P_{main} = M P_{infine} = Mm^{3T}
Pmain=MPinfine=Mm3T
等于M和他自己的第三行相乘 此处很容易推导顺出来 其中
m
3
T
m^{3T}
m3T被称为主轴方向
对极线区分有限相机和无穷远相机
有限相机的所有对极线都会相交于一点 这一点即一个相机的光心在另一个相机的像平面成像的位置。
对于无穷远相机的话 主平面即无穷远平面 所有的对极线也相交 但是交点在无穷远平面 即相交于无穷远点 所以对极线是平行的。
根据相机参数计算相机内参
原作者链接:传送门