王 茹,賀興時
(西安工程大學理學院,陜西西安 710048)
基于生物特征的識別是計算機視覺、機器學習和圖像處理等研究領域的一個熱門課題.人臉識別、指紋識別、語音識別等基于生物特征的識別已經大規(guī)模應用于實際生活中.比如許多門禁系統(tǒng)、攝像監(jiān)視系統(tǒng)、身份辨識、支付系統(tǒng)等都以人臉作為識別依據(jù).然而,有些問題也正是因為以人臉作為生物特征造成的,如光照條件、遮擋(口罩、墨鏡等)等外界因素,年齡等自身因素都會對人臉識別產生一定影響.人臉檢測作為人臉識別的重要階段,是改善識別能力的一個關鍵環(huán)節(jié),在檢測過程中減少、排除外界因素及自身因素干擾將提高識別的準確率.因此,為解決人臉檢測階段外界因素干擾導致的識別結果不理想問題,許多學者針對傳統(tǒng)檢測算法對各類干擾魯棒性差的特點做了改進.如:李新戰(zhàn)[1]改進了基于Haar-Like特征的Adaboost人臉檢測算法存在漏檢率和誤檢率較高、檢測效率較低等不足,通過改變弱分類器的權重更新規(guī)則,級聯(lián)構建成強分類器,實現(xiàn)對傳統(tǒng)Adaboost人臉檢測算法的改進[1-2];何芳州[3]利用色度和亮度特征融合的方法提高了存在色度和亮度差異的彩色人臉識別的準確率;文獻[4-5]分別通過構建特征顯著點對人臉區(qū)域進行檢測;隨著深度學習的完善,基于神經網絡的人臉檢測算法[6]逐步成為檢測的主流算法.在實際應用中發(fā)現(xiàn),以往基于特征的人臉檢測算法對正面人臉的檢測效果明顯,對存在角度、干擾因素的人臉檢測效果一般,泛化能力較弱.因此,本文提出基于黃金分割的人臉檢測算法,利用黃金分割對人臉五官進行劃分,構建比例關系,從而實現(xiàn)人臉檢測;利用Biometrics Ideal Test人臉數(shù)據(jù)庫和FDDB人臉數(shù)據(jù)庫進行對比試驗,考察檢測效果.
黃金分割在數(shù)學上被定義為把一條線段分割為兩部分,使較大部分與全長的比值等于較小部分與較大部分的比值,則這個比例(近似比為1∶0.618)即為黃金分割.在不同領域,已廣泛借助了黃金分割方法嚴格的比例性、藝術性、和諧性的特點.如在藝術領域,希臘雅典的帕薩農神廟、達·芬奇的《維特魯威人》及《蒙娜麗莎》等都應用了基于黃金矩形的構圖理念;在數(shù)學領域,解決了譬如十等分、五等分圓周等數(shù)學難題;在軍事領域,利用黃金分割控制器實現(xiàn)了對無人機姿態(tài)的控制等[7];在圖像識別領域,景立森等[8]通過在BP神經網絡改進中加入黃金分割提升了網絡對手寫字體識別的收斂速度和泛化能力.因此,本次研究利用黃金分割劃分人臉、抓取顯著特征實現(xiàn)人臉檢測,以此提升對存在角度、干擾樣本中人臉檢測的泛化能力.
人臉檢測算法已取得了一定成果,如經典的Viola-Jones(稱VJ)算法,因檢測高效、快速至今仍被廣泛使用.VJ[9]算法使用haar特征與Adaboost算法對分類器進行訓練,以此建立級聯(lián)分類器,并提出了積分圖,能夠對haar特征進行更快速運算.雖然實時過程表現(xiàn)出色,但大量研究也表明,該算法在實際應用中的檢測效率會顯著降低.因此,提升檢測階段的泛化能力,即使在處理受多變因素影響的人臉樣本時,算法仍可以保持較好的魯棒性.
現(xiàn)實生活中對人臉的檢測不存在理想狀態(tài),往往受多種因素影響,如光照、角度、遮擋[10]等.因此,在檢測過程中就需要抓取人臉在視覺上能夠迅速引起“觀察者”注意的一種“突出性”即顯著特征,這種“突出性”很難受到外界干擾而發(fā)生改變,如五官位置、尺度不變性和旋轉不變性[11]等,可為抓取顯著特征提供相對穩(wěn)定的基礎,使得對可變因素具有相對的把控能力,也使構建的算法框架在檢測過程中具有較好的魯棒性[12].
本次研究利用黃金分割法分割五官,抓取特征顯著的區(qū)域實現(xiàn)人臉檢測.研究思路來源于達·芬奇創(chuàng)作的世界著名素描——挪威魯威人(圖1).這幅由鋼筆和墨水繪制的手稿主要描繪了一個男人在同一位置上的“十”字形和“火”字形姿態(tài),這兩種姿態(tài)被分別嵌入到一個矩形和一個圓形中,形成了完美的黃金矩形[13].由此,構建人臉檢測的大體框架:人臉識別窗口(矩形窗口)、人臉(類橢圓)及分割線,見圖2.其中,藍色矩形為人臉檢測窗口,黑色橢圓為人臉,紅色實線為分割線,綠色為輔助線(后期在測試中加入了以中心交點為圓心,半徑為參數(shù)的輔助圓).
圖1 達·芬奇挪威魯威人Fig.1 Da Vinci’s Vitruvian man
圖2 人臉檢測框架Fig.2 Framework of face detection
Step1:讀取待檢測人臉樣本;
Step2:檢測并標示樣本中出現(xiàn)的人臉數(shù)量并繪制分割線;
Step3:輸出檢測結果及交點坐標(px,py).
其中,步驟2實現(xiàn)對算法框架的構建,即在檢測算法提取樣本中的人臉區(qū)域并用矩形窗口標注后,通過對標注后的人臉窗口進行分割完成對框架的構建.
由于人臉樣本之間存在姿態(tài)差異,在檢測過程中需要自適應地更改矩形檢測窗口的大小以標示人臉,依據(jù)矩形檢測窗口進行相應分割[14].這個階段需要通過大量訓練,不斷完善檢測過程,從而解決算法中可能存在的問題,使檢測到的人臉在分割后抓取的特征之間可以形成嚴格的比例關系.
將分割線及輔助線形成的交點作為檢測原點,再以分割后的五官相對差異作為檢測依據(jù),完成檢測.
設第k個檢測到的人臉中心交點坐標為(x(k),y(k));矩形檢測框的長為l(k),寬為w(k),面積為S(l(k),w(k));輔助線與眼左、右兩個交點的坐標分別為(x1,y1),(x2,y2),與嘴左、右兩個交點坐標分別為(x3,y3),(x4,y4).令
其中:αk為相關性因子;d(k)(xk,yk)為中心交點分別到4個交點的距離;S(l(k),w(k))為矩形檢測框的面積.
設定閾值threshold約束分割后的準則函數(shù).若J(i,j)>threshold,則分割后的檢測效果較好;反之,分割效果較差,即未提取到人臉區(qū)域[15-16].對比每一次檢測的結果可知,分割效果顯著的樣本在檢測速度上同樣具備明顯優(yōu)勢.因此,提升本文提出的算法在分割階段的優(yōu)勢會大大提高檢測速度,同時也可提升整體算法的檢測性能.
本文試驗的運行環(huán)境為Windows 10操作系統(tǒng)下python 3.6的OpenCV開源計算機視覺庫.數(shù)據(jù)集分為訓練集和測試集.其中,訓練集為開源程序中提供的訓練人臉數(shù)據(jù),試驗最終呈現(xiàn)的效果是樣本中4張人臉被準確檢測并標注,然后實現(xiàn)分割得出檢測結果.由于是小樣本訓練,得到的檢測效果也比較理想.測試集分別為Biometrics Ideal Test人臉數(shù)據(jù)庫和FDDB人臉數(shù)據(jù)庫.在Biometrics Ideal Test人臉數(shù)據(jù)庫中的待檢測樣本為一個人不同角度的人臉數(shù)據(jù),主要是通過測試了解算法對于不同角度人臉檢測的效果;在FDDB人臉數(shù)據(jù)庫中測試了100個待檢測樣本,其中每個待檢測樣本中人臉數(shù)目各異,檢測目的主要是了解算法對Faces in the Wilds的檢測效果.通過對這兩種人臉數(shù)據(jù)庫的測試,了解算法在對不同角度或in the wilds檢測人臉的優(yōu)異性,驗證算法在實際應用中的檢測性能.
圖3 訓練集及檢測結果Fig.3 Training sets and results
分別選取訓練集和測試集中的個例演示算法的檢測效果.
1)訓練集人臉數(shù)據(jù)的檢測結果見圖3.從訓練集的檢測結果可以看出,4張待檢測人臉均被檢測出來,并且算法的分割得到了較好的效果.由于檢測樣本臉部存在的角度差較小,并沒有對檢測效果產生影響.因此,選取的測試集數(shù)據(jù)可以很好地驗證算法對不同角度、光照、遮擋等人臉檢測的效果.
2)在Biometrics Ideal Test人臉數(shù)據(jù)對其中某一樣本測試得到的結果見圖4.測試集1的原圖為兩個人各4張存在光照和角度差異的8張人臉樣本.檢測結果顯示:第1行的4張人臉檢測分別呈現(xiàn)出一定的角度差并且存在光照差異,提取的人臉區(qū)域分割之后得到了比較好的效果;第2行相比第1行中增加了角度的影響,試驗結果給出前3張的檢測和分割效果較好,而第4張則未被檢測出來.
3)在FDDB(Face Detection Data Set and Benchmark)人臉數(shù)據(jù)中對某一樣本進行測試得到的結果見圖5.測試集2的原圖中存在4張人臉樣本,其中存在人臉部分區(qū)域被遮擋的樣本.測試結果顯示,4張人臉均被成功檢測和分割;檢測和劃分的效果較為顯著.
圖4 測試集1及檢測結果Fig.4 Test sets 1 and results
圖5 測試集2及檢測結果Fig.5 Test sets 2 and results
對于人臉檢測算法來說,評價其是否優(yōu)異的一個重要標準是是否具有較高的正確檢測率和較小的漏檢率.其中,正確檢測率(Correct Detection Rate)
其中:nc和nf分別為正確檢測到的人臉數(shù)量和漏檢人臉數(shù)量;N為待檢測人臉數(shù)量.
兩個數(shù)據(jù)集的檢測結果見表1.結果顯示:不同角度的人臉均可以被檢測出來并進行分割,但有個別測試樣本由于角度問題未被檢測出來,即漏檢人臉樣本.在in the wilds中影響人臉檢測的因素較多,如眼鏡、雙下巴等遮擋,但仍具備較好的檢測和分割效果.因此,接下來需要改進的方向就是訓練算法對于角度、光照、遮擋等外界因素的魯棒性,使得每一張人臉可以快速被檢測并得到分割.
光照強度及遮擋影響下的檢測對比見圖6.由圖6可見:在光照影響下,隨著光照強度的增加,傳統(tǒng)檢測算法檢測的正確率急劇下降;由本文提出的檢測算法在光照強度影響下的正確檢測率折線可以看出變化較為緩慢,說明算法對光照影響具有一定的魯棒性.相比傳統(tǒng)算法漏檢率隨著人臉遮擋面積的增加而劇烈遞增的劣勢,本文算法則保持著70%以下的漏檢率.因此,相比傳統(tǒng)檢測算法,本文提出的算法對光照、遮擋等因素影響的人臉的檢測性能較好.
通過試驗可知基于黃金分割的人臉檢測算法在人臉數(shù)據(jù)庫中的檢測效果:在單張人臉不同角度及遮擋條件下的檢測效果均比較理想;每一次檢測后對人臉的分割比較理想,達到了預期效果;算法存在的不足是對含多張人臉圖像的檢測效果存在一定的瑕疵,魯棒性較差;對某些不可控遮擋(如大面積遮擋、角度嚴重變形)等表現(xiàn)欠佳.完善檢測的每一個步驟,使算法構建的分割框架可以在檢測到人臉之后能夠完成分割人臉并抓取特征點是本文算法的核心思想,也是改進傳統(tǒng)檢測算法的緣由.因此,本文提出的檢測算法還需要不斷增強算法的學習機能,使每次檢測都能快速檢測到人臉區(qū)域并進行有效分割.未來的研究方向是在優(yōu)化算法的同時,提高算法的泛化能力,即對不同人臉數(shù)據(jù)集中的人臉樣本均可以達到較高的速度和精度.
圖6 光照強度及遮擋影響下的檢測對比Fig.6 Detection comparison under the influence of light intensity and occlusion