?

基于單一神經網絡的實時人臉檢測

2019-11-02 05:45熊寒穎魯統偉蔣沖宇
武漢工程大學學報 2019年5期
關鍵詞:人臉尺度卷積

熊寒穎,魯統偉,閔 峰,蔣沖宇

武漢工程大學計算機科學與工程學院,湖北 武漢 430205

隨著深度學習和計算機視覺技術的飛速發展,人臉檢測技術被廣泛應用于生活的各個角落。例如拍照美顏、安防監控、視頻會議等,其中人臉檢測技術是人臉識別[1]中最開始的一步。由于人臉尺度多樣性,使得人臉檢測模型在CPU上很難達到實時檢測速度,所以如何讓模型在不降低精度的同時保障運行速度,依舊是巨大的挑戰。

在深度學習爆發之前,人臉檢測主要使用淺層模型完成。人們利用算法把那些看上去抽象的信息變得易于處理,最后人工設計處理得到的半成品再交給模型去學習[2],這種方法嚴重影響了人臉檢測算法的檢測速度和精度。Viola等[3]使用Haar(Haar-based)的級聯分類器來檢測對象,使人臉檢測算法有很大的改進。Viola等將Haar特征與Adaboost[4]算法相結合實現人臉檢測算法。Ahonen等[5]利用局部二值特征實現人臉檢測算法。這些傳統的人臉測算法在速度上具有一定優勢,但是人臉圖像易受光照不均、姿態多樣性和遮擋等情況的影響,實際應用中檢測精度不高。

隨著深度學習的發展,人們提出了使用深層模型來實現人臉檢測。深度學習舍棄了人工提取特征的步驟,讓模型更好地根據數據的原始狀態學習,因此更容易學到數據中有價值的信息[6]。Yang等[7]提出通道特征(aggregation channel feature,ACF)算法,將傳統方法和神經網絡相結合,利用多通道特征實現人臉檢測。Chen等[8]提出Jiont Cascade算法,將人臉關鍵點檢測與人臉檢測相結合,提高人臉檢測算法精度。Ghiasi等[9]提出高分辨率可變形部件模型(multires hierarchial deformable pot model,MultiresHPM),利用級聯神經網絡進行人臉檢測和關鍵點定位,實現多角度和遮擋情境下的人臉檢測。Zhan等[10]提出多任務級聯神經網絡(multi-task cascaded convolutional network,MTCNN),利用三層級聯神經網絡實現人臉檢測和關鍵點對齊算法。Zhang等[11]提出 Faceboxes算法,基于CPU的快速準確人臉檢測。

現有的人臉檢測網絡可分為級聯神經網絡和單一神經網絡兩種。其中級聯神經網絡適合檢測單個人臉圖像,當圖像中存在多個人臉時會增加檢測時間,且訓練方法復雜。單一神經網絡的人臉檢測算法,可快速檢測出一張圖像中多個人臉,且結構簡單易于訓練。為實現實時的人臉檢測,本文選擇單一神經網絡。在網絡的前2個卷積層中設置較大的步長,使輸入圖像尺寸快速減??;為防止圖像中小尺寸的人臉信息丟失,將淺層特征信息和深層特征信息相融合,增加小尺寸人臉的信息并減少重疊檢測框;由于圖像中存在多尺度[12-13]的人臉,利用 Inception[14]結構和重疊框預測策略,增加小尺寸人臉的檢測概率;使用多級損失函數,分別預測人臉框和人臉類別。

1 基于單一神經網絡的實時人臉檢測

基于單一神經網絡的實時人臉檢測網絡結構如圖1所示。網絡的輸入為1024*1024像素大小的圖像,當輸入圖像尺寸小于該尺寸時,用值為0的像素將圖像自動填充成到1024*1024像素大??;Conv1、Pool1、Conv2和Pool2層采用較大的卷積核和步長,快速縮小輸入圖像尺寸,保證人臉檢測的實時性;Conv3和Conv4層引入淺層特征信息,實現上下文特征融合,提高網絡對細節信息的感知能力;Inception1、Inception2和Inception3層實現人臉的多尺度檢測,利用多尺度卷積和預測框重疊策略,減少尺度變化對檢測效果的影響;利用多任務損失函數,加快模型的收斂速度。

圖1 人臉檢測網絡結構圖Fig.1 Structure diagram of face detection network

1.1 快速下降卷積

