MP算法、OMP算法及其在人臉識別的應用


主要內容:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM