Ⅰ 基於pca和svm的人臉識別用了什麼演算法
分塊處理,對每一分塊圖像進行局部二值模式統計,選取其中出現頻率較高的模式,將所有圖像分塊的LBP直方圖銜接起來作為圖像最終的紋理特徵,然後應用主成分分析法(PCA)對所提取的紋理特徵進行降維處理,最後使用支持向量機分類器來對圖像進
Ⅱ 用PCA演算法進行人臉識別識別率相對較低的原因
我不是大神,但是可能猜測是使用演算法的圖片庫是不同的。10%的差距還是可以接受的。
Ⅲ matlab中PCA的人臉識別,最後得出的識別率是什麼意思啊!
識別率指的是通過人臉識別技術識別正確數占識別總數的百分比。
人臉識別演算法分類
基於人臉特徵點的識別演算法(Feature-based recognition algorithms)。
基於整幅人臉圖像的識別演算法(Appearance-based recognition algorithms)。
基於模板的識別演算法(Template-based recognition algorithms)。
利用神經網路進行識別的演算法(Recognition algorithms using neural network)。
神經網路識別
基於光照估計模型理論
提出了基於Gamma灰度矯正的光照預處理方法,並且在光照估計模型的基礎上,進行相應的光照補償和光照平衡策略。
優化的形變統計校正理論
基於統計形變的校正理論,優化人臉姿態;
強化迭代理論
強化迭代理論是對DLFA人臉檢測演算法的有效擴展;
獨創的實時特徵識別理論
該理論側重於人臉實時數據的中間值處理,從而可以在識別速率和識別效能之間,達到最佳的匹配效果
Ⅳ 人臉識別演算法的分類
人臉識別法主要集中在二維圖像方面,二維人臉識別主要利用分布在人臉上從低到高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變形模型的參數。
Ⅳ 如何結合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 %輸出識別率
函數調用是定義函數,然後用函數名進行調用就可以了
Ⅵ 關於用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).
Ⅶ sklearn里的PCA+SVM人臉識別演算法,到底是PCA什麼
Ⅷ 人臉識別PCA演算法,子空間和投影到子空間怎麼理解
PCA人臉識別是把所有圖像看做是一個樣本,每張圖像看成一行向量,有N張圖像就有N行,所以這個樣本就可以看成是一個N行的矩陣。先求出這個矩陣的協方差矩陣,再求出這個協方差矩陣的特徵值,選擇特徵值中前m個最大的特徵值,這前m個最大的特徵值,每個都對應一個特徵向量(特徵向量也叫做特徵臉),這m個特徵向量組成一個m行的特徵矩陣,這個特徵矩陣就是「子空間」,也叫做特徵臉空間。所謂投影到子空間,就是把樣本中的一張圖像看成一行向量,這個向量乘以特徵矩陣得到一個m維的向量,就是投影的結果,也是這張圖像的特徵值。