为了确定指尖位置,首先将手的3D点云进行PCA,再在主方向上找最前点。
1、PCA原理:
PCA (主成分分析)算法提供了一种压缩数据的方式。我们也可以将 PCA 视为学习数据表示的无监督学习算法。 PCA 学习一种比原始输入维数更低的表示。它也学习了一种元素之间彼此没有线性相关的表示。这是学习表示中元素统计独立标准的第一步。要实现完全独立性,表示学习算法也必须去掉变量间的非线性关系。
PCA 将输入 x 投影表示成 z,学习数据的正交线性变换,这种表示其实对应着数据的第一个主要成分。因此,我们可以用 PCA 作为保留数据尽可能多信息的降维方法(再次就最小重构误差平方而言)。
PCA 学习一种线性投影,使最大方差的方向和新空间的轴对齐。(左) 原始数据包含了x的样本。在这个空间中,方差的方向与轴的方向并不是对齐的。(右) 变换过的数据 z = W 在轴 z 1 的方向上有最大的变化。第二大变化方差的方向沿着轴 z 2 。
主成分元素特点:彼此无关。将数据 x 投影到 z 时,得到的数据表示的协方差矩阵是对角的(证明略),立刻可得 z 中的元素是彼此无关的。
2、PCA实现
使用了Eigen矩阵相关函数和深度图与世界坐标转化函数(见上上节),代码如下: