李宇豪,呂曉琪,2*,谷 宇,張 明,3,李 菁
(1.內蒙古科技大學 信息工程學院 內蒙古自治區模式識別與智能圖像處理重點實驗室,包頭 014010;2.內蒙古工業大學 信息工程學院,呼和浩特 010051;3.大連海事大學 信息科學技術學院,大連116026)
人臉檢測是計算機視覺領域主要關注點,在人臉對齊、人臉分析、人臉識別和人臉跟蹤等領域有著廣泛的應用。給定一幅圖像,人臉檢測的目標是確定是否存在任何人臉。如果有,則返回每個人臉的邊界框。早期人臉檢測采用模板匹配技術與手工特征,其代表性成果是ROWLEY等人提出的方法[1-2]。ROWLEY的方法有不錯的精度,但由于分類器的設計和密集滑動窗口的采樣設計導致速度太慢。2001年,VIOLA和JONES[3]設計了Viola-Jones(VJ)框架。之后部分可變形模型(deformable part models,DPM)被一些工作[4-6]用來處理人臉檢測任務。隨著機器學習以及深度學習在計算機視覺領域的不斷發展,且卷積神經網絡(convolutional neural networks,CNN)在ImageNet分類任務[7]取得進展,利用神經網絡進行目標檢測逐步成為主流技術方法[8-9]。級聯網絡(CascadeCNN)[10]延續了VIOLA和JONES的想法,實現了不錯的檢測效果。QIN等人[11]提出整體訓練CascadeCNN,從而實現優化。Faceness利用人臉屬性分類的卷積神經網絡來檢測部分遮擋的人臉[12]。多任務卷積神經網絡(multi-task convolutional neural networks,MTCNN)[13]進一步拓展了級聯CNN的思想,還有部分采用目標檢測領域的思想,將整體網絡結構分為P-Net,R-Net和O-Net。JIANG等人[14]將faster R-CNN[15]應用到人臉檢測取得較好的效果。基于上下文的多尺度區域的卷積神經網絡(contextual multi-scale region-based CNN,CMS-R-CNN)[16]采用上下文信息幫助進行人臉檢測從而提升了性能,將網絡整體分為上部分采用區域生成網絡(region proposal network,RPN)進行檢測,下部分結合人體的人臉長寬等信息進行檢測。WAN等人[17]將faster R-CNN與困難負樣本優化結合取得了不錯的效果。在含有大場景的少量的人臉圖像中準確率已取得較高水平,但在小場景的大量的人臉圖像中準確率較低。針對多尺度人臉檢測,2017年,ZHANG[18]提出尺度不變人臉檢測器(single shot scale-invariant face detector,S3FD),結合了faster R-CNN中的RPN和SSD[19](single shot multibox detector)中的錨點機制。2018年,ZHU等人[20]、LI等人[21]將人臉檢測準確性進一步提高,同年GU等人[22]利用多尺度的目標檢測在3-D方面取得了不錯的效果。2019年,LI和TANG等人[23]提出 PyramidBox++。
針對人臉檢測中因目標特征信息較少、檢測困難的問題,本文中提出一種基于S3FD的人臉檢測算法。使用以視覺幾何組(visual geometry group,VGG)VGG16[24]網絡為主干的S3FD[18]進行特征提取,在整體網絡結構的中間加入卷積注意力模塊[25](convolutional block attention module,CBAM),利用空間和通道注意力來進行不同特征通道和特征圖位置的權重系數,對后續的網絡機構進行特征強化,最后利用特征金字塔網絡[26](feature pyramid network,FPN)結構的形式,將其中FPN網絡結構的卷積部分替換成為感受野模塊(receptive field block,RFB)網絡結構,利用RFB[27]中擴大感受野的效果作用于不同尺度下的特征圖,從而減少目標特征信息的丟失,并且在不大量增加額外參數量的情況下完成人臉檢測。
針對小目標人臉特征較少,以及在圖像獲取中因采集設備等因素導致的圖片精度不高的小目標難以檢測的問題,提出基于S3FD網絡結構的人臉檢測方法。采用VGG16網絡作為檢測主體,強化針對人臉的特征提取力,引入CBAM注意力機制建立時間和空間的依賴關系;使用RFB來獲得較大的感受野,讓網絡結構對目標圖片的感受野擴大從而能獲得更多的信息,而且在此基礎之上還使用FPN網絡結構,使得網絡結構在不同尺度下都可以擴大感受野和在不大量增加額外參數量的情況之下網絡能夠保留更多的圖像細節特征。基于S3FD網絡結構的人臉檢測算法模型S3FD-CBAM-RFB如圖1所示,其中conv表示卷積層,convfc表示全連接層,up表示上采樣過程。

Fig.1 Network structure diagram of S3FD-CBAM-RFB
RFB網絡模塊是2018年由LIU等人[27]提出,仿照人類的視覺增大在神經網絡訓練中的感受野,從而獲得更多的信息提高檢測效果。RFB由不同尺寸卷積核的卷積層構成多分支結構,類似于SZEGEDY等人在2014年提出的inception結構[28],并在此基礎之上加入空洞卷積層,使得RFB的感受野進一步擴大,獲取的特征信息更多,如圖2所示。

