基于PCA和LDA融合算法的性別鑒別
隨著社會發展,快速有效的自動身份驗證應用廣泛。生物特征是人類的內在屬性,具有很強的自身穩定性和個體差異性,所以它是身份驗證最理想的依據。其中,人臉相比其他的人體生物特征具有直接、方便、友好等特點,所以利用人臉特征進行身份驗證是最自然直接的手段,并易于為用戶所接受。性別鑒別作為其中特殊的一部分,可以加強人機交互系統的靈活性,而且可以對特殊環境下與性別相關的地方出入進行限制,收集有價值的統計信息(如每天出入的男性、女性數量,對酒吧、商場、零售業提供有價值的服務)等。
1 性別分類算法
性別分類是一個典型的二類問題,一般方法是通過輸入一副人臉圖像X,通過預處理,特征提取,分類器等過程后來決定X的類別。這里的性別分類算法如圖1所示,它是由預處理、特征提取、分類器3個部分組成。
其中預處理主要是幾何變換和區域直方圖處理。通過這些工作保障了人臉幾何(方向,大小)的不變性?;鞠吮尘暗挠绊懞筒糠止庹沼绊懀岣吡俗R別的精度。然后再預處理的基礎上進行主元分析提取特征,獲得主元分析PAC(Principal components Analysis)主元子空間和線性鑒別分析LDA(Linear Discriminant Analysis)特征子空間,最后利用分離器(人臉樣本訓練獲得)進行分類。
1.1 預處理
該性別分類算法主要采用,幾何處理+整體直方圖處理(HG),幾何處理+區域直方圖處理(RHG)2種方法進行預處理,并進行比較。
1.1.1 幾何處理
1)圖像的縮放
MATLAB圖像處理工具箱中的函數imresize可對圖像進行縮放操作,常用的格式為:
B是縮放后圖片;A是原始圖片;m表示縮放倍數(m>1時圖片放大;m1時圖片縮小);method是縮放的插值方法(默認為最近鄰插值法);[mrows,ncols]指輸出圖片大小為mrowsxncols。
2)圖像的旋轉處理
有些待分類的圖像,人臉是歪斜的,這時要對圖像進行旋轉處理如圖2所示。但旋轉時各像素的坐標會發生變化,使得旋轉之后不能正好落在整數坐標處,需要進行插值,工具箱中函數imrotate方法可以對圖像進行插值旋轉(默認方法是最近鄰插值法)。常用的語法格式為:
其方法中對應的參數意義為:angle為圖像A按照逆時針旋轉的角度,method是選擇的插值方法。
3)圖像的剪切
當只需要圖像中的一部分時,如實驗中只需要人臉圖片,就要對圖像進行剪切處理,在MATLAB圖像處理工具箱中提供函數imcrop用于剪切圖像中的一個矩形子圖,用戶可以根據這個矩形頂點的坐標,也可以用鼠標指針選取這個矩形。該函數常用的格式如下:
其中前3種格式為交互式地對灰度圖像、索引色圖像和真彩色圖像進行剪切。后3種方式是按指定的矩形框rect剪切圖像,rect是一個四元向量[xmin,ymin width heigth],分別表示矩形的左上角坐標、寬度和高度。
1.1. 2 整體直方圖處理(HG)
直方圖方法是建立在概率論的基礎上,是通過改變直方圖的形狀來達到增強圖像對比度的效果。常用的方法有直方圖均衡化和直方圖規定化。直方圖均衡化又稱直方圖平坦化,是將一已知灰度概率密度分布的圖像,經過某種變換成一幅具有均勻灰度概率密度分布的新圖像,其結果是擴展了像元取值的動態范圍,從而達到增強整體對比度的目的。采用MATLAB工具箱中histeq方法對圖像進行直方圖處理。
常用B=histeq(A)。
1.1.3 區域直方圖處理(RHG)
直方圖處理是探討了亮度標準化方法的一般計算模型,為了解決偏光問題,又提出了亮度標準化的分塊策略,采用將圖片等分4份,對偏光嚴重的人臉圖片進行區域直方圖處理后再合成原始大小圖片。針對圖像整體直方圖和分塊區域化后直方圖取得的效果進行比較,如圖3所示。
1.2 PCA算法的基本原理
主成分分析法PCA(Principal Component Analysis)其目的是在數據空間中找到一組向量以盡可能地解釋數據的方差,從而用降維后的低維向量保存原數據中的主要信息,使數據更易于處理。主要原理就是基于對原始數據進行統計分析,利用線性變換,對高維數據進行分析與壓縮。由于人臉結構的相似性,當把人臉圖像樣本進行規一化并抽成一個高維向量后,這些圖像在高維空間中不是隨機或散亂地分布的,
而是存在某種規律。通過主元變換進行人臉識別的方法被稱為“特征臉”方法。
主成分分析是將分散在一組變量上的信息集中到某幾個綜合指標(主成分)上的探索性統計分析方法,以便利用主成分描述數據集的內部結構,實際上起著數據降維的作用。
假設有一幅大小為N1xN2的灰度圖像P(x,y),其中x∈[1,N1],y∈[1,N2],且像素值P(x,y)滿足P(x,y)∈[0,1],x為行索引值,y為列索引值。為了應用PCA技術,首先要將該人臉從二維矩陣轉化為一維向量,這可以通過如下操作達到要求。
將kxl的矩陣C的第1行轉置,然后將C的第2行轉置拼接于其后,如此類推,直到最后將第k行轉置并拼接起來。例如,矩陣在經過上述操作以后,就變為(a11 a12 a13 a21 a22 a23)T。一幅大小為N1xN2的灰度圖像可以被轉換為N1xN2維的向量,因此可以將一幅人臉圖像視為高維空間中的一個點,并用PCA技術使用少數特征來近似描述人臉圖像在高維空間中的分布。
考慮n(N1xN2)維空間中的m個向量x1,x2,…,xm為了降低維數,需要用一個m維的向量x’來近似模擬,其中mn,也就是尋找一個變換。PCA技術使用變換:
通常假設隨機向量(x-μ)為零均值,即μ取值為隨機向量x的期望
WT=(w1,w2,…,wm)為一個mxn的變換矩陣。(x-μ)是一個(nxl)n維的向量。y是m維的向量。這是一個線性的變換,式(1)是個內積,引述內積的定義:
圖4為式(3)的物理意義。
評論