近期读文献发现一种计算点云倾角的方法,大致为:
1、计算目标所关联到的点云群组的质心;
2、计算协方差矩阵;
3、对协方差矩阵计算特征值和特征向量;
4、最大特征值对应的特征向量方向为躯干的延长方向。
其中,每个点云表示为:
质心计算公式为:
协方差计算如下:
协方差计算得到一个三维矩阵。
至此,协方差计算环节已无障碍,有关特征值和其对应的特征向量计算方法,基本都有成熟模块。
通过最大特征值对应的特征向量,计算指定夹角,(笔者关注的是躯干和天花板所成夹角)
计算方式为:
至此, 全路打通。
但是,有个困惑一直存在,为什么最大特征值对应的向量就能表征主体的倾角呢?
其实这个问题困惑了一段时间,也忍住没有请教其他人……
谜团逐渐解开……
这得从我们接触线性代数时的第一个公式说起:
如上图,在左右对等情况下,复杂的矩阵是可以通过特征值表征的,也就是A矩阵可以通过lamda表征。那么主成分分析是什么呢?大概就是提取前几个较大特征值对应特征向量的部分。
至于特征值小的部分,为什么就可以忽略呢?
回到以前泰勒展开等,其实每个阶数也就是特征向量的意思,越往后的数值远小于阶数小的数值,因此可以忽略。
那么为什么特征以及对应的特征向量可以表征矩阵呢?
拿一个最简单的方程:
线性关系用矩阵表征自不必多说,所以上述公式就是一个简单的矩阵。
对该矩阵计算求解得到:
这个简单的表示和上述是等价的,其中x和y就是我们所说的特征向量,数值即为特征值,由图可知,4为特征值较大的一个,其方向为该矩阵的主要方向。
仔细想想,向量(4,1)的方向是不是和x轴更加接近,而稍微偏离y值呢?
类比到多维,道理一致。
至此,最大特征值对应的方向为主要方向,这个困惑基本解开。
参考文献:《CN112386248A-人体跌倒的检测方法、装置、设备及计算机可读存储介质》