记录科研中的一些 Not Trival Points
一、在齐次坐标下一种特殊矩阵
[
1
0
0
0
0
1
0
0
0
0
0
1
]
[
x
y
z
1
]
:
=
[
x
y
1
]
\begin{bmatrix} 1 & 0 &0&0\\ 0 & 1 & 0&0\\ 0 & 0 & 0&1 \end{bmatrix} \begin{bmatrix} x\\y\\z\\1 \end{bmatrix} := \begin{bmatrix} x\\y\\1 \end{bmatrix}
⎣⎡100010000001⎦⎤⎣⎢⎢⎡xyz1⎦⎥⎥⎤:=⎣⎡xy1⎦⎤
记
A
:
=
[
1
0
0
0
0
1
0
0
0
0
0
1
]
\bold A := \begin{bmatrix} 1 & 0 &0&0\\ 0 & 1 & 0&0\\ 0 & 0 & 0&1 \end{bmatrix}
A:=⎣⎡100010000001⎦⎤
在矩阵
A
\bold A
A 的作用下,4维向量
[
x
y
z
1
]
\begin{bmatrix} x\\y\\z\\1 \end{bmatrix}
⎣⎢⎢⎡xyz1⎦⎥⎥⎤
第三维被直接抹去了。这个矩阵
A
\bold{A}
A 第三列的元素都是0。在矩阵
A
\bold{A}
A中, 如果抽掉第三列,剩下的重新组成一个矩阵。这会得到一个
3
×
3
3\times3
3×3 的单位矩阵。一个三维点(齐次坐标下)乘上矩阵
A
\bold A
A表示它做了一个 三维空间下的平行投影(orthographic projection)。
其实,与矩阵
A
A
A 类似的矩阵不仅仅可以抹去向量的一个分量,本质是可以抹去矩阵的一行。如下
[
1
0
0
0
0
1
0
0
0
0
1
0
]
[
b
11
b
12
b
13
b
14
b
21
b
22
b
23
b
24
b
31
b
32
b
33
b
34
b
41
b
42
b
43
b
44
]
:
=
[
b
11
b
12
b
13
b
14
b
21
b
22
b
23
b
24
b
31
b
32
b
33
b
34
]
\begin{bmatrix} 1 & 0 &0&0\\ 0 & 1 & 0&0\\ 0 & 0 & 1&0 \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} &b_{13} &b_{14} \\ b_{21} & b_{22} &b_{23} &b_{24} \\ b_{31} & b_{32} &b_{33} &b_{34} \\ b_{41} & b_{42} &b_{43} &b_{44} \\ \end{bmatrix} := \begin{bmatrix} b_{11} & b_{12} &b_{13} &b_{14} \\ b_{21} & b_{22} &b_{23} &b_{24} \\ b_{31} & b_{32} &b_{33} &b_{34} \\ \end{bmatrix}
⎣⎡100010001000⎦⎤⎣⎢⎢⎡b11b21b31b41b12b22b32b42b13b23b33b43b14b24b34b44⎦⎥⎥⎤:=⎣⎡b11b21b31b12b22b32b13b23b33b14b24b34⎦⎤
B
:
=
[
1
0
0
0
0
1
0
0
0
0
1
0
]
:
=
[
I
3
×
3
0
3
]
\bold B := \begin{bmatrix} 1 & 0 &0&0\\ 0 & 1 & 0&0\\ 0 & 0 & 1&0 \end{bmatrix} := \begin{bmatrix} \bold{I}_{3\times 3}&\bold{0}_3 \end{bmatrix}
B:=⎣⎡100010001000⎦⎤:=[I3×303]
这个矩阵
B
\bold{B}
B 第四列的元素都是0,如果抽掉第四列,剩下的重新组成一个矩阵。这是一个
3
×
3
3\times3
3×3 的单位矩阵。
这个矩阵可以 去掉矩阵的第四行,在齐次坐标下需要用到。
这种类型的矩阵其实可以推广。但是推广比较显然。而且3d计算机视觉中这些已经够用了。
二、特殊的增广矩阵
首先谈谈
[
R
−
R
c
]
\left [ \begin{array}{c|c} \begin{matrix} \bold{R} \end{matrix}& \begin{matrix} \bold{-Rc} \end{matrix} \end{array} \right ]
[R−Rc]
它是一个增广矩阵,我一开始没看懂,还以为是
R
\bold{R}
R 或者
−
R
c
-\bold{Rc}
−Rc。这个增广矩阵是三个矩阵的乘积,它们分别是projection,rotation,translation。projection负责把齐次坐标转换到非齐次,方便接着和相机内参矩阵相乘。rotation和transation分别表示三维空间的旋转和平移。
当然也有书(比如高翔老师的《视觉SLAM十四讲》)把旋转和平移放在一个矩阵
T
T
T 里。
T
T
T 也被称之为所谓的 “变换矩阵”,即为 欧式变换。想得到
T
T
T,只需要把上图中的代表 translation 的矩阵的
−
R
c
-Rc
−Rc 替换掉 表示 rotation 矩阵中
R
R
R 右边的三个
0
0
0元素 ,即可得到
T
:
=
[
R
−
R
c
0
T
1
]
\bold{T}:= \begin{bmatrix} \bold{R} &-\bold{Rc}\\ \bold{0}^{T}&1 \end{bmatrix}
T:=[R0T−Rc1]
注意,在高翔老师的书中,用
t
\bold{t}
t 表示这里的
−
R
c
\bold{-Rc}
−Rc。
上面所述的一个世界坐标系下的三维点首先经过世界坐标系到相机坐标系的平移和旋转,再来一个齐次坐标到非齐次坐标的转换。
剩下的是矩阵
K
\bold{K}
K ,它刻画相机内参。乘上它,就完成了相机坐标系下三维坐标到像素坐标的转换。其中包括相机坐标系下三维坐标点小孔成像到相机平面和相机平面到像素平面的平移和缩放。