當輸入網絡的檢測特征圖尺寸較大時,網絡卷積的時間會增加,在CPU上的運行時間會加長。本文網絡使用輸入尺寸為1024*1024像素的彩色圖,為快速縮小輸入特征圖尺寸,在Conv1、Pool1、Conv2、Pool2這4層設置較大的卷積核步長,分別為4、2、2和2,經過這4層卷積操作使輸入空間快速縮小32倍。Conv1層和Conv2層卷積核的大小分別為7*7和5*5,特征圖像填充為3。Pool1和Pool2層的卷積核大小都為3*3,無圖像填充。為提高檢測速度,在Conv1和Conv2層采用了C.ReLU[15]激活函數。C.ReLU激活函數應用在ReLU之前簡單地連接否定輸出,在保證輸出維度不變的情況下減少卷積核數量,提高檢測速度。C.ReLU結構如圖2所示。

圖2 C.ReLU結構圖Fig.2 Structure diagram of C.ReLU

1.2 特征圖融合

由于低層特征分辨率較高,包含更多位置和細節信息,但是其經過的卷積少,語義性低,噪聲多;高層特征具有更強的語義信息,但是分辨率很低,對細節的感知能力較差[16]。因此將低層特征和高層特征融合增加不同層之間的聯系,減少重復的人臉框,另一方面引入上下文信息可以提高小尺寸人臉的檢測精度。本文提出的特征圖融合模型如圖3所示,圖3(a)將Inception1和Inception2經過特定方式融合構成一個特征圖Conv3;圖3(b)將Conv3和Inception3經過特定方式融合構成一個特征圖Conv4。Concat層可以將2個及以上的特征圖按照通道數或特征維度進行拼接,以此融合輸入層的特征信息;Conv1*1是卷積核大小為1*1的卷積層,可使特征圖降維,減少網絡計算量,加快檢測速度。

圖3 特征圖融合模塊:(a)Inception1和Inception2,(b)Inception3和Conv3Fig.3 Modules of feature map fusion:(a)Inception 1 and 2,(b)Inception 3 and Conv 3

1.3 多尺度人臉檢測

為了解決人臉的多尺度問題,采用多個卷積層預測人臉框位置。在網絡中的Conv4、Conv5和Conv6層進行多尺度檢測,利用不同大小的檢測框和檢測框密集策略來實現多尺度檢測。Inception模塊可用于檢測多尺度的人臉,該模塊由多個卷積核大小不同的卷積組成,針對網絡寬度做多尺度設計,可以增加網絡深度和寬度,減少網絡參數。在圖1人臉檢測網絡中使用了3個Inception結構,其結構如圖4所示。

圖4 Inception結構圖Fig.4 Structure diagram of inception

使用不同大小的檢測框預測人臉位置,可以共享網絡層參數,減少計算量提高人臉檢測速度。利用人臉的形狀特點將檢測框設置成正方形,檢測框內的任意輸入都會影響輸出結果。然而測試結果顯示,中間位置的輸入對輸出結果的影響最大,整體呈現一種中心高斯分布形態。定義檢測框密集公式,如公式(1)所示。Adensity是預測框的密度,指的是檢測框的長寬比;m是檢測框密集次數,指檢測框的重復次數;Ascale是預測框的尺寸,指的是對應檢測框的像素大??;Astride是預測框移動的位移量,指檢測框移動的像素個數。

為更好檢測多尺度人臉,利用檢測框重疊策略。將Adensity的值設為4,這樣不同尺度的人臉匹配到的檢測框密度相同。當出現小尺度的預測框時,適當增加檢測框密集次數m,使Adensity的值等于4。多尺度人臉檢測框的參數設置如表1所示。

1.4 損失函數

算法預測了人臉框的坐標和人臉的類別信息,所以采用多級損失函數。根據默認檢測框和真實檢測框位置做Jaccard相似度計算,把相似度大于0.5的默認框設置為正樣本,其它為負樣本。使用2級Softmax損失函數進行分類,用Smooth1Loss進行回歸。損失函數公式如下。

表1 多尺度人臉檢測框參數Tab.1 Parameters of face detection in multi-scale

公式(2)中,pi是目標感受野的概率是標簽,為0時,表示為負樣本為1時,表示為正樣本;ti={tx,ty,tw,th}是一個向量,表示預測框的4個參數坐標;ti*是正確的目標感受野的坐標向量;是目標和非目標的對數損失,是回歸損失

2 實驗部分

2.1 實驗數據和實驗方法

人臉檢測模型首先在廣泛人臉數據集(wider face dataset,WIDERFACE)上訓練,然后在人臉檢測數據集基準(face detection dataset and benchmark,FDDB)和野外標注人臉數據集(annotated face in the wild,AFW)上驗證。WIDERFACE數據集包含3萬多個身份,其中人臉圖像有40多萬張,該數據庫還標記了所有的人臉位置坐標。若人臉圖片太小,在訓練人臉檢測模型時會降低模型收斂速度,所以先將尺寸小于20*20像素的人臉圖像過濾掉再進行網絡訓練。

