⑴ 關於用PCA做人臉識別
PCA is a vector space transform often used to rece multidimensional data sets to lower dimensions for analysis.
your question 1 is somehow wrong.
I do not know how much you have already know about pattern classification. Generally, we represent an object with a vector, the more attributes it has, the dimensions the vector has. For example, a 25 years old male [25, 0] a 35 years old female [35,1]
However, an object always has a lot of attributes, which makes the dimension of the vectors very high. This fact leads to huge computation and worse result (in most cases). We can understand it like this, of course to represent you alone, you need a lot of attributes, say, 100. But to distinguish you from me, only 10 will be enough. The rest of the 100 numbers then becomes "noise" in our classifier.
This is why we need to do "feature selection", "dimension rection" etc.
PCA reces dimension by retaining those characteristics of the data set that contribute most to its variance. You may want to read some paper about SVD to understand it better.
For K-L transform, actually I never heard that before. But I guess it might be another name of SVD.
If you have any question, feel free to contact me (by send messages).
⑵ 如何結合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 (i0)
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 %輸出識別率
函數調用是定義函數,然後用函數名進行調用就可以了
⑶ 人臉識別的識別演算法
人臉識別的基本方法
人臉識別的方法很多,以下介紹一些主要的人臉識別方法。
(1)幾何特徵的人臉識別方法
幾何特徵可以是眼、鼻、嘴等的形狀和它們之間的幾何關系(如相互之間的距離)。這些演算法識別速度快,需要的內存小,但識別率較低。
(2)基於特徵臉(PCA)的人臉識別方法
特徵臉方法是基於KL變換的人臉識別方法,KL變換是圖像壓縮的一種最優正交變換。高維的圖像空間經過KL變換後得到一組新的正交基,保留其中重要的正交基,由這些基可以張成低維線性空間。如果假設人臉在這些低維線性空間的投影具有可分性,就可以將這些投影用作識別的特徵矢量,這就是特徵臉方法的基本思想。這些方法需要較多的訓練樣本,而且完全是基於圖像灰度的統計特性的。目前有一些改進型的特徵臉方法。
(3)神經網路的人臉識別方法
神經網路的輸入可以是降低解析度的人臉圖像、局部區域的自相關函數、局部紋理的二階矩等。這類方法同樣需要較多的樣本進行訓練,而在許多應用中,樣本數量是很有限的。
(4)彈性圖匹配的人臉識別方法
彈性圖匹配法在二維的空間中定義了一種對於通常的人臉變形具有一定的不變性的距離,並採用屬性拓撲圖來代表人臉,拓撲圖的任一頂點均包含一特徵向量,用來記錄人臉在該頂點位置附近的信息。該方法結合了灰度特性和幾何因素,在比對時可以允許圖像存在彈性形變,在克服表情變化對識別的影響方面收到了較好的效果,同時對於單個人也不再需要多個樣本進行訓練。
(5)線段Hausdorff 距離(LHD) 的人臉識別方法
心理學的研究表明,人類在識別輪廓圖(比如漫畫)的速度和准確度上絲毫不比識別灰度圖差。LHD是基於從人臉灰度圖像中提取出來的線段圖的,它定義的是兩個線段集之間的距離,與眾不同的是,LHD並不建立不同線段集之間線段的一一對應關系,因此它更能適應線段圖之間的微小變化。實驗結果表明,LHD在不同光照條件下和不同姿態情況下都有非常出色的表現,但是它在大表情的情況下識別效果不好。
(6)支持向量機(SVM) 的人臉識別方法
近年來,支持向量機是統計模式識別領域的一個新的熱點,它試圖使得學習機在經驗風險和泛化能力上達到一種妥協,從而提高學習機的性能。支持向量機主要解決的是一個2分類問題,它的基本思想是試圖把一個低維的線性不可分的問題轉化成一個高維的線性可分的問題。通常的實驗結果表明SVM有較好的識別率,但是它需要大量的訓練樣本(每類300個),這在實際應用中往往是不現實的。而且支持向量機訓練時間長,方法實現復雜,該函數的取法沒有統一的理論。
人臉識別的方法很多,當前的一個研究方向是多方法的融合,以提高識別率。
在人臉識別中,第一類的變化是應該放大而作為區分個體的標準的,而第二類的變化應該消除,因為它們可以代表同一個個體。通常稱第一類變化為類間變化,而稱第二類變化為類內變化。對於人臉,類內變化往往大於類間變化,從而使在受類內變化干擾的情況下利用類間變化區分個體變得異常困難。正是基於上述原因,一直到21 世紀初,國外才開始出現人臉識別的商用,但由於人臉識別演算法非常復雜,只能採用龐大的伺服器,基於強大的計算機平台。
如果可以的話,可以Te一下colorreco,更好的技術解答。
⑷ 基於神經網路的人臉識別有哪些演算法
上次的人臉識別模擬,我們用的是PCA和SVM方法進行人臉識別,該方法仍屬於機器學習領域,未涉及神經網路的知識。這次使用的方法是基於PCA和BP神經網路對人臉識別。
其中,PCA的功能和上次一致,是用來對20張圖片進行降維處理,最終產生8個主成分作為BP神經網路的輸入;神經網路的輸出層採用4個神經元,用來區分兩個不同的人臉;本例的BP神經網路採用8-10-4的三層結構,輸入層神經元數量選取8個,隱含層神經元數量選取10個,輸出層神經元數量選取4個。
⑸ 人臉識別演算法的分類
人臉識別法主要集中在二維圖像方面,二維人臉識別主要利用分布在人臉上從低到高80個節點或標點,通過測量眼睛、顴骨、下巴等之間的間距來進行身份認證。人臉識別演算法主要有:
1.基於模板匹配的方法:模板分為二維模板和三維模板,核心思想:利用人的臉部特徵規律建立一個立體可調的模型框架,在定位出人的臉部位置後用模型框架定位和調整人的臉部特徵部位,解決人臉識別過程中的觀察角度、遮擋和表情變化等因素影響。
2.基於奇異值特徵方法:人臉圖像矩陣的奇異值特徵反映了圖像的本質屬性,可以利用它來進行分類識別。
3.子空間分析法:因其具有描述性強、計算代價小、易實現及可分性好等特點,被廣泛地應用於人臉特徵提取,成為了當前人臉識別的主流方法之一。
4.局部保持投影(Locality Preserving Projections,LPP)是一種新的子空間分析方法,它是非線性方法Laplacian Eigen map的線性近似,既解決了PCA等傳統線性方法難以保持原始數據非線性流形的缺點,又解決了非線性方法難以獲得新樣本點低維投影的缺點。
5.主成分分析(PCA)
PCA模式識別領域一種重要的方法,已被廣泛地應用於人臉識別演算法中,基於PCA人臉識別系統在應用中面臨著一個重要障礙:增量學習問題。增量PCA演算法由新增樣本重構最為重要 PCS,但該方法隨著樣本的增加, 需要不斷舍棄一些不重要PC,以維持子空間維數不變, 因而該方法精度稍差。
6.其他方法:彈性匹配方法、特徵臉法(基於KL變換)、人工神經網路法、支持向量機法、基於積分圖像特徵法(adaboost學習)、基於概率模型法。 二維人臉識別方法的最大不足是在面臨姿態、光照條件不同、表情變化以及臉部化妝等方面較為脆弱,識別的准確度受到很大限制,而這些都是人臉在自然狀態下會隨時表現出來的。三維人臉識別可以極大的提高識別精度,真正的三維人臉識別是利用深度圖像進行研究,自90年代初期開始,已經有了一定的進展。三維人臉識別方法有:
1.基於圖像特徵的方法:採取了從3D結構中分離出姿態的演算法。首先匹配人臉整體的尺寸輪廓和三維空間方向;然後,在保持姿態固定的情況下,去作臉部不同特徵點(這些特徵點是人工的鑒別出來)的局部匹配。
2.基於模型可變參數的方法:使用將通用人臉模型的3D變形和基於距離映射的矩陣迭代最小相結合,去恢復頭部姿態和3D人臉。隨著模型形變的關聯關系的改變不斷更新姿態參數,重復此過程直到最小化尺度達到要求。基於模型可變參數的方法與基於圖像特徵的方法的最大區別在於:後者在人臉姿態每變化一次後,需要重新搜索特徵點的坐標,而前者只需調整3D變形模型的參數。
⑹ matlab中PCA的人臉識別,最後得出的識別率是什麼意思啊!
識別率指的是通過人臉識別技術識別正確數占識別總數的百分比。
人臉識別演算法分類
基於人臉特徵點的識別演算法(Feature-based recognition algorithms)。
基於整幅人臉圖像的識別演算法(Appearance-based recognition algorithms)。
基於模板的識別演算法(Template-based recognition algorithms)。
利用神經網路進行識別的演算法(Recognition algorithms using neural network)。
神經網路識別
基於光照估計模型理論
提出了基於Gamma灰度矯正的光照預處理方法,並且在光照估計模型的基礎上,進行相應的光照補償和光照平衡策略。
優化的形變統計校正理論
基於統計形變的校正理論,優化人臉姿態;
強化迭代理論
強化迭代理論是對DLFA人臉檢測演算法的有效擴展;
獨創的實時特徵識別理論
該理論側重於人臉實時數據的中間值處理,從而可以在識別速率和識別效能之間,達到最佳的匹配效果
⑺ 人臉識別需要用到哪些演算法
目前最普遍的是主成分分析法(PCA),但是由於人臉是非線性的,PCA這種線性方法往往會丟失人臉上的許多非線性成分,因而後面又出現了流形學習的演算法,具體有這些:PCA、ICA、ISOMAP、KPCA、LPCA等等