Fig.2 Network structure diagram of RFB
在RFB的基礎之上LIU等人還改進出RFB-s,RFB-s于RFB相比主要存在兩個方面的改進,一方面是將3×3的卷積層代替5×5的卷積層,另一方面是將3×3的卷積層改換為1×3和3×1卷積層,主要目的應該是減少計算量,RFB-s網絡結構如圖3所示。

Fig.3 Network structure diagram of RFB-s
CBAM是由WOO等人[25]在2018年提出的網絡結構,目的是對訓練過程中的特征進行干預,將更多訓練時的注意力分配到更能夠區分圖片特征的地方。CBAM與BA等人[29]提出的注意力機制不同,其中包含通道注意力機制和空間注意力機制,CBAM總體結構如圖4所示。

Fig.4 Network structure diagram of CBAM
特征圖F在通道注意力中計算過程如下式所示:
Mc(F)=
σ(MLP(avgpool(F))+MLP(maxpool(F))
(1)
式中,Mc(F)表示經過通道注意力后的特征圖,avgpool和maxpool分別表示均值池化和最大值池化運算。(1)式經過計算后得到下式:
Mc(F)=σ(W1(W0(Fc,avg))+W1(W0(Fc,max))),
(W0∈RC/r×C,W1∈RC×C/r)
(2)
式中,σ為sigmoid操作,r表示減少率,C表示通道數,R表示下降率,Fc,avg,Fc,max以及Fs,avg,Fs,max表示特征圖F分別在通道注意力和空間注意力兩個模塊中經過均值池化和最大值池化后的特征圖。W0,W1是多層感知器(multi-layer perceptron,MLP)運算中的權重,共享輸入和W0的線性整流函數(rectified linear unit,ReLU)激活函數。通道注意力產生的特征圖通過空間注意力的過程如下所示:
Ms(F)=
σ(f7×7([avgpool(F);maxpool(F)]))
(3)
Ms(F)=σ(f7×7(Fs,avg;Fs,max))
(4)
式中,Ms(F)表示通過空間注意力之后的特征圖,f7×7表示卷積核大小為7×7的卷積層。
數據集采用widerface數據集[30],widerface數據集分為easy,medium和hard 3種不同難度的圖像,widerface數據集包含32203個圖像,其中有393703個人臉,而這些人臉在尺度、姿態、遮擋方面都有很大的變化范圍,存在大量的小目標人臉。本模型使用widerface數據集中的訓練集作為模型的訓練集,驗證集作為最后模型檢測的測試集。widerface數據集如圖5所示,在實驗中將widerface數據集的圖像進行顏色扭曲,將圖片裁剪到640×640大小,且以0.5的概率進行左右翻轉進行數據增強。

Fig.5 widerface data set
本文中的模型是采取pytorch框架進行實現,實驗平臺是基于系統Ubuntu18.04,GPU為TeslaV100。實驗中的訓練迭代次數為300次,學習率是跟隨著迭代次數的不斷進行而逐漸減小的,從初始學習率0.001~0.00001變化3次,實驗中批次樣本數設置為18,優化器選擇隨機梯度下降法(stochastic gradient descent,SGD)。
為了評價人臉檢測性能,本文中主要采取精準率-召回率(precision-recall,PR)曲線來進行評價,精準率P指在以預測成為正樣本的結果中實際為正樣本的概率,召回率R指在實際上應為正樣本的樣本被預測成為正樣本的概率。在預測的結果中預測為正樣本的且與實際相符的樣本數用真正例Tp表示,在預測的結果中預測為負樣本的且與實際相符的樣本數用假正例Fp表示;相反,在某一類中預測為正樣本但與實際不符則用假負例Fn表示,預測為負樣本且與實際相符則用真負例Tn表示。PR曲線所覆蓋的面積稱為平均精準率(average precision,AP),AP值越高則分類器的效果越好,其計算方式是將PR曲線所覆蓋的面積分解成矩形進行計算面積。準確率P和召回率R的計算公式如下所示:
(5)
(6)
本文中損失函數分為兩部分,分類損失選用交叉熵損失,用于判斷分類類別是否準確,如下式所示:
(1-yi)×ln(1-pi)]
(7)
式中,L表示交叉熵損失的值,N表示樣本總數,i表示第幾個樣本,Li表示每一個樣本的損失,yi表示樣本i的標簽,pi表示樣本i預測為正的概率,選取平滑最小絕對值偏差損失L1來判斷當前錨點是否合適,回歸損失SL1如下式所示:
(8)
式中,x表示預測框與真實值之間的差異。
2.4.1 實驗結構分析 S3FD-CBAM結構是在VGG16網絡與extra conversion結構連接處添加CBAM結構以此來調整空間和通道的特征比重,如圖6所示。S3FD-double-stage-max則是在原有雙通路基礎上全面加入max-out結構使得負樣本比例減少,如圖7所示。S3FD-double-stage結構是在原本S3FD-CBAM的基礎上,將輸入變為雙通道,一條為VGG16,另一條是由RFB模塊構成,利用兩條不同的網絡結構來構建不同的特征圖,然后進行疊加使網絡整體能夠獲得的特征變多,如圖8所示。圖7與圖8中的concat表示為數據的拼接,S3FD-CBAM-RFB結構如圖1所示。

