朱強軍,許佳煒,王 楊,,張廣海,高 麗
(1.安徽師范大學(xué)皖江學(xué)院 電子工程系,安徽 蕪湖 241008;2.安徽師范大學(xué) 計算機與信息學(xué)院,安徽 蕪湖 241003)
人臉識別與虹膜識別等生物特征識別方法相比,具有非干擾性等優(yōu)點,一直是人工智能、計算機視覺、心理學(xué)等領(lǐng)域的熱門研究。人臉識別包括人臉圖像的預(yù)處理、人臉特征的提取、人臉特征的識別等,特征提取和分類器的好壞直接影響人臉識別的速度和精度。
人臉特征可以分為全局特征和局部特征2類,后者對光照、姿態(tài)等變化的魯棒性更好。韓萍等[1]采用局部二進制模式(Local Binary Patterns,LBP)特征對真實的機場區(qū)域進行了提取。孫維亞等[2]利用LBP特征算法對目標(biāo)的ROI區(qū)域進行紋理計算,實現(xiàn)了多視點的目標(biāo)識別。王紅星等[3]通過計算中心像素與其鄰域內(nèi)各像素差值平方和的大小,采用不同的閾值計算LBP值,實現(xiàn)了對圖像局部特征的準(zhǔn)確描述及降低噪聲點的影響。Ahonen等[4]提出了分塊局部二進制模式(Multi-block Local Binary Pattern,MB-LBP)特征提取方法。宋艷萍等[5]利用不同尺度的MB-LBP算子組合,提取圖像紋理特征并構(gòu)造了人臉圖像的3階張量模型。支持向量機(Support Vector Machine,SVM)分類器在解決非線性和小樣本問題上有較大優(yōu)勢,但受SVM核函數(shù)及其參數(shù)的限制[6]。Huang等[7]利用遺傳算法(Genetic Algorithm,GA)優(yōu)化SVM參數(shù),獲得了較好的全局尋優(yōu)能力,但分類精度低、訓(xùn)練時間長,容易陷入局部最優(yōu)。陳晉音等[8]利用粒子群算法(Particle Swarm Optimization,PSO)尋找SVM參數(shù),具有尋優(yōu)精度高的優(yōu)點,但尋優(yōu)速度慢,也容易陷入局部最優(yōu)。麻雀搜索算法[9](Sparrow Search Algorithm,SSA)優(yōu)化SVM相關(guān)參數(shù),具有求解精度高、收斂速度快、穩(wěn)定性好等優(yōu)點。
在上述研究的基礎(chǔ)上,本文提出一種基于分塊LBP特征和SSA優(yōu)化SVM的人臉識別算法。算法首先對圖像分塊,提取每個子分塊的統(tǒng)一化LBP特征并進行特征融合;再使用快速主成分分析法對圖像進行降維處理,獲得圖像特征;其次,使用SSA優(yōu)化SVM分類器的核函數(shù)參數(shù)和懲罰系數(shù);最后,將人臉圖像特征輸入到優(yōu)化后的SVM分類器進行分類。
LBP是一種高效的圖像局部紋理特征提取算法,能反映每個像素與其周圍像素的關(guān)系,具有分類能力強、旋轉(zhuǎn)不變性、局部魯棒性好、計算復(fù)雜度小等特性。LBP的主要思想是以圖像中某一點與其鄰域像素的相對灰度作為響應(yīng),即以圖像中某一像素點灰度為閾值,對其周圍的鄰域進行二值化,得到1個二進制數(shù)。該二進制數(shù)就是中心像素點的LBP值。為了在不同大小和形狀上使用LBP算子,利用圓形的鄰域和雙線性插值運算可以得到任意數(shù)目(P)和半徑(R)的鄰域像素點,記作LBPP,R。LBP特征提取原理如圖1所示。
圖1 LBP特征提取原理
(1)
(2)
式(1)~(2)中,(xC,yC)為中心點C的位置坐標(biāo);IC為中心點的灰度值;Ii(i=0,1,2,…,6,7)為IC鄰域內(nèi)點的灰度值。
SSA是模擬麻雀尋找食物以及逃避捕食者行為的群智能優(yōu)化算法[9]。該算法設(shè)定種群中有發(fā)現(xiàn)者與加入者2類麻雀,加入者會追隨發(fā)現(xiàn)者向著食物充盈的區(qū)域移動。麻雀覓食位置的好壞決定了個體所具備能量的高低,能量越高則代表適應(yīng)度值越好。此外,在種群中按比例隨機選取部分作為預(yù)警者,預(yù)警者會根據(jù)具體的情況更新位置。
發(fā)現(xiàn)者位置更新公式為:
(3)
加入者位置更新公式為:
(4)
預(yù)警者位置更新公式為:
(5)
SVM算法的核心思想是尋找一個最優(yōu)超平面,將樣本進行正確分類,并使分類間隔最大、模型泛化能力最強。高斯核函數(shù)適應(yīng)性好,能直接反映樣本間的距離,常被選作為SVM的核函數(shù)。SVM分類效果主要取決于懲罰系數(shù)C和核函數(shù)參數(shù)σ。因此,采用SSA算法對SVM參數(shù)進行優(yōu)化,獲取合適的SVM參數(shù),得到最優(yōu)的SVM模型。SSA優(yōu)化SVM參數(shù)的算法流程如圖2所示。
1)初始化SSA參數(shù)以及SVM相關(guān)參數(shù)。設(shè)n為種群數(shù)量;Imax為最大迭代次數(shù);PD,SD分別為發(fā)現(xiàn)者、預(yù)警者比例系數(shù);ST為安全值;懲罰系數(shù)C和核函數(shù)參數(shù)σ的下邊界為bl、上邊界為bu。
2)計算初始麻雀的適應(yīng)度值,確定發(fā)現(xiàn)者和加入者數(shù)量。按照發(fā)現(xiàn)者比例系數(shù)PD,在種群中選取一些適應(yīng)值較高的麻雀作為發(fā)現(xiàn)者,未被選取的麻雀作為加入者。明確麻雀中最優(yōu)適應(yīng)度值fg和最差適應(yīng)度值fw所對應(yīng)的位置Xbest和Xworst。
3)發(fā)現(xiàn)者和加入者位置更新。發(fā)現(xiàn)者根據(jù)公式(3)更新自己位置,加入者根據(jù)公式(4)更新自己位置。
4)更新適應(yīng)度值,尋找最優(yōu)、最差位置。更新麻雀位置適應(yīng)度值,并確定麻雀中最優(yōu)適應(yīng)度值fg和最差適應(yīng)度值fw所對應(yīng)的位置Xbest和Xworst。
5)按照預(yù)警者比列系數(shù)SD,在種群中隨機選取麻雀作為預(yù)警者,并根據(jù)公式(5)更新預(yù)警者的位置。
6)更新所有麻雀適應(yīng)度值,確定最優(yōu)適應(yīng)度值fg和對應(yīng)的位置Xbest。
7)判斷是否達到最大迭代次數(shù)。如果達到最大迭代次數(shù),則輸出最優(yōu)懲罰系數(shù)和核函數(shù)參數(shù),獲得最優(yōu)SVM模型,優(yōu)化算法結(jié)束,否則跳轉(zhuǎn)到第3步。
圖2 SSA優(yōu)化SVM參數(shù)的算法流程
為了驗證本識別算法的性能,在AMD Ryzen 74800H,2.90 GHz,16 G內(nèi)存、64位Win11操作系統(tǒng)中,采用Matlab R2020b編程環(huán)境進行實驗,SVM采用臺灣大學(xué)林智仁教授等開發(fā)設(shè)計的集成庫LIBSVM3.24。人臉數(shù)據(jù)庫采用ORL數(shù)據(jù)庫,共有40人,每人10幅,每幅像素大小為119×92。
對ORL數(shù)據(jù)庫中每幅人臉圖像進行4×4分塊,每塊進行統(tǒng)一化LBP特征提取,每幅人臉圖像的LBP特征向量維數(shù)為1×944,通過快速PCA進行降維處理,獲得圖像特征,再進行分類。降維處理后,維度與分類錯誤率如圖3所示。由圖3可以看出,當(dāng)降到50維時,訓(xùn)練樣本的分類錯誤率最低。
圖3 維度與分類錯誤率
SSA優(yōu)化算法參數(shù)的初始值設(shè)定:種群數(shù)量為50,最大迭代次數(shù)為100,發(fā)現(xiàn)者比例80%,預(yù)警者比例20%,預(yù)警值為0.8,SVM參數(shù)(C,σ)的下邊界為[2-8,2-8],上邊界為[28,28],優(yōu)化算法以SVM的分類錯誤率為尋優(yōu)的適應(yīng)度值。在此基礎(chǔ)上,使用SSA,GA,PSO算法分別優(yōu)化SVM參數(shù),得到迭代次數(shù)與適應(yīng)度關(guān)系如圖4所示。3種算法優(yōu)化SVM參數(shù)的尋優(yōu)時間見表1。
圖4 3種算法優(yōu)化SVM參數(shù)的迭代次數(shù)與適應(yīng)度關(guān)系
表1 3種算法優(yōu)化SVM參數(shù)的尋優(yōu)時間
由圖4可以看出,SSA算法在3次迭代以后適應(yīng)度下降為0,而PSO算法需要41次以上迭代才能下降為0,GA算法經(jīng)過100次迭代后適應(yīng)度也沒有下降為0。從尋優(yōu)時間上來看,SSA算法使SVM達到最優(yōu)狀態(tài)共耗時63.492 s;PSO算法單次迭代時間為11.271 s,最優(yōu)狀態(tài)共耗時450.84 s;GA算法迭代100次達到最優(yōu)狀態(tài)的總時間為1 263.54 s。由此可見,在相同的初始條件下,SSA算法比PSO和GA算法優(yōu)化SVM參數(shù)的效果更好。
分別從ORL人臉庫中任意選取每個人i幅圖像(i∈[3,9]的整數(shù))為訓(xùn)練樣本,在最優(yōu)參數(shù)下,對SVM進行訓(xùn)練,獲得SVM模型,剩下的圖像依次標(biāo)記為i+1幅,i+2幅,…,9幅,10幅作為測試集。人臉識別算法識別率測試結(jié)果見表2。不同人臉識別算法的識別率見表3。由表2和表3可以看出,本算法隨著訓(xùn)練樣本增多,識別率呈上升趨勢。當(dāng)訓(xùn)練樣本數(shù)超過5幅/人時,識別率為100%。當(dāng)訓(xùn)練樣本≥3幅/人時,算法平均識別率為98.25%。與其他幾種人臉識別算法比較,本算法有更高的識別精度和效率。
表2 人臉識別算法識別率測試結(jié)果
表3 不同人臉識別算法的識別率
基于B-LBP特征和SSA優(yōu)化SVM的人臉識別算法采用統(tǒng)一化LBP算子對每個子分塊提取圖像特征,通過特征融合、降維處理獲得人臉圖像特征,利用SSA搜索SVM最佳參數(shù),提高了算法的抗干擾性和魯棒性。與其他人臉識別算法進行比較,本算法的識別精度和速度都有很大的提高。