巢 淵,劉文匯,唐寒冰,馬成霞,王雅倩
江蘇理工學院 機械工程學院,江蘇 常州 213000
隨著科技的不斷進步和市場應用需求的不斷推動,人臉檢測技術與日常生活的關聯(lián)日益密切。目前,視覺人臉檢測技術及其應用在全世界范圍內(nèi)得到了快速發(fā)展與普及,如:移動支付、交通安全、視頻監(jiān)控、門禁識別與情緒識別等。當前人臉檢測算法的研究主要圍繞基于特征的傳統(tǒng)人臉檢測算法和基于深度學習的人臉檢測算法兩方面展開。傳統(tǒng)人臉檢測算法通過圖像處理提取特征,通過分類器進行分類[1-3]。但該類算法依賴人為設計特征,因此在精度與效率上都有一定局限性?;谏疃葘W習的人臉檢測算法通過神經(jīng)網(wǎng)絡對大量數(shù)據(jù)的學習與分析找到人臉與非人臉之間的關系以完成人臉檢測。深度學習人臉檢測算法可分為兩大類:兩步檢測算法與單步檢測算法。兩步人臉檢測算法中最常用的包括R-CNN(regions with convolutional neural network features)、Fast-R-CNN以及Faster-R-CNN[4-6],總體來說,該類算法可實現(xiàn)較為準確的目標定位與識別,但識別過程中候選區(qū)域的反復選擇會影響圖像總體的檢測效率。
單步人臉檢測算法中最具代表性的包括MTCNN(mutil-task convolutional neural network)[7]、RetinaFace[8]和YOLO(you only look once)系列算法[9-11]等。MTCNN采用三個獨立網(wǎng)絡模塊(P-Net、R-Net和O-Net)級聯(lián)的方式檢測與定位人臉關鍵點,速度較快,但其精度較低,常用于人臉主動檢測與定位場合[12-13]。RetinaFace也是目前主流的人臉檢測算法之一,精度方面表現(xiàn)較優(yōu)秀,但模型運算量較大[14]。YOLO系列算法省略了通過滑窗選擇候選區(qū)域的步驟,直接將整幅圖像輸入網(wǎng)絡中,通過深度神經(jīng)網(wǎng)絡進行一次前向傳播,使用非極大值抑制后直接輸出識別結(jié)果。得益于出色的目標檢測效率,該算法被廣泛應用于缺陷檢測、儀表檢測與鳥類檢測等場景[15-17]。近年來YOLO系列算法正逐漸成為人臉檢測領域的研究與應用熱點,如文獻[18]采用YOLO-v2算法與ResNet算法完成監(jiān)控視頻中的人臉檢測與識別,算法在真實場景中檢測速度為21 frame/s,能夠滿足實際檢測需求,其不足之處在于被檢人臉傾斜角度較大或模糊時易出現(xiàn)漏檢情況。文獻[19]通過將多尺度回歸思想應用于YOLO模型,實現(xiàn)人臉年齡估計,有效提高了算法對小尺寸目標的提取能力。對于密集小尺寸人臉的檢測,文獻[20]通過改進目標框聚類算法與對不同層級特征圖進行細粒度特征融合,提出一種改進YOLO的人臉檢測方法,提升算法對小尺度人臉的檢測精度。安防場景中的人臉檢測多為非主動檢測,部分檢測對象會存在遮擋問題,如口罩、帽子和眼鏡等。文獻[21]針對口罩人臉檢測容易出現(xiàn)誤檢、漏檢等問題,通過增加特征層與多尺度融合的方式,提出一種基于改進YOLO-v3的人群口罩佩戴檢測算法,增強口罩遮擋下人臉檢測的精度。文獻[22]提出一種融合環(huán)境特征與改進的安全帽佩戴檢測方法。針對復雜多變的環(huán)境因素導致檢測準確率降低等情況,利用數(shù)據(jù)增強以及對抗訓練等方法對YOLO-v4進行了改進,提升了算法的準確率,使其在真實環(huán)境下有較穩(wěn)定的表現(xiàn)。
綜上所述,YOLO系列算法在人臉檢測方面已取得較大的進展,但在室內(nèi)安防應用場景下,人臉檢測的精度易受被檢人臉角度[23]、光照變化[24]、部分遮擋[25]、模糊[26]等方面因素的影響,且大部分主流算法網(wǎng)絡存在結(jié)構(gòu)復雜、運算量大等問題,難以適應嵌入式設備實時檢測需求。因此,如何平衡室內(nèi)安防場景下人臉檢測的準確率與效率,仍是一個值得研究的問題。針對上述問題,本文提出一種基于YOLO-v4的室內(nèi)人臉快速檢測方法。建立包含人臉不同角度、光照變化、部分遮擋、模糊等工況的數(shù)據(jù)集;基于深度可分離殘差網(wǎng)絡改進主干網(wǎng)絡;在特征金字塔中引入注意力機制,自適應調(diào)整不同像素通道特征與空間特征權(quán)重。最后,通過實驗對比與分析,驗證本文方法的人臉檢測精度與效率。
YOLO-v4算法因其可在一次掃描中直接通過網(wǎng)絡輸出目標的位置與類別信息,相比其他類型算法具有更快的檢測速度,且室內(nèi)安防對人臉檢測算法的效率要求較高,因此本文基于YOLO-v4[11]基礎框架,研究提出一種適用于室內(nèi)安防工程應用中的人臉快速檢測算法。其思路描述如下,流程如圖1所示。
(1)移動安防機器人實時采集、存儲室內(nèi)監(jiān)控視頻,并將序列圖像輸入本文人臉檢測模型。
(2)將輸入圖像平均分成多個感興趣區(qū)域,每個區(qū)域?qū)鄠€預測框。
(3)將圖像輸入主干網(wǎng)絡進行特征提取,通過頸部網(wǎng)絡進行特征融合,獲取有效人臉特征。
(4)輸出每個預測框的類別、位置以及置信度(Confidence)值,通過頭部網(wǎng)絡進行非極大值抑制運算,去除重合度(intersection over union,IOU)較大及置信度較低的預測框,輸出檢測結(jié)果。置信度與IOU計算公式如下:
其中,Pr(Face)表示是否有人臉的中心落在某柵格中,有則取1,反之取0;IOU表示預測框和標記框的重合度大?。籇etection為預測人臉框;GroundTruth為樣本中已標記的人臉框。
圖1 人臉檢測流程Fig.1 Process of face detection
YOLO-v4模型主要由主干網(wǎng)絡、頸部網(wǎng)絡與頭部網(wǎng)絡等構(gòu)成,網(wǎng)絡結(jié)構(gòu)如圖2所示。其中主干網(wǎng)絡部分主要完成特征提取,原YOLO-v4主干網(wǎng)絡為基于殘差神經(jīng)網(wǎng)絡改進的Darknet-53,由1個普通的卷積層加23個不同維度的殘差神經(jīng)網(wǎng)絡模塊組成,存在結(jié)構(gòu)復雜、運算量大的問題。本文改進的主干網(wǎng)絡應用殘差網(wǎng)絡結(jié)構(gòu)可有效減少模型的運算量。原YOLO-v4頸部網(wǎng)絡部分通過對三個大小不一的特征圖進行張量拼接,構(gòu)建特征金字塔,使網(wǎng)絡同時包含高層抽象特征與底層位置信息特征。本文改進的頸部網(wǎng)絡在構(gòu)建特征金字塔時引入通道與空間注意力模塊,通過輕量級注意力模型調(diào)整不同像素權(quán)重,優(yōu)化特征金字塔,提升模型特征提取能力。頭部網(wǎng)絡主要進行最終檢測值的回歸與預測。下文將對本文方法的改進部分進行詳細描述。
圖2 基于YOLO-v4的人臉檢測算法結(jié)構(gòu)Fig.2 Algorithm structure of face detection based on YOLO-v4
本文網(wǎng)絡具體結(jié)構(gòu)如圖3所示。待檢測圖像首先經(jīng)過統(tǒng)一縮放變成416×416×3大小,進行感興趣區(qū)域分割,再輸入主干網(wǎng)絡進行特征提取。進行特征融合的頸部網(wǎng)絡主要由融合層(concat)、普通卷積塊結(jié)構(gòu)(CBL)、卷積層(COV)以及深度可分離卷積(DW)組合而成。頭部網(wǎng)絡的檢測器對頸部網(wǎng)絡得到的3個有效特征層結(jié)果進行堆疊,得出每個預測框最終置信度,通過非極大值抑制算法輸出包含有預測框與置信度數(shù)據(jù)的圖像。
圖3 本文網(wǎng)絡結(jié)構(gòu)Fig.3 Proposed network structure
本文主要研究室內(nèi)安防場景下的非主動人臉檢測問題,因此針對人臉角度不同、光照變化、部分遮擋、模糊等常見的五種不同工況,對網(wǎng)絡公開的CelebFaces[27]、WIDER FACE[28]等人臉圖像數(shù)據(jù)進行篩選、分類及標注,建立人臉數(shù)據(jù)集。數(shù)據(jù)集中的部分圖片如圖4所示,圖(a)、(c)分別為不同角度人臉與部分遮擋人臉,此類圖像同時存在人臉變形,且易丟失部分人臉結(jié)構(gòu)特征;從圖(b)中可看出受光照變化影響的人臉圖像,其紋理特征丟失較多;圖(d)為模糊人臉圖像,通常表現(xiàn)為人臉面積占比較小或處于運動狀態(tài),其結(jié)構(gòu)與紋理特征較弱,因此該類人臉檢測依賴更深度的特征。
圖4 人臉數(shù)據(jù)集圖片F(xiàn)ig.4 Face images in facial dataset
由圖4可以看出,本文數(shù)據(jù)集中不同圖像中人臉面積變化相對較大,為得到適合本文研究對象的人臉預測框,首先應用K-means++算法[29]對數(shù)據(jù)集中人臉寬度及高度進行聚類分析,可得出9個預測框,尺寸分別為12×16、19×36、40×28、36×75、76×55、72×146、142×110、192×243和459×401。
針對圖4(a)、(c)兩類圖像中的部分人臉缺失、整體結(jié)構(gòu)不完整的問題,引入馬賽克數(shù)據(jù)增強算法[11]進行數(shù)據(jù)集的擴充。馬賽克數(shù)據(jù)增強算法的主要思想為:在數(shù)據(jù)集中隨機挑選4幅圖片,對其進行剪裁、縮放以及重新拼接,組成1幅新的圖片,可以增強網(wǎng)絡對人臉結(jié)構(gòu)不完整時的魯棒性。制作完成的人臉數(shù)據(jù)集主要包含5類圖像:清晰人臉、角度不同人臉、光照變化人臉、部分遮擋人臉以及模糊人臉。其中,清晰人臉2 136幅,角度不同人臉2 560幅,光照變化人臉2 792幅,部分遮擋人臉2 944幅,模糊人臉3 092幅。其中有些圖像中包含不止一類人臉,因此數(shù)據(jù)集包含總數(shù)為13 524幅的人臉圖像,其中重復樣本數(shù)量為3 524張。將其劃隨機分為訓練集8 524張、測試集2 500張、驗證集2 500張進行訓練。
2.2.1 激活函數(shù)
原YOLO-v4主干網(wǎng)絡由1個單次卷積模塊和一系列殘差網(wǎng)絡結(jié)構(gòu)組成。卷積模塊又由1個卷積層(COV),1個歸一化層(BN)組成。其中,卷積層采用了Mish激活函數(shù)作為激活函數(shù)[11]。為保障室內(nèi)人臉快速檢測的實時性與準確率,本文將如式(3)所示的卷積塊中運算量較大的Mish激活函數(shù)改進為ReLU6,如式(4)所示:
由式(1)和式(2)可以看出,ReLU6激活函數(shù)為線性,而Mish激活函數(shù)為非線性,理論上Mish函數(shù)比ReLU6函數(shù)的梯度下降效果更好,但同時也會增加運算的復雜程度,導致檢測速度相對變慢。本文通過YOLO-v4搭建輕量級人臉檢測網(wǎng)絡,檢測類別較少,使用ReLU6函數(shù)可使模型收斂的同時加快模型收斂速度。
2.2.2 深度可分離殘差網(wǎng)絡
原YOLO-v4主干網(wǎng)絡中采用了殘差網(wǎng)絡結(jié)構(gòu)[17]其具體過程為:輸入數(shù)據(jù)首先經(jīng)過步長為2×2的基礎卷積層,改變維度;接著分為兩部分,一部分作為主干部分(Resblock)在循環(huán)中進行迭代,得出權(quán)重與輸入數(shù)據(jù)的運算關系,另一部分建立獨立的殘差邊,將輸入數(shù)據(jù)進行少量處理后直接輸出;最后對兩部分輸出數(shù)據(jù)進行跨層相加,將求和結(jié)果作為本層的輸出,過程如圖5所示。采用該結(jié)構(gòu)是為了通過分開梯度流,使梯度流在不同路徑上傳播,使網(wǎng)絡學習到更多梯度流的相關性差異;同時通過減少循環(huán)堆疊計算量,以降低算力消耗,提升運算速度和網(wǎng)絡的學習能力。
為進一步提升網(wǎng)絡運算速度,滿足人臉在線檢測任務,本文將原YOLO-v4主干網(wǎng)絡中的殘差網(wǎng)絡結(jié)構(gòu)改進為深度可分離殘差網(wǎng)絡結(jié)構(gòu),具體結(jié)構(gòu)如圖6所示。此結(jié)構(gòu)延續(xù)了YOLO-v4分開梯度流的思想,將一部分輸入數(shù)據(jù)繼續(xù)循環(huán)迭代,另一部分數(shù)據(jù)跳接到最后。再將原來循環(huán)迭代的普通卷積殘差塊替換為深度可分離殘差塊,深度可分離殘差塊具體過程為:首先通過1×1的普通卷積塊(CBL)擴張通道以便特征提取,然后引入深度可分離卷積(DW)進一步減少模型運算量,最后使用1×1的普通卷積塊(CBL)進行降維,以提升后續(xù)網(wǎng)絡的計算效率。
圖5 殘差塊結(jié)構(gòu)Fig.5 Residual structure
圖6 深度可分離殘差塊結(jié)構(gòu)Fig.6 Depthwise separable residual structure
殘差網(wǎng)絡結(jié)構(gòu)中,假設輸入圖片通道數(shù)為Cin,輸出通道為Cout,普通卷積層大小則為N×N×Cin。通道數(shù)為Cin的普通卷積層對輸入量進行卷積計算,則普通卷積一次運算過程中,某卷積點參數(shù)量計算公式為:
本文深度可分離殘差網(wǎng)絡結(jié)構(gòu)中,深度可分離卷積一次運算具體過程為:假設輸入圖片通道數(shù)為Cin,輸出通道為Cout,首先通過N×N深度卷積按Cin個不同通道分別對輸入圖片進行按位相乘的計算,得到第一步結(jié)果,此處圖片寬高變化,但通道數(shù)不變;再使用1×1×Cin普通卷積核對第一步結(jié)果進行卷積運算,此時結(jié)果為1×1×X,數(shù)據(jù)維度也可按照需求調(diào)整為1×1×Y×Z。則深度可分離卷積的某卷積點參數(shù)量計算公式為:
綜上所述,本文主干網(wǎng)絡中采用的深度可分離殘差網(wǎng)絡模塊輸出通道數(shù)可控,且理論上可有效減少主干網(wǎng)絡中模型體積與參數(shù)量。本文主干網(wǎng)絡位于圖3最左側(cè),從上到下共18個模塊,由1個普通卷積塊結(jié)構(gòu)(CBL)和17個步長不一的深度可分離殘差網(wǎng)絡結(jié)構(gòu)(I-Resblock)組成。這種設計可降低本文模型總體的運算量,從而提高自然環(huán)境下人臉檢測的速度,有利于實時人臉的快速檢測。
在現(xiàn)實人臉檢測場景中,一幅圖片上不同位置的像素重要性可能不同,不同通道的像素重要性也可能不同。因此,引入注意力機制,可用特定網(wǎng)絡調(diào)整不同像素對檢測結(jié)果的影響力,從而分離出更顯著的特征。為進一步融合主干網(wǎng)絡提取到的3個尺度特征圖,分離出更顯著的特征,在頸部網(wǎng)絡引入注意力機制,其具體思路為:首先學習特征圖中不同位置或不同通道的重要性權(quán)值,然后將學習到的重要性權(quán)值與原特征圖中值相乘,輸出新特征圖。當前應用廣泛的注意力機制包括SENET(squeeze-and-excitation net)[30]與CBAM(convolutional block attention module)[31]等,其中SENET為通道注意力機制模塊,CBAM則為結(jié)合了通道與空間的注意力機制模塊。通道注意力模塊保持通道維度不變,只壓縮空間維度,因此該模塊對人臉類別信息敏感;空間注意力模塊空間維度不變,壓縮通道維度,因此該模塊對人臉位置信息敏感。綜合考慮室內(nèi)人臉檢測的復雜工況,本文引入CBAM模塊,可分離出更顯著的特征,提高人臉檢測的準確率。CBAM由1個通道注意力模塊與1個空間注意力模塊串聯(lián)而成,其結(jié)構(gòu)如圖7所示。
圖7 CBAM注意力模塊Fig.7 Convolutional block attention module
本文先對主干網(wǎng)絡引出的3個不同尺度特征層間進行上采樣和下采樣,然后搭建特征金字塔。具體過程如下:對于特征層1,由13×13×320特征圖與26×26×112淺層特征圖下采樣特征融合而成;對于特征層2,由13×13×320深層次特征圖特征與26×26×112特征圖融合,再與52×52×40淺層特征圖下采樣融合;對于特征層3,由52×52×40特征圖與26×26×112深層特征圖上采樣特征融合而成。接著引入注意力機制,通過輕量級注意力模型調(diào)整圖像特征的權(quán)重,最終提取出有效的特征,即特征層1、特征層2以及特征層3。最后,將3個特征層送入頭部網(wǎng)絡,得出每個預測框的最終置信度,使用非極大值抑制算法去除IOU較大與置信度較低的預測框,輸出帶預測框與置信度的圖像。
在圖3網(wǎng)絡中標記的①、②、③三類不同位置,進行7組CBAM注意力模塊插入的實驗對比,不同插入位置及對應網(wǎng)絡名見表1,其中位置①為主干網(wǎng)絡輸出端,位置②為上采樣,位置③為下采樣。下文將對7組不同位置注意力模塊對模型訓練及檢測的影響進行對比分析。
表1 不同位置插入注意力模塊Table 1 CBAM insertion at different positions
本文在2.1節(jié)建立的包含有13 524幅圖片的數(shù)據(jù)集基礎上,進行模型的訓練。訓練過程中采用遷移學習[32]的思想以提高訓練效率。具體訓練過程如下:
(1)使用大型數(shù)據(jù)集上的預訓練權(quán)重對網(wǎng)絡前152層進行凍結(jié)訓練,以調(diào)整非主干網(wǎng)絡的權(quán)重。凍結(jié)訓練采用一次訓練10個樣本的小批量隨機梯度下降法,以避免網(wǎng)絡運算量過大。
(2)采用學習率動態(tài)衰減方式,設置初始學習率為0.001,連續(xù)10個迭代后模型性能不提升,則學習率減少一半繼續(xù)訓練,以防止模型過擬合。
(3)解凍網(wǎng)絡所有的層進行解凍訓練,解凍訓練參數(shù)量較大,一次選取4個樣本,其余參數(shù)與凍結(jié)訓練相同。
本文實驗平臺圖像處理單元采用GeForce RTX 1060顯卡,顯存為8 GB。操作系統(tǒng)為Windows 10,深度學習框架為Tensorflow 1.15,GPU加速工具為CUDA 8.0。搭建移動安防機器人,并采集室內(nèi)監(jiān)控視頻,進行真實場景下的人臉檢測實驗驗證。
為較為正確地評價算法性能的優(yōu)劣,本文引入的主要評價指標包括召回率(Recall)、準確率(Precision)和平均準確率(average precision,AP)、浮點運算數(shù)(floating point operations,F(xiàn)LOPs)等。其中召回率指被正確檢測出人臉占驗證集中所有人臉的比例;準確率指被正確檢測出人臉占檢測出人臉的比例。召回率、準確率、平均準確率表達式分別如式(7)、(8)、(9)所示:
其中,TP(true positives)表示檢測到人臉,且實際圖片中也存在人臉的樣本個數(shù);FP(false positives)表示檢測到人臉,但實際圖像中不存在人臉的樣本個數(shù);FN(false negatives)表示未檢測到人臉,但實際圖像中存在人臉的樣本個數(shù)。J(Precision,Recall)為平均精度函數(shù),計算方式為準確率Precision與召回率Recall構(gòu)成的P-R曲線下方面積。
浮點運算數(shù)的計算公式如式(10)所示:
其中,Cin為輸入通道數(shù),K為卷積核大小,H、W分別為輸出特征圖的尺寸,Cout為輸出通道數(shù)。
在如2.1節(jié)所描述的驗證集上進行本文方法與原YOLO-v4模型的定量測試對比,以驗證本文網(wǎng)絡結(jié)構(gòu)改進及引入注意力機制的有效性。不同網(wǎng)絡及不同種類人臉的準確率與平均準確率AP數(shù)據(jù)分別如表2與表3所示。
表2 人臉檢測準確率Table 2 Precision of face detection %
表3 人臉檢測平均準確率APTable 3 AP of face detection %
由表2可以看出,改進后的YOLO-v4網(wǎng)絡相比未改進網(wǎng)絡,在各類人臉的檢測準確率上都有所提升。其中,清晰人臉與遮擋人臉兩個類別的準確率提升最為明顯。引入改進YOLO-v4-Attention1與改進YOLO-v4-Attention2注意力機制后,各類人臉檢測準確率都有進一步提升。而改進YOLO-v4-attention3插入的注意力模塊位于下采樣中,提取到的特征相對更少,因此引入YOLO-v4-attention3后模型的準確率較低。進一步地,在依次進行不同注意力模塊的疊加后,模型的準確率也開始降低。
由表3可以看出,依次加入不同注意力模塊后,改進模型的平均準確率開始降低。其中,改進YOLO-v4-Attention12相對于改進YOLO-v4-Attention1各類別AP均降低20%以上,而改進YOLO-v4-Attention123相對于其他模型的AP值則更低。雖然YOLO-v4-Attention2具有最高的人臉檢測準確率,但其召回率較低,因此從AP的角度分析,YOLO-v4-Attention1的總體性能更佳??傮w來看,改進后的網(wǎng)絡能更好地識別各類人臉,尤其是清晰人臉與遮擋人臉,且在圖3位置①主干網(wǎng)絡輸出端插入1組CBAM注意力模塊,可使模型的綜合性能進一步提升。
引入損失函數(shù)(loss function)判斷當前迭代輪次內(nèi)的模型訓練狀態(tài),計算公式為:
其中,lobject、lbox與lclass分別為置信度損失、回歸框損失與類別損失。圖8為不同改進網(wǎng)絡的訓練、驗證損失曲線圖,訓練損失(loss)曲線、驗證損失(val-loss)曲線分別為訓練集上的損失曲線與驗證集上的損失曲線。各網(wǎng)絡的訓練、驗證損失曲線最終波動都較小,說明網(wǎng)絡穩(wěn)定性都較好。其中改進YOLO-v4在第180迭代輪次時損失曲線不再下降,模型收斂完成。改進YOLO-v4-Attention3在第145迭代輪次時損失曲線不再下降,具有最快的收斂速度。而YOLO-v4-Attention1與YOLO-v4-Attention2的收斂速度僅次于YOLO-v4-Attention3,且在疊加不同注意力模塊后,模型收斂速度逐漸降低。因此,引入注意力機制,可有效提升模型整體準確率與收斂速度,且引入1組注意力模塊的YOLO-v4-Attention1、YOLO-v4-Attention2與YOLO-v4-Attention3具有更快的收斂速度。
表4為5種網(wǎng)絡在驗證集上的準確率、召回率與不同人臉平均準確率均值mAP(mean average precision)。改進YOLO-v4-Attention1具有總體最高的mAP值,為86.82%,說明該算法的準確率與召回率能夠達到較好的平衡。而改進YOLO-v4-Attention12及改進YOLO-v4-Attention123,由于關注了更多特征,取得了較高召回率,但同樣存在干擾特征導致準確率較低,模型綜合性能欠佳。因此,本文采用僅在主干網(wǎng)絡輸出端插入注意力模塊(圖3位置①)的改進YOLO-v4,即改進YOLOv4-Attention1,為最終的人臉檢測算法。
表4 不同網(wǎng)絡的檢測結(jié)果對比Table 4 Comparison of detection results of different networks %
圖8 Loss曲線Fig.8 Curves of Loss
為進一步體現(xiàn)本文算法在檢測精度及檢測效率方面的優(yōu)越性,選取Faster-R-CNN[4]、MTCNN[7]、Retina-face[8]以及YOLO-v4[11]等主流人臉檢測算法在驗證集上進行對比測試,結(jié)果如表5所示。本文算法在驗證集上的準確率為92.53%,相較于Faster-R-CNN提高了15.58個百分點,相較于MTCNN提高了10.96個百分點,相較于Retina-face提高了0.86個百分點,相較于原YOLO-v4提高了6.09個百分點。本文算法的召回率為57.77%,略高于Retina-face,且明顯優(yōu)于原YOLO-v4。
表5 人臉檢測算法性能對比Table 5 Performance comparison of different face detection methods
從表5中浮點運算數(shù)FLOPs指標可以看出,本文的改進算法顯著降低了YOLO-v4的計算量,且引入注意力機制不會使模型計算量有明顯的提升。表5中參數(shù)量數(shù)據(jù)反應了完整模型參數(shù)的存儲大小。本文算法的FLOPs與參數(shù)量雖大于MTCNN,但其檢測準確率與檢測速度明顯優(yōu)于MTCNN。故本文方法綜合能力優(yōu)于其他算法,可更好地應用于室內(nèi)安防場景下實時人臉檢測與識別。
為進一步驗證本文算法在實際室內(nèi)安防場景下的檢測效果,搭建如圖1所示移動安防機器人進行真實室內(nèi)場景下的人臉檢測實驗驗證。移動安防機器人下位機采用樹莓派4B主控,上位機采用GeForce RTX 1060顯卡,攝像頭采用樂視LeTMC-520。機器人下位機通過攝像頭完成室內(nèi)監(jiān)控視頻的采集與存儲。將監(jiān)控視頻序列圖像由TCP/IP協(xié)議傳輸?shù)缴衔粰C,輸入人臉檢測模型,進行人臉的實時檢測驗證。驗證圖像數(shù)據(jù)即來源于機器人采集的室內(nèi)監(jiān)控視頻中的序列圖像。本文算法與原YOLO-v4的部分檢測效果分別如圖9、圖10所示。從測試結(jié)果圖中可以看出,本文方法在室內(nèi)安防場景下對光照變化、角度不同、部分遮擋、模糊人臉檢測的置信度皆高于原YOLO-v4,尤其對于如圖9(c)所示的部分遮擋人臉的圖像樣本,置信度提升較高。因此本文方法對實際室內(nèi)人臉的實時檢測整體效果要優(yōu)于原YOLO-v4。
圖9 本文算法檢測效果Fig.9 Detection results of proposed method
圖10 原YOLO-v4算法檢測效果Fig.10 Detection results of original YOLO-v4
表6為不同人臉檢測算法在實際室內(nèi)安防場景中的每秒檢測幀數(shù)(frames per second,F(xiàn)PS)(最低值)對比。由表6可知,本文方法在實際室內(nèi)場景中的人臉檢測FPS為35左右,而原YOLO-v4為30左右。因此,本文算法具有更高的實時性,可滿足室內(nèi)安防等場景下的人臉快速檢測需求。
表6 人臉檢測算法幀數(shù)對比Table 6 FPS comparison of different face detection methods
本文提出了一種基于改進YOLO-v4的室內(nèi)人臉快速檢測方法。針對室內(nèi)安防工程應用中檢測人臉角度不同、光照變化、部分遮擋、模糊等復雜工況,制作人臉數(shù)據(jù)集;在特征提取階段引入深度可分離殘差網(wǎng)絡結(jié)構(gòu)改進主干網(wǎng)絡,應用可分離殘差網(wǎng)絡結(jié)構(gòu)提升模型檢測效率;在構(gòu)建特征金字塔階段引入注意力機制,通過輕量級注意力模型優(yōu)化特征金字塔,提高模型特征提取能力。本文方法與原YOLO-v4、Faster-R-CNN、MTCNN以及Retina-face等主流人臉檢測算法的對比實驗表明,本文方法精度均值為92.53%,檢測速度達到35 frame/s,具有更高的檢測與檢測效率,可應用于室內(nèi)移動機器人實現(xiàn)人臉實時檢測。