matlabpca演算法
1. matlab PCA演算法 人臉表情識別 怎麼完成下列步驟(沒接觸過matlab)(網上下的資料不知道怎麼用)
(建議您還是先學習下matlab的用法。。否則即便這一步解決了後面還會有無窮的問題出現。)
從這幾句提示里看不出具體如何Select。建議看一下CreateDatabase函數的輸入參數,也許會有一些提示。
2. matlab中pca
1,4 matlab是有幫助文檔的,我沒有明白你所指的去中心化處理是什麼,PCA的結果在數組自己的維度。
以下是幫助文檔,請仔細閱讀
coeff = pca(X) returns the principal component coefficients, also known as loadings, for the n-by-p data matrix X. Rows of X correspond to observations and columns correspond to variables. The coefficient matrix is p-by-p. Each column of coeffcontains coefficients for one principal component, and the columns are in descending order of component variance. By default, pca centers the data and uses the singular value decomposition (SVD) algorithm.
example
coeff = pca(X,Name,Value) returns any of the output arguments in the previous syntaxes using additional options for computation and handling of special data types, specified by one or more Name,Value pair arguments.
For example, you can specify the number of principal components pca returns or an algorithm other than SVD to use.
example
[coeff,score,latent] = pca(___) also returns the principal component scores in score and the principal component variances in latent. You can use any of the input arguments in the previous syntaxes.
Principal component scores are the representations of X in the principal component space. Rows of score correspond to observations, and columns correspond to components.
The principal component variances are the eigenvalues of the covariance matrix of X.
example
[coeff,score,latent,tsquared] = pca(___) also returns the Hotelling's T-squared statistic for each observation in X.
example
[coeff,score,latent,tsquared,explained,mu] = pca(___) also returns explained, the percentage of the total variance explained by each principal component and mu, the estimated mean of each variable in X.
2. PCA 和SVD的不同是,他們分解矩陣的方式是不同的。我建議你翻看wikipedia裡面SVD和PCA的說明,裡面公式很清晰了
3. MatLab的特點及應用領域
MatLab的特點
1、高效的數值計算及符號計算功能,能使用戶從繁雜的數學運算分析中解脫出來;
2、具有完備的圖形處理功能,實現計算結果和編程的可視化;
3、友好的用戶界面及接近數學表達式的自然化語言,使學者易於學習和掌握;
4、 功能豐富的應用工具箱(如信號處理工具箱、通信工具箱等) ,為用戶提供了大量方便實用的處理工具。
MATLAB 的應用范圍非常廣,包括信號和圖像處理、通訊、控制系統設計、測試和測量、財務建模和分析以及計算生物學等眾多應用領域。
(3)matlabpca演算法擴展閱讀:
MatLab將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和模擬等諸多強大功能集成在一個易於使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,並在很大程度上擺脫了傳統非互動式程序設計語言(如C、Fortran)的編輯模式,代表了當今國際科學計算軟體的先進水平。
MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完成相同的事情簡捷得多,並且MATLAB也吸收了像Maple等軟體的優點,使MATLAB成為一個強大的數學軟體。
4. pca的matlab程序翻譯成公式和漢字。
1,對矩陣M的每一行求均值mu
2,M的每行減去對應行的均值,得到M1
3,對M1做SVD(奇異值分解)得到 U S V
4,在S里舍掉數字太小的部分得到S1。
5,用U S1 V還原回矩陣。
做好了
5. 什麼「PCA演算法」。
有關圖像融合的一種線性演算法,在MATLAB中是一種演算法融合程序。
6. matlab中PCA的人臉識別,最後得出的識別率是什麼意思啊!
識別率指的是通過人臉識別技術識別正確數占識別總數的百分比。
人臉識別演算法分類
基於人臉特徵點的識別演算法(Feature-based recognition algorithms)。
基於整幅人臉圖像的識別演算法(Appearance-based recognition algorithms)。
基於模板的識別演算法(Template-based recognition algorithms)。
利用神經網路進行識別的演算法(Recognition algorithms using neural network)。
神經網路識別
基於光照估計模型理論
提出了基於Gamma灰度矯正的光照預處理方法,並且在光照估計模型的基礎上,進行相應的光照補償和光照平衡策略。
優化的形變統計校正理論
基於統計形變的校正理論,優化人臉姿態;
強化迭代理論
強化迭代理論是對DLFA人臉檢測演算法的有效擴展;
獨創的實時特徵識別理論
該理論側重於人臉實時數據的中間值處理,從而可以在識別速率和識別效能之間,達到最佳的匹配效果
7. matlab人臉識別系統pca 演算法
%一個修改後的PCA進行人臉識別的Matlab代碼
% calc xmean,sigma and its eigen decomposition
allsamples=[];%所有訓練圖像
for i=1:40
for j=1:5
a=imread(strcat('D:\rawdata\ORL\s',num2str(i),'\',num2str(j),'.pgm'));
% imshow(a);
b=a(1:112*92); % b是行矢量 1×N,其中N=10304,提取順序是先列後行,即從上到下,從左到右
b=double(b);
allsamples=[allsamples; b]; % allsamples 是一個M * N 矩陣,allsamples 中每一行數據代表一張圖片,其中M=200
end
end
samplemean=mean(allsamples); % 平均圖片,1 × N
for i=1:200 xmean(i,:)=allsamples(i,:)-samplemean; % xmean是一個M × N矩陣,xmean每一行保存的數據是「每個圖片數據-平均圖片」
end;
sigma=xmean*xmean'; % M * M 階矩陣
[v d]=eig(sigma);
d1=diag(d);
[d2 index]=sort(d1); %以升序排序
cols=size(v,2);% 特徵向量矩陣的列數
for i=1:cols
vsort(:,i) = v(:, index(cols-i+1) ); % vsort 是一個M*col(注:col一般等於M)階矩陣,保存的是按降序排列的特徵向量,每一列構成一個特徵向量
dsort(i) = d1( index(cols-i+1) ); % dsort 保存的是按降序排列的特徵值,是一維行向量
end %完成降序排列
%以下選擇90%的能量
dsum = sum(dsort);
dsum_extract = 0;
p = 0;
while( dsum_extract/dsum < 0.9)
p = p + 1;
dsum_extract = sum(dsort(1:p));
end
i=1;
% (訓練階段)計算特徵臉形成的坐標系
while (i<=p && dsort(i)>0)
base(:,i) = dsort(i)^(-1/2) * xmean' * vsort(:,i); % base是N×p階矩陣,除以dsort(i)^(1/2)是對人臉圖像的標准化,詳見《基於PCA的人臉識別演算法研究》p31
i = i + 1;
end
% add by wolfsky 就是下面兩行代碼,將訓練樣本對坐標繫上進行投影,得到一個 M*p 階矩陣allcoor
allcoor = allsamples * base;
accu = 0;
% 測試過程
for i=1:40
for j=6:10 %讀入40 x 5 副測試圖像
a=imread(strcat('D:\rawdata\ORL\s',num2str(i),'\',num2str(j),'.pgm'));
b=a(1:10304);
b=double(b);
tcoor= b * base; %計算坐標,是1×p階矩陣
for k=1:200
mdist(k)=norm(tcoor-allcoor(k,:));
end;
%三階近鄰
[dist,index2]=sort(mdist);
class1=floor( index2(1)/5 )+1;
class2=floor(index2(2)/5)+1;
class3=floor(index2(3)/5)+1;
if class1~=class2 && class2~=class3
class=class1;
elseif class1==class2
class=class1;
elseif class2==class3
class=class2;
end;
if class==i
accu=accu+1;
end;
end;
end;
accuracy=accu/200 %輸出識別率
函數調用是定義函數,然後用函數名進行調用就可以了
我的QQ382101365
8. matlab pca函數怎麼用
princomp-----函數名稱,主要有一下集中調用形式:
[COEFF,SCORE] = princomp(X)
[COEFF,SCORE,latent] = princomp(X)
[COEFF,SCORE,latent,tsquare] = princomp(X)
[...] = princomp(X,'econ')
coeff矩陣是返回的轉換矩陣,也就是把樣本轉換到新的空間中的准換矩陣,這個准換矩陣式比較大的,比如你的降維矩陣式30*100000,那麼這個准換矩陣一般都是10000*29的維數。
score是原來的樣本矩陣在新的坐標系中的表示,也就是原來的樣本乘上轉換矩陣,但是還不是直接乘,要減去一個樣本的均值。將原來的數據轉換到新的樣本空間中的演算法是這樣實現的:
x0 = bsxfun(@minus,x,mean(x,1));
score = x0 * coeff;
然後就會得到和[COEFF, SCORE, LATENT, TSQUARED] = PRINCOMP(X) 輸出一樣的score數據。 同時這個也是原來的樣本矩陣降維後的結果,如果使用降維後的數據就使用這個數據。一般情況下,如果你的每個樣本的特徵維數遠遠大於樣本數,比如30*1000000的維數,princomp要加上'econ', 就是princomp(x,'econ')這樣使用,可以很大程度的加快計算速度,而且不會內存溢出,否則會經常報內存溢出。
latent是返回的按降序排列的特徵值,根據這個你可以手動的選擇降維以後的數據要選擇前多少列
tsquared是個什麼東西我也不知道,不過貌似很少有人能用到
9. matlab中processpca命令怎麼用
每個數據是一個行向量 processpca後的結果是讓行之間無關
但是pca演算法的結果應該是讓基無關,也就是數據的每個維之間無關
所以在用的時候應該讓訓練集的數據呈列向量的形式
10. 要叫作業了,急死了 MATLAB人臉識別的PCA 演算法程序~~
網上有很多例子可以直接下載用的。
你是看不懂還是不會寫啊?