三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA

PCA(Principle Component Analysis主成分分析)

PCA(Principal Components Analysis)主成分分析,应用于点云预处理,平面检测,法向量求解,降维、分类,解压(升维),用PCA对点云中的点分类,地面点,墙面点,物体上的点等,然后再做其他处理。
PCA是将三维投影到某个面上,用于发现其主要方向。面的选择依据是选择尽量使得点的分布方差最大,分布较散的面。例如:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA

一、 在正式介绍PCA前我们先说一些基础的数学概念和两个公式:

向量的内积:就是一个向量投影到另一个向量上去: 三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA

矩阵和向量的积就是向量和线性的组合: 三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA

SVD:Singular Value Decomposition:M=UV* ,也就是对一个矩阵旋转、伸缩、再旋转的过程。三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
1、谱定理:又叫普分解,适用于对称矩阵,也就是说可以用它的特征值特征向量的线性组合表示。
下图摘自《矩阵论》,感觉更容易理解: 三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
二、瑞利熵:
下图摘自《矩阵论》,感觉比老师讲的更容易理解:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
基础over

二、Principle Component Analysis(PCA)解释和推导:

1、PCA输入:多个高维向量的点,输出:多个点的主要向量,主要方向。

什么是主成分:使得投影数据点在该方向上的方差最大的一个方向。
如何得到次主成分:把主成分去掉再来一次PCA,第三四成分依次。
步骤:
首先将数据规范化为零均值:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
然后对于每一个点,将其点投影到z上去:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
计算方差:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
PCA要做的事情就是计算方差最大值,也就是红框内的最大值。即求:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
此时将括号内看作一个矩阵的话,可以使用瑞丽熵和谱定理求解:
对X使用SVD:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
有:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
如果特征值由大到小排列,那么 Ur 的第一列就是最大特征值对应的特征向量。至此,我们找到了一个主方向,数据在这个方向上投影后,方差最大。U1=Z1
次方差求解:从原始数据中减去z1后在进行一次。将所有数据点投入到U1上再减去U1,写成矩阵的形式:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
去掉最主要成分的点,使用SVD有:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
所以U2:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
U2=Z2,Z3,A4依次计算即可。
总结:
1、去中心化 .
2、计算协方差H,使用SVD分解,按照特征向量大小从大到小排列.
3、主要方向就是 Ur中的列向量.
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA

三、PCA应用:

1、降维(压缩):
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
就从n维降到了l维
2、解压:就是从l再到n
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
更多例子:三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA

四、kernel-PCA:

上述PCA为线性PCA,那么怎么处理非线性问题呢?例如下面这种问题:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
如果使用线性PCA,红绿会混在一起,并不能给出有效信息,这时候不妨对其进行升维操作,就会变得很直观:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
上述操作即为Kernel-PCA,核PCA,
步骤:
1、假设均值为0:
2、计算H:
3、解特征值和特征向量:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA

三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
证明:将H 的定义带入:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
因为:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
所以我们现在只要找aj就可以了。
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
将刚刚的结果带入有:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
然后我们定义:三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
用左边代替上述结论,有:三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
两边同时乘一个:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
得:

三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
此时定义一个格拉姆矩阵K:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
因为K是内积,可调换位置,所以K是对称的。所以
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
可以改写为:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA

依然没有办法求解,因为划线的函数依然未知,可以采取:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
去中心化:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
常用的核函数:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
只能通过经验和实验来确定使用哪个。
总结:
1、选择一个上述核函数,组合成:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
2、
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
3、解K特征值:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
4、
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
5、
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
结果示例:
处理前:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
选择二次多项式:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
结果:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
选择高斯核函数:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
结果:
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
以上公式和图片基本来自于老师上课PPT,部分参考别的博主,部分摘自自己学的书里,仅作为存稿、学习,交流使用,不进行商业化活动。
觉得有用记得点赞!
觉得有用记得点赞!
觉得有用记得点赞!