主要内容:

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 101628A - Arthur's Language

    101628A - Arthur's Language 思路:dp,状态转移见代码. 代码: #include<bits/stdc++.h> using namespace std; #d ...

  2. 最大交换 Maximum Swap

    2018-07-28 16:52:20 问题描述: 问题求解: 使用bucket数组来记录每个数最后出现的位置,然后从左向右遍历一遍即可. public int maximumSwap(int num ...

  3. HDU-1163 Eddy's digital Roots(九余数定理)

    Eddy's digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  4. h5请求跨域问题Access-Control-Allow-Origin解决跨域

    访问后端接口报错:No 'Access-Control-Allow-Origin' header is present on the requested resource 解决: Access-Con ...

  5. seo-摘自网友

    网页前端制作中的SEO 在SEO盛行的今天到处都在谈优化,对于网站前端制作人员来说,有几点是跟SEO相关的,也就是SEO站内优化中的一部分,下面总结几点: 1.title,<title>页 ...

  6. OC MRC之autorelease问题(代码分析)

    // // main.m // 08-autorelease // // Created by apple on 13-8-9. // Copyright (c) 2013年 itcast. All ...

  7. STM 软件事务内存——本质是为提高并发,通过事务来管理内存的读写访问以避免锁的使用

    对Java程序员来说,我们对面向对象的编程(OOP)自然都是烂熟于胸的,但语言也极大地影响了我们构建面向对象应用程序的方式.(现在的OOP已经和Alan Kay当初创造这个词时候的初衷大不相同了,他的 ...

  8. Edraw安装图解

    Edraw安装图解   Success

  9. PHP:第一章——PHP中的goto语句和

    goto语句: <?php header("Content-Type:text/html;charset=utf-8"); /*goto语句:可以代替break*/ //例1 ...

  10. learning docker steps(4) ----- docker swarm 初次体验

    参考:https://docs.docker.com/get-started/part4/ 了解 swarm 集群 swarm 是一组运行 Docker 并且已加入集群中的机器.执行此操作后,您可以继 ...