曹 思 聰
(中國(guó)人民解放軍32683部隊(duì), 沈陽(yáng) 110001)
人群密度檢測(cè)被越來(lái)越多的人所關(guān)注,尤其是近2年全球新冠肺炎疫情形勢(shì)異常嚴(yán)峻,按照國(guó)家防疫要求,很多人口聚集的場(chǎng)所要求人口密度不得超過(guò)1個(gè)固定的數(shù)值。在擁擠的人群中,由于彼此的遮擋、視角扭曲、尺度變化和人員密度變化等因素的影響,依據(jù)輸入圖像準(zhǔn)確計(jì)算出人群的密度是一項(xiàng)極具挑戰(zhàn)性的任務(wù)。
針對(duì)該問(wèn)題,學(xué)者提出了許多人群計(jì)數(shù)算法。早期方法[1]采用檢測(cè)式框架,在視頻序列的2個(gè)連續(xù)幀上掃描檢測(cè)器,根據(jù)增強(qiáng)的運(yùn)動(dòng)特征和外觀來(lái)對(duì)行人數(shù)量進(jìn)行估計(jì);文獻(xiàn)[2]使用了類似的基于檢測(cè)的框架進(jìn)行行人計(jì)數(shù);在基于檢測(cè)的群組計(jì)數(shù)方法中,人們通常假設(shè)群組由單個(gè)實(shí)體組成,這些實(shí)體可以被一些給定的檢測(cè)器檢測(cè)[3-4]。這種基于檢測(cè)的方法的局限性在于,集群環(huán)境中或密集人群中遮擋會(huì)顯著影響檢測(cè)器的性能,從而影響最終的估計(jì)精度。
人群計(jì)數(shù)最廣泛使用的方法是特征回歸法[5-6],主要操作步驟為:從圖像中將前景分割出來(lái);在前景中提取需要的特征,例如遮蓋人群[7-8]、邊緣特征[9]或紋理特征[10];使用回歸函數(shù)估計(jì)人群中人的數(shù)量。線性函數(shù)[11]和分段線性函數(shù)是相對(duì)簡(jiǎn)單的模型,且性能較好。其他更有效的方法有嶺回歸(RR)[13]、高斯回歸[14]和神經(jīng)網(wǎng)絡(luò)(NN)[15]等。也有一些文獻(xiàn)側(cè)重于根據(jù)靜止的圖像計(jì)算人群中的人數(shù)[16-18]。
本研究提出了一種新的深度檢測(cè)網(wǎng)絡(luò),利用YOLOv3網(wǎng)絡(luò),并將結(jié)果密度圖估計(jì)融合,最后進(jìn)行了參數(shù)調(diào)優(yōu),結(jié)果表明該方法能取得較好的效果。
在深度學(xué)習(xí)中用于圖像目標(biāo)檢測(cè)的網(wǎng)絡(luò)有很多,如SPPNet,Fast R-CNN,Faster R-CNN,YOLO,SSD等。YOLO網(wǎng)絡(luò)借鑒了GoogLe Net網(wǎng)絡(luò)的結(jié)構(gòu),如圖1所示。YOLOv3是在YOLOv1和YOLOv2的基礎(chǔ)上,在保持檢測(cè)效率優(yōu)勢(shì)的前提下,提升了預(yù)測(cè)準(zhǔn)確度,尤其是加強(qiáng)了對(duì)小物體和遮擋物的識(shí)別能力。

