戚琦,馬迎新,王敬宇,孫海峰,廖建新
(北京郵電大學(xué)網(wǎng)絡(luò)與交換國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876)
隨著物聯(lián)網(wǎng)時(shí)代的到來(lái),邊緣計(jì)算將與云計(jì)算共同推進(jìn)人工智能的發(fā)展。邊緣計(jì)算的推廣與發(fā)展可將計(jì)算任務(wù)從云計(jì)算中心遷移到產(chǎn)生源數(shù)據(jù)的邊緣設(shè)備上。車(chē)聯(lián)網(wǎng)的車(chē)載系統(tǒng)、機(jī)器人控制系統(tǒng)、工業(yè)應(yīng)用等邊緣環(huán)境部署的英偉達(dá)開(kāi)發(fā)板Jetson TX2 和Jetson Nano 設(shè)備,只需幾瓦的功耗即可實(shí)現(xiàn)每秒進(jìn)行上萬(wàn)億次操作?;谏疃葘W(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)已被廣泛應(yīng)用于人臉檢測(cè)中,并嘗試在邊緣設(shè)備中部署,以減少網(wǎng)絡(luò)傳輸時(shí)延,加快檢測(cè)速度。
然而,邊緣算力受限于內(nèi)在或外在因素等條件。主流深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[1-5]趨于復(fù)雜,受限于網(wǎng)絡(luò)復(fù)雜度及推理速度,難以在邊緣計(jì)算實(shí)際應(yīng)用場(chǎng)景中部署,需考慮精簡(jiǎn)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)保持簡(jiǎn)潔和高效性。此外,在支撐人臉檢測(cè)等深度學(xué)習(xí)任務(wù)推理的同時(shí),邊緣設(shè)備還需要為其他功能預(yù)留和共享資源,應(yīng)盡可能探索輕量級(jí)方案,以減少算法所對(duì)應(yīng)網(wǎng)絡(luò)模型的復(fù)雜度和功耗。
圍繞人臉檢測(cè)而設(shè)計(jì)的輕量化網(wǎng)絡(luò)算法[6-7]大幅縮減了網(wǎng)絡(luò)結(jié)構(gòu)來(lái)保持推理速度和資源消耗。例如,LFFD(light and fast face detector)[6]去掉了網(wǎng)絡(luò)中的BN(batch normalization)層等重要組件以減少網(wǎng)絡(luò)規(guī)模,但未重視網(wǎng)絡(luò)特征融合上的冗余優(yōu)化,導(dǎo)致其精度與主流算法相差較多。本文針對(duì)主流算法潛在的結(jié)構(gòu)冗余、特征提取網(wǎng)絡(luò)設(shè)計(jì)不合理、淺層特征不充分的問(wèn)題,提出了多尺度感知的輕量化人臉檢測(cè)算法——SDPN(scale-aware dual path network),在不損失檢測(cè)精度的前提下優(yōu)化了網(wǎng)絡(luò)的特征融合方式,以實(shí)現(xiàn)速度與精度的均衡。SDPN 著重改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu),提升特征融合的高效性,基于經(jīng)典的ResNet 結(jié)構(gòu)中參數(shù)最少的RetNet18 結(jié)構(gòu),采用基于雙分支的多尺度感知結(jié)構(gòu),簡(jiǎn)化了網(wǎng)絡(luò)層融合中的冗余,實(shí)現(xiàn)了高效的人臉檢測(cè)。
在人臉檢測(cè)數(shù)據(jù)集wider face[8]中,極小人臉(人臉最長(zhǎng)邊小于12 像素)占30%左右,人臉尺度變化范圍為3~1 000 像素。極小、困難人臉以及大范圍的人臉尺度變化問(wèn)題是人臉檢測(cè)任務(wù)中的主要挑戰(zhàn)。
圖像金字塔方法[1]通過(guò)綜合同一圖像不同縮放系數(shù)檢測(cè)結(jié)果來(lái)提高多尺度檢測(cè)能力。這類(lèi)算法存在對(duì)同一張圖片不同尺度的冗余計(jì)算,不適用于資源有限、對(duì)時(shí)延有要求的應(yīng)用場(chǎng)景。
特征金字塔方法[2-5]注重不同層級(jí)特征的融合,將中層的高分辨率特征與深層的高語(yǔ)義特征進(jìn)行融合,兼顧語(yǔ)義與位置信息,得到多尺度的特征圖。但這類(lèi)算法存在以下幾點(diǎn)問(wèn)題,導(dǎo)致精度不如圖像金字塔方法。
1) 大多數(shù)人臉檢測(cè)算法使用ImageNet[9]數(shù)據(jù)集上預(yù)訓(xùn)練得到的圖片分類(lèi)模型,分類(lèi)尺度大小約為256 像素,未針對(duì)人臉數(shù)據(jù)中的大尺度范圍和極小人臉進(jìn)行優(yōu)化。網(wǎng)絡(luò)淺層主要使用最大池化和下采樣卷積操作進(jìn)行空間信息壓縮。由于預(yù)訓(xùn)練模型淺層特征不充分,下采樣過(guò)于頻繁,存在極小人臉特征信息丟失、定位不準(zhǔn)等問(wèn)題。
2) 主流特征融合方式過(guò)多關(guān)注中、深網(wǎng)絡(luò)層的特征多尺度感知融合策略,未考慮淺層多尺度感知結(jié)構(gòu)對(duì)人臉檢測(cè)網(wǎng)絡(luò)的重要性。
針對(duì)上述問(wèn)題,本文進(jìn)行了如下改進(jìn)。
1) 針對(duì)主流卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)用于人臉檢測(cè)場(chǎng)景時(shí)淺層特征不充分,導(dǎo)致下采樣卷積時(shí)圖像特征偏移、信息采樣不均勻的問(wèn)題,提出了改進(jìn)的人臉殘差神經(jīng)網(wǎng)絡(luò)(Face-ResNet,face residual neural network)作為主干網(wǎng)絡(luò)。
2) 探索了淺層多尺度感知結(jié)構(gòu)對(duì)極小、困難人臉特征提取的重要性。提出了高效的雙分支淺層特征(DPE,dual path shallow feature extractor)提取模塊,通過(guò)并行的淺層網(wǎng)絡(luò)雙分支設(shè)計(jì),分別從上采樣后的圖像以及原圖中提取淺層特征,在中層進(jìn)行雙分支特征融合,送入后續(xù)網(wǎng)絡(luò)。只在最關(guān)鍵的淺層使用雙特征分支獲取差異化的特征信息,在后續(xù)的網(wǎng)絡(luò)層中共享2 個(gè)特征融合后的信息,實(shí)現(xiàn)了高層網(wǎng)絡(luò)特征復(fù)用,大幅提升了網(wǎng)絡(luò)對(duì)于極小的、難以分辨的人臉特征的識(shí)別能力,接近特征金字塔方法的融合結(jié)果。
3) 訓(xùn)練過(guò)程中,研究了雙分支的淺層特征與深層特征的融合方式,提出了深淺特征融合模塊,并通過(guò)多尺度感知的訓(xùn)練方式使不同的并行分支(淺、深網(wǎng)絡(luò)層)學(xué)習(xí)到更加豐富、多樣化的信息。
隨著深度學(xué)習(xí)的發(fā)展,在越來(lái)越多的領(lǐng)域充分證明了卷積神經(jīng)網(wǎng)絡(luò)的有效性,以Faster-RCNN(faster region-based convolutional neural network)[10]為代表的兩階段基于錨點(diǎn)的檢測(cè)器在目標(biāo)檢測(cè)領(lǐng)域成為主流。近年的人臉檢測(cè)中,基于區(qū)域推薦網(wǎng)絡(luò)(RPN,region proposal network)[11]的多階段人臉檢測(cè)器[1,12-14]在精度上取得了質(zhì)的飛躍,但受限于煩瑣的檢測(cè)流程,速度并不理想,同時(shí)網(wǎng)絡(luò)模塊較為復(fù)雜,難以在終端部署進(jìn)行工程應(yīng)用。最近,基于錨點(diǎn)的一階段檢測(cè)器[2,4-5,15-17]逐漸占據(jù)主流,得益于流程的簡(jiǎn)化,網(wǎng)絡(luò)的速度也有提升,相對(duì)容易在終端應(yīng)用中部署。
隨著CornerNet[18]的提出,目標(biāo)檢測(cè)領(lǐng)域出現(xiàn)了新的無(wú)錨點(diǎn)的算法,這類(lèi)算法受啟發(fā)于人體關(guān)鍵點(diǎn)檢測(cè)的算法,通過(guò)在網(wǎng)絡(luò)最后的特征圖中直接預(yù)測(cè)關(guān)于物體的幾個(gè)關(guān)鍵點(diǎn),以及在并行分支預(yù)測(cè)物體的大小和偏移等信息,得到關(guān)于物體的檢測(cè)結(jié)果。在目標(biāo)檢測(cè)領(lǐng)域,這類(lèi)算法[18-19]相比一階段、多階段的基于錨點(diǎn)的算法,更加高效,速度更快,同時(shí)呈現(xiàn)出與一階段基于錨點(diǎn)的檢測(cè)器相近的精度。在人臉檢測(cè)中,CSP(center and scale prediction)[20]是基于關(guān)鍵點(diǎn)設(shè)計(jì)的算法,網(wǎng)絡(luò)設(shè)計(jì)進(jìn)一步簡(jiǎn)化,由于不需要錨點(diǎn)匹配等流程,速度得到進(jìn)一步提升。本文的改進(jìn)借鑒了CSP 算法的無(wú)錨點(diǎn)設(shè)計(jì),深入研究了該算法的不足,并提出了新的解決方法。
基于卷積網(wǎng)絡(luò)的人臉特征的提取方式主要有圖像金字塔和特征金字塔。
如圖1 所示,特征金字塔[2-5]將淺層的高分辨率特征與深層的語(yǔ)義特征相融合,通過(guò)不同特征層之間的融合,同時(shí)提高了識(shí)別準(zhǔn)確率和定位精度。不同特征融合網(wǎng)絡(luò)結(jié)構(gòu)在FTF(finding tiny face)[1]、MTCNN(multi-task cascaded convolutional network)[13]等為代表的圖像金字塔算法中,將同一圖片的不同尺度依次送入網(wǎng)絡(luò),由非極大值抑制(NMS,non-maximum suppression)算法進(jìn)行融合,留下置信度比較高的融合結(jié)果。本文SDPN 選擇性地進(jìn)行雙分支差異化特征提取,并通過(guò)深淺融合以及尺度感知的訓(xùn)練方式,高效提取不同尺度的特征。
針對(duì)ResNet[21]網(wǎng)絡(luò)中的特征偏移、下采樣不均勻、淺層特征不充分問(wèn)題,本文提出了改進(jìn)的Face-ResNet 結(jié)構(gòu),并通過(guò)對(duì)比實(shí)驗(yàn)證明了其有效性。
下采樣卷積被廣泛應(yīng)用于卷積神經(jīng)網(wǎng)絡(luò),目的是得到更小分辨率的特征圖,同時(shí)為后續(xù)的卷積層提供更大的感受野,獲得更加豐富的語(yǔ)義信息。很多主流算法使用步長(zhǎng)為2 的3×3 卷積核來(lái)完成下采樣。事實(shí)上,這樣的操作有2 個(gè)潛在的問(wèn)題,首先是采樣信息不充分問(wèn)題。如圖2 所示,在一個(gè)3×3卷積核采樣卷積過(guò)程中,有的點(diǎn)被采樣了4 次和一次,的點(diǎn)被采樣了2 次(考慮最外層像素,上述采樣頻率僅為近似結(jié)果),這表明卷積過(guò)程的信息并沒(méi)有均勻地被采樣并送入后續(xù)網(wǎng)絡(luò)中。盡管網(wǎng)絡(luò)本身有能力通過(guò)學(xué)習(xí)不同的權(quán)重來(lái)糾正采樣問(wèn)題,但這會(huì)浪費(fèi)網(wǎng)絡(luò)的一部分參數(shù)來(lái)學(xué)習(xí)糾正問(wèn)題,是不高效的。同樣的現(xiàn)象被Odena 等[22]發(fā)現(xiàn),稱(chēng)之為棋盤(pán)效應(yīng)。
圖1 不同特征融合網(wǎng)絡(luò)結(jié)構(gòu)
圖2 3×3 卷積核下采樣過(guò)程
另一個(gè)問(wèn)題是下采樣會(huì)導(dǎo)致特征圖發(fā)生偏移,卷積過(guò)程中的特征圖偏移問(wèn)題如圖3 所示。下采樣的過(guò)程中,如果卷積核不能整除步長(zhǎng),特征圖的兩邊不能填充同樣多的像素,輸出的特征圖相對(duì)原來(lái)位置會(huì)發(fā)生0.5 像素的偏移,如圖3(a)所示。
圖3 卷積過(guò)程中的特征圖偏移問(wèn)題
網(wǎng)絡(luò)最終輸出特征圖(縮放倍數(shù)為i)相對(duì)原圖的特征偏移大小Soffset為
其中,Pl為卷積時(shí)的padding 偏移,l為網(wǎng)絡(luò)當(dāng)前相對(duì)于原圖的縮放倍數(shù)。卷積核為3×3,步長(zhǎng)為2,標(biāo)準(zhǔn)ResNet 網(wǎng)絡(luò)中Pl=0.5,i=16,Soffset=7.5;卷積核為4×4,步長(zhǎng)為2,ResNet 網(wǎng)絡(luò)中Pl=0,i=16,Soffset=0。
對(duì)于極小人臉,偏移現(xiàn)象會(huì)顯著影響定位能力。同時(shí)隨著網(wǎng)絡(luò)層的加深,分辨率逐漸減小,偏移現(xiàn)象會(huì)更加嚴(yán)重。網(wǎng)絡(luò)需要學(xué)習(xí)更多的權(quán)重來(lái)糾正這種偏移現(xiàn)象,但不能完全抵消這種偏移和采樣不充分帶來(lái)的影響。
為了解決這一問(wèn)題,本文研究了使用不同大小的卷積核進(jìn)行下采樣的效果。如圖3(b)所示,4×4的卷積核可以使每個(gè)點(diǎn)都被充分采樣(不考慮邊緣點(diǎn));同時(shí),由于兩邊填充了相同數(shù)量的像素,沒(méi)有出現(xiàn)特征圖偏移現(xiàn)象。本文替換了網(wǎng)絡(luò)中降采樣卷積層的卷積核,將原網(wǎng)絡(luò)結(jié)構(gòu)分別替換為4×4 和5×5 的卷積核,并進(jìn)行對(duì)比實(shí)驗(yàn),證明了4×4 卷積核的有效性,詳細(xì)實(shí)驗(yàn)在4.1 節(jié)給出。
同時(shí),本文使用通道更少的殘差模塊代替ResNet 中的7×7 卷積層和maxpool 層來(lái)改善ResNet對(duì)細(xì)小特征的表達(dá)能力。SDPN 整體結(jié)構(gòu)如圖4 所示,修改后的ResNet 主結(jié)構(gòu)由雙分支淺層特征提取模塊的下分支以及后續(xù)的主分支組成。經(jīng)過(guò)上述改進(jìn),最終的主干網(wǎng)絡(luò)結(jié)構(gòu)為Face-ResNet 結(jié)構(gòu)。
人臉檢測(cè)中,發(fā)現(xiàn)極小人臉是一個(gè)極具挑戰(zhàn)的問(wèn)題,SNIP(scale normalization for image pyramid)[23]的研究結(jié)果表明,高分辨率預(yù)訓(xùn)練模型預(yù)測(cè)上采樣后的低分辨率物體,準(zhǔn)確率高于針對(duì)低分辨率物體設(shè)計(jì)并訓(xùn)練的網(wǎng)絡(luò)模型?,F(xiàn)有的人臉檢測(cè)算法使用圖像金字塔方法將同一張圖片進(jìn)行不同上采樣系數(shù)的測(cè)試結(jié)果進(jìn)行融合,從而獲得更好的檢測(cè)結(jié)果,但是這會(huì)犧牲推理時(shí)延和計(jì)算資源。
圖4 SDPN 整體結(jié)構(gòu)
本文針對(duì)這一問(wèn)題,設(shè)計(jì)了雙分支淺層特征提取模塊來(lái)獲取圖片中不同分辨率的信息,在淺層融合共享網(wǎng)絡(luò)中的高層語(yǔ)義信息來(lái)實(shí)現(xiàn)檢測(cè)精度與速度的均衡。并行于Face-ResNet 網(wǎng)絡(luò)的淺層分支,添加了一個(gè)更輕量級(jí)的高分辨率(HR,high resolution)分支,該分支參數(shù)數(shù)量和卷積網(wǎng)絡(luò)層中的通道數(shù)只有原分支的,使用經(jīng)過(guò)上采樣的圖片作為輸入,主要負(fù)責(zé)發(fā)現(xiàn)更多難以辨認(rèn)的、細(xì)小的細(xì)粒度信息。相比原分支,HR 分支末端加入了一個(gè)降采樣分支,來(lái)達(dá)到與原分支相同的分辨率。在中層,2 個(gè)獨(dú)立分支融合為一個(gè)特征層,送入后續(xù)主干網(wǎng)絡(luò)中,計(jì)算式如式(2)~式(4)所示。
wider face 數(shù)據(jù)集中的極小人臉集中在10~30 像素。在ResNet 中,網(wǎng)絡(luò)層的神經(jīng)元感受野大小為7,仍然能夠獲取足夠豐富的低分辨率極小人臉特征信息;層網(wǎng)絡(luò)深度過(guò)淺,無(wú)法獲取足夠的語(yǔ)義信息;后續(xù)層由于感受野變大,網(wǎng)絡(luò)深度增加,淺層低分辨率極小人臉信息丟失較多,同時(shí)由于過(guò)多的池化和卷積操作將導(dǎo)致位置信息丟失的問(wèn)題。故選擇P4層作為特征融合層。
經(jīng)過(guò)上述雙分支采樣設(shè)計(jì),網(wǎng)絡(luò)在前向推斷過(guò)程可以學(xué)到更多細(xì)小的、難以辨認(rèn)的特征。在獲取更加豐富淺層特征的同時(shí),添加的新分支只帶來(lái)了輕微的計(jì)算消耗。
DPE 提取模塊的HR 分支主要負(fù)責(zé)獲取極小的、難以辨認(rèn)的一些人臉特征,而主分支則負(fù)責(zé)檢測(cè)常規(guī)人臉特征,為了通過(guò)監(jiān)督信息更好地指導(dǎo)2 個(gè)分支學(xué)到不同的特征,本文提出了深淺特征融合模塊。深淺特征融合模塊由深度特征融合層以及深淺特征融合層兩部分構(gòu)成。深度融合層借鑒自CSP,選擇了圖4 結(jié)構(gòu)中的S3~S5特征層信息進(jìn)行融合,對(duì)每個(gè)特征層使用L2 正則化處理,通過(guò)上采樣卷積恢復(fù)特征圖為輸入圖像尺寸的,檢測(cè)正常大小的人臉。深淺特征融合層是針對(duì)極小人臉專(zhuān)門(mén)設(shè)計(jì)的多尺度特征融合模塊,將更淺層分支的特征與深度特征融合層信息進(jìn)行融合,只負(fù)責(zé)檢測(cè)極小物體。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,圖4 中S1、S2,以及深度特征層進(jìn)行融合可以得到最好的結(jié)果。為了獲得更精準(zhǔn)的人臉中心位置信息,輸出特征圖的尺寸為原圖的。在訓(xùn)練中,本文采用多尺度感知策略,根據(jù)物體的尺度大小分別送入不同的特征融合層進(jìn)行訓(xùn)練。通過(guò)多尺度感知的訓(xùn)練方式,監(jiān)督信息可以更有效地指導(dǎo)2 個(gè)分支學(xué)到更具差異化的特征信息,從而具備了更豐富、全面的特征,提升了模型的準(zhǔn)確率和有效性。在實(shí)驗(yàn)部分,進(jìn)一步分析了每個(gè)模塊對(duì)整體性能的影響,并進(jìn)行了對(duì)比實(shí)驗(yàn)。
本文基于無(wú)錨點(diǎn)目標(biāo)檢測(cè)網(wǎng)絡(luò)CenterNet[19]的思路提出了多尺度感知的loss 函數(shù),用于監(jiān)督不同分支學(xué)習(xí)差異化的特征。
如圖4 所示,本文算法所采用的卷積網(wǎng)絡(luò)模型通過(guò)2 個(gè)分支分別輸出small 和norm 特征圖,分辨率分別為。
中心預(yù)測(cè)任務(wù)可以看作人臉檢測(cè)網(wǎng)絡(luò)在圖像空間維度的分類(lèi)任務(wù),其目標(biāo)是通過(guò)分支的中心特征圖得到人臉中心點(diǎn)。本文通過(guò)交叉熵?fù)p失函數(shù)來(lái)監(jiān)督網(wǎng)絡(luò)輸出的人臉中心特征圖。首先,生成與人臉大小接近的二維高斯熱力圖作為監(jiān)督信號(hào)。同時(shí),規(guī)定人臉中心的小范圍區(qū)域?yàn)檎龢颖荆渌麨樨?fù)樣本。圖像中人臉中心區(qū)域與背景點(diǎn)之間在嚴(yán)重的正負(fù)樣本不均衡問(wèn)題,背景點(diǎn)數(shù)量遠(yuǎn)大于中心點(diǎn)。隨著模型的收斂,模型傾向于更新易于學(xué)習(xí)的大量負(fù)樣本(背景)特征的權(quán)重。為了解決樣本不均衡問(wèn)題,本文的交叉熵?fù)p失函數(shù)引入了focal loss[24]來(lái)優(yōu)化對(duì)困難樣本的監(jiān)督能力。為了避免中心區(qū)域附近的點(diǎn)對(duì)模型產(chǎn)生人臉和背景分類(lèi)上的歧義,loss 函數(shù)的權(quán)重參數(shù)Pxy根據(jù)當(dāng)前點(diǎn)的Mxy和Yxy值來(lái)調(diào)整,使用Pxy將這類(lèi)點(diǎn)在loss 函數(shù)中的權(quán)重降低,減少對(duì)模型收斂的影響。Yxy=1 表示當(dāng)前點(diǎn)為中心點(diǎn)。
關(guān)于中心點(diǎn)預(yù)測(cè)的損失函數(shù)定義如式(5)所示。Oxy表示中心特征圖上點(diǎn)[x,y]∈的響應(yīng)值,其值為0~1。Mxy表示根據(jù)人臉標(biāo)簽生成的高斯熱力圖在點(diǎn)[x,y]∈對(duì)應(yīng)取值,σw、σh為與人臉長(zhǎng)寬線(xiàn)性相關(guān)的參數(shù)。依照CenterNet[19]中的設(shè)置β=4、γ=2。
預(yù)測(cè)分支進(jìn)行回歸任務(wù),輸出為每個(gè)點(diǎn)對(duì)應(yīng)人臉的長(zhǎng)和寬的值sk,與人臉標(biāo)簽中的長(zhǎng)和寬tk進(jìn)行對(duì)比,其中,k=0 表示長(zhǎng),k=1 表示寬。本文通過(guò)L1 損失函數(shù)完成監(jiān)督,如式(9)所示。
離散誤差糾正分支的損失函數(shù)與尺度預(yù)測(cè)分支一致,輸出為圖像中心點(diǎn)的離散值對(duì)應(yīng)的偏移誤差糾正值,offloss 表示離散偏差loss。
本文人臉檢測(cè)算法對(duì)應(yīng)模型的loss 如式(10)所示,small、norm 分支的損失函數(shù)分別為losssmall、lossnorm。其中,θi、βi、γi分別表示訓(xùn)練時(shí)不同loss對(duì)應(yīng)的權(quán)重。
本文通過(guò)6 組對(duì)比實(shí)驗(yàn)驗(yàn)證了SDPN 每個(gè)改進(jìn)方面的有效性,并展示了與主流人臉檢測(cè)算法的對(duì)比結(jié)果。
本文實(shí)驗(yàn)在wider face[8]數(shù)據(jù)集上進(jìn)行評(píng)估,根據(jù)人臉的識(shí)別難度分別劃分為簡(jiǎn)單、中等、困難這3 個(gè)子集。人臉?lè)秶鸀?~1 000 像素。實(shí)驗(yàn)使用ImageNet[9]數(shù)據(jù)集預(yù)訓(xùn)練模型權(quán)重進(jìn)行初始化,與主流做法保持一致。在wider face 訓(xùn)練集上進(jìn)行訓(xùn)練,采用Adam 梯度更新算法,初始學(xué)習(xí)率為1×10?3,權(quán)重衰減設(shè)置為1×10?5,采用動(dòng)態(tài)學(xué)習(xí)率衰減策略,即當(dāng)模型的預(yù)測(cè)損失結(jié)果經(jīng)過(guò)5 輪迭代不下降后,調(diào)整學(xué)習(xí)率為當(dāng)前學(xué)習(xí)率的20%。實(shí)驗(yàn)共迭代訓(xùn)練200 輪,選取評(píng)估損失結(jié)果最低的模型權(quán)重在wider face 驗(yàn)證集上進(jìn)行準(zhǔn)確率評(píng)估。
評(píng)估標(biāo)準(zhǔn)如下:在wider face 的驗(yàn)證集上進(jìn)行原分辨率測(cè)試來(lái)評(píng)估結(jié)果。原分辨率測(cè)試是指每個(gè)樣本僅使用對(duì)應(yīng)圖片原始分辨率輸入網(wǎng)絡(luò)進(jìn)行推理,并且網(wǎng)絡(luò)僅推理一次,為保持對(duì)比的模型統(tǒng)一,均使用Pytorch 框架復(fù)現(xiàn),測(cè)試階段在一塊顯存為12 GB 的P100 上實(shí)驗(yàn)并對(duì)比結(jié)果。
最終的檢測(cè)精度是指網(wǎng)絡(luò)檢測(cè)結(jié)果與真實(shí)標(biāo)簽的查準(zhǔn)率和召回率相等時(shí)對(duì)應(yīng)的精度。
在對(duì)比實(shí)驗(yàn)中,首先驗(yàn)證下采樣卷積以及淺層參差模塊修改的有效性,在此基礎(chǔ)上驗(yàn)證了DPSE以及深淺特征融合的有效性,共進(jìn)行6 組實(shí)驗(yàn)。
實(shí)驗(yàn)1使用ResNet18 作為主干網(wǎng)絡(luò),其余模塊與CSP 檢測(cè)算法一致。
實(shí)驗(yàn)2將下采樣卷積核更換為4×4,其他與實(shí)驗(yàn)1 保持一致。
實(shí)驗(yàn)3將下采樣卷積核更換為5×5,其他與實(shí)驗(yàn)1 保持一致。
實(shí)驗(yàn)4將淺層網(wǎng)絡(luò)層更換為全殘差結(jié)構(gòu),其他與實(shí)驗(yàn)2 保持一致。
實(shí)驗(yàn)5基于實(shí)驗(yàn)4 中的網(wǎng)絡(luò)結(jié)構(gòu),加入DPE提取模塊。
實(shí)驗(yàn)6基于實(shí)驗(yàn)5 的網(wǎng)絡(luò)結(jié)構(gòu),加入深淺特征融合模塊,訓(xùn)練過(guò)程中采用尺度感知的訓(xùn)練策略,深淺特征層負(fù)責(zé)檢測(cè)尺寸小于32 像素的人臉,深層特征負(fù)責(zé)檢測(cè)尺寸大于12 像素的人臉。
實(shí)驗(yàn)結(jié)果如表1 所示。與實(shí)驗(yàn)1 相比,實(shí)驗(yàn)2 在3 個(gè)數(shù)據(jù)集上的檢測(cè)精度均有明顯提升;而實(shí)驗(yàn)3 與實(shí)驗(yàn)2 相比提升效果并不明顯。在4×4 卷積核的基礎(chǔ)上,將淺層網(wǎng)絡(luò)部分更換為全殘差結(jié)構(gòu)設(shè)計(jì),可以看到網(wǎng)絡(luò)在困難數(shù)據(jù)集上效果提升非常顯著,充分證明使用殘差模塊替換網(wǎng)絡(luò)中的池化操作,可以進(jìn)一步提升網(wǎng)絡(luò)的淺層特征表達(dá)能力,加入淺層殘差模塊后,網(wǎng)絡(luò)在困難樣本中的極小人臉、遮擋、模糊等干擾情況下檢測(cè)精度有明顯提升。根據(jù)實(shí)驗(yàn)4 與實(shí)驗(yàn)5 的對(duì)比結(jié)果,可以看到引入的DPE 提取模塊能夠顯著提升算法對(duì)于極小、困難人臉的辨識(shí)度,準(zhǔn)確率提升了0.025。實(shí)驗(yàn)5 與實(shí)驗(yàn)6 的對(duì)比表明,深淺特征融合模塊可以提升模型困難樣本的準(zhǔn)確率0.06 左右,證明了深淺特征融合的有效性。與實(shí)驗(yàn)5 的結(jié)果對(duì)比,實(shí)驗(yàn)6 的簡(jiǎn)單子集和中等子集檢測(cè)精度分別有0.003 和0.004 的下降,這是由于深淺特征融合帶來(lái)了少量的檢測(cè)負(fù)樣本,導(dǎo)致檢測(cè)精度輕微下降,與困難樣本準(zhǔn)確率提升0.06 相比影響并不明顯,本文選擇實(shí)驗(yàn)6中的網(wǎng)絡(luò)模型結(jié)構(gòu)為本文算法對(duì)應(yīng)的最終網(wǎng)絡(luò)模型。
本文參考相關(guān)文獻(xiàn)[1-5],使用Pytorch 框架復(fù)現(xiàn)了最近幾年深度學(xué)習(xí)中的主流模型。圖5 表示不同網(wǎng)絡(luò)模型針對(duì)多尺度的特征融合方式。
FTF 算法[1]為經(jīng)典的圖像金字塔融合算法。準(zhǔn)確率較高的DSFD(dual shot face detector)算法[3]與PramidBox 算法[5]注重網(wǎng)絡(luò)中深層之間的交互融合,加入了很多層間語(yǔ)義增強(qiáng)以及融合模塊。SSH(single stage headless)[4]為保持推理速度和減小資源消耗,使用較為簡(jiǎn)單的特征融合策略,從網(wǎng)絡(luò)不同層提取不同的檢測(cè)結(jié)果進(jìn)行融合。本文SDPN 算法中簡(jiǎn)化了過(guò)深的冗余特征,在淺層(特征圖縮放系數(shù)為2)使用DPE 豐富特征,并通過(guò)深淺特征融合模塊進(jìn)行融合,分別得到極小與正常人臉預(yù)測(cè)結(jié)果。SDPN 模型采用實(shí)驗(yàn)6 的網(wǎng)絡(luò)結(jié)構(gòu)。測(cè)試過(guò)程中統(tǒng)計(jì)了每個(gè)網(wǎng)絡(luò)模型的推理速度、模型參數(shù)量以及檢測(cè)精度,其他實(shí)驗(yàn)細(xì)節(jié)與4.2 節(jié)實(shí)驗(yàn)基本保持一致。測(cè)試結(jié)果如表2 所示。反映算法查準(zhǔn)率與召回率關(guān)系的PR(precision recall)曲線(xiàn)如圖6 所示。
表1 實(shí)驗(yàn)結(jié)果
圖5 不同網(wǎng)絡(luò)模型針對(duì)多尺度的特征融合方式
表2 與主流算法原分辨率測(cè)試結(jié)果對(duì)比
圖6 不同類(lèi)別驗(yàn)證集上PR 曲線(xiàn)
由表2 可知,在wider face 數(shù)據(jù)集上,使用修改后的Face-ResNet18 網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),單尺度測(cè)試條件下簡(jiǎn)單子集檢測(cè)精度為0.937,中等子集檢測(cè)精度為0.927,困難子集檢測(cè)精度為0.849。相比主流算法中效果較好的DSFD 算法,本文SDPN模型的測(cè)試速度為其3.94 倍,同時(shí)在簡(jiǎn)單子集和中等子集上僅有微小差距,在困難子集上表現(xiàn)更好,這體現(xiàn)了算法的穩(wěn)健性。推理速度如圖8 所示,相比主流算法中速度最快的FTF 算法,速度依然保持26%左右的領(lǐng)先,同時(shí)在簡(jiǎn)單、中等、困難子集上表現(xiàn)均優(yōu)于FTF 算法。在對(duì)比算法中,本文算法的模型參數(shù)量最小,為65.06 MB,體現(xiàn)了算法的輕量化特點(diǎn)。
本文算法對(duì)應(yīng)的模型收斂曲線(xiàn)如圖7 所示,根據(jù)收斂曲線(xiàn),模型訓(xùn)練迭代到第10 輪之前,學(xué)習(xí)率較高,同時(shí)由于加載了ImageNet 預(yù)訓(xùn)練權(quán)重進(jìn)行初始化,loss 函數(shù)收斂很快,在迭代10 輪后,開(kāi)始緩慢收斂,在180 輪左右達(dá)到擬合。
圖7 本文模型收斂曲線(xiàn)
與主流輕量化網(wǎng)絡(luò)模型LFFD[6]、Faceboxes[7]進(jìn)行對(duì)比,選擇與LFFD 實(shí)驗(yàn)平臺(tái)Titan xp 接近的Nvidia-P100 單顯卡進(jìn)行時(shí)延與速度測(cè)試,輸入為1080P 分辨率,Nvidia-P100 和Titan xp 同樣具有3 840 個(gè)cuda 核心,其單精度浮點(diǎn)性能略低于Titan xp,測(cè)試結(jié)果如表3 所示。SDPN 算法速度為17.9 frame/s,LFFD 算法速度為31.98 frame/s。結(jié)合對(duì)比SDPN 算法與LFFD 算法檢測(cè)精度,簡(jiǎn)單子集分別為0.937 和0.896,中等子集分別為0.927 和0.865,困難子集分別為0.849 和0.715??梢钥闯?,本文的邊緣人臉檢測(cè)網(wǎng)絡(luò)在基本保持實(shí)時(shí)性的同時(shí),實(shí)現(xiàn)了較高的人臉檢測(cè)精度。
表3 與主流輕量化網(wǎng)絡(luò)模型對(duì)比
本文首先研究了將ResNet 用于人臉檢測(cè)中的一些潛在問(wèn)題,改進(jìn)了下采樣卷積操作,并將ResNet 中淺層的7×7 卷積層和maxpool 層替換為全殘差模塊,針對(duì)每一個(gè)改進(jìn)進(jìn)行了對(duì)比實(shí)驗(yàn),充分證明了改進(jìn)后的Face-ResNet 的有效性。在此基礎(chǔ)上,提出了兼顧正常樣本與極小、遮擋、模糊等困難樣本特征的雙分支淺層特征提取模塊,顯著提升了網(wǎng)絡(luò)的淺層表達(dá)能力,獲取了更加全面、更具細(xì)粒度的特征信息?;谏鲜龈倪M(jìn),深淺特征融合模塊通過(guò)尺度感知的訓(xùn)練策略,更加有效地監(jiān)督網(wǎng)絡(luò)中的不同分支學(xué)習(xí)的差異化信息,顯著提升了網(wǎng)絡(luò)在數(shù)據(jù)集不同場(chǎng)景下的準(zhǔn)確率。
當(dāng)前人臉檢測(cè)中的主流特征融合方法主要包括特征金字塔形式的特征融合,以及類(lèi)似DSFD 形式對(duì)網(wǎng)絡(luò)層進(jìn)行特征增強(qiáng),得到雙路徑的特征增強(qiáng)融合信息。
與DSFD 中在整個(gè)網(wǎng)絡(luò)計(jì)算過(guò)程中設(shè)計(jì)雙路徑特征增強(qiáng)結(jié)構(gòu)不同,本文的雙分支僅在最關(guān)鍵的淺層(P4層之前)并行提取特征。使2 個(gè)分支與不同的深層結(jié)構(gòu)進(jìn)行融合連接,針對(duì)性地監(jiān)督不同的分支學(xué)到差異化的特征信息。并通過(guò)人臉尺度感知的訓(xùn)練策略,使小人臉檢測(cè)分支專(zhuān)注于局部細(xì)節(jié)特征,主分支則關(guān)注全局特征。差異化的特征信息在P4層融合,豐富了人臉特征信息。從信息熵的角度來(lái)看,差異化的訓(xùn)練方式指導(dǎo)不同分支學(xué)習(xí)不同特征,使網(wǎng)絡(luò)獲得了更充分的特征信息。區(qū)別于以往的特征融合方式,對(duì)網(wǎng)絡(luò)的不同層進(jìn)行差異化的監(jiān)督訓(xùn)練,本文提出的雙分支結(jié)構(gòu)可以針對(duì)不同的分支進(jìn)行差異化的訓(xùn)練,從而得到更豐富的多尺度信息。
與主流算法對(duì)比,基于DPE 的多尺度感知的人臉檢測(cè)網(wǎng)絡(luò)SDPN 實(shí)現(xiàn)了速度與精度的均衡,在保留主流網(wǎng)絡(luò)精度的同時(shí),充分優(yōu)化了網(wǎng)絡(luò)結(jié)構(gòu)、資源占用以及推理速度,保持了輕量化、簡(jiǎn)潔、穩(wěn)健的邊緣計(jì)算友好特性。同時(shí)本文算法對(duì)應(yīng)的模型為端到端的無(wú)錨點(diǎn)設(shè)計(jì)網(wǎng)絡(luò),簡(jiǎn)單高效,更加易于部署到實(shí)時(shí)邊緣計(jì)算應(yīng)用中,實(shí)現(xiàn)高精度的人臉檢測(cè)。