为什么尺度等价性要减少一个自由度(本质矩阵举例)
1. 举个例子
举个例子:
令
x
=
[
1
,
1
,
1
]
⊤
x = [1,1,1]^\top
x=[1,1,1]⊤,问满足$
A
x
=
0
Ax=0
Ax=0这个条件的矩阵的自由度是多少?
- 对于 A = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] A = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix} A=⎣⎡a11a21a31a12a22a32a13a23a33⎦⎤,一共有9个变量,自由度为9。
- 对于A的每一个行向量,比如 [ a 11 , a 12 , a 13 ] [a_{11}, a_{12}, a_{13}] [a11,a12,a13],只要确定了其中两个元素的值就能算出第三个元素的值(因为 a 11 + a 12 + a 13 = 0 a_{11} + a_{12} + a_{13} = 0 a11+a12+a13=0),那么自由度减去3。
- 再看 A x = 0 Ax=0 Ax=0,对A乘以任意常数 k k k任然满足原等式即 k A x = 0 kAx =0 kAx=0,所以 A A A是尺度等价的。利用这个性质,我们可以对矩阵A进行一下处理,比如令 a 33 = 1 a_{33}=1 a33=1或者说对A每一个元素除一个 a 33 a_{33} a33,这样,我们就令矩阵A的 ( 3 , 3 ) (3,3) (3,3)处的元素为1,然后求其他元素的值,再通过缩放,我们就得到了所有满足条件的矩阵 A A A。所以,因为尺度等价性,自由度减1。所以最后问题的答案是:自由度为5.
2. 本质矩阵的自由度
对于本质矩阵E(Essential Matrix),因为
E
=
t
∧
R
E=t^\wedge R
E=t∧R,平移和旋转各有3个自由度,故
t
∧
R
t^\wedge R
t∧R共有6个自由度。但是由于尺度等价性,故
E
E
E实际上有5个自由度。如何理解呢?参照上面的例子,对于对极约束
x
2
⊤
E
x
1
=
0
x^\top_2Ex_1=0
x2⊤Ex1=0,有:
现在把矩阵E展开,写成线性模式:
对于左边的
8
×
9
8 \times 9
8×9的系数矩阵,如果存在解
e
0
=
[
e
1
,
.
.
.
,
e
9
]
⊤
e_0 = [e_1,...,e_9]^\top
e0=[e1,...,e9]⊤,那么对
e
0
e_0
e0乘以任意常数k,等式依然成立。所以E具有尺度等价性,自由度减1。如果抛开E这个本质矩阵的约束,考虑任意矩阵,自由度减1后只要求解8个变量即可,这就是八点法(Eight-point-algorithm)的由来。
而从E本质矩阵的角度出发,E具有5个自由度,意思是我们最少可以用5对点来求解E,这就是5点法。
2.1 为什么最少能用5个点求解本质矩阵
自由度9-1可以理解,但自由度是6-1。这是我学习时候的困惑。下面给出我的理解:
首先说6个自由度。所谓
3
×
3
3\times 3
3×3的本质矩阵E不过是由三个轴上的位移
x
,
y
,
z
x,y,z
x,y,z和三个轴上的旋转角度
α
,
β
,
γ
\alpha,\beta,\gamma
α,β,γ通过一定的组合构成的矩阵。(
t
∧
R
t^\wedge R
t∧R代入这几个量的公式实在是太难敲了就不敲了),下面只就给出旋转矩阵的公式:
虽然E有9个元素,但是当我们确定了
α
\alpha
α,我们就确定了
s
i
n
α
,
c
o
s
α
sin\alpha,cos\alpha
sinα,cosα的值,同理于
β
,
γ
\beta,\gamma
β,γ。所以有9个元素的本质矩阵实际上由6个参数决定。然后由于尺度等价性,我们将前文提到的E展开后的向量
e
e
e中的
e
9
e_9
e9置为1,这里
e
9
=
−
y
(
s
i
n
γ
s
i
n
α
+
c
o
s
γ
s
i
n
β
c
o
s
α
)
+
z
(
−
c
o
s
γ
s
i
n
α
+
s
i
n
γ
s
i
n
β
c
o
s
α
)
e_9 = -y(sin\gamma sin\alpha+cos\gamma sin\beta cos\alpha)+ z(-cos\gamma sin\alpha + sin\gamma sin\beta cos\alpha)
e9=−y(sinγsinα+cosγsinβcosα)+z(−cosγsinα+sinγsinβcosα),
e
9
e_9
e9这个元素涉及到的变量有
y
,
z
,
α
,
β
,
γ
y,z,\alpha,\beta,\gamma
y,z,α,β,γ五个,因为我们将e9置了1,所以:
- 当我们知道这五个变量的其中4个之后,剩下一个变量就可以通过这个等式推出来,剩下的这个变量无法自有变化,自由度减1。
- e 9 = 1 e_9=1 e9=1提供了一个额外的约束条件,所以只需要6-1=5个约束式便能求解矩阵,自由度为5
以上都是个人见解,如果有不对的地方非常希望大家能够指出来,一起交流~