圖1 YOLO網(wǎng)絡(luò)結(jié)構(gòu)圖
YOLOv3設(shè)計(jì)了一個(gè)新的網(wǎng)絡(luò)結(jié)構(gòu)Darknet-19,它包含19個(gè)卷積層,5個(gè)池化層。如圖1網(wǎng)絡(luò)結(jié)構(gòu)所示,它通過(guò)這個(gè)新的分類網(wǎng)絡(luò)來(lái)進(jìn)行特征的提取,YOLOv3在檢測(cè)的速度和精度上都有所提升。計(jì)算公式如下:
其中:a代表每個(gè)神經(jīng)元的激活;n代表一個(gè)位置上臨近特征圖的數(shù)目;N代表特征圖總數(shù);k代表預(yù)設(shè)的超參數(shù)。由此可見(jiàn),這種方法是多個(gè)特征圖在同一位置上的歸一化,屬于特征圖之間的局部歸一化,可以小幅度提高識(shí)別效率和準(zhǔn)確度。另外,還使用了Dropout技術(shù),這樣一些神經(jīng)元不再參與前向傳播與反向傳播,每次輸入一個(gè)樣本都相當(dāng)于網(wǎng)絡(luò)對(duì)新結(jié)構(gòu)進(jìn)行了嘗試,通過(guò)共享權(quán)值,降低了神經(jīng)元的計(jì)算復(fù)雜度,有效降低過(guò)擬合。
項(xiàng)目綜合了2種主流人群密度檢測(cè)方法。第1種基于目標(biāo)檢測(cè)的方法,設(shè)計(jì)了頭部檢測(cè)器(head)與行人檢測(cè)器(person)2個(gè)檢測(cè)器,其特點(diǎn)是在低密度場(chǎng)景下有著較高的準(zhǔn)確率,但是高密度場(chǎng)景漏檢率較高。第2種方法基于密度圖生成的人群計(jì)數(shù),其特點(diǎn)是在高密度場(chǎng)景下有著較高的準(zhǔn)確率,但是低密度場(chǎng)景準(zhǔn)確度較低。本文提出的方法融合上述2種方案,實(shí)現(xiàn)了更高精度的人群計(jì)數(shù)。具體融合策略如圖2所示。

圖2 融合策略
項(xiàng)目采用百度的paddle框架,利用百度提供的編輯器codelab進(jìn)行實(shí)驗(yàn),采用python語(yǔ)言。
1)參數(shù)調(diào)整
采用Adam優(yōu)化器對(duì)一些參數(shù)進(jìn)行了調(diào)整。學(xué)習(xí)率策略:lr=1e-4;權(quán)重衰減:L2Decay(1e-4);loss function:L1 smooth(huber)更加魯棒,兼有L1和L2的優(yōu)點(diǎn);訓(xùn)練時(shí)長(zhǎng):200epochs左右;Momentum優(yōu)化器base_lr=1e-3;訓(xùn)練時(shí)長(zhǎng):90 000iters左右;Max_box:505,其余參數(shù)不變。
2)數(shù)據(jù)集處理
根據(jù)對(duì)數(shù)據(jù)集分析可知圖片標(biāo)注共分2種情況:人身的框標(biāo)注1 253張,人頭的點(diǎn)標(biāo)注747張。選擇對(duì)這2種標(biāo)注分別建立人身識(shí)別器(person-人身框標(biāo)注)和人頭識(shí)別器(head-人頭點(diǎn)標(biāo)注),分開(kāi)訓(xùn)練。這里對(duì)于人頭點(diǎn)標(biāo)記,涉及由點(diǎn)變框,并且要框住頭,而不同圖片中頭的大小是不一樣的。因此,提出一種針對(duì)圖片大小的點(diǎn)變框的方法:根據(jù)圖片分辨率的不同建立不同的人頭大小,經(jīng)檢驗(yàn),這種方法比常規(guī)的統(tǒng)一大小變框方法可以提升0.1~0.15的成績(jī)。通過(guò)可視化數(shù)據(jù)發(fā)現(xiàn),數(shù)據(jù)集有主要分為3種尺寸的圖片:1)大尺寸img_shape[0]>1 000,采用43×43的anchor;2)1 000>中尺寸img_shape[0]>700,采用32×32的anchor;3)小尺寸img_shape[0]<700,采用20×20的anchor。針對(duì)以上3種尺寸的圖片設(shè)計(jì)了不同尺度的頭部標(biāo)記anchor。
用近一個(gè)星期的時(shí)間訓(xùn)練了多個(gè)person & head檢測(cè)器,然后對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行加權(quán)平均融合(weighted average fusion)。通過(guò)數(shù)據(jù)分析,決定用4個(gè)結(jié)果較好的person & head檢測(cè)器融合后的結(jié)果進(jìn)行融合,融合的策略為加權(quán)平均融合,權(quán)重為1-score。基本思想是通過(guò)融合多個(gè)弱檢測(cè)器的結(jié)果,得到一個(gè)有更低的bias和variance的結(jié)果。加權(quán)融合之后得分為0.117 82,比起最優(yōu)的單個(gè)head+person的結(jié)果0.123 87提升了5%。圖3和圖4是0~30人和50~450人的預(yù)測(cè)結(jié)果。

