三维点云处理之协方差矩阵计算
PCA主成分分析中离不开协方差矩阵,现在把关于协方差矩阵计算的推导过程记录下来,便于以后理解程序。
由于点云是三维的,所以其协方差矩阵可以表示为:
C
=
[
C
o
v
(
X
,
X
)
C
o
v
(
X
,
Y
)
C
o
v
(
X
,
Z
)
C
o
v
(
Y
,
X
)
C
o
v
(
Y
,
Y
)
C
o
v
(
Y
,
Z
)
C
o
v
(
Z
,
X
)
C
o
v
(
Z
,
Y
)
C
o
v
(
Z
,
Z
)
]
C=\begin{bmatrix}Cov(X,X)&Cov(X,Y)&Cov(X,Z)\\ Cov(Y,X)&Cov(Y,Y)&Cov(Y,Z)\\Cov(Z,X)&Cov(Z,Y)&Cov(Z,Z)\end{bmatrix}
C=⎣⎡Cov(X,X)Cov(Y,X)Cov(Z,X)Cov(X,Y)Cov(Y,Y)Cov(Z,Y)Cov(X,Z)Cov(Y,Z)Cov(Z,Z)⎦⎤
下面以计算
C
o
v
(
X
,
Y
)
Cov(X,Y)
Cov(X,Y)为例:
C
o
v
(
X
,
Y
)
=
∑
i
=
1
N
(
X
i
−
X
ˉ
)
(
Y
i
−
Y
ˉ
)
N
=
E
[
(
X
−
E
[
X
]
)
∗
(
Y
−
E
[
Y
]
)
]
=
E
(
X
Y
−
E
(
X
)
Y
−
X
E
(
Y
)
+
E
(
X
)
E
(
Y
)
)
Cov(X,Y)=\frac{\sum_{i=1}^{N}{(X_i-\bar X)(Y_i-\bar Y)}}{N}=E[(X-E[X])*(Y-E[Y])]\\ =E(XY-E(X)Y-XE(Y)+E(X)E(Y))
Cov(X,Y)=N∑i=1N(Xi−Xˉ)(Yi−Yˉ)=E[(X−E[X])∗(Y−E[Y])]=E(XY−E(X)Y−XE(Y)+E(X)E(Y))
其中
E
[
X
]
E[X]
E[X]为X的期望,直白一点说就是X的均值
E
[
X
]
=
∑
i
=
1
N
X
i
N
E[X]=\frac{\sum_{i=1}^{N}{X_i}}{N}
E[X]=N∑i=1NXi
那么,由于均值的计算是线性的,即:
E
[
a
X
+
b
Y
]
=
a
E
[
X
]
+
b
E
[
Y
]
E[aX+bY]=aE[X]+bE[Y]
E[aX+bY]=aE[X]+bE[Y]
C
o
v
(
X
,
Y
)
Cov(X,Y)
Cov(X,Y)中的E[X]可以看作常数项,于是进一步得到下面的式子。
E
(
X
Y
−
E
(
X
)
Y
−
X
E
(
Y
)
+
E
(
X
)
E
(
Y
)
)
=
E
[
X
Y
]
−
E
[
X
]
E
[
Y
]
−
E
[
X
]
E
[
Y
]
+
E
[
X
]
E
[
Y
]
=
E
[
X
Y
]
−
E
[
X
]
E
[
Y
]
E(XY-E(X)Y-XE(Y)+E(X)E(Y))\\=E[XY]-E[X]E[Y]-E[X]E[Y]+E[X]E[Y]\\=E[XY]-E[X]E[Y]
E(XY−E(X)Y−XE(Y)+E(X)E(Y))=E[XY]−E[X]E[Y]−E[X]E[Y]+E[X]E[Y]=E[XY]−E[X]E[Y]
同理,
C
o
v
(
X
,
X
)
=
E
[
X
2
]
−
(
E
[
X
]
)
2
Cov(X,X)=E[X^2]-(E[X])^2
Cov(X,X)=E[X2]−(E[X])2,其余的各项计算类似。这样写会有利于编程。