羅志剛
(南方電網(wǎng)有限責任公司廣東佛山供電局,廣東佛山 528000)
隨著數(shù)字化和移動支付的日益普及,通過傳統(tǒng)的密碼和口令卡來保護機密數(shù)據(jù)變得愈發(fā)困難。由于生物識別技術(shù)為用戶提供了更高水平的安全性,研究人員將重點放在了生物識別技術(shù)上[1]。生物特征識別是指利用人的生理和行為特征(如指紋、面部、虹膜、聲音、步態(tài)等)進行身份識別[2]。通常,人臉識別由于其獨特性、不變性和低成本等特點,已被廣泛應(yīng)用于移動支付、登機識別等個人身份認證[3]。然而,由于尺寸、種族、光照、姿勢、表情和年齡的不同,人臉識別難以準確實現(xiàn)。目前,人臉識別的研究主要集中在基于紋理的匹配,紋理分析最重要的是利用鄰域來表達人臉圖像中存在的強度值空間行為。局部二值模式(LBP)是從人臉圖像中提取最具識別性特征的有效方法[4]。
在計算機視覺領(lǐng)域,為了降低特征空間的維數(shù)并提高識別精度,消除冗余以及不相關(guān)面部特征的方法主要有遺傳算法(GA)[5]、粒子群優(yōu)化算法(PSO)[6]和蟻群優(yōu)化算法(ACO)[7]等進化算法。K 近鄰(KNN)在統(tǒng)計估計和模式識別中已廣泛應(yīng)用,并且文獻[8]已經(jīng)證明KNN 是一種簡單且高效的人臉識別算法。在基于種群的優(yōu)化算法中,由于PSO不存在局部極小問題,因此可用于模式識別中的參數(shù)優(yōu)化。
文中提出了一種基于PSO-KNN 算法的人臉識別方法,從人臉圖像中提取最具識別性的LBP 特征,并利用GA、PSO 和ACO 等進化優(yōu)化算法降低特征空間的維數(shù),并研究了PSO 算法在KNN 算法中對K 值的優(yōu)化,提出的具有元啟發(fā)式算法最佳特征的PSOKNN 可以準確識別個體。最后,利用提出的PSOKNN 算法對人臉進行生物特征識別。
特征檢測及其提取是生物特征人臉識別中的基礎(chǔ)工作[9]。特征作為圖像的可量化度量,其指定了圖像的顏色、形狀、紋理或上下文相關(guān)信息的重要特征。其中,紋理是生物特征圖像中最強大的特征描述符。紋理以規(guī)則的間隔定義信息的重復模式或結(jié)構(gòu)來排列。文中利用已廣泛應(yīng)用于各種模式識別問題的局部二值模式(LBP)來處理紋理描述符的方法,從生物特征人臉圖像中提取最具區(qū)別性的特征。所提取的LBP 特征對光照效果、姿態(tài)、表情和人的年齡具有不變性。
人臉圖像I的LBPP,R運算符定義為:

其中,s(x) 為閾值函數(shù),Ic為中心像素的強度值,Ip為其相鄰像素的值,P為所考慮的相鄰像素數(shù)量,R為相鄰像素的半徑。設(shè)M×N為人臉圖像的大小,在計算每個像素(i,j)的LBP 模式之后,通過構(gòu)建直方圖來表示整個人臉圖像:

其中,Z表示人臉圖像中LBP 的最大值。
隨著許多基于種群的優(yōu)化算法的出現(xiàn),研究人員將研究重點放在選擇最優(yōu)特征[10]上。通過識別人臉圖像中最重要的特征來構(gòu)建具有魯棒性的人臉識別模型。文中采用了元啟發(fā)式算法(例如GA、PSO和ACO)來選擇最優(yōu)特征。
GA 作為進化優(yōu)化算法,通過對種群的個體進行操作來尋找最優(yōu)解[11],其可以應(yīng)用于具有噪聲且不連續(xù)的數(shù)據(jù)集。通過隨機創(chuàng)建候選解方案,選擇LBP 特征作為KNN 分類器的輸入,并計算適應(yīng)度函數(shù)(即準確性)。算法1 給出了用于選擇最優(yōu)LBP 特征的GA 算法的概述。
算法1:人臉特征選擇的遺傳算法
輸入:原始特征集
輸出:簡化特征集
步驟1:隨機生成一個個體種群;
步驟2:利用KNN 分類器模型對種群進行評估;
步驟3:當不滿足停止條件時,選擇最優(yōu)個體進行繁殖;
步驟4:對選擇的個體進行交叉和變異操作;
步驟5:評估新個體的適應(yīng)度(即準確性);
步驟6:將最差的個體替換為準確性較低的個體;
步驟7:返回最優(yōu)特征子集。
PSO 是基于種群的元啟發(fā)式優(yōu)化算法[12]。在PSO 中,每個粒子的位置代表特征選擇問題的候選解(即特征向量)。算法2 給出了用于選擇最優(yōu)LBP特征的PSO 算法的概述。
算法2:人臉特征選擇的粒子群算法
輸入:原始特征集
輸出:簡化特征集
步驟1:隨機初始化粒子;
步驟2:利用KNN 分類器模型對粒子進行評估;
步驟3:當不滿足停止條件時,根據(jù)KNN 的適應(yīng)度(即準確性)計算全局最優(yōu)解gB和局部最優(yōu)解pB;
步驟4:計算每個粒子的速度并更新位置;
步驟5:返回最優(yōu)特征子集。
ACO 是從螞蟻覓食行為中得到的啟發(fā),在找到食物來源后,螞蟻會在路徑中放置一些信息素并間接地傳遞給其他螞蟻有關(guān)食物來源的有用信息[13]。算法3 給出了用于選擇最優(yōu)LBP 特征的ACO 算法的概述。
算法3:人臉特征選擇的蟻群優(yōu)化算法
輸入:原始特征集
輸出:簡化特征集
步驟1:隨機初始化信息素;
步驟2:利用KNN 分類器模型對路徑進行評估;
步驟3:當不滿足停止條件時,使用最佳k個螞蟻的特征子集來更新信息素蹤跡;
步驟4:返回最優(yōu)特征子集。
螞蟻做出路徑選擇的概率為:

其中,ρ為信息素蒸發(fā)系數(shù)。
KNN 算法是一種最簡單的基于實例的學習算法,其優(yōu)點是能夠從大型的訓練集中快速找到最接近的目標[14],并且進行更有針對性的學習。與常用的決策表(DT)、MLP、SVM 等方法相比,KNN 算法具有執(zhí)行時間短、識別準確率高等優(yōu)點,因此更適合對人臉圖像進行識別。通常,KNN 利用距離度量從訓練集中找到最接近的人臉。算法4 給出了用于人臉識別的KNN 算法的概述。
算法4:基于KNN 算法的人臉識別
輸入:查詢?nèi)四槇D像
輸出:匹配人臉圖像
步驟1:數(shù)據(jù)集中的每個人都分配了一個類標簽C={P1,P2,…,Pn};
步驟2:初始化K(K=2,3,…)值和距離矩陣;
步驟3:使用距離矩陣找到輸入樣本的K近鄰;
步驟4:運用大數(shù)表決法選出最普通的人臉;
步驟5:將最普通的人臉標簽分配給測試樣本。
PSO 算法以鳥群和魚群的社會行為為驅(qū)動,PSO的基本操作為交流和學習。在PSO 中,每個粒子的位置代表了所考慮優(yōu)化問題的候選解。在每次迭代中,每個粒子都通過改變其速度來搜索更好的位置。每個粒子的位置P和速度V的更新為:

算法5:基于PSO-KNN 算法的人臉識別
輸入:查詢?nèi)四槇D像
輸出:匹配人臉圖像
步驟1:數(shù)據(jù)集中的每個人都分配了一個類標簽C={P1,P2,…,Pn};
步驟2:初始化PSO 參數(shù)(種群規(guī)模N、慣性權(quán)重W、個體學習系數(shù)C1、全局學習系數(shù)C2);
步驟3:利用隨機K值訓練KNN 算法,并計算適應(yīng)度函數(shù)的精度;
步驟4:根據(jù)適應(yīng)度函數(shù)計算每個粒子的位置;
步驟5:如果粒子當前位置優(yōu)于其先前的最佳位置,則通過以下公式更新粒子的位置:

步驟6:根據(jù)粒子先前的最佳位置確定種群中的最優(yōu)粒子。
步驟7:使用式(10)更新粒子的速度:

步驟8:將粒子移動到其更新位置;
步驟9:轉(zhuǎn)到步驟3,直到滿足停止條件或達到最大迭代次數(shù);
步驟10:利用優(yōu)化的K值訓練KNN 算法,并找到輸入樣本的K個近鄰;
步驟11:運用大數(shù)表決法選出最普通的人臉;
步驟12:將最普通的人臉標簽分配給查詢樣本。
文中提出并討論了用于人臉識別的PSO-KNN算法,并在實時人臉數(shù)據(jù)集和標準的ORL 人臉數(shù)據(jù)集上進行了實驗,該方法進一步減少了LBP 得到的特征,從而更好地識別人臉圖像。
使用圖1 所示的200 萬像素羅技網(wǎng)絡(luò)攝像頭,從155名受試者中各創(chuàng)建10個不同姿勢的面部數(shù)據(jù)集。

圖1 人臉圖像傳感器
從受試者獲取的人臉圖像樣本如圖2 所示,每個圖像的大小從144 kb 到150 kb 不等。

圖2 從受試者身上采集的人臉圖像樣本
所提方法也在包含400 張人臉圖像的標準ORL人臉數(shù)據(jù)集上進行了驗證,如圖3 所示。

圖3 ORL數(shù)據(jù)集的人臉圖像樣本
文中比較了PSO-KNN 算法與決策表、SVM、MLP、KNN 等標準基準分類器的性能,這些算法會接收到從基于種群優(yōu)化技術(shù)(如GA、PSO 和ACO)獲得的簡化特征集。GA、PSO 和ACO 算法的參數(shù)分別如表1~3 所示。

表1 GA參數(shù)

表2 PSO參數(shù)

表3 ACO參數(shù)
文中使用5 種相似性度量指標來分析不同最近鄰對KNN 算法的性能影響。假設(shè)X=(X1,X2,…,Xn)和Y=(Y1,Y2,…,Yn)分別表示真實人臉圖像的特征樣本和算法所選擇人臉圖像的特征樣本。歐氏距離(Euclidean)定義為:

其中,Cov(X,Y)為X和Y之間的方差,Std(X)和Std(Y) 分別為X和Y的標準差。馬氏距離(Mahalanobis)定義為:

其中,S為X和Y之間的樣本協(xié)方差矩陣。
對于實時人臉數(shù)據(jù)集,表4 給出了不同相似性度量下KNN 算法的準確率性能分析。

表4 不同相似性度量下KNN算法的準確率性能分析
由表4 可見,采用KNN 算法,識別率最高為92.38%,最低為81.03%。在相似性度量中,余弦相似性優(yōu)于其他度量。在余弦相似條件下,最高和最低準確率分別為92.38%和84.19%。
文中對比了提出的PSO-KNN 與決策表(DT)、支持向量機(SVM)、多層感知器(MLP)和傳統(tǒng)的KNN 等基準識別技術(shù)的準確率分析結(jié)果,如表5 所示。

