王 建 宋曉寧
人臉檢測是計算機視覺領域的經(jīng)典任務.人臉檢測作為人臉識別、人臉跟蹤、人臉對齊、人臉表情分析的第一步,對下游任務起到?jīng)Q定性的作用.隨著通用目標檢測框架的不斷進步,人臉檢測作為其中一個子領域,性能也得到大幅提升,然而這些性能的提升大多以加深和拓寬網(wǎng)絡結構為前提,增加模型的復雜度,使模型難以部署到移動平臺之中.
現(xiàn)有的人臉檢測算法主要還是遵循通用目標檢測框架的設計,一般可分為多階段檢測和單階段檢測,相比單階段檢測,多階段檢測增加建議框提取的過程.Zhang等[1]設計三個子網(wǎng)絡,先通過第一個網(wǎng)絡獲取大量建議框,后續(xù)網(wǎng)絡再對上一階段的輸出進行優(yōu)化.這種做法剔除訓練階段大量的負樣本,使正負樣本更均衡.由于采取多階段的優(yōu)化方式,大幅增加檢測算法的運行時間,因此當前人臉檢測算法的主流仍是單階段檢測算法,而且目前對單階段檢測方法的研究已達到和多階段檢測相當?shù)木?,運行效率較高.
人臉檢測中最突出的問題莫過于極端的人臉尺度變化.現(xiàn)實場景圖像中人臉尺度具有連續(xù)性,單幅圖像中可能同時出現(xiàn)極大人臉和極小人臉.為了處理尺度變化大的問題,研究者著力于分治處理不同尺度的人臉[2-3],提出多級特征檢測器.
多級特征檢測器結構提高人臉檢測的精度,有效利用骨干網(wǎng)絡多個階段輸出的不同分辨率的特征圖.這些特征圖分別包含不同范圍的感受野信息,巧妙處理不同尺度的目標,Lin等[4]提出特征金字塔網(wǎng)絡(Feature Pyramid Network, FPN),改進多級檢測結構,融合骨干網(wǎng)絡相鄰階段的輸出特征,增強低分辨率特征的細節(jié)表達能力和高分辨率特征的語義表達能力,由此產(chǎn)生一系列基于FPN的改進[5-7],現(xiàn)有較優(yōu)的人臉檢測網(wǎng)絡均采用這種設計[8-12].Deng等[8]提出RetinaFace,使用FPN結構并輸出5個分支,處理不同尺度的人臉.Tang等[9]提出Pyramid-Box,根據(jù)經(jīng)驗分析設計不同層級的融合方式,并輸出6個分支處理不同尺度的人臉.Li等[11]提出ASFD(Automatic and Scalable Face Detector),采用ResNet50[13]作為骨干網(wǎng)絡,采用神經(jīng)網(wǎng)絡架構搜索一個獨特的FPN,然后融合骨干網(wǎng)絡輸出特征并輸出6個尺度不同的特征圖.
上述網(wǎng)絡均采用特征金字塔結構及其變體的設計,然而這種網(wǎng)絡結構也并非完美,存在如下缺點:1)輸出的多級特征要逐個經(jīng)過共享頭部的推理,相比直接處理單級特征圖,無疑減緩網(wǎng)絡推理速度,并且FPN會增加推理過程中臨時變量的使用,占用大量顯存.2)非常依賴于多級標簽分配方法,不同的標簽分配方法產(chǎn)生的差距可能非常大,這種結構不僅要考慮將哪些位置的錨框分配為正樣本,還需要選擇分配至哪一層級.
在通用目標檢測中,也有一些方法僅依賴于單級特征圖.Law等[14]提出CornerNet,Duan等[15]提出CenterNet,都僅使用單級特征圖,并將邊界框回歸任務轉變?yōu)殛P鍵點檢測的任務,通過對熱力圖回歸定位目標,然而只有在使用Hourglass[16]這類大型的骨干網(wǎng)絡時才能取得較優(yōu)結果.Chen等[17]提出YOLOF(You Only Look One-Level Feature),使用空洞編碼模塊獲取較大的感受野,同時保留較小的感受野特征,從而將寬范圍的感受野融入單級特征圖中.該方法使用C5層作為基層特征,放大其感受野,這就要求輸入圖像的分辨率足夠大,否則在提取C5特征時會損失過多的細節(jié)信息,但是高分辨率的輸入會增加過多的計算量.同時,YOLOF未有效利用骨干網(wǎng)絡的淺層特征,對小目標檢測性能較差.
在人臉檢測領域,Xu等[18]提出CenterFace,僅使用單級特征圖,并取得不錯效果.CenterFace基于無錨設計,在步長為4的特征圖上布滿錨點,利用高斯核計算一個等效的熱力圖以表示真實框.這種無錨設計固然簡單,但在面對遮擋人臉時,如果兩個人臉框的等效熱力圖中心點重疊,該位置也僅能檢測一幅人臉.另外CenterFace邊界框回歸僅使用人臉框中心的錨點,這種回歸方式大幅降低錨點的命中率,不利于網(wǎng)絡充分訓練.
還有一些方法通過增加額外的監(jiān)督信息獲取精度的提升.He等[19]提出Mask R-CNN,增加額外的掩碼分支,取得更精確的定位信息.Zhang等[1]提出MTCNN(Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks),Chen等[20]提出STN(Supervised Transformer Network),聯(lián)合人臉檢測和5個人臉關鍵點檢測,提升網(wǎng)絡對人臉信息的辨識度.然而大部分方法都是將輔助監(jiān)督信息和分類或回歸分支共享特征,這種處理方式未考慮到不同任務之間的差異.
針對上述分析,并受到TBCNN(Three-Branch Convolutional Neural Network)[21]對不同特征融合方式的啟發(fā),本文提出融合多尺度特征的輕量級人臉檢測網(wǎng)絡(Lightweight Face Detection Network with Multi-scale Feature Fusion, LFDMF).與之前的人臉檢測網(wǎng)絡不同,輸入圖像在經(jīng)過頸部網(wǎng)絡后僅輸出單級特征圖,該特征圖融合不同范圍的感受野,能有效提取各種尺度目標的語義特征.最后將該單級特征圖輸入頭部網(wǎng)絡,進行人臉分類、回歸及檢測人臉的關鍵點.實驗表明,該方法融合多尺度特征圖至單級特征,同樣能取得較優(yōu)效果,并且相比其它多級特征檢測的方案,在參數(shù)量和計算量上具有較大優(yōu)勢.另外LFDMF提出多任務敏感檢測頭,同樣引入人臉關鍵點檢測,并將分類、回歸、關鍵點檢測作為多任務進行處理.該檢測頭既考慮不同任務之間的差異,又考慮不同任務之間的相似性.實驗表明,該檢測頭能進一步提升模型性能.
本文提出融合多尺度特征的輕量級人臉檢測算法(LFDMF),整體框架如圖1所示.
圖1 LFDMF整體結構Fig.1 Overall structure of LFDMF
骨干網(wǎng)絡的優(yōu)劣會直接影響特征提取的好壞,進而影響目標檢測的結果.PyramidBox以VGG16網(wǎng)絡[22]作為骨干網(wǎng)絡,RetinaFace采用ResNet101為骨干網(wǎng)絡,這兩類骨干網(wǎng)絡計算復雜度較高,不宜充當輕量級網(wǎng)絡的主干.Guo等[23]提出SCRFD(Sam-ple and Computation Redistribution for Efficient Face Detection),指出目標檢測中常用的骨干網(wǎng)絡并不適用于人臉檢測,然后基于神經(jīng)網(wǎng)絡架構搜索多個不同計算量的適用于人臉檢測的骨干網(wǎng)絡,該骨干網(wǎng)絡具有參數(shù)較少、計算量較低等優(yōu)點.因此LFDMF分別選取SCRFD-34g、 SCRFD-2.5g、SCRFD-0.5g三個不同計算量的骨干網(wǎng)絡,構造LFDMF-L、LFDMF-M、LFDMF-S.SCRFD-34g指在輸入分辨率為640×640條件下,以殘差塊(Residual Block)為基本搜索單元,對殘差塊的通道數(shù)、疊加深度等進行搜索,限制網(wǎng)絡整體的浮點運算量為34 G下搜索得到的骨干網(wǎng)絡,同理SCRFD-2.5g限制網(wǎng)絡整體浮點運算量為2.5 G,SCRFD-0.5g限制網(wǎng)絡整體浮點運算量為0.5 G.
與多級檢測網(wǎng)絡不同,LFDMF的頸部網(wǎng)絡僅輸出單級特征圖,因此與多級檢測網(wǎng)絡的設計思想也有所不同.在多級檢測網(wǎng)絡中,頸部網(wǎng)絡的主要功能是分治處理不同尺度的目標,高層特征處理尺度較大的目標,低層特征處理尺度較小的目標.然而人臉尺度是連續(xù)的,理論上劃分越多的層次,能處理的人臉尺度就更有連續(xù)性,但這顯然與輕量化檢測目標相矛盾.LFDMF頸部網(wǎng)絡的目標是先擴大感受野的范圍,然后將不同的感受野融入單級特征圖中,處理各種尺度的目標人臉,可通過下采樣和空洞卷積的方式實現(xiàn)擴張感受野,下采樣會丟失目標的空間信息,因此LFDMF選擇空洞卷積獲取更大的感受野.
圖1中空洞編碼模塊由4個基于空洞卷積的瓶頸塊串聯(lián)組成,每個瓶頸塊中3×3空洞卷積層的空洞率分別為2、4、6、8,經(jīng)過空洞卷積擴張感受野后,使用殘差連接聚合不同感受野的特征.不同于YOLOF,LFDMF在精度和計算量的權衡下,頸部網(wǎng)絡輸出步長為8的P3特征圖,另外該網(wǎng)絡復用骨干網(wǎng)絡前幾個階段的輸出特征,分別通過上采樣模塊和下采樣模塊進行融合.這對于較小尺寸人臉檢測較有利.實驗表明,相比FPN,該結構具有更優(yōu)性能.
大多數(shù)人臉檢測頭直接從頸部輸出引出雙分支進行分類和回歸.如圖2所示的基線檢測頭,特征圖輸入到檢測頭后先分成2個分支,每個分支堆疊N個3×3卷積層,關鍵點檢測僅作為輔助分支掛載到回歸分支和共享特征.雖然這些任務之間有一定的關聯(lián)性,但也存在許多差異,如分類分支更關注人臉的全局信息,回歸分支更關注人臉的邊界信息,關鍵點檢測更關注人臉的關鍵部位.
圖2 基線檢測頭Fig.2 Baseline detector head
受這種思想的啟發(fā),本文提出任務敏感型的檢測頭,如圖3所示.
圖3 多任務敏感檢測頭Fig.3 Multi-task sensitive detector head
任務敏感型的檢測頭的目標是找出不同任務特征圖的最佳融合方式.首先,與常規(guī)檢測頭相同,從頸部輸出的特征圖引出T個分支,每個分支經(jīng)過一個3×3卷積層,再通過任務敏感模塊.該模塊由T個任務敏感單元組成,每個單元包含T×C個可學習的參數(shù),C表示輸出特征的通道數(shù).該單元計算不同任務特征圖在通道維度上的線性結合以得到任務敏感的特征圖.網(wǎng)絡包含分類、回歸、關鍵點檢測分支,因此T=3,模塊以串聯(lián)的方式堆疊N次,通道數(shù)C取值與模型大小相關.LFDMF-L、LFDMF-M、LFDMF-S通道數(shù)取值分別為128、32、24.
網(wǎng)絡整體損失L*由分類損失Lcls、人臉框回歸損失Lreg、關鍵點檢測損失Lkps共同組成:
L*=Lcls+λ1Lreg+λ2Lkps,
其中,λ1、λ2為任務權重調節(jié)因子,按一定的比例調節(jié)并保持不同損失項處于同一數(shù)量級.
由于分類和回歸分別使用不同的分支,會導致分類和邊界框回歸不一致的問題,以Quality Focal Loss[24]作為分類損失函數(shù)可有效解決該問題,則
Lcls=-|y-σ|β((1-y)ln(1-σ)+ylnσ),
其中,y∈[0,1]表示基于預測框和真實框交并比(Intersection over Union, IoU)軟化的質量標簽,σ表示預測質量,β表示調節(jié)因子,默認取值為2.
面部框回歸以CIoU(Complete IoU) Loss[25]作為損失函數(shù).僅使用IoU有時不能準確反映預測框和真實框的位置關系,CIoU加入最小外接矩形框的懲罰項,更有效解決這一問題,則
其中,ρ(·,·)表示歐氏距離,b表示預測框中心點坐標,bgt表示真實框中心點坐標,c表示預測框和真實框最小外接矩形的對角線距離,w、h表示預測框寬、高,wgt、hgt表示真實框的寬、高.
面部關鍵點損失函數(shù)Lkps采用smoothL1損失函數(shù):
在80×80的P3特征圖上平鋪錨框,對于每個特征點設置6個錨框,尺度分別為[2,4,8,16,32,64].遵循YOLOF的統(tǒng)一匹配(Uniform Match)策略,采取距離真實框最近的k個錨框作為正樣本,因此所有的真實框匹配同等數(shù)量的錨框與真實框大小無關.與YOLOF不同的是,為了獲取更高質量的錨框,LFDMF將網(wǎng)絡預測框位置同初始錨框位置共同和真實框計算歐氏距離,選擇其中最近的k個錨框,k默認取值為4.此外,遵循最大IoU匹配策略,刪除IoU>0.7的錨框作為負樣本及IoU<0.15的錨框作為正樣本.
首先選擇在WiderFace數(shù)據(jù)集上進行訓練.WiderFace數(shù)據(jù)集是最大的人臉檢測數(shù)據(jù)集,包含32 203幅圖像和393 703幅人臉.數(shù)據(jù)集劃分3個級別的檢測難度:Easy、Medium、Hard.這些人臉在尺度、姿態(tài)、光照、表情、遮擋等方面都有很大的變化范圍,接近現(xiàn)實場景中的人臉變化,另外數(shù)據(jù)集上5個人臉關鍵點標注來源于RetinaFace.
實驗使用基于PyTorch的開源框架MMDetec-tion[27]實現(xiàn),使用SGD(Stochastic Gradient Descent)優(yōu)化器(動量設置為0.9,權重衰減設置為5e-4).使用2張Nvidia 2080Ti顯卡,批大小設置為8×2,初始學習率設置為5e-6,在2個輪次內線性上升至5e-2.訓練階段共訓練640個輪次,在第441個和第545個輪次時,學習率下降為原來的0.1.所有模型均從頭訓練而未使用任何預訓練模型.數(shù)據(jù)增強策略使用隨機尺度裁剪,從[0.3,0.45,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0]中隨機選擇一個尺度進行裁剪,尺度大于1.0時先對原始圖像填充至指定尺度,然后將裁剪后的矩形塊拉伸至640×640.另外對圖像進行色彩增強和0.5概率的隨機水平翻轉.
輸入分辨率和模型計算量呈正相關,LFDMF重點關注模型在VGA(640×480)分辨率上的表現(xiàn).在未額外指明的情況下,所有測試和對比方法的輸入分辨率均為VGA,訓練輸入分辨率為640×640.
相比通用目標檢測,人臉檢測的類別只有一類,主要評價指標包括精確率(Precision, P),召回率(Recall, R),平均精確率(Average Precision, AP),具體計算公式如下:
其中,在給定的IoU閾值下,TP表示預測框和真實框匹配的數(shù)量,F(xiàn)P表示預測框和真實框不匹配的數(shù)量,F(xiàn)N表示未被正確預測的真實框數(shù)量,p(r)表示不同IoU閾值下,R和P之間的對應函數(shù),AP表示該函數(shù)在0-1區(qū)間上的積分.
本文方法復雜度評價指標為浮點運算數(shù)(Floating Point Operations, FLOPs),表示模型前向推理過程中的浮點運算量.
實驗選用如下對比算法:RetinaFace[8]、DSFD(Dual Shot Face Detector)[10]、SCRFD[23]、HAMbox(Online High-Quality Anchor Mining Strategy)[28].實驗結果如表1所示,表中黑體數(shù)字表示最優(yōu)值.
表1 各算法的實驗結果對比Table 1 Experimental result comparison of different algorithms
在表1中,LFDMF-L*、LFDMF-M*、LFDMF-S*分別表示使用ResNet50、MobileNet、MobileNet 0.25作為骨干網(wǎng)絡的模型,0.25指在原始網(wǎng)絡基礎上通道數(shù)縮放為0.25倍,Bottleneck Res、Basic Res、Depth-wise Conv為SCRFD提出的3個計算量不同的骨干網(wǎng)絡.由表可看出,這3個骨干網(wǎng)絡對人臉檢測優(yōu)勢較大.
另外本文按模型參數(shù)量和計算量劃分為3類.由表1可看出,LFDMF-L在Wider Face數(shù)據(jù)集上性能最優(yōu),并且在模型參數(shù)量和計算量上有較大改進.LFDMF-M在中等和困難子集上均優(yōu)于SCRFD.LFDMF-S以極低的計算量和參數(shù)量實現(xiàn)可觀的性能.
為了測試算法的極限性能,遵循RetinaFace對LFDMF-L進行多尺度測試,分別將測試圖像長邊拉至[500,800,1100,1400,1700]進行推理,選取代表性的對比算法如下:MTCNN[1]、PyramidBox[9]、Two-Stage CNN[26]、DFS[29]、Face R-CNN[30]、SSH[31],算法命名均遵循WiderFace數(shù)據(jù)集(http://shuoyang1213.me/WIDERFACE/index.html)上的官方命名.在Wider Face數(shù)據(jù)集上各算法的精確率-召回率曲線如圖4所示.由圖可看出,LFDMF性能最優(yōu).
(a)Easy (b)Medium (c)Hard圖4 各算法在Wider Face數(shù)據(jù)集上的精確率-召回率曲線Fig.4 Precision-recall curves of different algorithms on Wider Face dataset
為了評估算法泛化能力,進一步在FDDB數(shù)據(jù)集(http://vis-www.cs.umass.edu/fddb)上進行測試.FDDB數(shù)據(jù)集包含2 845幅圖像,共有5 171幅無約束的人臉.以受試者工作特征(Receiver Ope-rating Characteristic, ROC)曲線為評估指標.選取如下代表性的對比算法:MTCNN[1]、FaceBoxes[2]、JointCascade[32]、XZJY[33]、Viola Jones[34],具體縮寫均遵循FDDB數(shù)據(jù)集上官方命名.各算法的ROC曲線如圖5所示.
圖5 各算法在FDDB數(shù)據(jù)集上的ROC曲線Fig.5 ROC curves of different algorithms on FDDB dataset
由圖5可看出,LFDMF-L表現(xiàn)出良好的泛化能力.
2.4.1頸部網(wǎng)絡輸出尺度的選擇
P2~P5不同層級的輸出對于錨框的設置和正負樣本的分配有極大的影響,主干網(wǎng)絡輸出4個不同尺度的特征圖C2~C5,此處探究頸部網(wǎng)絡以相似的融合方式輸出4層不同的單級特征圖對檢測結果的影響,設置任務損失權重λ1=2,λ2=0.1.
輸出不同層級的單級特征圖如圖6所示,圖中DE、DM、UM分別表示圖1中的空洞編碼模塊、下采樣模塊、上采樣模塊.
不同輸出層級對結果的影響如表2所示,表中黑體數(shù)字表示最優(yōu)值.由表可知,以P4或P5作為頸部網(wǎng)絡的輸出在Hard子集上的精度較差,和預期相同,這是因為Hard子集上小尺寸人臉圖像占有很大比重,而P4、P5層下采樣率過高,許多小尺寸人臉圖像無法匹配到優(yōu)質的錨框.而以P2作為輸出層雖能取得較高精確率,但網(wǎng)絡的計算量較高,最終LFD- MF在基于精確率和計算量的權衡下輸出融合后的P3特征圖.
(a)P5 (b)P4
表2 不同輸出層級對實驗結果的影響Table 2 Influence of different output layers on results
2.4.2各模塊有效性實驗
現(xiàn)分析特征金字塔、LFDMF頸部網(wǎng)絡、基線檢測頭、任務敏感檢測頭這4個模塊的有效性,具體實驗結果如表3所示,表中黑體數(shù)字表示最優(yōu)值.
表3 不同模塊對實驗結果的影響Table 3 Influence of different modules on results
對比LFDMF頸部網(wǎng)絡,特征金字塔遵循RetinaFace的多級輸出融合和錨框設置方式,使用C2~C5作為特征金字塔網(wǎng)絡的輸入,輸出P2~P6共5層金字塔結構.這些層共享相同檢測頭,精度有所提升.在使用LFDMF的頸部網(wǎng)絡基礎上以基線檢測頭的方式加入關鍵點檢測后,精確率又有所提升,表明額外的監(jiān)督信息能有效提高人臉檢測的精確率.在使用任務敏感型頭部之后,模型精確率達到最優(yōu)值,這證實人臉檢測的3個不同分支之間既有相似性,又有差異性,本文提出的檢測頭能同時兼顧二者,并改善模型性能.
2.4.3不同任務損失權重的選擇
為了測試不同任務損失權重對結果產(chǎn)生的影響,在LFDMF-L上進行如下實驗.由于同時預測5個人臉關鍵點的計算的損失較大,因此實驗中給予其較小的權重,保證各項損失處于同一數(shù)量級,具體實驗結果如表4所示,表中黑體數(shù)字表示最優(yōu)值.
由表4可看出,λ1=2,λ2=0.1時精確率較優(yōu),這說明人臉檢測的主要任務為邊界框回歸,適當增加λ1有益于邊界框回歸的收斂,而λ2設置較大時精確率略有降低,與預期一致.這是由于數(shù)據(jù)集上大量的小型人臉圖像關鍵點特征模糊,無法從中提取有益的特征,反而會影響網(wǎng)絡收斂的方向.
表4 不同損失權重對實驗結果的影響Table 4 Influence of different loss weights on results
圖7 各算法在AFLW數(shù)據(jù)集上的人臉對齊評估Fig.7 Evaluation of different algorithms for face alignment on AFLW dataset
由圖7可看出,LFDMF-L除了在鼻尖關鍵點檢測上的性能略低于RetinaFace以外,對其余關鍵點的檢測均有明顯的優(yōu)勢.
考慮到算法在現(xiàn)實場景中的應用,分別測試LFDMF-L、LFDMF-M、LFDMF-S的運行效率.在Nvi-dia 2080Ti上以VGA分辨率為輸入,在僅考慮算法推理時間的條件下,LFDMF-L單幅圖像用時僅12.1 ms,LFDMF-M單幅圖像用時4.4 ms,LFDMF-S單幅圖像用時3.6 ms,完全達到實時性人臉檢測的要求.以大模型LFDMF-L為例展示算法在WiderFace數(shù)據(jù)集上的部分檢測結果,具體如圖8所示.由圖可看出,不論是在常規(guī)環(huán)境下,或是在膚色、姿態(tài)、尺度等影響因素下,LFDMF都能精準檢測人臉及其面部關鍵點.
圖8 LFDMF-L在Wider Face 數(shù)據(jù)集上的檢測結果Fig.8 Detection results of LFDMF-L on Wider Face dataset
本文提出融合多尺度特征的輕量級人臉檢測算法,摒棄特征金字塔網(wǎng)絡的多級輸出結構,顯著減少模型計算量和參數(shù)量.另外引入頸部感受野融合模塊,在性能和計算上均優(yōu)于傳統(tǒng)的多級特征檢測網(wǎng)絡.最后提出的多任務敏感檢測頭,同時兼顧不同任務之間的相似性與差異性,進一步提升檢測效果.近期一些通用目標檢測方法主要關注無錨方法的正負樣本分配策略,然而這些分配策略均以多級檢測為前提,今后會考慮針對無錨的單級特征檢測方法開展研究.