王明吉,張 政,倪子顏,張 勇,劉 斌
(東北石油大學(xué),黑龍江 大慶 163000)
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)的重要內(nèi)容[1],是圖像信息處理研究中至關(guān)重要一步。行人檢測(cè)作為目標(biāo)檢測(cè)其一重要分支,結(jié)合目標(biāo)跟蹤技術(shù),在行為分析、交通監(jiān)控、無(wú)人駕駛技術(shù)、智能服務(wù)領(lǐng)域有著廣泛的應(yīng)用[2]?;诰矸e神經(jīng)網(wǎng)絡(luò)提取特征的檢測(cè)方法逐漸替代了傳統(tǒng)手工提取的檢測(cè)方法,依靠其強(qiáng)大的特征提取和自學(xué)能力成為檢測(cè)技術(shù)領(lǐng)域的主流方法,并取得了階段性突出的成果,尤其在稀疏大尺度目標(biāo)上有很好的檢測(cè)效果。但當(dāng)面向?qū)嶋H應(yīng)用場(chǎng)景時(shí),攝像頭與行人的距離較遠(yuǎn)會(huì)導(dǎo)致尺度不均,且小目標(biāo)居多,更易收到環(huán)境噪聲及遮擋影響,使得檢測(cè)效果并不理想,進(jìn)一步針對(duì)小目標(biāo)檢測(cè)進(jìn)行深入研究具有重要的理論意義和實(shí)際的應(yīng)用價(jià)值。
主流的深度學(xué)習(xí)目標(biāo)檢測(cè)算法結(jié)構(gòu)均基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建,按流程主要分為twostage 和one-stage 兩個(gè)系列。two-stage 將檢測(cè)任務(wù)分為兩個(gè)階段,首先通過(guò)在圖片上遍歷滑框選取感興趣的候選區(qū)域框映射到特征圖(feature map)區(qū)域上,再重新輸入到全連階層分別進(jìn)行分類和回歸處理得到檢測(cè)結(jié)果。該系列在2015 年發(fā)表的更快的基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)(Faster Region-Based Convolutional Network,F(xiàn)aster R-CNN)[3]通 過(guò) 引 入?yún)^(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN)[4]替代搜索框選擇,同時(shí)增加錨點(diǎn)機(jī)制應(yīng)對(duì)目標(biāo)形狀的變化,從而減小了空間消耗,實(shí)現(xiàn)了高精度,但遠(yuǎn)遠(yuǎn)達(dá)不到實(shí)時(shí)檢測(cè)。
為了滿足實(shí)際場(chǎng)景應(yīng)用對(duì)目標(biāo)檢測(cè)的要求,檢測(cè)的研究方向逐漸轉(zhuǎn)向速度為主的檢測(cè)網(wǎng)絡(luò),以YOLO[5]系列,半離散矩陣分解(Semi-Discrete Matrix Decomposition,SDD)[6]為代表的基于回歸的單階段網(wǎng)絡(luò)應(yīng)運(yùn)而生。此系列主要將圖片網(wǎng)格劃分區(qū)域得到數(shù)據(jù)塊,每塊區(qū)域獨(dú)立預(yù)測(cè)一次性得到全部邊界框,同檢測(cè)任務(wù)統(tǒng)一視作回歸問(wèn)題,形成了端對(duì)端的訓(xùn)練流程,速度可達(dá)到45 fps,F(xiàn)aster-RCNN 只有7 fps。然而,由于取消了RPN 網(wǎng)絡(luò)使得網(wǎng)格定位模糊,降低了檢測(cè)目標(biāo)精度。YOLOv2[7]引入二階段類似的anchor 機(jī)制動(dòng)態(tài)的調(diào)整網(wǎng)絡(luò)使其能夠預(yù)測(cè)不同大小的圖片,一定程度上平衡了檢測(cè)的速度和精度。但面向目標(biāo)密集的自然場(chǎng)景時(shí),主要以大目標(biāo)為主導(dǎo)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)檢測(cè)機(jī)制對(duì)于分辨率較小的小目標(biāo)特征不敏感,需要更細(xì)膩的特點(diǎn)進(jìn)行特征學(xué)習(xí),并且YOLO 對(duì)圖片的縮放操作與多次下采樣進(jìn)一步縮小了小目標(biāo)的分辨率導(dǎo)致了小目標(biāo)檢測(cè)性能的不穩(wěn)定。現(xiàn)有的通用檢測(cè)網(wǎng)絡(luò)無(wú)法避免小目標(biāo)檢測(cè)效果相對(duì)大目標(biāo)較差的問(wèn)題,但仍可以結(jié)合網(wǎng)絡(luò)結(jié)構(gòu)特點(diǎn)改進(jìn)或優(yōu)化。常通過(guò)引入注意力機(jī)制,上下文信息或者強(qiáng)化特征提取網(wǎng)絡(luò)等優(yōu)化舉措提高小目標(biāo)檢測(cè)性能?;潞8]等人通過(guò)利用空洞卷積捕捉大感受野,并使用多卷積核尺寸和膨脹率的卷積,構(gòu)建多層并行的空洞感受野模塊(Atrous Receptive Module,ARM),提高對(duì)小目標(biāo)的檢測(cè)能力。任宇杰[9]等人基于單次多尺度檢測(cè)器(Single Shot MultiBox Detector,SSD)提出一種與MobileNet結(jié)合的輕量級(jí)深層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并通過(guò)使用focal loss 損失函數(shù)動(dòng)態(tài)調(diào)整交叉熵平衡正負(fù)樣本,提高檢測(cè)性能。
YOLOv3[10]是性能較好的代表性檢測(cè)網(wǎng)絡(luò)之一,其結(jié)構(gòu)如圖所示,Yolov3 使用darknet53 作為主干網(wǎng)絡(luò),并使用步幅為2 的卷積層替代了網(wǎng)絡(luò)中的池化層進(jìn)行特征圖降采樣,有效地阻止了池化層帶來(lái)的低層級(jí)特征信息損失。其最主要的特點(diǎn)是擁有以Resnet 為靈感的5 個(gè)殘差模塊,能夠進(jìn)行更深層次信息的傳播。YOLOv3 結(jié)構(gòu)如圖1 所示,殘差模塊由殘差單元resX 和DBL 單元組成,X代表模塊中殘差單元的數(shù)量,每個(gè)DBL 都由一個(gè)卷積層、歸一化層和LeakyRelu 激活函數(shù)組成,除此之外YOLOv3 還使用了多個(gè)tricks 來(lái)提升檢測(cè)性能,比如在原始YOLO 基礎(chǔ)上增加了anchor 機(jī)制和類似于特征金字塔(Feature Pyramid Network,F(xiàn)PN)[11]的多尺度預(yù)測(cè)。
圖1 YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv3 首先將特定尺寸的圖像數(shù)據(jù)輸入模型,通過(guò)卷積操作得到特征圖并劃分網(wǎng)格,特征圖的每一個(gè)網(wǎng)格需要預(yù)測(cè)3 個(gè)目標(biāo)框,每個(gè)預(yù)測(cè)得到S×S×3 ×(5+C)維度的輸出,其中S 是劃分的網(wǎng)格數(shù)量。x、y、w、h、confidence5 個(gè)參數(shù)分別表示檢測(cè)框的橫、縱坐標(biāo),寬度和高度以及置信度,還包含一個(gè)類別概率C。YOLOv3 為了使檢測(cè)能夠適應(yīng)大小不一的物體,分別使用步幅32、16 和8 進(jìn)行下采樣操作,并為每種下采樣尺度設(shè)定3 種先驗(yàn)框進(jìn)行預(yù)測(cè)聚類分析,總共9 種尺寸的先驗(yàn)框,得到三個(gè)不同檢測(cè)尺度的輸出。最后通過(guò)閾值篩選確定圖中目標(biāo)最終的坐標(biāo)信息和類別的預(yù)測(cè)值。
卷積神經(jīng)網(wǎng)絡(luò)中的大尺度特征圖由于經(jīng)過(guò)較少的下采樣,感受野較小包含更多的細(xì)節(jié)位置信息;小尺度特征圖則感受野大包含更多的語(yǔ)義信息。因此,通過(guò)由淺及深地特征融合才能獲得更豐富的特征信息。原始的特征金字塔結(jié)構(gòu)為,同一特征層級(jí)逐層進(jìn)行步幅為2 的特征映射得到新特征圖,并將階段性最強(qiáng)信息作為輸出進(jìn)行橫向連接,但同一層級(jí)傳播會(huì)壓縮細(xì)節(jié)位置信息,對(duì)小特征表達(dá)能力差的小目標(biāo)不敏感,且傳播過(guò)程中仍存在細(xì)節(jié)的丟失。于是延續(xù)了多尺度融合特征的優(yōu)越性,提出一種橫向拓展的位置特征增強(qiáng)金字塔模型FPLN(Feature Pyramid Location Network),通過(guò)全連接堆疊信息后再自適應(yīng)特征創(chuàng)建特征信息流的方式,修復(fù)特征候選區(qū)域和特征層次之間的損壞路徑,使模型能夠?qū)W習(xí)到更多的有效特征,進(jìn)一步提高小目標(biāo)的檢測(cè)精度。
位置特征增強(qiáng)金字塔模型直接采用主干網(wǎng)絡(luò)后的預(yù)測(cè)分支的三個(gè)不同尺寸檢測(cè)頭{c1,c2,c3}作為第一階段的特征圖,將輸入608 尺寸的通過(guò)32、16、8 倍下采樣得到的76、38、19 尺寸特征圖的直接進(jìn)行自下而上的采樣,再用1×1 的卷積核將三個(gè)尺度特征圖進(jìn)行通道的緯度變化,接著較深層特征圖上采樣放大2 倍應(yīng)對(duì)相鄰層級(jí)特征圖尺寸統(tǒng)一后像素級(jí)的加法迭代得到{d1,d2,d3},實(shí)現(xiàn)第一階段底層語(yǔ)義信息的增強(qiáng)結(jié)構(gòu)。為了最大化豐富D層特征,保留低語(yǔ)義層包含的位置細(xì)節(jié)信息,如圖2 左側(cè)對(duì)C 列YOLOv3 檢測(cè)頭的三個(gè)尺度特征圖譜與一次自上而下的特征圖D 列特征進(jìn)行全連接(FC,F(xiàn)ull Connect)操作,同樣通過(guò)采樣統(tǒng)一尺寸的方式再一次傳播原始信息并通過(guò)堆疊方式彌補(bǔ)傳播過(guò)程中丟失的信息。
圖2 FPLN 網(wǎng)絡(luò)結(jié)構(gòu)
除此之外,如圖2 右側(cè)所示,以相同的融合策略又增加了一組二倍下采樣疊加,構(gòu)建自下而上的位置特征增強(qiáng),并與D 層通過(guò)1×1 融合得到{p1,p2,p3},形成了特征圖的閉環(huán)結(jié)構(gòu),在尺度融合中豐富信息,融合特征圖譜信息和自頂向下傳達(dá)強(qiáng)語(yǔ)義特征堆疊,最后附加層則自底向上傳達(dá)強(qiáng)定位特征,綜合的提升了網(wǎng)絡(luò)對(duì)小目標(biāo)的識(shí)別能力。
圖3 廣義交并比與DIoULoss 回歸對(duì)比流程
為了使預(yù)測(cè)框與真實(shí)框之間的對(duì)齊程度實(shí)現(xiàn)更好的表征,獲得更精準(zhǔn)邊框度量,以迎合更為密集行人框互相堆疊易發(fā)生漏檢的數(shù)據(jù)特征,針對(duì)YOLOv3 對(duì)預(yù)測(cè)框的中心及橫縱坐標(biāo)使用LossDIoU為目標(biāo)定位損失函數(shù),進(jìn)行計(jì)算偏移的優(yōu)化,提升網(wǎng)絡(luò)對(duì)目標(biāo)位置的定位的準(zhǔn)確性??紤]重疊面積的廣義交并比原基礎(chǔ)上增加了基于中心點(diǎn)歸一化距離,在損失函數(shù)中引入懲罰項(xiàng),提出了DIoU(Distance Intersection over Union)損失函數(shù)如下:
式中,B為檢測(cè)框,Bgt為真實(shí)框,d為計(jì)算兩者的歐式距離函數(shù),c為覆蓋兩框間最小框中心的對(duì)角線距離。下圖回歸過(guò)程中可以看出廣義交并比損失會(huì)通過(guò)擴(kuò)大預(yù)測(cè)盒與尋找目標(biāo)框并與之重疊,相比交并比損失更關(guān)注中心點(diǎn)距離并逐步通過(guò)懲罰項(xiàng)縮小距離。兩者同時(shí)引導(dǎo)邊界框移動(dòng)方向的過(guò)程中,相比優(yōu)化的是兩個(gè)目標(biāo)框間重疊面積的損失,DIoU 損失直接最小化兩個(gè)目標(biāo)框中心點(diǎn)距離的回歸過(guò)程收斂更快且網(wǎng)絡(luò)更穩(wěn)定,DIoU 還可以避免在兩框無(wú)交集時(shí),廣義交并比損失退化為零的情況,更加符合目標(biāo)框回歸的機(jī)制。
選擇尺寸合適的錨點(diǎn)框以及Anchor 個(gè)數(shù)更有利于提高檢測(cè)的準(zhǔn)確率,并可以根據(jù)檢測(cè)數(shù)據(jù)集差異做出相應(yīng)調(diào)整。原始YOLOv3 算法錨點(diǎn)框個(gè)數(shù)以及寬高比是基于包含行人在內(nèi)的80 類的目標(biāo)的COCO 數(shù)據(jù)集[12]上進(jìn)行聚類得到的。獲得的聚類不能精準(zhǔn)的代表單類行人框的特征,本文針對(duì)復(fù)雜場(chǎng)景下單類行人檢測(cè),采用密集行人數(shù)據(jù)Human Crowd[13],通過(guò)以IoU 為度量的K-mean 聚類[14]分析方法重新聚類,度量公式如下:
得到行人特征對(duì)應(yīng)的三個(gè)尺度的9 組錨點(diǎn)框聚類結(jié)果:(19,12) (14,29) (30,26) (40,59) (55,78) (60,132) (122,178) (146,238) (303,340)。
實(shí)驗(yàn)使用的硬件:CPU(處理器)型號(hào)為Inteli7,GPU 為英偉達(dá)2080Ti R,內(nèi)存為11 GB。
實(shí)驗(yàn)使用的軟件:操作系統(tǒng)為Ubuntu 16.04,深度學(xué)習(xí)框?yàn)镻yTorch 1.6,另外安裝軟件環(huán)境Cuda 10.1+OpenCV。
實(shí)驗(yàn)過(guò)程使用COCO 作為訓(xùn)練集,輸入圖像并進(jìn)行mix up 數(shù)據(jù)增強(qiáng),平臺(tái)搭建網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。訓(xùn)練過(guò)程中的batch尺寸設(shè)為64,權(quán)重衰減為0.000 5,動(dòng)量值為0.9,學(xué)習(xí)率衰減策略采用指數(shù)衰減策略。首先采用初始化學(xué)習(xí)率0.01,保持此學(xué)習(xí)率到第40個(gè)epoch,從40 個(gè)epoch 使用gamma=0.9 來(lái)衰減學(xué)習(xí)率,一共訓(xùn)練200 輪,訓(xùn)練時(shí)間為兩天時(shí)間最終得到密集行人檢測(cè)模型。訓(xùn)練過(guò)程中,使用自適應(yīng)動(dòng)量?jī)?yōu)化(Adaptive Moment Estimation,ADAM)算法[15]根據(jù)訓(xùn)練數(shù)據(jù)迭代自主地完成神經(jīng)網(wǎng)絡(luò)的權(quán)重更新,優(yōu)化模型的參數(shù)。保存完整訓(xùn)練模型后,以人流聚集視頻場(chǎng)景作為測(cè)試數(shù)據(jù)集,應(yīng)用訓(xùn)練好的模型測(cè)試本文網(wǎng)絡(luò)在面對(duì)遮擋以及攝像距離導(dǎo)致的尺度多樣性問(wèn)題時(shí),對(duì)行人目標(biāo)的檢測(cè)性能。
實(shí)驗(yàn)中采用平均精度均值(mean Average Precision,mAP)和檢測(cè)速度(單位為fps)作為評(píng)價(jià)標(biāo)準(zhǔn)檢驗(yàn)?zāi)P偷挠行?。其中Precision 表示正確預(yù)測(cè)數(shù)占總真實(shí)標(biāo)簽數(shù)的比例,Recall 表示正確預(yù)測(cè)數(shù)占目標(biāo)預(yù)測(cè)總數(shù)的比例,mAP 平均精度為計(jì)算兩者曲線下的面積的綜合指標(biāo)。其中mAPs 指標(biāo)代表目標(biāo)尺度小于322的小目標(biāo)。
視頻場(chǎng)景下,同一幀檢測(cè)效果對(duì)比如圖4 和 圖5 所示。圖4 為原算法檢測(cè)結(jié)果圖,未檢測(cè)出被遮擋的行人,尤其是在遠(yuǎn)處和背景相連的小行人處呈現(xiàn)了檢測(cè)空白。圖5 為本文視頻行人檢測(cè)算法結(jié)果圖,能夠成功檢測(cè)到被遮擋較大的行人和遠(yuǎn)處的小目標(biāo)。
圖4 YOLOv3 算法視頻幀檢測(cè)結(jié)果
圖5 本文算法密集行人檢測(cè)效果
實(shí)驗(yàn)第一階段,將本文算法與SSD 以及YOLOv3 算法做對(duì)比實(shí)驗(yàn),相同算法的前提下,輸入的分辨率越大得到檢測(cè)的精度越高,證明了豐富圖片特征對(duì)目標(biāo)檢測(cè)結(jié)果的重要性。結(jié)果如表1 所示,本文算法的小目標(biāo)平均精度達(dá)到了92.25&,較SDD 與原始YOLOv3 分別提高了8.89&和4.25&,證明了模型的有效性。
表1 本文算法與原算法性能對(duì)比
實(shí)驗(yàn)第二階段基于YOLOv3 算法針對(duì)改進(jìn)的每一步進(jìn)行消融實(shí)驗(yàn)的對(duì)比。驗(yàn)證本文的位置增強(qiáng)網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù)的優(yōu)化都能為算法爭(zhēng)取到精度的提高,結(jié)果如表2 所示,在數(shù)據(jù)預(yù)處理的基礎(chǔ)上,位置增強(qiáng)的金字塔網(wǎng)絡(luò)結(jié)構(gòu)能有效獲取豐富特征,在尺寸小于322的情況下目標(biāo)精度提高了2.15&,增加的基于中心點(diǎn)距離的損失函數(shù)通過(guò)精細(xì)定位使精度提高了1.78&,在多尺度目標(biāo)上的平均精度達(dá)到了94.15&。增添模型一定程度上增加了網(wǎng)絡(luò)的計(jì)算,但仍滿足實(shí)時(shí)性的要求,以上證明本文基于YOLOv3 的視頻場(chǎng)景網(wǎng)絡(luò)模型在密集行人場(chǎng)景下是行之有效的。
表2 本文算法增益實(shí)驗(yàn)
針對(duì)視頻中的密集人群檢測(cè)中小目標(biāo)定位差精度較低的問(wèn)題,提出了一種基于YOLOv3 的位置增強(qiáng)金字塔模塊行人檢測(cè)模型。在視頻數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,在保證了實(shí)時(shí)性的情況下,本文算法在面對(duì)小目標(biāo)行人和普通尺度行人的檢測(cè)精度都有所提高,在智能檢測(cè)領(lǐng)域具有一定的前景。通過(guò)對(duì)YOLOv3 三個(gè)尺度特征圖下采樣后,與進(jìn)行全連接再雙向的創(chuàng)建信息流進(jìn)行特征融合,增強(qiáng)特征提取能力,同時(shí)結(jié)合DIoULoss縮近邊框偏移獲得更精準(zhǔn)的預(yù)測(cè)框和符合行人特征的錨點(diǎn)框預(yù)選,提高了密集行人檢測(cè)性能。未來(lái)考慮使用更加輕量的網(wǎng)絡(luò)結(jié)構(gòu),降低復(fù)雜度,尋求更加高效精準(zhǔn)的檢測(cè)思路。