机器人视觉初级系列(8) - PCA人脸降维

本文介绍了PCA(主成分分析)在人脸降维中的应用,详细阐述了PCA的计算过程,包括特征中心化、协方差矩阵计算、特征值和特征向量的选择,以及如何将样本点投影到低维空间。PCA通过保留主要特征,实现数据降维,常用于人脸识别等领域。
摘要由CSDN通过智能技术生成

之前的 “机器视觉入职培训” 文章都是基于一些图像最基本、最底层的操作学习,接下来通过几个小型的项目来做点更加实际的栗子,通过机器视觉去识别物体,对物体进行分类。

这里需要学习到机器视觉中的图像特诊检测算法,例如经典的有PCA、HOG、LBP等,在接下来的文章中详细介绍这些算法,希望对新入职的小伙伴有更好的帮助。


降维目的

  • 减小预测变量的个数,使数据规模更小
  • 确保降维后的数据尽可能相互独立
  • 提供一个更符合人类思维方式的数据来对原数据进行解析

降维的方式有很多种,如LDA(Latent Dirichlet Allocation),非负矩阵分解、奇异矩阵分解等众多矩阵分解的方法都可以对数据进行降维。而PCA是最常用、计算过程简单、通用性强的降维算法。PCA能够对高位数据进行降维后去除了噪声(投影,后面会提到),发现数据中的模式。因此本次的人脸主特征提取使用了PCA方法。

PCA计算过程

1. 特征中心化

去均值化过程,即每一维的数据都减去该维的均值。这里的“维”指的就是一个特征(属性),变换之后每一维的均值都变成了0。假设一列为一个特征维度,那么就是把每列的每个数据都减去该列的均值。

2. 求特征协方差矩阵C

协方差绝对值越大,两者对彼此的影响越大,反之越小。如果数据是3维,那么协方差矩阵是:

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)

3. 计算协方差矩阵C的特征值S和特征向量V

C=VSV1 ,其中S为特征值,V为特征向量。

4. 选取 k 个特征值及其对应的特征向量

将特征值按照从大到小的顺序排序,选择其中最大的k个特征值,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。

5. 将样本点投影到k个特征向量上

假设样例数为 m ,特征数为 n ,减去均值后的样本矩阵为 A(mn) ,协方差矩阵是 nn ,选取的k个特征向量组成的矩阵为 V(nk) 。那么投影后的数据 A 为:

A(mk)=A(mn)V(nk)

假设我们有一个 4×2 的矩阵 A 。令 A502=A504V42 ,这样我们就把 504 的数据A集映射成了 502 的数据集 A ,特征由4个减到了2个。就将原始样例的 n 维特征变成了 k 维,这 k 维就是原始特征在 k 维上的投影。

PCA实际计算问题

在实际计算当中,第一步把特征值减去所在特征列的减均值后,应该还要对特征做方差归一化。比如一个特征是人脸的眼睛值是(0到100),一个是鼻子的特征(2到6),显然第二个的方差比第一个小。因此,如果样本特征中存在这种情况(一般都会存在特征值权值不统一的情况),那么在第一步去中心化后,求每个特征的标准差 σ ,然后对每个样例在该特征下的数据除以其特征的标准差 σ 。因此在求协方差之前的步骤是:

  • 求得均值:使得 μ=1m1mi=1xi
  • 去中心化:对每个 xi 替换成
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值