董林鷺,趙良軍,楊明中,林國軍,石小仕,何 嵐
(1.四川輕化工大學 自動化與信息工程學院 人工智能四川省重點實驗室,四川 自貢 643000;2.四川輕化工大學 企業(yè)信息化與物聯網測控技術四川省高校重點實驗室,四川 自貢 643000)
隨著5G網絡的普及,人們利用人工智能服務社會的步伐隨之加快。其中,人臉識別的應用場合變得普遍和友好。但是在環(huán)境復雜多變的實際應用中,計算機要想快速識別出背景復雜且人流量較大的不同場景下大批量的人臉信息,預先排除干擾鎖定人臉是識別過程中非常重要的一步[1-3]。因此,人臉定位的研究能提高人臉識別精度和加快識別速度,成為眾多學者研究的熱點。
目前涌現出許多的人臉定位算法,較為成熟的方法有模板匹配法、SVM模型、AdaBoost算法[4-5]、深度學習[6]以及膚色檢測[7],但這些方法都存在一定缺陷。如基于支持向量機(support vector machine,SVM)的人臉定位算法,其中翟社平提出利用局部二元模式(LBP)對圖像進行特征提取,再利用SVM對其進行分類達到人臉定位的目的,但是該算法隨著分塊數的不斷增加,提取到的特征向量的維數也隨之增加,出現了“維數災難”,導致算法訓練階段的時間變長[8]。
利用深度學習方法進行人臉定位,張衡提出基于級聯卷積網絡的人臉特征點檢測,該方法根據網絡預測的特征點位置,對局部區(qū)域進行裁剪,然后再對局部區(qū)域預測單個特征點,完成人臉的定位檢測,但該方法對訓練人臉的數量要求較高,當獲得的特征點的數量較少時,造成此模型的應用范圍較小[9]。
模板匹配法是最原始的圖像處理方法,用人臉的形態(tài)模板與圖像中的人臉進行匹配,雖運算速度較快,但對于復雜多變的圖像該方法將失去人臉定位的功能。對于膚色定位檢測,楊明中提出將彩色圖像轉換為YCbCr和HSI空間圖像,對變化后的色域進行閾值設定,提取膚色達到人臉定位的目的,但是該方法同樣有著較高的漏檢率[10-11]。
沈翔提出基于膚色與改進Adaboost算法的人臉檢測,利用雙閾值的權重更新方式避免了分類器訓練過程中可能出現的過擬合現象;人臉檢測時利用膚色的聚類性,將檢測到的膚色區(qū)域作為Adaboost分類器的搜索候選區(qū)域達到人臉定位目的[12-13]。
Viola-Jones(VJ)算法是由學者Paul Viola和Michael Jones共同提出的,相比于上述方法VJ算法有著定位速度快的優(yōu)點,在人臉檢測算法中具有重要的地位。該算法的提出標志著機器視覺研究成果具備了投入實際應用的能力[14-15],但該算法只能檢測正面的人臉,對于側面人臉檢測的魯棒性較差,同時對于多人的圖像(畢業(yè)照)或人臉皮膚被污染(礦工人臉)的人臉檢測漏檢率較高。為了提升VJ算法的魯棒性,重點研究了VJ算法的缺陷并對其進行改進。
VJ算法主要分為三部分。第一部分,采用積分圖像的方法快速提取圖像的特征信息;第二部分,利用弱分類器對提取的特征進行分類,減少計算復雜度;第三部分,再采用級聯分類器進一步分類,提高人臉定位的精確度。
設圖像中的像素點為(x,y),將原圖像轉化為積分圖,原理是圖像中每一像素點(x,y)的和都由該點左上角所有像素的值相加后的和構成。滿足表達式:
(1)
其中,r(x',y')表示原圖像素值,rr(x,y)表示積分后得到的圖像像素值。
灰色區(qū)域S的和滿足表達式:
S=D-B-C+A
(2)
求和的圖解過程如圖1所示。
圖1 和計算示意圖
對灰度區(qū)域S進行積分獲得該圖片的特征,滿足表達式:
(3)
其中,wi表示灰度區(qū)域S的權重,wiRctsum(S)表示灰度區(qū)域的圖像像素積分,N表示灰度區(qū)域S的數量。
VJ算法為了提升分類速度,將多個弱分類器進行加權組合構成一個強分類器,其中弱分類器滿足表達式:
(4)
其中,s表示窗口大小為24×24的像素矩陣,f表示特征,p表示極性,θ表示分類器判斷矩陣s的歸類屬性。
(5)
根據式(5)重新定義權重,滿足表達式:
(6)
則強分類器表達式滿足:
(7)
級聯分類器是由多個強分類器串聯組成的多級分類器,每一級的工作就是判斷上一級被確定為人臉的區(qū)域是人臉還是非人臉,若是人臉就傳遞給下一級繼續(xù)判斷,若是非人臉就摒棄。因此,一幅圖像被傳遞的級數越多,是人臉的可能性就越大。該過程如圖2所示。
圖2 級聯分類器示意圖
VJ算法對人臉的偏角敏感性較大,當人臉傾斜時會使VJ算法無法識別出人臉位置,為了解決該缺陷,該文通過實驗的方法確定出人臉左偏角度和右偏角度對算法定位出人臉性能的影響。
為了驗證偏角對VJ算法人臉定位精確度有影響,第一個實驗如圖3所示,將一位正臉的人臉進行偏轉角度處理,統(tǒng)一到同一圖像中讓VJ算法進行人臉定位。第二個實驗如圖4所示,將有偏轉的人臉進行校正處理,統(tǒng)一到同一圖像中讓VJ算法進行人臉定位。第三個實驗如圖5所示,將不同人臉(包含了有偏轉角的人臉和正臉的人臉),讓VJ算法進行人臉定位,同時選用的圖像均為標準的測試像。
圖3 同一人原圖正臉與調整偏轉角的
圖4 同一人原圖偏角與矯正后人臉檢測對比圖
分析圖3~圖5,無論同一人的人臉發(fā)生了偏角還是對有偏角的人臉矯正,VJ算法只能識別正面的人臉。實驗驗證了VJ算法對有偏角的人臉定位魯棒性較差。同時,證實了本文猜想,調整偏角臉的角度能提高VJ算法人臉定位的性能。
圖5 不同人包含正臉與偏角臉的人臉檢測對比圖
為了能使算法自適應調整人臉的偏角度,首先得確認VJ算法能定位人臉與不能定位人臉的角度區(qū)間。采用標準測試圖正面人臉進行角度偏差實驗,定義正面人臉α=90°,左偏α=45°~89°,右偏α=91°~130°。將所有圖像統(tǒng)一到一幅圖像中讓VJ算法同時進行人臉檢測。實驗結果如圖6所示。
圖6 VJ算法有效檢測角度實驗結果圖
分析圖6,從實驗結果可得,VJ算法的有效人臉檢測偏角θ在70°~115°之間。因此,文中算法的思想是,首先將圖像從RGB模式轉化為YCbCr模式,利用色域閾值過濾掉非皮膚區(qū)域,再在過濾后的基礎上進行人臉檢測,排除檢測到的人臉,對候選區(qū)域進行形態(tài)學篩選排除手臂等膚色的干擾,最后對剩下的區(qū)域進行角度矯正,達到提升VJ算法性能的目的。
膚色轉化模型算法[7]滿足表達式:
(8)
再根據YCbCr模式下皮膚的顏色像素區(qū)間在90≤Cb≤130和130≤Cr≤170來設定色域閾值,濾掉大部分非皮膚顏色的背景如圖7(b)所示,再利用VJ算法對圖7(b)進行人臉檢測,檢測結果如圖7(c)所示,最后利用形態(tài)學處理方法進一步去干擾,同時去掉已經檢測出的人臉區(qū)域,得到疑似人臉區(qū)域如圖7(d)所示。
圖7 可疑人臉定位過程圖
在獲得圖7(d)后,利用矩形框框出圖中所有的聯通區(qū)域,各自在圖中形成一幅獨立的圖像,如圖8所示。
對獨立圖像進行圖像旋轉處理達到人臉矯正的目的。如圖9所示,對圖8中某一候選可疑人臉區(qū)域進行旋轉。以標注框內圖像中心為旋轉中心0建立坐標系并標出x軸和y軸,設點圖像中某像素點f(x1,y1)經過逆時針旋轉到f(x0,y0),旋轉角度為α,整個過程O點到待旋轉像素點f(x1,y1)的半徑距離r恒定且與x軸的夾角為β。
圖8 疑似聯通區(qū)域框圖
圖9 矯正示意圖
則點f(x,y)的表達式為:
(9)
點f(x1,y1)的表達式為:
(10)
將式(9)代入式(10)化解后滿足:
(11)
則圖像的矯正中左偏公式滿足:
(12)
同理,右偏公式滿足:
(13)
為了減少計算復雜度,通過實驗結合實際,規(guī)定矯正的角度α的旋轉角度和旋轉方式。目的是為了達到算法的自適應的性能。
對于旋轉角度α,根據圖5的有效偏角實驗結合人臉偏角習慣分析,人臉在未被檢測出來的情況時其左偏角集中在45°到70°之間,右偏角集中在115°到135°之間。即左偏角差不能檢測的角度區(qū)間有35°,右偏角不能檢測的角度區(qū)間有20°。即矯正步驟如下:
(1)假設未矯正前人臉左偏,則對可疑人臉區(qū)域進行矯正向右旋轉35°。因為,假如未矯正之前人臉偏轉角為45°加上35°后矯正到80°,則人臉偏角在VJ算法的檢測角度范圍內。如果未矯正之前人臉偏轉角為70°加上35°后矯正到105°,同樣矯正后的人臉在VJ算法的檢測角度范圍內。
(2)若在步驟(1)下無法檢測到人臉,則考慮人臉未矯正前向右偏,對可疑人臉區(qū)域進行矯正向左旋轉20°,因為,當人臉在未矯正之前偏轉角為135°減去20°矯正到115度,則人臉偏角在VJ算法的檢測角度范圍內,如果未矯正之前人臉偏轉角為115°減去20°后矯正到95°,同樣矯正后的人臉在VJ算法的檢測角度范圍內。
(3)如果前兩步都未能檢測出人臉,則直接結束矯正運算,判定可疑區(qū)域為手臂、背景等干擾區(qū)域。
為了驗證文中算法的真實有效性,以MATLAB2016a編程,以2.60 GHz的英特爾處理器、內存為8 GB的筆記本為平臺進行實驗仿真。實驗中采用三個標準人臉檢測庫Faces、IMM和AFW進行人臉檢測實驗。同時,利用VJ算法和文獻[10]算法與文中算法進行對比。
實驗結果如表1所示。
表1 不同算法檢測結果比較
文中算法對于有偏角人臉且背景復雜的人臉正檢率較VJ算法提高較10%,較文獻[10]算法提高6%。誤檢率對于Faces人臉庫文中算法較VJ算法降低13%,對于AFW人臉庫文中算法較VJ算法降低12%。實驗結果表明,文中算法能有效提高正檢率,降低誤檢率,提高VJ算法的應用性能。
總結了VJ算法的基本原理,并對VJ算法的偏角漏檢的角度進行試驗,提出了一種改進方法,對研究人臉檢測的學者具有一定的參考意義。同時,該算法能有效提高多人圖像中人臉的檢測率,但還是存在漏檢與誤檢的情況。接下來將進一步研究人臉檢測的特點,提高人臉的檢測率,降低誤檢率。