天天看點

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

Gabor+SVM:利用Gabor程式實作對人臉的特征提取,然後用SVM進行分類;

1 Gabor

Gabor 特征提取算法可以在不同方向上描述局部人臉特征,對光照、遮擋以及表情變換等情況具有較強的魯棒性,即Gabor算法在異常和危險情況下具有較強的系統生存的能力。

1.1 一維Gabor核:

其由一個高斯核與一個複數波的乘積定義為如下公式:

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

其中w(t)是高斯函數,s(t)是複數波,兩者的一維數學表達式定義如下:

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

我們将s(t)代入一維Gabor公式可得下式:

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

我們将上述一維情況推廣到二維

二維複數波定義如下,其中(x,y)表示空間域坐标,(u0,v0)表示頻率域坐标。

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

二維高斯函數定義如下,其中σx,σy 分别為在x,y兩個方向上的尺度參數,用來控制高斯函數在兩個方向上的“展布”形狀。(x0,y0)為高斯函數的中心點。K為高斯核的幅度的比例。

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

但是由于高斯函數還有旋轉的操作,是以我們對坐标進行如下的變換:

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

由此,我們得到了坐标變換後的高斯函數公式,其中θ表示高斯核順時針旋轉的角度。

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

1.2 二維Gabor核

類似一維 Gabor 核,我們将二維高斯函數與二維複數波相乘,就得到了二維的Gabor核:

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

一個Gabor核能擷取到圖像某個頻率鄰域的響應情況,這個響應結果可以看做是圖像的一個特征。如果我們用多個不同頻率的Gabor核去擷取圖像在不同頻率鄰域的響應情況,最後就能形成圖像在各個頻率段的特征,這個特征就可以描述圖像的頻率資訊了。

下圖展示了一系列具有不同頻率的 Gabor 核,用這些核與圖像卷積,我們就能得到圖像上每個點和其附近區域的頻率分布情況。

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

經過 Gabor 濾波獲到的人臉圖像資訊包含實部和虛部兩部分,分别代表不同局部的人臉特征資訊,為了提取更加全面的人臉特征資訊,一般會采用兩種特征值相結合的方法,比如幅值和相位資訊。但 Gabor 的相位資訊會因為人臉空間位置發生改變而不太穩定。Gabor 幅值資訊變化相對穩定,并且充分反映了人臉圖像的能量譜。是以采取 Gabor 幅值特征。經過Gabor幅值特征處理,得到了人臉 Gabor 特征資訊。5 個尺度,8 個方向的 Gabor 特征提取圖如下所示:

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

2 PCA+SVM

2.1 PCA

主成分分析(Principal Component Analysis, 簡稱PCA)是常用的一種降維方法.

算法步驟:

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

2.2 SVM介紹

支援向量機(Support Vector Machines, 簡稱SVM)是一種二類分類模型.

劃分超平面為:

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】
【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

3 人臉識别步驟

将每張人臉圖檔(m,nm,n)讀取并展開成(m×n,1m×n,1), 假設總有ll張圖檔, 所有排列到一起, 一列為一張圖檔, 最終形成一個(m×n,l)(m×n,l) 的矩陣作為原始資料;

資料中心化: 計算平均臉, 所有列都減去張平均臉;

計算矩陣的協方差矩陣/散布矩陣, 求出特征值及特征向量, 并将其從大到小排列取前K個特征; (到這步特征已将至K維)

計算中心化後的資料在K維特征的投影;

基于上一步的資料進行 One-VS-One Multiclass SVM模型訓練;

讀取用于測試的人臉圖檔, 同訓練圖檔一樣處理;

利用訓練出的模型對測試圖檔進行分類;

計算準确率.

【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】
【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】
【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】
【人臉識别】基于matlab GUI Gabor+SVM比較PCA+SVM人臉識别【含Matlab源碼 685期】

1 matlab版本

2014a

2 參考文獻

[1] 蔡利梅.MATLAB圖像處理——理論、算法與執行個體分析[M].清華大學出版社,2020.

[2]楊丹,趙海濱,龍哲.MATLAB圖像處理執行個體詳解[M].清華大學出版社,2013.

[3]周品.MATLAB圖像處理與圖形使用者界面設計[M].清華大學出版社,2013.

[4]劉成龍.精通MATLAB圖像處理[M].清華大學出版社,2015.

[5]孟逸凡,柳益君.基于PCA-SVM的人臉識别方法研究[J].科技視界. 2021,(07)

[6]張娜,劉坤,韓美林,陳晨.一種基于PCA和LDA融合的人臉識别算法研究[J].電子測量技術. 2020,43(13)

[7]陳豔.基于BP神經網絡的人臉識别方法分析[J].資訊與電腦(理論版). 2020,32(23)

[8]戴骊融,陳萬米,郭盛.基于膚色模型和SURF算法的人臉識别研究[J].工業控制計算機. 2014,27(02)

繼續閱讀