表5 PSO-KNN算法與現(xiàn)有基準算法準確率比較分析
由表5 可見,DT、SVM、MLP、KNN 和PSO-KNN與實際特征集的匹配準確率分別為87.07%、84.71%、87.60%、88.71%和92.38%。對于DT 分類器,GA、PSO 和ACO 的準確率分別為90.64%、91.61%和91.29% 。DT 對PSO 算法的最高準確率為91.61%。對于SVM 分類器,GA、PSO 和ACO 的準確率分別為89.67%、90.96%和89.80%。SVM 對PSO 的最高準確率為90.96%。對于MLP 分類器,GA、PSO和ACO 的 準 確 率 分 別 為90.32%、92.45% 和92.84% 。SVM 對PSO 算法的 最高準確 率為92.45%。KNN 對PSO 算法的準確率最高達94.20%。
KNN-PSO 算法識別率最高為97.41%,最低為92.38%。其中,PSO 的準確率為97.41%,ACO 的準確率為96.45%,GA 的準確率為95.48%。在這3 種算法中,PSO 算法的準確率高達97.41%,比ACO 算法提高0.96%,比GA 算法提高了1.93%。結(jié)果表明,文中提出的KNN-PSO 比DT、SVM、MLP 和KNN 具有更好的性能。
對于實時人臉數(shù)據(jù)集,具有不同相似性度量的KNN 算法的準確率性能分析結(jié)果如圖4 所示。各種算法準確率性能分析如圖5 所示。

圖4 KNN算法準確率性能分析

圖5 各種算法準確率性能分析
對于標準的ORL 人臉數(shù)據(jù)集,對提出的人臉識別模型進行了驗證,結(jié)果如表6 所示。

表6 基于ORL數(shù)據(jù)集的準確率比較分析
在標準ORL 數(shù)據(jù)集上,不同分類器準確率性能分析結(jié)果如圖6 所示。

圖6 ORL數(shù)據(jù)集上不同分類器準確率性能分析
由表6 和圖6 可見,在基于元啟發(fā)式的種群特征選擇方法中,PSO 生成了用于人臉識別的最佳特征子集。綜上所述,與DT、SVM、MLP 和KNN 相比,文中提出的PSO-KNN 具有更高的準確率。
為了驗證文中提出的PSO-KNN 算法具有更好的人臉識別效果,對于標準的ORL 人臉數(shù)據(jù)集,將RANSAC(ORB2-IPR)方法[15]、CBR[16]和非相關(guān)判別SPP(UDSPP)算法[17]與文中方法進行比較,結(jié)果如表7所示。

表7 與現(xiàn)有方法的性能比較
由表7 可見,與文獻[15]基于RANSAC (ORB2-IPR)的興趣點識別方法和文獻[16]局部遮擋條件下案例推理(CBR)的人臉識別系統(tǒng)相比,文中提出的PSO-KNN 方法具有更好的識別率和識別效果。同時,與文獻[17]的非相關(guān)判別SPP(UDSPP)算法相比,PSO-KNN 算法具有更高的準確率。
人臉識別是生物特征識別中最可靠的方法。文中將PSO-KNN 算法引入到人臉識別中,利用LBP 方法提取人臉圖像中存在的判別信息,結(jié)合GA、PSO和ACO 進一步降低了特征集的維數(shù)。運用PSO 對KNN 算法中的參數(shù)K進行優(yōu)化。最后,利用所提出的PSO-KNN 算法進行人臉識別。實驗結(jié)果表明,文中提出的PSO-KNN 算法比現(xiàn)有的DT、SVM、MLP 和KNN 等方法具有更好的識別效果。此外,與GA 和ACO 相比,PSO 在特征數(shù)較少的情況下具有更好的準確率,并且與CBR、ORB2-IPR 和UDSPP 人臉識別方法相比,所提出的方法能夠更有效地識別生物特征。在未來的人臉識別研究中,KNN 的變種將與其他優(yōu)化算法相結(jié)合。