楊 慶
(漢江師范學院 數學與計算機科學學院,湖北 十堰 442000)
由于全球新型冠狀病毒的爆發(fā),全民戴口罩出行日益成為一種趨勢。隨著人臉被大面積遮擋,傳統(tǒng)的人臉識別算法的識別率達到了瓶頸。如何提高部分遮擋人臉的識別率是當前國內外學者普遍關注的課題。作為人臉識別的一個分支,單樣本人臉識別在實際應用中扮演著非常重要的作用。在機場,火車站等場合,身份證、護照、駕照等的識別屬于單樣本人臉識別的范疇。在樣本數比較多的情況下,傳統(tǒng)的人臉識別算法識別率很高。單樣本人臉識別場景下,由于樣本數不足,人臉識別算法識別率受到嚴重影響。部分遮擋的單樣本下人臉識別是當前的一個挑戰(zhàn),這是新時期的一個重要的研究課題。
現有的單樣本人臉識別方法可以分為三類:虛擬樣本生成、通用學習和基于分塊的思想。Bodini M等[1]提出了一種基于深度學習線性判別法來解決單樣本人臉識別問題。首先對人臉進行翻轉、放大等操作,利用DCNN算法進行特征提取,最后基于k-LiMapS算法進行人臉識別。Liu F等[2]提出了一種基于自組織映射(SOM)的二進制編碼(SOM-BC)方法。首先使用SIFT描述符提取局部特征,其次,利用SOM神經網絡獲得能夠在語義空間反映面部特征內在結構的視覺詞典,利用二進制編碼方法將局部特征映射到語義空間,最后進行人臉識別。董艷花等[3]指出通過利用人臉圖像的結構及遮擋固有的結構來表示、抑制或消除遮擋,并對遮擋人臉進行魯棒特征提取,以此降低遮擋對人臉識別的影響,提高了有遮擋人臉識別的健壯性和精確性。孫雨浩[4]利用主成分分析法得到低秩訓練樣本Gabor特征字典所在低秩線性子空間的變換投影矩陣,并將原始訓練樣本和測試樣本分別對應的Gabor特征字典,通過這個變換矩陣投影到同一線性子空間中,進行自適應稀疏編碼。最后,通過自適應稀疏表示分類的方法,實現最終的分類識別。孫躍偉[5]消除了遮擋人臉圖像中由遮擋部分帶來的錯誤信息參與投票分類的影響,結合稀疏集中指數(SCI),提出了“SCI與投票加權的遮擋人臉識別算法”,將SCI低于閾值的子塊剔除,對其余子塊加權,提高了遮擋人臉圖像的識別率。閆碩[6]首先分別使用SIFT算法和SURF算法獲得訓練圖像和測試圖像對之間的SIFT匹配特征點和SURF匹配特征點,通過關鍵點簇塊獲取方法合并每張圖像中匹配特征點的鄰域,通過加權描述符策略來獲取兩個圖像塊集的匹配,通過計算所有匹配塊對之間的平均距離,來獲得人臉圖像對之間的相似度。Ye Meng Jun等[7]提出了基于正稀疏系數的 ESRC(PESRC),計算單個訓練樣本的表示殘差,ESRC 的稀疏系數為正。統(tǒng)計分析稀疏系數比率,求解大的正稀疏系數的 ESRC (LESRC),最后計算單個訓練樣本的表示殘差。PESRC 和 LESRC 可以顯著提高ESRC 的計算效率。Al-Obaydy W等[8]將正臉圖像旋轉一定角度,提取定向梯度特征直方圖,然后將特征連接起來,使用主成分分析方法進行降維,使用典型相關分析進行融合,能提高姿態(tài)變化的單樣本人臉識別率。
鑒于此,本文創(chuàng)新性地提出了一種SSPO算法來解決部分遮擋的單樣本人臉識別問題。首先對所有圖片進行遮擋(遮擋比例為15%,25%,35%,45%)。然后通過MSEP算法對所有圖片進行分塊并剔除遮擋的分塊。最后通過SSPO算法對人臉進行識別。通過在AR人臉數據庫和CMU Multi-PIE人臉數據庫上各個算法的實驗對比來驗證本算法的切實有效性。
所有圖像全部用Matlab自帶的imresize函數設置成80*80(height=80像素,width=80像素)大小。根據分塊算法MSEP進行分塊。如圖1所示。分塊大小為20*20(ph=20像素,pw=20像素)大小,步長s為10像素。
圖1 分塊圖
(1)
所有圖片都進行了分片,如公式(1)所示,每張圖片被分成了49個分塊。
為了剔除遮擋的子塊,本文引入了均方差的概念。如圖2所示,一個c*c區(qū)域的一個分塊A,起點坐標為(p,q),終點坐標為(p+c-1,q+c-1)。
圖2 均方差
(2)
(3)
為了模擬口罩遮擋人臉的情況,本文對所有圖像進行了遮擋,遮擋比例分別為15%、25%、35%、45%,如圖3所示。對比了不同算法在部分遮擋情況下的人臉識別率。
圖3 人臉遮擋的比例
待測樣本z可以表示為公式(4)所示。其中,X為樣本集,D為變化字典,ε為表示殘差。
z = Xα+Dβ+ε
(4)
(5)
如公式(5)所示,求得α和β,使得公式(5)取得最小值。當每個分塊的權重ω固定時,根據公式(6)求得A。
(6)
當A固定時,通過公式(7)對分塊權重ωi進行更新。當分塊的殘差大時,該分塊權重ωi就會小,以降低錯誤分類的可能性。
(7)
通過不斷地迭代更新A和ωi,直至其收斂。最后通過公式(8)對樣本進行分類。對于所有分塊,對s塊分塊的表示殘差求和,選擇殘差最小的分類k。
(8)
一種部分遮擋單樣本人臉識別算法SSPO算法如表1所示。根據遮擋比例對所有圖像進行遮擋,分塊算法MSEP對圖像進行分塊。根據公式(2)(3)進行遮擋塊的剔除。對每一個分塊,初始化權重ω=[1, 1, …, 1]。根據每個人臉m種可能的變化與每個人的平均人臉之差,計算字典D。通過(6)、(7)式更新A和ω,直至收斂。最后輸出每個樣本的分類。
表1 SSPO算法
為了驗證所提算法SSPO的有效性,本文將在AR[9],CMU Multi-PIE[10]數據庫上進行實驗。實驗在Microsoft Windows 10 專業(yè)版 Version 10.0 (Build 19043)操作系統(tǒng)下進行,環(huán)境如表2所示。CPU是Intel(R) Core(TM) i7-7700K,主頻4.20 GHz;RAM為8.00GB,Matlab為8.5.0.197613 (R2015a)。
表2 實驗平臺
(1)AR數據庫:實驗中有100個人臉,每人7張圖像,共700張人臉。隨機選取80個人臉作為標準樣本庫,待測人臉。其余20個人臉作為通用訓練集。測試集分為三類,glass(太陽鏡),illumination(光照),illumination+disguise(偽裝和光照)。所有圖像統(tǒng)一處理為80*80像素。
(2)CMU Multi-PIE數據庫:CMU Multi-PIE數據庫包含姿勢、光照和表情變化等圖像。本文實驗選取不包含姿勢變化的人臉作為訓練集,三類數據集作為測試數據集,分別是s1_smile(微笑),s2_squint(瞇眼),s2_surprise(驚訝)。實驗選取160類,隨機選取75%的數據作為訓練集,其余用作生成變化字典。所有圖像統(tǒng)一處理為80*80像素。
為了驗證本算法SSPO的有效性,我們對比了當下比較流行的人臉識別算法。通過比較NNC算法(Nearest neighbor pattern classification)[11]、SRC算法[12]、改進的SRC算法[13]、SSPO算法的人臉識別準確率,驗證本算法的有效性。
(1)AR人臉數據庫在太陽鏡,光照,光照和偽裝情況下不同算法在不同遮擋率的情況下的識別率如表3至表5所示。實驗對比了NNC算法、SRC算法、改進的SRC算法、SSPO算法的人臉識別準確率。
表3 AR人臉庫在glass下,不同遮擋率各個算法的識別率 (單位:%)
表4 AR人臉庫在illumination變化下,不同遮擋率各個算法的識別率 (單位:%)
表5 AR人臉庫在illumination+disguise下,不同遮擋率各個算法的識別率 (單位:%)
(2)CMU Multi-PIE人臉數據庫各個算法在不同表情下的識別率如表6至表8所示。實驗對比了NNC算法,SRC算法,改進的SRC算法、SSPO算法在s1_smile(笑臉)、s2_squint(瞇眼)、s2_surprise(驚訝)這三種表情下的識別率。
表6 CMU Multi-PIE人臉庫在s1_smile下,不同遮擋率各個算法的識別率 (單位:%)
表7 CMU Multi-PIE人臉庫在s2_squint下,不同遮擋率各個算法的識別率 (單位:%)
表8 CMU Multi-PIE人臉庫在s2_surprise下,不同遮擋率各個算法的識別率 (單位:%)
表3至表5在AR數據庫上的識別率結果表明,隨著遮擋率的提高,各個算法的識別率普遍下降。在光照變化下的各個算法的表現最好,在太陽鏡下各個算法的識別率最低。這是因為隨著人臉的部位被遮擋,識別的困難加大。太陽鏡下人的眼睛這一關鍵部位被遮擋,導致各個算法的識別率下降。本文的SSPO算法在各個場景中均取得了最高的識別率,在15%遮擋率下,SSPO分別在太陽鏡、光照變化、偽裝+光照變化場景下比第二好的算法分別提升13.75%,6.25%,11.88%。
表6至表8在CMU Multi-PIE人臉庫上各個算法的識別率結果表明,在笑臉集上各個算法表現更好,在瞇眼情況下各個算法識別率下降。并且隨著遮擋率的提升,各個算法識別率均出現下降趨勢。因為瞇眼表情,人的眼睛這一主要特征受到影響,其識別率下降??偟膩碚f,本文提出的SSPO算法在各個場景下的識別率最優(yōu),在session1笑臉、session2瞇眼、session2驚訝場景下,分別比第二好的算法識別率提升0.83%,3.12%,12.29%。這是因為SSPO算法通過識別并剔除遮擋的塊,屏蔽了遮擋帶來的影響,提升了算法的識別率。
本文通過實驗比較了SRC、SRC(AW-KPatch)、NNC和SSPO識別一張圖片平均所花的時間。在AR數據庫上,調用Matlab自帶的計算時間函數,各個算法執(zhí)行前后的時間差即為運行時間。如表9所示,識別一幅圖像各個算法的平均計算時間。
表9 識別一幅圖像的平均計算時間
通過對比表中各個算法的運行時間以及上文中各個算法的識別率可知,SSPO算法無論在識別率和識別時間上都具有很大的優(yōu)勢。因此,本算法適用范圍更加廣泛。
針對部分遮擋的單樣本人臉識別問題識別困難的問題,本文創(chuàng)新性地提出了SSPO算法。通過MSEP分塊算法識別遮擋,剔除遮擋的分塊,通過SSPO算法對樣本進行識別。在AR人臉庫和CMU Multi-PIE人臉庫對各個算法進行了識別率和運行時間的對比,結果表明,SSPO算法在部分遮擋單樣本人臉識別中不僅效率高,而且識別率高,更具有實際意義和實踐價值。