圖3 0~30人的2種網(wǎng)絡(luò)預(yù)測(cè)人數(shù)

圖4 50~450人的2種網(wǎng)絡(luò)預(yù)測(cè)人數(shù)
經(jīng)過(guò)訓(xùn)練后的單獨(dú)的人身檢測(cè)器在測(cè)試集上的正確率為65.32%,單獨(dú)的人頭檢測(cè)器在測(cè)試集上的正確率為80.72%,雙檢測(cè)器在測(cè)試集上的正確率為83.82%,crowdnet在測(cè)試集上的正確率為87.84%。從理論上講,單純的檢測(cè)模型在低密度人群下因?yàn)槟繕?biāo)之間距離大,相互遮掩少會(huì)有更好的效果,對(duì)高密度相互遮掩情況效果較差;而密度圖方法,因?yàn)槭褂酶咚购松擅芏葓D時(shí)使用的假設(shè)是人頭的大小=相鄰k個(gè)人頭的平均距離,即在高密度人群下會(huì)更準(zhǔn),而在低密度人群彼此相隔較遠(yuǎn)時(shí)誤差較大。實(shí)際效果如圖5和圖6所示。

圖5 0~50人的2種網(wǎng)絡(luò)預(yù)測(cè)人數(shù)

圖6 50~250人的2種網(wǎng)絡(luò)預(yù)測(cè)人數(shù)
通過(guò)上述可視化分析,發(fā)現(xiàn)YOLOv3對(duì)低密度人群結(jié)果預(yù)測(cè)較好,而對(duì)高密度人群預(yù)測(cè)時(shí)容易出現(xiàn)漏檢。因此,在操作中,預(yù)測(cè)人數(shù)大于60人時(shí),取密度圖的預(yù)測(cè)結(jié)果加以補(bǔ)償;預(yù)測(cè)時(shí)當(dāng)預(yù)測(cè)人數(shù)為15~60人時(shí),取YOLO和密度圖預(yù)測(cè)的最大值;當(dāng)預(yù)測(cè)人數(shù)為0~15人時(shí),用YOLO自身的預(yù)測(cè)結(jié)果。
密度圖的損失來(lái)自于: 1)將高斯核疊加在GT的點(diǎn)標(biāo)注上產(chǎn)生的損失; 2)在生成密度圖時(shí),提取特征的網(wǎng)絡(luò)進(jìn)行了降采樣,大小為原圖的1/8,部分小目標(biāo)語(yǔ)義信息在高層特征圖中已經(jīng)丟失。
故在不改變模型結(jié)構(gòu)的情況下使用以下融合策略:1)彈性融合策略(elastic fusion strategy);2)以head+person檢測(cè)結(jié)果為基準(zhǔn),其中“+”表示補(bǔ)償值,補(bǔ)償密度圖生成的損失,其補(bǔ)償值通過(guò)訓(xùn)練集密度圖和GT的差距進(jìn)行估計(jì);Max(crowdnet,head+person)表示取YOLO和密度圖預(yù)測(cè)的最大值;only use head+person用YOLO自己預(yù)測(cè)結(jié)果。人口數(shù)量和采用的策略關(guān)系見(jiàn)表1。

表1 人口數(shù)量和采用的策略關(guān)系
不同場(chǎng)景下進(jìn)行人口密度統(tǒng)計(jì)需要使用不同的方法。實(shí)際操作中可以參考經(jīng)典的方法進(jìn)行統(tǒng)計(jì),但要根據(jù)具體的場(chǎng)景對(duì)經(jīng)典方法進(jìn)行優(yōu)化。本項(xiàng)目中遇到了密度圖生成crowdnet訓(xùn)練中可能會(huì)出現(xiàn)內(nèi)存溢出的問(wèn)題,解決方案是減小batchsize,使用momentum優(yōu)化器。未來(lái)還需要作進(jìn)一步研究,如使用精度更高的模型、使用anchor框加速收斂、根據(jù)場(chǎng)景的不同訓(xùn)練不同的檢測(cè)器等。
沈陽(yáng)師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年5期