白薈琳,曲 娜,陳少杰,劉添添
(沈陽航空航天大學安全工程學院,遼寧 沈陽 110136)
由于人臉具有唯一性、易于采樣等優(yōu)點,因此,人臉識別與檢測技術應用受到廣泛關注【1】。2003年,甘俊英、張有為等【2】將BP神經(jīng)網(wǎng)絡算法應用到人臉識別中并建立模型。王宏漫、歐宗瑛等【3】使用獨立PCA的方法來提取更適合分類的人臉特征的主要獨立分量,后采用支持向量機分類機制進行識別。周德龍、高文、趙德斌等【4】采用奇異值分解和判別式KL投影等技術來提取最終特征進行識別,這種方法能讓分類器做的更簡明有效,采用相對比較少的特征向量數(shù)目反而得到一個相對較高的識別率。Jiang、Hu等【5】在2005年將三維重建圖像技術應用到人臉識別中,先將標準條件下的二維人臉重構成一幅三維標準人臉模型,后將各種不同條件如發(fā)型、神情、光照之類的因素放入此模型當中,將其組成一個較為繁雜多變的樣本,然后使用主成分將人臉部的特點分析出來,不過這種辦法對于初始二維人臉圖像標準很嚴格,而且進行識別的時間也非常久。2008年,王瑋、黃非非、馮海亮等人【6】首次提出以多尺度LBP特征為基礎的人臉描述與識別算法,并且得到了非常高的識別率。Tang、Yin等【7】用三維人臉構建二維人臉庫,將多姿態(tài)人臉轉化為兩張單獨照片的比對,但計算復雜,耗時較長。王憲、陸友桃、宋書林等【8】在2012年首先通過Gabor小波變換提取人臉圖像中的特征,利用PCA方法繼續(xù)處理、識別。2014年,馬小虎、譚延琪等【9】提出了鑒別稀疏保持嵌入的算法,利用最小二乘問題的結果對SPP中的稀疏權進行了改進,得到了更有價值的判別稀疏權,從而有效地反映了SPP中的判別信息,以保持這個最優(yōu)的稀疏權為目標來計算低維特征子空間。本文主要研究人工蜂群算法在人臉檢測和識別方面的匹配應用,通過PCA方法提取人臉圖像中的主要特征,繼而利用人工蜂群算法迭代計算,最終實現(xiàn)匹配,速度較快,魯棒性較好。
通常在進行人臉識別時將圖像視作一個像素矩陣,一幅大小為w×h的人臉圖像,按列展開,可將其看做長度為w×h的列向量,相當于圖像處于一個高維空間中,但數(shù)據(jù)分布較分散、冗余信息較多。實際應用時,需要通過某種變換將高維空間中的數(shù)據(jù)投影到低維子空間,將冗余信息去除掉,從而更好地進行分類。從一幅人臉圖像來看,神情、表情特征最主要從嘴巴、眼睛反映出來。因此,要是能將這些最明顯的特點給提取出來,那么識別率將會非常高。利用主成分分析法將這些特點提取出來。該方法不僅對高維數(shù)據(jù)進行降維,還消除數(shù)據(jù)相關性和噪聲。將原始數(shù)據(jù)的N個特征用較少的M個特征替代,盡量使這M個特征互不相關,進而通過M個特征的線性組合表示原始的N個特征。識別過程是先將特征臉組成一個空間,再把待識別的人臉圖像映射到特征臉空間。具體步驟如下【10】:
1)計算所有樣本的均值μ和協(xié)方差矩陣S,如式(1)、(2)。
2)計算協(xié)方差矩陣S的特征值,記該矩陣的特征值為λ1,λ2,…,λn,并由大到小進行排序,如式(3)。
3)將前m個特征值所對應的矢量構建成一個矩陣R,一般情況而言,如果特征值較小所對應的特征矢量包含噪聲的可能性越大。所以實際應用中,選擇前m個特征矢量,即為PCA提取出的主成分。
蜜蜂通過“8字舞”的方式交流蜜源及采蜜信息,實現(xiàn)自組織行為。人工蜂群(Artificial Bee Colony,ABC)就是將這一自然現(xiàn)象建立成模型,主要包括跟隨蜂、引領蜂和偵察蜂。蜜源i(i=1,2,...,NP)的質量潛在解與適應度值fiti相適應。跟隨蜂和引領蜂的綜合就是蜜源的數(shù)量,并且在同一個時間段內只有一個引領蜂在蜜源里作業(yè)。假設每個蜜源是一個D維向量,t為迭代次數(shù),xid∈(Ld,Ud),Ld和Ud分別為迭代空間的上限和下限,且有d=1,2,...,D。由此,蜜源i初始位置在搜索空間中隨機生成的方式如式(4)所示。
在初始搜索階段,根據(jù)式(2)內容引領蜂在周邊探尋蜜源,從而發(fā)現(xiàn)新的蜜源。
其中,d為區(qū)間[1,D]內的隨機整數(shù),表示引領蜂在D維向量中隨機抽選一維d進行搜索,而j≠i,且j∈ [1,2,...NP],即在NP個蜜源當中隨機挑選一非i蜜源,φ為決定擾動的幅度,均勻、隨機分布在[-1,1]當中。
當搜索到的新蜜源Vi=[vi1,vi2,...,vid]對空間的適應度優(yōu)于Xi時,則以新蜜源取代舊蜜源,若新蜜源Vi對空間的適應度小于舊蜜源Xi,則保留Xi。
在全部引領蜂完成式(5)運算后,便飛回到蜂巢對所發(fā)現(xiàn)的蜜源進行資源共享,發(fā)現(xiàn)新蜜源的引領蜂帶著跟隨蜂去到新的蜜源,具體表示如式(6)。
最后,跟隨蜂以輪盤賭的方式對引領蜂進行選擇,簡單來說就是在[0,1]生成一均勻分布的隨機數(shù)r,當Pi>r時,跟隨蜂則以式(6)為依據(jù)在蜜源i周邊構建一新的蜜源,并與引領蜂采用相同的貪婪選擇法對應保留蜜源予以確定【11】。
在發(fā)現(xiàn)蜜源整個階段中,如果蜜源Xi經(jīng)過了trial次迭代已達到閾值limit,卻沒有探尋到更好的蜜源,則應將該蜜源遺棄,而后該蜜源所對應的引領蜂角色便轉變?yōu)閭刹榉洌瑐刹榉淅^續(xù)在搜索空間中生成新的蜜源Xt+1i,表示為式(7)。
為保持人工蜂群算法的一般性,其解的適應度評價應以式(8)為依據(jù)進行計算:
式中,fi為解的函數(shù)值。可以把人工蜂群算法重點分為引領蜂搜索新蜜源、引領蜂及時將蜜源信息進行傳遞、引領蜂轉變身份變成偵查蜂后進行作業(yè)3個部分。
ABC人臉識別過程如下【12】∶
1)初始化:設定蜜源Xi、參數(shù)NP以及l(fā)imit和迭代次數(shù)的上限t,將待匹配樣本作為識別對象。
2)蜜源Xi分配1只引領蜂出來作業(yè),根據(jù)式(5)內容進行搜尋,最后搜尋到新的蜜源Vi,再進行圖像處理得到人臉部分特征并在人臉庫中進行搜索。
3)根據(jù)式(8)對新搜索到的蜜源Vi的適應度進行評價,并以貪婪選擇法確定出應該保留的蜜源;在與人臉庫的所有樣本比對過程中,將每次比對后的匹配率計算出來。
4)根據(jù)式(6)計算出蜜源被引領蜂找出且被跟蹤的概率。
5)跟隨峰搜索蜜源的方案和引領蜂一樣,由貪婪選擇性選出來的方案來確定蜜源并將其保留。然后從所有樣本中留下匹配率最高的,再看看蜜源是不是應該被放棄。如果蜜源滿足被放棄的條件,那么相對的引領蜂將會換身份成偵查蜂,相反就轉換到過程7);對比最終挑選樣本與待測樣本的匹配率是否滿足要求。
6)偵察蜂根據(jù)式(7)隨機產生Vi。
7)t=t+1,判斷迭代次數(shù)是否達到上限,是否有遺漏,若滿足,則輸出匹配率最高的樣本作為最終結果;若不滿足,證明存在未被比對的樣本,故轉到過程2)繼續(xù)進行比對。
利用MATLAB的圖形用戶界面(GUI)編程得到易于操作的人臉識別界面。
1)圖1是在自然光條件下進行人臉識別的結果。
圖1 自然光條件下人臉識別結果
2)圖2~圖5為人工蜂群算法對于人臉在不同角度、表情、發(fā)型等條件下識別的結果。
圖2 不同角度的人臉識別結果
圖3 不同表情的人臉識別結果
圖4 不同表情和發(fā)型的人臉識別結果
圖5 不同表情和光照的人臉識別結果
實驗利用ORL YALE數(shù)據(jù)庫,采集了15個人的人臉圖像,每個人有10個圖像,圖像大小是112×92,總共150張圖像。圖像的細節(jié)包括是否佩戴了鏡框,眼睛打開角度,頭發(fā)的長短,表情的不同等不同程度的變化。除此之外,人臉的姿態(tài)也有很大變化,如人臉旋轉角度大概可達到20°,尺寸也會有10%的幅度變化,YALE人臉數(shù)據(jù)庫部分圖像如圖6所示。仿真實驗共進行了60組人臉識別,其中58組識別正確,準確度為96.7%。
圖6 部分人臉庫圖像
利用主成分分析法將人臉圖像中的主要特點、重要信息進行識別提取,減少了計算量。利用人工蜂群算法進行人臉識別,提高了識別的準確率。仿真實驗共進行了60組人臉識別(包括不同光照、姿勢、表情等),其中58組識別正確,準確率為96.7%,說明該方法是有效的。