图像处理方面的知识也学了一段时间了,总是光看理论的话,感觉联系不上实际,第一次把理论综合的实现出来,对这些理论的印象才感觉的更深刻,也能够为后续的学习打下良好的基础。

PCA是比较老的算法,但是可靠性挺好,对于我这种新手,练练手还是不错的。

下面开始对这些算法说一说我自己的理解,如果有不正确的地方还请各位牛人指点。

主成分分析(PCA)是多变量分析中一项很老的技术,源于通信理论中的K-L变换,它考虑的是对于d维空间中的n个向量X1,X2......Xn,如何在低维空间中进行表示,这需要对其空间进行变换。

变换具体的表示如下:

其中即为对样本的一种近似表示,是样本的均值,

就是在d'维空间中的主成份分量,也就是经过PCA提取后的一组特征。

是这d'维空间的一组基。

这样即为原样本在d'维空间的一种近似。

看到这,还不知道是如何计算得到的,具体的推理过程就不细说了,想知道的可以自行查阅相关资料,我只写一下他们的计算公式。

是散布矩阵S的前d‘个特征向量,是散布矩阵S的前d‘个特征值,而散布矩阵S为,其中Z为样本矩阵X中的每个样本减去样本均值后得到的矩阵。

S是d*d的矩阵,计算量很大,幸运的是有一种快速计算的方法,这里我们考虑,一般情况下样本数目n原小于样本维数d,所以R的尺寸远小于散布矩阵S。

设是R的特征向量为,则有

对上式两边同时左乘,得

说明为散布矩阵S的特征值,至此,可以计算小矩阵R的特征向量来得到散布矩阵S的特征向量。

当计算出散布矩阵S的特征向量和特征值时,就可以对样本进行表示了。

假设计算的是前20个特征值和特征向量,那么样本就可以用这20个特征值对其进行表示,这也就是样本的主成份。

快速PCA计算的matlab实现代码如下:

function [ pcaA   V] =fastPCA( A,k )

%输入:A------样本矩阵,每行为一个样本
%         k------降维至k维
%输出:pcaA----降维后K维样本特征向量组成的矩阵,每行一个样本,列数k为降维后的样本特征维数
%     V-------主成分分量
[r,c]=size(A);
%样本均值
meanVec = mean(A);
%计算协方差矩阵的转置 covMatT
Z=(A-repMat(meanVec,r,1));
covMatT =Z*Z';
%计算covMatT的前k个本征值和本征向量
[V D] = eigs(covMatT,k);
%得到协方差矩阵covMatT'的本征向量
V = Z'*V;
%本征向量归一化为单位本征向量
for i=1:k
    V(:,i)=V(:,i)/norm(V(:,i));
end

pcaA = Z*V;

end

转载于:https://www.cnblogs.com/anyuan9/p/6171579.html

