主要内容:

1、MP算法

2、OMP算法

3、OMP算法的matlab实现

4、OMP在压缩感知和人脸识别的应用

一、MP(Matching Pursuits)与OMP(Orthogonal Matching Pursuit)算法

  内容:稀疏信号的表示(字典、稀疏系数)、MP算法、MP算法的缺点、OMP、OMP的实现

  参考文章:http://blog.csdn.net/scucj/article/details/7467955

二、OMP的matlab实现

%A-稀疏系数矩阵
%D-字典/测量矩阵(已知)
%X-测量值矩阵(已知)
%K-稀疏度
function A=OMP(D,F,X,L)
X=double(X);
[n,P]=size(X);
[n,K]=size(D);
%按列操作,分别求出每一列对应的最相关的基
for k=1:P
%a:每一列对应的相关基的系数
a=[];
%取二维信号的每一列信号
x=X(:,k);
%初始残差
residual=x;
%indx:索引集,L:测量次数
indx=zeros(L,1);
for j=1:L
%D转置与残差residual相乘,得到residual与每一列的内积值
residual=double(residual);
D=double(D);
proj=D'*residual;
%找内积值最大值的位置,即最相关基的position
pos=find(abs(proj)==max(abs(proj)));
%若最大值不止一个,取第一个
pos=pos(1);
%位置存入索引集的第j值
indx(j)=pos;
%indx(1:j)表示第一列前j个元素
%pinv:Pseudoinverse伪逆矩阵,一般用于处理长方形矩阵的求逆
%得到其相关基的对应系数,AD=X,A=inv(D)*X
%一般应该通过最小二乘来求
a=pinv(D(:,indx(1:j)))*x;
%继续求残差
residual=x-D(:,indx(1:j))*a;
end
%通过上面的循环,得到第k列的相关基对应的索引位置
temp=zeros(K,1);
temp(indx)=a;
%只显示非零值及其位置
%最终求得整个A,代入AD=X,即可求解
A(:,k)=temp;
end
R=A'*D';
R=uint8(R);
imshow(R);

三、OMP在压缩感知和人脸识别的应用

参考以下文章:

http://wenku.baidu.com/view/4e67448302d276a200292e53.html

http://wenku.baidu.com/link?url=IVn0mBapYDtCfj_mVma6AU8C9ClbGYU4Y5u4Kq0-F-8vhMN_73fcjLrTwzidA1KtQkqj6FvPS6-YkALppqr_Z_8TDlUV2wKEIsdqPs-my1m

http://blog.csdn.net/celerychen2009/article/details/9257275

MP算法、OMP算法及其在人脸识别的应用的更多相关文章

  1. 稀疏分解中的MP与OMP算法

    MP:matching pursuit匹配追踪 OMP:正交匹配追踪 主要介绍MP与OMP算法的思想与流程,解释为什么需要引入正交? !!今天发现一个重大问题,是在读了博主的正交匹配追踪(OMP)在稀 ...

  2. MP 及OMP算法解析

    转载自http://blog.csdn.net/pi9nc/article/details/18655239 1,MP算法[盗用2] MP算法是一种贪心算法(greedy),每次迭代选取与当前样本残差 ...

  3. MP和OMP算法

    转载:有点无耻哈,全部复制别人的.写的不错 作者:scucj 文章链接:MP算法和OMP算法及其思想 主要介绍MP(Matching Pursuits)算法和OMP(Orthogonal Matchi ...

  4. 机器学习 - 算法 - SVM 支持向量机 Py 实现 / 人脸识别案例

    SVM 代码实现展示 相关模块引入 %matplotlib inline import numpy as np import matplotlib.pyplot as plt from scipy i ...

  5. 使用OpenCV进行人脸识别

    不断维护的地址:http://plzcoding.com/face-recognition-with-opencv/ 怎样使用OpenCV进行人脸识别 本文大部分来自OpenCV官网上的Face Re ...

  6. 【计算机视觉】基于OpenCV的人脸识别

    一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从 ...

  7. 总结几个简单好用的Python人脸识别算法

    原文连接:https://mp.weixin.qq.com/s/3BgDld9hILPLCIlyysZs6Q 哈喽,大家好. 今天给大家总结几个简单.好用的人脸识别算法. 人脸识别是计算机视觉中比较常 ...

  8. OpenCV人脸识别Eigen算法源码分析

    1 理论基础 学习Eigen人脸识别算法需要了解一下它用到的几个理论基础,现总结如下: 1.1 协方差矩阵 首先需要了解一下公式: 共公式可以看出:均值描述的是样本集合的平均值,而标准差描述的则是样本 ...

  9. DeepID人脸识别算法之三代(转)

    DeepID人脸识别算法之三代 转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/42091205 DeepID,目前最强人脸识别算法,已经三 ...

随机推荐

  1. Codeforces 385C - Bear and Prime Numbers(素数筛+前缀和+hashing)

    385C - Bear and Prime Numbers 思路:记录数组中1-1e7中每个数出现的次数,然后用素数筛看哪些能被素数整除,并加到记录该素数的数组中,然后1-1e7求一遍前缀和. 代码: ...

  2. freemarker中对null值问题的处理

    1. freemarker不支持null. 如果值为null会报错. 2.当值为null的处理 1)过滤不显示 Hello ${name!} 在属性后面加感叹号即可过滤null和空字符串 if和”?? ...

  3. Windows 环境下安装 Oracle JDK

    本页面中描述了如何在 Window 环境下安装 Oracle JDK. 我们使用的版本是 Window 10,我们需要安装的版本是 Oracle JDK 8u191. 检查当前版本 在进行新的 JDK ...

  4. bzoj2763: [JLOI2011]飞行路线 最短路

    题意:求最多可以有k条路免费的最短路 题解:用dis[x][k]表示从s开始用了k次免费机会到x的最短路,然后dij跑的时候优先队列里多维护一个k就好了 /********************** ...

  5. hdu1358 kmp的next数组

    For each prefix of a given string S with N characters (each character has an ASCII code between 97 a ...

  6. HDU-4471 Yet Another Multiple Problem (BFS+路径还原)

    Problem Description There are tons of problems about integer multiples. Despite the fact that the to ...

  7. 无法安装Java,以下开关中存在错误:“0”

    无法安装Java,以下开关中存在错误:“0”:. 解决方法:以管理员运行

  8. 对象不能从 DBNull 转换为其他类型

    SQL语句:select sum (datediff(second,Begin_Time,End_Time)) as 总时长 from 数据表这是我开始的程序:int 总时长=0;总时长 =Conve ...

  9. length,lengthb,substr,substrb,instr小用

    --字符串的字符长度 select length('wm.dfw.士农工商.sda.人马ss.dfw.4.sdf.332.sf.qq.sd') from dual; --字符串的字节长度 select ...

  10. learning docker steps(3) ----- docker services 初次体验

    参考:https://docs.docker.com/get-started/part3/#docker-composeyml docker 的 service样例, 我们可以理解成是一个本地负载均衡 ...