Fig.6 Network structure diagram of S3FD-CBAM

Fig.7 Network structure diagram of S3FD-double-stage-max

Fig.8 Network structure diagram of S3FD-double-stage
2.4.2 實驗結果分析 3種不同結構網絡在widerface數據集上的表現如圖9所示。圖9a表示4種不同網絡結構在easy難度數據集下的模型表現,圖9b表示4種不同網絡結構在medium難度下的模型表現,圖9c表示4種不同網絡結構在hard難度下的模型表現情況。

Fig.9 Curve of model effect
通過圖9和表1可以看出,S3FD-CBAM-RFB在widerface數據集上的表現在3個不同難度的分類都有一定程度的提高,S3FD-CBAM網絡結構體現出CBAM在網絡結構中的正向作用,使得網絡精確度在3種不同難度下均有了一定程度的提高,在此基礎之上將此網絡結構修改為以RFB為第2條通路的雙通路網絡結構,但由于此結構無法減少在卷積過程中對小目標特征信息的丟失,所以效果反而有一定程度的下降,S3FD-CBAM-RFB則是仿照FPN網絡模塊,將FPN中的卷積層變為RFB之后進行上采樣,在使用RFB擴充感受野的同時將小目標的信息盡可能地保留,使得在人臉預測上S3FD-CBAM-RFB的結果有了一定程度的提高,但是在難度較高且人臉數量較多的hard難度下的圖像中該網絡結構沒有在S3FD-CBAM原有的基礎上改善。本文中的模型在widerface數據集的檢測效果如圖10所示。正如圖10a~圖10d中所示,本文中算法對小型、密集、難度較大的人臉檢測效果較好,但是圖10b中有部分人臉由于人臉角度以及人臉遮擋導致存在漏檢情況,圖10e中存在一定的誤檢,將原本的手檢測成為人臉,主要原因是圖片本身在較遠的部分相對模糊,所以將手誤檢成為人臉。

Table 1 Results of three methods

Fig.10 Test results
為了說明本文中方法的有效性,選取了在widerface數據集上的其它方法進行比較,如表2所示。IS3FD和IS3FD-fast這兩種網絡結構[31]與本文中模型是同種數據集且是同種骨干網絡模型S3FD,IS3FD是采取上下文特征關系,采取局部特征金字塔網絡(local feature pyramid networks,LFPN)以及將max-out擴展至所有特征預測層,IS3FD-fast是將激活函數改用ReLU的變形函數CRelU,將本文方法以及上述兩種方法與原網絡S3FD進行比較,從表2可以看出,本文中方法在hard難度下AP值介于IS3FD和IS3FD-fast兩者之間,但是優于S3FD,在easy以及medium兩個難度下本文算法均優于其它3種同類型的算法,與原S3FD相比分別提高了1.3%,1.2%,0.5%。

Table 2 Comparison of face detection results with the relevant methods
本文中算法在3種不同難度下的人臉檢測中均優于WANG等人[32]和ZHU等人所提出的算法,主要在于擴大了特征圖在網絡中的感受野以及加入注意力機制使得通道和空間的權重對結果產生影響。圖11所示是本文中算法在視頻流檢測效果。圖11a表示在簡單情況下檢測效果,圖11b表示在復雜情況下的檢測效果。綜上所述,本文中模型在widerface數據集上表現出相對較高的準確率和相對較少的運算成本和時間成本。

Fig.11 Video test results
為解決在小目標人臉的檢測準確率相對較差的問題,本文中利用S3FD網絡結構為主干進行針對小目標人臉的檢測算法研究。為解決在卷積過程中目標特征丟失以及圖像清晰度不夠的問題,該方法將S3FD、通道和空間注意力機制、RFB擴大感受野模塊和多尺度特征金字塔相結合,減少目標特征在卷積過程中的損失,使得網絡的整體準確率得到提高。本文中模型在參量方面沒有進行大范圍的增加,使得網絡模型在檢測過程中具有較好的速度,在一定程度上滿足了對目標檢測快速處理的需求。人臉檢測中檢測速度和檢測準確率是一對矛盾體,如何在提高速度的同時提高人臉檢測的準確率一直是人臉檢測這一領域的重點,隨著網絡結構的不斷優化以及硬件設備的不斷提高,各種理論的不斷發展和成熟,在不久的將來更快更準的人臉檢測將會出現,本文中模型在保證一定速度的基礎之上依舊保持較好的準確度,可促進更快更準的人臉檢測技術的發展。