基于PCA的特征提取相关推荐

  1. 基于PCA的特征提取和两级匹配的激光雷达SLAM(翻译)

    同时定位和建图(SLAM)在机器人领域已经研究了几十年,其中光探测和测距(LiDAR)由于其可直接.准确和可靠的三维测量而广泛应用于各种应用领域.然而,当在退化场景中运行时,LiDAR SLAM的性能 ...

  2. 怎么用matlab画一个笑脸,基于pca特征提取的笑脸表情识别代码(语言工具为matlab)...

    [实例简介] 基于pca特征提取的笑脸表情识别代码,语言工具为matlab [实例截图] [核心代码] 表情识别 └── 表情识别 ├── 3.jpg ├── a2.jpg ├── air_dir.m ...

  3. 基于PCA 人脸识别/人脸识别算法/人脸检测程序源码MATLAB ELM+PCA人脸识别 PCA人脸识别matlab代码 基于PCA算法的人脸识别

    1.基于PCA的人脸识别代码 2.MATLAB ELM+PCA人脸识别 2.基于PCA的人脸识别(matlab)(采用PCA算法进行人脸识别,通过抽取人脸的主要成 分,构成特征脸空间,识别时将测试图像 ...

  4. 基于 PCA 的人脸识别系统及人脸姿态分析

    文章目录 1 PCA 1.1 原理 1.2 算法流程 1.2.1 零均值化 1.2.2 计算协方差矩阵 1.2.3 特征值和特征向量 1.2.4 降维得到 K 维特征 1.2.5 PCA 的优缺点 2 ...

  5. 基于PCA的人脸识别_Matlab实现(个人研读之后的一些总结)

    以下是我在查阅相关文献之后的一些个人的总结,望大神们指正. 基于PCA的人脸识别 PCA简介 这是百度百科的解析: "对于一个训练集,100个对象模板,特征是10维,那么它可以建立一个100 ...

  6. 基于PCA方法的ORL人脸识别及Python代码实现

    基于PCA方法的ORL人脸识别及Python代码实现 PCA算法 方案设计 代码实现 结果分析 参考文献 PCA的理论知识已经有很多博客做了清晰的解释,主要概括为找到投影的面使得类间误差最大,转化为找 ...

  7. 文献记录(part73)--基于 PCA 的信息压缩 : 从一阶到高阶

    学习笔记,仅供参考,有错必究 关键词:主成分分析 , 信息压缩 , 高阶张量 , Tucker 分解 , 各向异性 文章目录 基于 PCA 的信息压缩 : 从一阶到高阶 摘要 引言 从一阶PCA到高阶 ...

  8. 基于并行附加特征提取网络的SSD地面小目标检测模型

    人工智能技术与咨询 来源:<电子学报> ,作者李宝奇等 摘 要: 针对SSD原始附加特征提取网络(Original Additional Feature Extraction Networ ...

  9. pca图像压缩python_基于PCA的图像降维及图像重构

    1 PCA简述 PCA(Principal Component Analysis)主成分分析算法,在进行图像识别以及高维度数据降维处理中有很强的应用性,算法主要通过计算选择特征值较大的特征向量来对原始 ...

  10. 模式识别与机器学习(作业5)基于PCA–LDA的人脸识别

    基于PCA–LDA的人脸识别 ORC数据集 提取码: cggh 本次的实验是在模式识别与机器学习(作业4),PCA降维的基础上加入了线性判别分析,对维度进行了进一步的降低. 1. 导入数据 一共有40 ...

最新文章

  1. NASA宣布在火星上发现了3种有机分子
  2. 趣学python3(40)--TCP服务器和客户端(socketserver类)
  3. 单击修复计算机英语怎么说,电脑选择语言方式,单击修复计算机
  4. Vue.JS项目同时使用Element-UI与vue-i18n时实现国际化的方案
  5. 在Powershell中禁止执行脚本
  6. 联机手写汉字识别,基于新型RNN网络结构的方法
  7. 集中云数据加密能否填补安全漏洞?
  8. 标签空间而不是多个不间断的空格(“nbsp”)?
  9. java认证考试题库看不懂_一道JAVA认证考试试题,有点想不通,各位看看...
  10. 主编编辑器怎么把文章转成长图?
  11. python代码翻译器-Python实现翻译软件
  12. 按夏普计算机技巧,股票投资策略:怎样用夏普比率Sharpe Ratio寻找强势股
  13. 【PDF处理】java将全图片的pdf压缩,输出新的pdf
  14. python修改文件的某一行_简单文件操作python 修改文件指定行的方法
  15. 一维离散余弦变换(DCT)及其反变换(IDCT)公式的一种推导
  16. python中iter是什么意思,python中iter的用途是什么?
  17. Nodejs如何连接Mysql
  18. linux软路由关闭超线程,结论 - Linux 软路由性能测试及分析[图文]_Linux教程_Linux公社-Linux系统门户网站...
  19. 震惊:这样投简历才有效,你竟然不知道?
  20. 河南农业大学计算机专业就业咋样,河大最高,郑大垫底!河南6所高校毕业生月薪公布,就业最好专业竟是.....

热门文章

  1. KMP + 求最小循环节 --- HDU 1358 Period
  2. 在ubuntu10.10下安装Google谷歌拼音输入法
  3. Hibernate查询 内连接和外连接区别
  4. CSting的GetBuffer()和ReleaseBuffer()
  5. 教你用电脑从 Google Play 下载 Android 程序 apk 文件
  6. 实现两个N*N矩阵的乘法,矩阵由一维数组表示
  7. java应用安全设计_应用层安全架构设计-访问控制
  8. 通过 Hibernate 调用存储过程
  9. 智慧工厂用到的技术_CCF VC物联网应用技术专业工作组走进苏宁物流智慧仓储工厂参观学习...
  10. [渝粤教育] 武汉理工大学 数字信号处理 参考 资料