余 勝,謝 莉
(韶關學院 信息工程學院,廣東 韶關 512005)
關鍵字:人臉檢測;卷積神經網絡;多尺度特征學習
人臉是每個人的門戶窗口,日常交流中快速準確的完成人臉檢測對人而言是非常容易的一件事,人能夠在人群擁擠、相互遮擋等各種復雜情況下精確的確定目標人臉所在位置.在人工智能高速發(fā)展的時代,人臉檢測更是當前許多人工智能項目的基礎,如刷臉支付、人臉識別、疲勞駕駛、美顏技術等,在現實應用中有著非常重要的意義[1].
近年來,隨著深度學習技術的成熟,特別是卷積神經網絡在圖像增強、目標分割、目標檢測與識別等領域都有突破性的發(fā)展[2-3],這也給人臉檢測帶來了巨大的成功[4-6].相比于基于人工設計特征的人臉檢測方法,以卷積神經網絡為原型構建的人臉檢測模型模擬人類大腦,以原始的圖像作為輸入,自動學習獲取人臉相關特征,完成人臉的檢測.當前在限定條件下的人臉檢測可以達到商用的程度,但在非限定條件下,涉及到人臉頭像采集的角度、光照、背景等復雜環(huán)境和因素的影響,導致非限定條件下的人臉檢測更為復雜、難度更大.根據人工設計特征的不同,可以將人臉檢測方法分為基于知識的方法、基于模板匹配的方法、基于統(tǒng)計學習理論的方法和基于表觀的方法四大類[7].
基于知識的方法主要根據每個人具有不同的五官、膚色等特征,同時人臉的五官特征之間又有一定的規(guī)則特點去約束人臉檢測的過程[8].基于模板匹配的方法主要是根據事先設計的固定模板或可變形模板,首先在目標圖像中進行滑窗掃描,若模板與對應滑動窗口區(qū)域的相關系數大于設定的閾值,則認為該區(qū)域為候選人臉目標[9-10];然后用非極大值抑制等方法刪除候選目標區(qū)域間重復率過大的候選目標;最后獲得人臉目標區(qū)域,實現人臉檢測.基于統(tǒng)計學習理論的方法[11].統(tǒng)計學習理論的基本思想是根據大量給定的正向、反向的例子樣本集,然后根據輸入的正負樣本,利用機器學習方法訓練分類模型,進而實現人臉檢測.此類方法的優(yōu)點是在大量的樣本中學習和測試,然后學習到人臉自身固有的內在特征,不需依賴于先驗知識,但基于統(tǒng)計學習理論的方法受樣本集數目的影響比較大.基于表觀的檢測方法是根據一系列具有代表性的人臉圖像庫中學習到人臉的公共表觀特征,實現人臉圖像的檢測.
隨著深度學習技術的發(fā)展以及成功的實際應用,特別是卷積神經網絡在人臉檢測中取得了突破性成果[12-13].人臉檢測屬于目標檢測領域中的一個特殊應用方面,因此目標檢測中的R-CNN,Faster R-CNN和YOLO 等方法在人臉檢測的應用中取得了較好的檢測效果.李祥兵等[1]提出以ResNet-50 為深度學習網絡框架學習人臉特征,通過融合不同卷積層的特征實現多尺度融合.Le 等提出多尺度Faster-RCNN 網絡實現不同尺度的特征有效融合[14].張智等提出基于YOLOv3 的小尺寸人臉檢測方法,提升了模型對多尺度人臉的檢測性能[15].賀懷清等在YOLO 的基礎上,設計了一種由密集到稀疏的多尺度并行人臉檢測模型,提升了檢測的定位準確性和召回率[16].在實際場景中往往存在人臉過小、相互遮擋等情況,雖然通過深度網絡提取的圖像特征包含了豐富的高層語義特征,但仍然難以準確表征人臉.同時,上述基于目標檢測方法存在有網絡模型層次過深,難以訓練和耗時的不足,且容易忽略小尺寸的人臉.
筆者設計了一種改進的全卷積神經網絡模型用于非限定場景下人臉檢測.該方法能夠適應較復雜的自然場景,在確保檢測準確率的同時進一步提升了檢測速度.
筆者提出了基于全卷積神經網絡的人臉檢測模型,通過設計多尺度特征融合神經網絡,應用軟非極大值抑制、多尺度特征學習結構,實現人臉的檢測特別是小尺度人臉目標的定位和檢測.
VGG-Net 最初是2014 年由牛津大學視覺幾何團體設計并與用于2014 年ImageNet 圖像分類挑戰(zhàn)賽,并獲得了第2 名的成績,筆者在VGG-16 模型基礎上設計了一種全卷積神經網絡的人臉檢測模型[18].
VGG-16 網絡結構主要由13 個卷積層和3 個全連接層組成,模型待優(yōu)化參數是數億級別,其中全連接層的參數約占整個網絡參數的89%.在VGG-16 網絡中,卷積層后面接3 個全連接層和Softmax 層實現特征維度的降維和圖像的分類預測.但在VGG-16 網絡中的全連接層將特征映射到低維特征空間的過程中,會把目標對象的空間位置特征信息全部丟失,導致后續(xù)無法實現特征目標的定位.針對全連接層丟失目標空間位置信息和參數巨大的問題,提出用卷積層代替全連接層的網絡結構.首先將神經網絡的后3 個全連接層修改為3 個卷積層,卷積核大小為33,卷積核個數為512 個(見圖1);然后分別將第4、5 和6等3 個卷積層組的最后一個卷積層用ROI-Pooling 進行處理,使得池化后的特征映射在維度上相同;接著增加一個卷積核大小為11,卷積核個數為1 024 的卷積層用于降低特征維度;最后在卷積層后分別接一個Softmax 層和Bound box 回歸層.
圖1 基于全卷積神經網絡的人臉檢測框圖
一般的人臉檢測算法中,是將最后卷積層特征映射輸入到反卷積神經網絡,再進行上采樣過程,最后得到跟輸入圖像尺寸一樣的熱圖.根據熱圖上每個像素點的概率值判斷輸入圖像中相應感受野區(qū)域為人臉目標的概率值.如果所得概率值大于設定的閾值則將該區(qū)域作為人臉候選目標區(qū)域.但在深度神經網絡中,深層網絡層的感受野較大,對大尺度目標敏感,而對一些小尺度目標則不敏感.為了提升對小尺度人臉目標的檢測性能,提出將多個低層和高層卷積特征映射圖通過ROI-Pooling 進行融合,獲得更多的人臉細粒度特征信息.具體是選擇VGG-16 網絡中分別把第4,5 和6 等3 個卷積組中最后一個卷積層進行ROI-Pooling 池化,然后將3 個ROI-Pooling 后的特征映射圖進行串接作為反卷積層的輸入,最后得到細粒度人臉目標的候選區(qū)域.
非極大值抑制(Soft Non-Maximum Suppression,SNMS)通過抑制非極大值的元素,獲取局部極大值[17].在目標檢測中,非極大值抑制方法用于對候選目標框進行篩選,保留置信度最高的目標候選框,去除重合度較高的目標候選框.在人臉檢測中,可以去除同一張臉附近產生的多個候選框,保留置信度最高的人臉候選框.但對重疊人臉的情況,非極大值抑制容易誤刪除部分人臉,容易出現漏檢的情況.非極大值抑制方法中得分重置函數表示為:
其中,為兩個檢測框的重疊率,為設置的重疊率閾值,M為得分最高的檢測框,一般設為0.3. 但將NMS 算法用于人臉檢測時,當不同人臉重疊過大時,部分人臉檢測框的得分會被直接置零,會導致人臉漏檢.例如一張圖像中兩個人臉檢測框的檢測得分是0.95 和0.91,非極大值抑制中的重疊率設置為0.3. 當兩個人臉檢測框的重疊率為0.35 時,根據非的極大值抑制方法,第二個人臉檢測框會被刪除,這會導致得分為0.91 的人臉漏檢.
針對非極大值抑制存在的問題,使用改進的非極大值抑制算法SNMS[18]去除重疊檢測框.對比NMS算法,SNMS 算法將存在重疊的檢測框在重疊率大于閾值時不是直接置零,而是設置一個衰減函數. SNMS得分衰減函數見式(2).通過衰減函數的設置,當一個檢測框與M的重疊部分較大時,對應的得分會比較低;當僅有小部分重疊時,檢測框的得分影響較小,不會被丟棄.
實驗在Ubuntu 18.04 系統(tǒng)實現,并選用Tensorflow 和Keras 深度學習平臺,GPU 為NVIDIA GTX Titan,內存34 G,對VGG-16 網絡模型用在ImageNet 上訓練好的模型進行參數的初始化.
人臉數據集選用公共Wider Face 數據集,Wider Face 共包含有32 203 張圖像,其中包含有393 703 個標注好的人臉.這些標注的人臉在形狀、尺度、光照情況、遮擋等因素都不一樣,對人臉目標檢測有很大的挑戰(zhàn)性.實驗選用FDDB 人臉作為測試數據集,其中包括2 845 張圖片,共有5 171 個人臉.網絡訓練時,初始學習率設置為0.000 1,衰減率設置為0.005,每經過20 000 次學習率衰減一次.為增加訓練樣本數目,采用水平翻轉作為數據增強策略.測試時,首先采用軟非極大值抑制方法,濾除重疊候選目標區(qū)域,然后再將測試圖像中候選目標區(qū)域的得分超過0.8 時將該目標區(qū)域視為人臉區(qū)域.
實驗的方法與其他經典的人臉檢測方法進行對比,實驗結果見表1.從實驗結果可知,全卷積神經網絡模型的檢測準確率要明顯高于參考文獻中的檢測準確率.另外,由于將全連接層替換成為卷積層,大大減少了待優(yōu)化參數的數目,從單張檢測時間可以看出,全卷積神經網絡結構的時間復雜度要低于其它檢測算法.同時,通過對人臉檢測結果的觀察,對測試集中一些小尺度人臉檢測的效果也要明顯優(yōu)于其它對比算法.這說明設計的多尺度特征學習網絡結構能夠學習到細粒度特征,更有利于小尺度人臉目標的檢測.
表1 人臉檢測算法性能對比
圖2 為本算法設計網絡對不同圖像中人臉檢測的效果.在人臉密集度不高的場所,該算法都能準確的完成人臉檢測.在圖2(b)中對有部分遮擋的人臉也實現了準確的檢測;在圖2(c)中人臉密集且小尺度人臉的情況下,該算法同樣有很好的檢測效果,具有對小尺度人臉檢測的魯棒性.
圖2 不同場景下全卷積神經網絡人臉檢測效果圖
針對非限定場景中人臉檢測問題,筆者設計了一種全卷積神經網絡的人臉檢測結構,并設計了多尺度特征學習網絡結構,有利于細粒度特征的學習,在小尺度人臉檢測方面有較大的優(yōu)勢.通過軟非極大值抑制方法一定程度上解決了人臉重疊時漏檢的問題,提升了檢測模型的查全率.實驗結果顯示,全卷積神經網絡結構對非限定場景下的人臉檢測有很好的檢測效果,在FDDB 測試集中的檢測準確率達到96.6%,平均單張圖像的檢測時間0.83 s.