肖彬,李澤滔,楊昱翔
(貴州大學電氣工程學院,貴州 貴陽550025)
在計算機網絡和數據挖掘技術已然成為主流的現代社會,信息安全的重要性不言而喻。而信息安全其中的一個重要組成部分就是人臉識別(Face Recognition ,FR)[1-4],雖然這項技術已經發展了數十年,但卻因為其自身獨特的優勢,很受關注,尤其是在商業界和學術界的廣泛關注[5,6]。本設計想法是:首先通過對對光照與旋轉具有魯棒性的LBP 算法對人臉表情圖片提取他的初次特征,然后對初次的特征進行第二次特征提取與分類學習使用的是概念深度學習模型DBN 網絡。
系統是由攝像頭對進出房屋的人員進行人臉抓拍,將得到的數據傳到PC 機,由PC 機進行處理并得到進出房間的人的具體信息來判斷是否是 屋主還是犯罪人員,圖1 為實物模擬圖。PC 機的處理流程包括調用攝像頭拍攝圖像、圖像預處理、人臉檢測及人員判定等幾個部分。本文的總體的設計框圖如圖2 所示。
圖1 為實物模擬圖 Fig. 1 Physical simulation diagram
圖2 系統總體框圖 Fig. 2 System block diagram
將不同人的人臉當作是一種模式,那么,任一一個人的人臉都有其自己的特定的模式,這也就是所謂的人臉識別。而先建立“自己人”的數據庫,將要識別的人的人臉模式,和已有的數據庫進行比對,對這個人進行身份確認,這個過程即稱之為人臉識別的過程。有很多的性能因素會影響到人臉識別,這些影響主要可以分為以下幾點[7-9]:
1)光照問題。由于長期以來,光照,一直是在生物識別的時候是個非常大的難題,而且,這個問題是一個“頑疾”很難徹底的把問題堅決。一般來說,現階段的算法,都會對光照條件有依賴,同時,一些光照條件如偏光、光照過亮、光照不足等,這些條件會讓人臉的識別的性能飛速下降。就目前情況來說,雖然有很多專家學者提出算法,但是仍然缺少有效的光照算法。
2)姿態問題。千變萬化是人臉的姿態本生的特點,不同角度的攝像機拍到的人臉肯定的不一樣的,而這些都是會影響這個人圖像的信息的。攝像機拍攝的時候,不可能像取證拍照時是正常正面拍攝,而是會有很多的角度偏轉,所以在實際的應用中,這些會對人臉的特征提取造成困難。雖然,這些年來,專家學者們對多姿態的研究逐漸深入,但是畢竟這個因素對特征提取的影響非常巨大,是將人臉識別實用化的時候的一道坎,是需要解決的關鍵問題所在。
3)表情問題。對于我們人來說,識別人的臉和表情都是毫無問題的,然而,于計算機來說,識別任何東西,都是需要建立一個模型,而如何建立一個人臉和表情的表情模型是一個非常巨大的難題。因為,人臉表情十分的豐富,而且復雜多變,所以這也將這個問題推向了更加困難的程度。
提取局部特征是LBP(Local Binary Patterns,局部二值模式)的判別依據。LBP 算法對光照的不敏感是它的顯著的優點,但是對于解決姿態和表情的問題,它存在很大的問題,即對這兩個因素它的魯棒性比較差[10]。不過,將它和特征臉方法進行對比,在識別率上LBP 算法比之特征臉有了巨大的提升。
2.2.1 LBP 特征提取
最開始的LBP 的定義是,有一個3*3 的像素鄰域,在這個領域內,將它的中心像素灰度值設置為閾值,然后將它周圍的8 個像素灰度值與中心閾值進行一一比對,倘若中心像素值比周圍像素值小,那么這個點的位置的值被設定為1,反之,則是0。經過這樣的比對,會產生一個8 位的二進制數(通常轉換為十進制數即LBP 碼,共256 種),數據書寫順序是從第一個開始順時針排列即可得到,而這個二進制數轉化的十進制數就是這個領域的像素點的LBP 值,即得到該鄰域中心像素點的LBP 值,而這個數反映了該區域的紋理信息。如下圖3 所示:
公式定義如下:
其中( xc,yc)代表3*3 鄰域的中心元素,它的像素值為 ic, ip代表鄰域內其他像素的值。s(x)是符號函數,定義如下:
圖3 特征提取示意圖 Fig. 3 Feature extraction schematic diagram
2.2.2 圓形LBP 算子
最開始的LBP 算子有一個很大的缺點,這使得當要面對不同的尺寸和頻率的紋理的要求的時候,這個算法不能很好的實現它的要求,這個缺點就是原始LBP 算子只是覆蓋固定的,半徑范圍確定的小區域[1115]-。Ojala 等改進了LBP 算子,要求達到灰度和旋轉不變性的要求,適應了不同的尺度和紋理特征,將3*3 鄰域擴展到任意鄰域,并將正方形鄰域用圓形鄰域來代替,允許在半徑為R 的圓形鄰域內有任意多個像素點是改進后的LBP 算子的特點。進而得到了一個內含有P 個采樣點的LBP 算子,該算子是以半徑為R 的圓形區域。比如下圖4 定了一個5*5 的鄰域:
圖4 圓形LBP 算子示意圖 Fig. 4 Schematic diagram of circular LBP operator
上圖內有八個黑色的采樣點,每個采樣點的值可以通過下式計算:
其中( xc,yc)為鄰域中心點,( xp,yp), p ∈ P為某個采樣點。通過上式可以計算任意個采樣點的坐標,但是計算得到的坐標未必完全是整數,所以可以通過雙線性插值來得到該采樣點的像素值:
2.2.3 LBP 等價模式
同一個領域內,如果增加采樣的點數,那么,它產生的二進制數的個數也會隨著采樣點的增加而隨指數增加,這種指數的增加無疑是極其恐怖的。不同的LBP 算子會有不同的二進制數,對于半徑為R 的圓形區域內含有P 個采樣點的LBP 算子將會產生2P種模式。所以為了解決這種二進制模式太多的問題,我們需要對該算子進行降維,所謂降維即是減少二進制模式的個數。為了解決這個問題,專家提出了一種“等價模式”(Uniform Pattern)。即在實際圖像中,絕大多數LBP 模式最多只包含兩次從1 到0 或從0 到1 的跳變?!暗葍r模式”定義為:當某個LBP 所對應的循環二進制數從0 到1 或從1 到0 最多有兩次跳變時,該LBP所對應的二進制就稱為一個等價模式類。如00000000(0 次跳變),00000111(只含一次從0到1 的跳變),10001111(先由1 跳到0,再由0跳到1,共兩次跳變)都是等價模式類。除等價模式類以外的模式都歸為另一類,稱為混合模式類,例如10010111(共四次跳變)。比如下圖5 給出了幾種等價模式的示意圖。
圖5 幾種等價模式的示意圖 Fig.5 Schematic diagram of several equivalent patterns
在這中改進的算法下,二進制的種類將會大大減少,而且,這種改進之下不會使該領域內的數據信息發生丟失現象。從上面的講解來看,等價模式的模式數量變成了P(P-1)+2 種較原來的2P種減少巨大,其中P 表示鄰域集內的采樣點數。比如,對于3*3 鄰域內來說,我們如果設置8 個采樣點,那么等價模式下二進制數為58 種,而原始的則為256種,這種情況下,特征向量的維數大大減少,并且還可以減少高頻噪聲帶來的影響。
通過上述方法,每個像素都會根據鄰域信息得到一個LBP 值,如果以圖像的形式顯示出來可以得到下圖6 所示,明顯LBP 對光照有較強的魯棒性。
圖6 經過LBP 算法處理后前后的圖像 Fig.6 After LBP algorithm processing before and after the image
DBN 模型是深度學習中唯一一種基于概率統計的模型,其基本組成單元為 RBM(Restricted Boltzmann Machine)機[15]。由于DBN 模型借助概率統計來對問題進行建模,所以對復雜度較高的問題具有良好的表征性能,特別是在大數據條件下,這種優勢可以更好的得以體現。因此,隨著大數據和互聯網相關技術的不斷發展,DBN 模型將逐漸成為深度學習領域研究的核心[1618]-。
2.3.1 RBM 受限玻爾茲曼模型的定義
RBM 受限玻爾茲曼模型共包含兩層網絡:隱含層和可視層。該模型滿足下述約束條件:
(1)層間節點全連接,層內節點無連接
(2)模型中所有節點的取值均為二值化變量(值只能取0 或者1)
(3)隱含層和可視層間的概率約束P(v,h)須滿足玻爾茲曼(Boltzman)分布
經典RBM 模型如圖7 所示。圖中,v 表示可視層,節點個數為m;h 表示隱含層;節點個數為n。因為RBM 模型層內無連接,所以,如果可以確定隱含層的情況,則對應可視層的節點均滿足相互獨立的條件,反之亦然[19,20]。因此,在確定了可視層v 的條件下,對應隱含層節點的狀態滿足如下關系:
式中, p ( hj= 1丨 v )表示第j 個隱含層節點處于激活態(值為1)的概率,f(x)為激勵函數, wij表示第i 個可視層節點和第j 個隱含層節點之間的連接權重,vi為第i 個可視層節點的值, bj為第j 個隱含層節點的偏置。
圖7 RBM 受限玻爾茲曼模型示意圖 Fig.7 Schematic diagram of RBM restricted boltzmann model
此時生成一個隨機數ε ,如 果ε小于p (hj= 1丨v ),則 hj的值為1;反之,值為O。
同樣的,如果給定了隱含層h,則通過下式能夠獲得對應的可視層值 vi′:
式中,ia 為第i 個可視層節點的偏置。如果通過某種方式調節參數ijw 、ia 和jb ,可以使得可視層的輸入v 與經過重構得到的結果v′之間的差別盡可能小(理想情況下是無差別的),就能夠認為隱含層h是可視層v 的同等特征描述。
2.3.2 RBM 訓練步驟
1)第一層的RBM 是以LBP 紋理特征為輸入,同時對RBM 進行無監督訓練,獲得這一層的最優參數;
2)低一層的RBM 輸出數據作為高層RBM 輸入,同時對RBM 進行無監督訓練,獲得這一層RBM網絡最優的參數值;
3)最后需要對各層參數進行微調利用方法可以選擇如全局訓練,這樣可以使得DBN 收斂到全局最優。
無監督逐層學習采用的是貪婪算法,其大致流程如圖8 所示:
圖8 DBN 模型訓練示意圖 Fig.8 DBN model training schematic diagram
本實驗中,為了驗證本文的特征提取以及改進的算法識別的有效性,需要包含光照以及姿態的差別,所以我們采用FERET 和ORL 人臉庫,則直接對FERET 庫和ORL 的原始人臉圖像采用CS-LBP結合DBN 的方法進行特征提取并識別。
為了保證實驗的可靠性及有效性,所有實驗均在相同的實驗條件下進行。實驗中選取FERET 庫中每個個體的第1 幅圖像作為測試樣本集,其余6幅圖像作為訓練樣本集,采用圖像分塊數為8*8。為了進一步驗證本算法的有效性,在實驗中,對比了本文方法和其他幾種算法:LBP 結合 DBN,MB-LBP 結合DBN,LBP 結合PCA 和DBN。在FERET 人臉庫中的實驗結果如圖9 所示;同樣情況下將FERET 人臉庫更換成ORL 人臉庫,其他步驟一致,實驗結果如圖10 所示。
圖9 FERET 人臉庫中不同算法識別效果 Fig.9 The recognition effect of different algorithms in FERET face database
據圖9 可知,本文各算法識別率如下:MB-LBP結合DBN 方法的首選識別率為93%,LBP 結合DBN 方法和DBN 方法的首選識別率分別為90%和85%,LBP 結合PCA 的首選識別率僅為75%。
圖1 0 ORL 人臉庫中不同算法識別效果 Fig.10 The recognition effect of different algorithms in ORL face database
據圖10 可知,本文各算法識別率如下:MB-LBP結合DBN 方法的首選識別率為95%,LBP 結合DBN 方法和DBN 方法的首選識別率分別為87.5%和82.5%,LBP 結合PCA 的首選識別率僅為80%。
本文在FERET 和ORL 人臉庫即實驗數據相同的情況下,并且使用一樣的訓練和測試的樣本,選擇了PCA、SVM、LBP、DBN、LBP+DBN 這幾種方法進行了比較。驗證了LBP+DBN 模型在分類識別上的有效性。結果如表1 所示。
表1 不同訓練樣本數的正確識別率 Table 1 The correct recognition rate of different training sample Numbers
本文提出了一種基于LBP 特征和深度學習中DBN 模型的表情識別方法。通過對輸入圖片預處理、提取LBP 特征,去除了光照的影響,將取得的特征作為DBN 的輸入。經過DBN 網絡的訓練與學習,優化其在非限制條件下比如受姿態、光照、表情、遮擋等綜合因素影響。由上述實驗可知,在FERET 和ORL 人臉庫條件下,LBP+DBN 明顯優于LBP+PCA 和單獨的DBN 算法的識別率,并且在上述實驗中,實驗對PCA、SVM、LBP、DBN、LBP+DBN 識別率進行對比,明顯看出本文提出的LBP+DBN 算法在識別率上有著明顯的優勢。