朱強(qiáng)軍,汪慧蘭,張廣海
(1.安徽師范大學(xué)皖江學(xué)院 電子工程系,安徽 蕪湖 241008;2.安徽師范大學(xué) 物理與電子信息學(xué)院,安徽 蕪湖 241000)
隨著智能科學(xué)技術(shù)的發(fā)展,生物特征識別技術(shù)受到前所未有的關(guān)注,人臉識別技術(shù)作為生物特征的一種,由于非干擾性、唯一性等優(yōu)點在安防、門禁系統(tǒng)、金融等領(lǐng)域中有著重大的應(yīng)用前景.目前人臉識別技術(shù)主要包含4種類別:基于幾何特征的方法[1],基于代數(shù)特征的方法[2],基于模板的方法[3],基于人工神經(jīng)網(wǎng)絡(luò)的方法[4].這些人臉識別方法各有優(yōu)點,但都需要大量的樣本訓(xùn)練,才能有較好的識別效果.1張人臉圖像含有豐富的信息,但只有部分信息在識別過程中起關(guān)鍵作用,因此,在識別前,需要對人臉圖像進(jìn)行預(yù)處理,提取有用的特征信息,從而提高人臉識別速度、精度.主成分分析法(Principal Component Analysis,PCA)[5]是將高維空間數(shù)據(jù)映射到低維空間,實現(xiàn)數(shù)據(jù)的降維,減少了冗余的數(shù)據(jù),保留了原始數(shù)據(jù)的獨特性,這樣既方便了計算,又有利于分類.支持向量機(jī)(Support Vector Machine,SVM)[6-7]分類器能夠向高維空間映射,具有良好的泛化能力,在解決非線性以及小樣本問題上具有良好的效果,但這些效果會受到核函數(shù)及核函數(shù)參數(shù)制約,特別是SVM的參數(shù)制約著人臉識別算法的精度.國內(nèi)外專家學(xué)者已經(jīng)這方面展開的大量的研究,但至今沒有一種公認(rèn)統(tǒng)一的最優(yōu)方法.因此,本文提出了一種快速主成分分析法聯(lián)合優(yōu)化參數(shù)支持向量機(jī)分類器相結(jié)合的算法(Algorithm combining fast PCA with optimized parameter SVM classifier,fast PCA-SVM),通過實驗驗證,該算法優(yōu)于傳統(tǒng)的人臉識別算法.
主成分分析法主要是降低數(shù)據(jù)維度,并保持原有的數(shù)據(jù)特征.假設(shè)有n個d維空間樣本向量構(gòu)成矩陣X=(x1,x2,…,xn),其中xi=(xi1,xi2,…,xin)T∈Rd,將它們降低到d′(d′ (1) 則在d′維空間中該向量可以表示成: (2) 2) 在d′維空間內(nèi)平方誤差準(zhǔn)則函數(shù)為: (3) (4) 在PCA算法中,當(dāng)維度d比較高時,計算的復(fù)雜度非常高,計算消耗大量時間,還會因計算量過大導(dǎo)致內(nèi)存不足而出錯.因此,本文采用快速PCA算法. 設(shè)Zn×d為樣本矩陣X的每個樣本減去樣本均值m后得到的矩陣,協(xié)方差矩陣為S=(ZTZ)d×d與矩陣R=(ZZT)n×n有相同的非零本征值.正常情況下,樣本個數(shù)n遠(yuǎn)遠(yuǎn)小于樣本維度d,所以矩陣R的大小也遠(yuǎn)遠(yuǎn)小于矩陣S的大小.假設(shè)矩陣R=(ZZT)n×n本征向量為v,則有(ZZT)v=λv,等式兩側(cè)同時左乘ZT,變換得到(ZTZ)(ZTv)=λ(ZTv),即S(ZTv)=λ(ZTv),得到協(xié)方差矩陣S本征向量ZTv,也就是說通過計算尺寸小的矩陣R本征向量能到尺寸大的S本征向量,從而大幅度降低PCA算法的計算量. 支持向量機(jī)是一種新的模式識別方法,它在解決小樣本問題上有著獨特的優(yōu)勢,應(yīng)用廣泛[8].該算法主要將線性不可分?jǐn)?shù)據(jù)映射到高維空間變成線性可分,尋找最優(yōu)的超平面,并且使得分類后數(shù)據(jù)盡可能地遠(yuǎn)離超平面,該超平面分類效果較好.人臉識別本質(zhì)是一個非線性分類問題,可以采用核函數(shù)支持向量機(jī)算法對人臉分類,其流程如下. 設(shè)訓(xùn)練樣本D={(x1,y1),(x2,y2),…,(xn,yn)},xi∈Rm,yk∈{1,-1},k=1,2…n.其中xi是為第i樣本的多維特征向量. 1) 選擇非線性核函數(shù)K(xi,yj)以及錯誤分類懲罰參數(shù)C,構(gòu)造目標(biāo)函數(shù). (5) (6) 5) 獲得最優(yōu)分類超平面f(x)=sgn{(w*·x)+b*}. 在尋優(yōu)優(yōu)化方法中,交叉驗證法是一種常用適用于數(shù)據(jù)量不大的數(shù)據(jù)集、能有效避免過學(xué)習(xí)和欠學(xué)習(xí)狀態(tài)出現(xiàn)的優(yōu)化算法[9].因此,通過K折交叉驗證(K-fold cross-validation method,K-CV)算法聯(lián)合改進(jìn)的網(wǎng)格搜索法[10]優(yōu)化SVM分類器的核函數(shù)參數(shù)和懲罰系數(shù).K-CV算法是將原始數(shù)據(jù)分成K組,依次每組數(shù)據(jù)作為測試集,剩下K-1組數(shù)據(jù)的作為訓(xùn)練集,通過驗證獲得K個分類模型分類精度的平均值,該平均值作為K-CV算法下的分類器的分類精度,也是分類器的性能指標(biāo).通過增加網(wǎng)格搜索步長,即大步長搜索,結(jié)合K-CV算法粗略的判斷核函數(shù)參數(shù)γ和懲罰系數(shù)C的范圍,優(yōu)化SVM;在粗略判斷的核函數(shù)參數(shù)γ和懲罰系數(shù)C的范圍內(nèi),減小網(wǎng)格搜索步長精準(zhǔn)搜索,即小步長搜索,優(yōu)化SVM,獲得最優(yōu)的核函數(shù)參數(shù)γ和懲罰系數(shù)C,該方法可以提高SVM參數(shù)搜索速度.SVM參數(shù)最優(yōu)化過程如圖1所示. 圖1 SVM參數(shù)最優(yōu)化過程Fig.1 SVM parameter optimization process 結(jié)合主成分分析法和支持向量機(jī)技術(shù),提出一種新的人臉識別算法,該算法利用快速的主成分分析法提取人臉圖像特征并降維處理,通過交叉驗證聯(lián)合改進(jìn)的網(wǎng)格搜索法優(yōu)化支持向量機(jī)分類器參數(shù),將提取的人臉特征訓(xùn)練分類器,獲得支持向量機(jī)分類器模型.為了驗證算法,將人臉庫分別兩組:一組為訓(xùn)練樣本,另一組為測試樣本.訓(xùn)練樣本分別取每類i幅圖像,每類剩下j幅圖像構(gòu)成測試樣本,分別對算法進(jìn)行訓(xùn)練和測試,求出平均人臉識別率.算法主要步驟如下. 1) 讀入人臉庫所有圖像,將其分成訓(xùn)練樣本和測試樣本,利用fast PCA提取人臉特征并降維. 2) 在不同的維度和分組數(shù)條件下,利用交叉驗證算法和改進(jìn)的網(wǎng)格搜索算法尋找SVM最優(yōu)參數(shù),確定最佳維度、最優(yōu)分組數(shù)和最優(yōu)參數(shù). 3) 將步驟1)獲得訓(xùn)練樣本人臉特征和步驟2)獲得的最優(yōu)參數(shù)對SVM分類器進(jìn)行訓(xùn)練. 4) 將步驟1)獲得測試樣本人臉特征,輸入SVM分類器中測試. 5) 計算測試中人臉識別率,調(diào)整訓(xùn)練樣本數(shù)目和測試樣本數(shù)目,重復(fù)上述步驟,計算平均人臉識別率. 實驗采用ORL人臉數(shù)據(jù)庫,ORL數(shù)據(jù)庫共有400幅人臉圖像,每人10幅,圖像大小為119×92,ORL人臉庫中部分人臉圖像如圖2所示.實驗采用Matlab R2017b編程環(huán)境,在配置為Intel(R)Core2-E7500、2.93 GHz、4 G內(nèi)存、64位Win7操作系統(tǒng)的計算機(jī)上進(jìn)行. 圖2 ORL人臉庫中部分人臉圖像Fig.2 Some face images in ORL face database 設(shè)定將每幅圖像降到60維以下,通過fast PCA算法對人臉圖像進(jìn)行降維并提取特征,采用最大最小規(guī)格化處理到[-1,1]范圍內(nèi),結(jié)合K-CV算法優(yōu)化參數(shù)的SVM模型,確定最優(yōu)維度以及最優(yōu)分組K.實驗將人臉圖像從5維度到60維度,每隔5維度取1次,共計12組;實驗分組K值從3依次取到22,共計20組;在不同的維度和不同分組下,人臉識別率隨著維度變化和分組值變化關(guān)系如表1所示. 表1 人臉識別率隨著維度變化和分組值變化關(guān)系(人臉識別率/%)Tab.1 The relationship between the face recognition rate and the change of the dimensionality and the change of the grouping value (face recognition rate/%) 從表1中可知,45、50、55維能達(dá)到最高的識別率99.00%,并且有K≥9時,人臉識別率不再隨著K變化而變化.從表1中還能得到各維度與人臉平均識別率關(guān)系,如表2所示. 表2 維度與人臉平均識別率關(guān)系Tab.2 Relationship between dimensions and average face recognition rate 從表2可知,人臉圖像降至45維度時人臉平均識別率最高,達(dá)到98.7875%.因此,通過fast PCA算法將人臉圖像降維至45維度,采用9-CV算法優(yōu)化SVM參數(shù). 傳統(tǒng)的網(wǎng)格搜索法是一種最基本的參數(shù)優(yōu)化算法[11],該算法在指定參數(shù)范圍情況下,小步長搜索時速度慢、耗時長等缺點.通過K-CV算法聯(lián)合改進(jìn)的網(wǎng)格搜索法優(yōu)化SVM的懲罰參數(shù)C和核函數(shù)參數(shù)γ,克服了傳統(tǒng)的網(wǎng)格搜索法的缺點,提高了訓(xùn)練樣本較少時人臉識別率和系統(tǒng)的泛化能力. 首先,采用大步長網(wǎng)格搜索,縮小待優(yōu)化參數(shù)的范圍.假設(shè)懲罰參數(shù)C和核函數(shù)參數(shù)γ的范圍都設(shè)置為[2-8,28],步長設(shè)為1,獲得最優(yōu)C和γ的值隨著K值的變化關(guān)系、參數(shù)搜索結(jié)果等高線圖、參數(shù)搜索結(jié)果3D視圖.最優(yōu)C和γ的值隨著K值的變化關(guān)系如表3所示,K=9時,參數(shù)搜索結(jié)果等高線圖如圖3所示,參數(shù)搜索結(jié)果3D視圖如圖4所示. 表3 最優(yōu)的C和γ取值隨著K值的變化關(guān)系(大步長)Tab.3 The optimal values of C and γ vary with the value of K (large step size) 由表3、圖3和圖4可知,K=9時,獲得最優(yōu)C和γ的值,即C=2、γ=0.125;C的范圍為[2-1,23],γ的范圍為[2-5,20].此時,人臉識別率達(dá)到99.00%. 圖3 參數(shù)搜索結(jié)果等高線圖 圖4 參數(shù)搜索結(jié)果3D視圖Fig.3 Contour map of parameter search results Fig.4 3D view of parameter search results 其次,采用小步長搜索,確定最優(yōu)參數(shù).在參數(shù)縮小的范圍內(nèi),即C在[2-1,23]范圍內(nèi)、γ在[2-5,20]范圍內(nèi),設(shè)定步長為0.2,重新搜索,獲得最優(yōu)的C和γ值隨著K值的變化關(guān)系如表4所示. 表4 最優(yōu)的C和γ值隨著K值的變化關(guān)系(小步長)Tab.4 The optimal values of C and γ vary with the value of K (small step size) 從表4可知,當(dāng)K=9時,獲得最優(yōu)C和γ的值,即C=1.148 7、γ=0.094 7.此時,人臉識別率達(dá)到99.00%. 在最優(yōu)分組K=9的情況下,設(shè)C的范圍為[20,22],γ的范圍為[2-5,20],步長都設(shè)為0.2,分別用不同的網(wǎng)格算法搜索最優(yōu)參數(shù),統(tǒng)計6次搜索到最優(yōu)參數(shù)消耗平均時間如表5所示.從表5可知,在相同的識別率條件下,改進(jìn)后的算法尋找最優(yōu)參數(shù)耗時大幅度降低. 表5 算法尋優(yōu)時間比較Tab.5 Comparison of algorithm optimization time 在ORL人臉庫上對算法進(jìn)行測試,從每個人中選擇i(i=1,2,…,8,9)幅圖像作為訓(xùn)練樣本,在最優(yōu)參數(shù)下,對SVM進(jìn)行訓(xùn)練,獲得SVM模型,剩下的j(j=10-i)幅作為測試樣本,依次標(biāo)記為i+1幅,i+2幅,…,10幅,測試結(jié)果如表6所示,平均識別率與訓(xùn)練樣本數(shù)之間關(guān)系如圖5所示. 表6 測試結(jié)果Tab.6 Test results % 由表6、圖5可知,當(dāng)訓(xùn)練樣本數(shù)超過5幅/人時,識別率為100%;當(dāng)訓(xùn)練樣本數(shù)只有1幅/人時,識別率能達(dá)到87.78%,該算法平均識別率為96.94%.該平均識別率比文獻(xiàn)[12]、文獻(xiàn)[13]、文獻(xiàn)[14]、文獻(xiàn)[15]、文獻(xiàn)[16]、文獻(xiàn)[17]中的人臉識別率分別提高了3.94%、8.92%、0.69%、5.94%、0.61%、2.34%、3.44%.由此可見,該算法與一般的SVM算法及PCA算法比較,平均識別率提高了0.61%~8.92%,具有更高的識別率.不同的人臉識別算法比較如表7所示. 圖5 平均識別率與訓(xùn)練樣本數(shù)之間關(guān)系Fig.5 The relationship between the average recognition rate and the number of training samples 表7 不同人臉識別算法比較Tab.7 Comparison of different face recognition algorithms 通過改進(jìn)傳統(tǒng)的人臉識別PCA算法,獲得fast PCA算法,結(jié)合SVM技術(shù)實現(xiàn)新人臉識別算法.該算法利用交叉驗證法和改進(jìn)的網(wǎng)格搜索法尋找SVM的最優(yōu)參數(shù)、fast PCA降維的最佳維度以及交叉驗證的最優(yōu)分組.在最優(yōu)的條件下,重新對SVM進(jìn)行訓(xùn)練.在ORL人臉庫上實驗驗證,該算法提高了SVM參數(shù)搜索效率,在訓(xùn)練樣本較少時,保持較高的識別率,當(dāng)每類訓(xùn)練樣本超過5幅時,識別率為100%,算法平均識別率為96.94%,與一般算法比較具有更高的識別率.1.2 快速PCA算法
1.3 支持向量機(jī)(SVM)算法
2 SVM參數(shù)最優(yōu)化
3 算法實現(xiàn)
4 實驗過程與結(jié)果分析
4.1 最佳維度和最優(yōu)分組K的確定
4.2 參數(shù)優(yōu)化
4.3 優(yōu)化時間比較
4.4 算法測試與算法比較
5 結(jié)論