三维点云处理(二)——PCA

文章目录

  • 前言
  • 1.Principle Component Analysis
    • 1.1 Physical intuitions
    • 1.2 Soectral Theorem
    • 1.3 Rayleigh Quotients
    • 1.4 PCA
    • 1.4 Dimensionality Reduction
    • 1.5 PCA/Eigenfaces在识别上的应用
  • 总结


前言

上一回我们介绍了点云的基本概念,然后介绍了不同感知源头获取到数据的各种特征,之后是处理点云数据的一些主流方法,今天开始正式进入传统数学方法的研究


下面正式开始介绍

1.Principle Component Analysis

PCA is to find the dominant directions of the point cloud。

Applications:

  • Dimensionality reduction (降维)
  • Surface normal estimation (表面法向估计)
  • Canonical orientation (正则定向)
  • Keypoint detection (关键点检测)
  • Feature description (特征描述)

三维点云处理(二)——PCA_第1张图片
第一个知识点是主成分分析(PCA),如图所示是在二维和三维情况下的主成分分析,先将三维数据进行降维,保存原始信息, 另一个就是法向量的估计。所以其实聚类不光可以用深度网络来做,还包括PCA、KPCA,这些都是可以用来做分类,下面来看一些基础的数学概念和物理意义,这样会有助于我们理解后面的一些证明。

1.1 Physical intuitions

首先需要了解几个基础知识:

  1. 向量点积(Vector Dot Product)点积公式;
  2. 矩阵和向量的乘法,矩阵的列的线性组合
  3. 从SVD的角度来理解。几何意义上进行旋转,缩放,旋转。
    三维点云处理(二)——PCA_第2张图片
    我们可以得到一个线性代数框架中的结论谱定理(Spectral Theorem),如果我们有一个对称矩阵M,那么可以被分解成如下形式,λ是ui的特征值:

1.2 Soectral Theorem

三维点云处理(二)——PCA_第3张图片

1.3 Rayleigh Quotients

然后是瑞利熵(Rayleigh Quotients),对于Ax是x的对称矩阵,有x=u1和x=un,则可以得到A的最大最小值
三维点云处理(二)——PCA_第4张图片
通过谱定理来证明瑞利熵,将对称矩阵Ax分解,通过将x进行一个高维旋转转换成Xu,由于旋转不改变向量长度,则xi的和和x-的和相同,通过组合变换得到瑞利熵的定义如下:
三维点云处理(二)——PCA_第5张图片

1.4 PCA

下面是PCA(主成分分析)的主要定义:
三维点云处理(二)——PCA_第6张图片
总体来说PCA主成分分析即对输入进行降维和聚类。我们的输入是Xi,为高维空间里的m个向量,由一堆高维输入的点输出一群主要的向量,得到的Z1即为最主要的点,具体来说,即这些高维点投影到某一个方向上,这些投影后的点方差要最大,也就是说这些点在那个方向上分布的非常的散。将Xi里输入Z1的成分都去掉,再找剩下的里面最主要成分,就得到了第二个主成分,那么第三个要如何取得呢?我们来看看证明:
三维点云处理(二)——PCA_第7张图片
因为我们关心的是方向,而并非中心点,所以我们将中心点设置为0。PCA就是当z投影到一个方向上时取得的最大向量,然后计算方差,在减掉了中心点之后求取到最大值:
三维点云处理(二)——PCA_第8张图片
在代入了瑞利熵的定理之后证明得到PCA的求解,关于H = ∑²,我们通过SVD的形式来分解H:
三维点云处理(二)——PCA_第9张图片
可以看到谱定理和SVD是很相似的,用SVD的形式就可以求解Z2,在求解Z2时,将这些数据点里属于Z1的成分去掉。在推演中要注意Ur是正交矩阵,他的每一列都是互相垂直的,z2=u2。
三维点云处理(二)——PCA_第10张图片
最后结论主成分向量就是Ur的列,第一个基地就是Xi最有代表性的方向,第二个基地为垂直于第一个基底的另一个方向,以此类推PCA可以理解成一个基底置换的过程,这样的方式即为降维(Dimensionality Reduction)。
三维点云处理(二)——PCA_第11张图片

1.4 Dimensionality Reduction

例如存在一群n维的点,将这群n维的点投影到低维空间里,同时保留其特征值就是降维,这是PCA里常用的算法,通过无监督学习的方式将输入进行聚类和降维,用PCA找出其l个主向量,即将n降维至l后得到的z,这时候我们将Xi分别投影到每一个Z上面,就得到了每个Z和每个X在每一个方向上的投影,一个n维的点可以通过降维用l维的a系数来代替,这就是Encoder。想要从l维回到n维,就通过作和的方式,因为a其实是x在每一个z上的投影,我们将这个投影重新加起来即可,但是需要注意 ,我们经过了降维,再升维的时候肯定会有数据上的损失,除非此时的z = l,做完全基底置换过程,不会有任何的损失,只要l小于n的就不会产生数据的损失,只是经过筛选后的数据损失量会比较小。
三维点云处理(二)——PCA_第12张图片

1.5 PCA/Eigenfaces在识别上的应用

如上图的两类数据点,我们在做降维时,在不同方向上的一维系数降维特征则更加突出。
三维点云处理(二)——PCA_第13张图片
降维除了可以做图片的降维压缩,还能做聚类,使用ai作为zi进行人脸识别的聚类(Eigenfaces)输入图片,压缩成低维的系数ai,再进行聚类。
所以在神经网络和深度学习之前就已经有过图片和人脸识别了,这些方法的数据量输入小,不会出现神经网络过拟合的问题。


总结

提示:今天学习的PCA,是除了深度学习之外,另一种做图像信息识别的传统方法,在理论推演过程中涉及到线性代数和对称矩阵变换等数学方法,需要我们对谱定理,瑞利熵定理和奇异值分解知识有一定基础,还需要了解数据点在不同维度聚类的情况,降维在不同向量上的特征表现。

关于以上定理的具体推演过程就不再详细论述,下面是一些相关参考资料:
CSND
知乎文章
B站视频

我们还需要了解的是,早在AI和深度学习之前,利用以上的数学推演,就可以进行图像和人脸信息的识别了。可能只需要三五十个图片,就可以进行PCA并得到一个相对比较好的结果。而使用神经网络这些输入量是远远满足不了算法训练需求的。

你可能感兴趣的:(聚类,机器学习,算法)