網絡訓練和測試都是基于Caffe深度學習框架。使用學習率衰減策略,前8萬次網絡迭代使用的學習率為0.001,然后每訓練2萬次迭代學習率會降低0.1倍,一共訓練12萬次。為避免網絡陷入局部最小,網絡的動量設置為0.9。為避免過擬合,使用l2正則化,權重衰減為0.0005。在CPU檢測圖像可以達到21幀/s的速度,在GPU上測試可達到125幀/s的速度。

2.2 實驗結果分析

2.2.1 模型合理性驗證 為了驗證本文網絡模型的合理性,做了2個對比試驗。實驗一:沒有加入特征融合模塊,直接在Inception3、Conv5和Conv6層進行多尺度檢測,人臉檢測框參數與本文算法一致。實驗二:在多個特征圖上進行多尺度檢測,Conv4設置檢測框大小為32*32像素,檢測框密集次數為4;Conv5層設置檢測框大小為64*64像素,檢測框密集次數為2;Inception3設置檢測框大小為128*128像素,檢測框密集次數為0;Conv5和Conv6層的檢測框參數與本文算法一致。在AFW數據集上驗證模型合理性,AFW數據集包含205張人臉圖像。實驗結果表明本文模型優于對比模型,如表2所示。

表2 不同融合方式的精確度比較Tab.2 Accuracy comparison of different fusion methods

2.2.2 模型檢測速度對比 為驗證本文方法的實時性,對比了 ACF、Jiont Cascade、MultiresHPM、MTCNN和Faceboxes 5種人臉檢測方法。從網絡輸入圖像尺寸、網絡檢測人臉尺寸和檢測速度做了對比。人臉檢測算法在CPU環境下檢測速度對比,如表3所示。由表3可知,在CPU下檢測大小為640*480像素的圖像,本文算法對比其他5種算法,網絡檢測到的人臉尺寸最小且速度最快。

表3 算法的檢測速度和檢測尺寸比較Tab.3 Comparison of detection speed and time with different algorithms

2.2.3 模型檢測精度對比 為驗證本文模型檢測精度,在FDDB數據集與5種人臉檢測算法進行對比。FDDB數據集包括2845張圖像,一共標注了5171張人臉。FDDB是具有標準評估過程的數據集,使用橢圓框標注人臉位置。本文算法用矩形框標注,所以先把橢圓標注轉化為矩形標注。我們遵循FDDB數據集的評估流程,用官方提供的工具箱測試本文人臉檢測算法的精度。FDDB數據集的測試標準可分為離散評分和連續評分2種情況。離散評分以檢測到的人臉框和真實人臉框的重合面積為評判標準,當2個框的重合面積大于0.5時認為檢測到了人臉。連續評分是以檢測框和重疊框的重合面積的比率為評判標準,重疊比越大識別率越高。FDDB數據集檢測評分如圖5所示,圖5(a)為離散評分,圖5(b)為連續評分。

由圖5可知,檢測算法在FDDB數據集上的離散和連續情況下正確率分別為92.1%和71.1%,都達到了較為領先的檢測效果。雖然算法檢測精度低于MTCNN,但是算法在速度上是快于MTCNN,所以本文算法可實現實時高效的人臉檢測。

圖5 FDDB數據集結果:(a)離散評分,(b)連續評分Fig.5 Evaluation on FDDB dataset:(a)discontinuous score,(b)continuous score

3 結 語

為提高人臉檢測速度,在初始卷積層中使用較大的卷積核和移動步長,快速縮小輸入圖像尺寸;加入特征圖融合模塊,增強不同層之間的聯系,減少人臉重復框;使用多尺度卷積層,檢測不同尺度的人臉;利用多級損失函數,使模型訓練更快收斂。該算法在FDDB和AFW數據集上達到了良好的檢測效果,在CPU上圖像的檢測速度為21幀/s。但是該算法限制了最小檢測的人臉尺寸,當檢測的人臉圖像尺寸小于20*20的像素時檢測效果不佳。因此對小尺寸人臉圖像的檢測需要進一步提高其檢測效果。

猜你喜歡
人臉尺度卷積
基于3D-Winograd的快速卷積算法設計及FPGA實現
有特點的人臉
一種并行不對稱空洞卷積模塊①
一起學畫人臉
玻璃窗上的人臉
財產的五大尺度和五重應對
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
宇宙的尺度
9
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合