左健豪,姜文剛
江蘇科技大學(xué) 電子信息學(xué)院,江蘇 鎮(zhèn)江212003
人群計(jì)數(shù)的目的是對(duì)給定的視頻幀或圖片中的人群數(shù)量進(jìn)行預(yù)測(cè)。隨著人口的快速增長,人群計(jì)數(shù)因其在安防領(lǐng)域的潛在價(jià)值得到了廣泛的關(guān)注和快速的發(fā)展[1-3]。但是在復(fù)雜的密集人群場(chǎng)景中,由于人群分布不均、遮擋和尺度變化等因素,使得人群計(jì)數(shù)成為一項(xiàng)具有挑戰(zhàn)性的任務(wù)。
目前主流的人群計(jì)數(shù)方法分為兩類:基于檢測(cè)的方法和基于回歸的方法。基于檢測(cè)的方法[4-7]先對(duì)給定圖像或視頻中的每個(gè)個(gè)體(人)進(jìn)行檢測(cè)定位,然后再進(jìn)行數(shù)量統(tǒng)計(jì)。但這類算法僅僅適用于人群較為稀疏的簡單場(chǎng)景,無法適用于復(fù)雜背景且高密度的人群場(chǎng)景。
基于回歸的方法的思想是學(xué)習(xí)圖片中的人群的特征到人群數(shù)量之間的映射關(guān)系。Lempitsly等人[8]首先提出利用線性模型來學(xué)習(xí)圖片中的局部特征和其對(duì)應(yīng)密度圖的關(guān)系。Pham等人[9]提出利用隨機(jī)森林算法學(xué)習(xí)局部區(qū)域的特征與目標(biāo)密度圖之間的非線性映射關(guān)系,并且利用決策樹置換算法進(jìn)行降維,提高了算法的計(jì)算速度。基于回歸的方法相比于基于檢測(cè)的方法能夠較為充分地利用人群的空間分布信息和語義信息,對(duì)后續(xù)進(jìn)行基于深度學(xué)習(xí)的方法奠定了基礎(chǔ)。
但是以上基于傳統(tǒng)機(jī)器學(xué)習(xí)的方法對(duì)于高密度人群場(chǎng)景下的遮擋、模糊和尺度變化等干擾因素依然缺乏魯棒性,在實(shí)際應(yīng)用中具有較大的局限性。
近年來,隨著深度學(xué)習(xí)[10]的發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)[11]的密度圖回歸方法在人群計(jì)數(shù)領(lǐng)域獲得了較好的結(jié)果。Zhang等人[12]提出了多陣列結(jié)構(gòu)的MCNN在不同陣列上用不同大小的卷積層提取多尺度的信息,盡管多陣列結(jié)構(gòu)取得了一定精度的提升,但是其訓(xùn)練的時(shí)間較長且結(jié)構(gòu)設(shè)計(jì)冗余。Li等人[13]提出的CSRNet首次將空洞卷積應(yīng)用于人群計(jì)數(shù),并在當(dāng)年獲得了最佳的性能結(jié)果,但其算法性能受限于缺乏底層的空間細(xì)節(jié)信息的補(bǔ)充,在復(fù)雜背景的場(chǎng)景下容易發(fā)生誤判。最近的一些研究[14-16]開始嘗試構(gòu)建復(fù)雜的編碼器-解碼器結(jié)構(gòu)來聚合網(wǎng)絡(luò)中不同層的特征信息,但是這些算法結(jié)構(gòu)復(fù)雜,不利于實(shí)際應(yīng)用和對(duì)現(xiàn)有算法進(jìn)行改進(jìn)。
針對(duì)上述問題,本文所提出的自適應(yīng)特征融合網(wǎng)絡(luò)通過自適應(yīng)特征融合模塊自適應(yīng)地高效聚合編碼器分支提取出的高層語義信息和底層的邊緣信息,進(jìn)一步提高網(wǎng)絡(luò)對(duì)于人頭區(qū)域的特征提取和辨別能力,緩解由于分布不均和遮擋帶來的影響;通過自適應(yīng)上下文信息提取器,提取不同感受野下的上下文信息,并根據(jù)輸入的圖片自適應(yīng)地對(duì)上下文信息進(jìn)行加權(quán)融合,提高網(wǎng)絡(luò)對(duì)于尺度變化的魯棒性。在多個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)表明,本次研究所提出的算法達(dá)到了較高的精準(zhǔn)度和魯棒性。
在本文的方法中,輸入為任意大小的圖片,輸出為其對(duì)應(yīng)的同尺寸的密度圖,因此,自適應(yīng)特征融合網(wǎng)絡(luò)采用全卷積網(wǎng)絡(luò)架構(gòu)。
如圖1所示,本文選取VGG16[17]的前10層卷積層構(gòu)成基礎(chǔ)的編碼器分支。該網(wǎng)絡(luò)并沒有直接將編碼器與對(duì)應(yīng)的解碼器通過跳接結(jié)構(gòu)進(jìn)行連接,而是將前三個(gè)由編碼器輸出的特征圖輸入進(jìn)對(duì)應(yīng)的自適應(yīng)特征融合模塊,由自適應(yīng)特征與解碼器進(jìn)行互聯(lián),最后一個(gè)編碼器特征圖則輸入自適應(yīng)上下文信息提取器中提取多感受野下的上下文信息并自適應(yīng)加權(quán)融合,最終由解碼器分支進(jìn)行信息聚合與上采樣,最終生成人群密度圖。
圖1 自適應(yīng)特征融合網(wǎng)絡(luò)架構(gòu)圖Fig.1 Illustration of adaptive feature fusion network
自適應(yīng)特征融合模塊的目的是根據(jù)各解碼器輸入的需求,自適應(yīng)地通過加權(quán)的方式從編碼器分支中的各層選取最需要的空間信息和語義信息再輸入進(jìn)對(duì)應(yīng)的解碼器,完成進(jìn)一步的信息融合和上采樣。在卷積神經(jīng)網(wǎng)絡(luò)中,來自底層的特征圖編碼了大量的低級(jí)特征和空間細(xì)節(jié)信息,適用于對(duì)物體進(jìn)行定位;而來自高層的特征圖編碼了豐富的高級(jí)特征和語義信息,適用于對(duì)物體進(jìn)行分類。以U-Net[18]為代表的編碼器-解碼器網(wǎng)絡(luò)通過跳接結(jié)構(gòu)嘗試將深、淺特征進(jìn)行直接融合。但是這些方法未能考慮到底層的特征圖中摻雜大量的噪聲,不能為深層的特征圖提供高分辨率的語義指導(dǎo);而高層的特征圖中僅包含有限的空間細(xì)節(jié),不能高效地利用低級(jí)的特征[19]。所以提出了自適應(yīng)特征融合模塊來更好地結(jié)合、利用網(wǎng)絡(luò)中不同層級(jí)的特征信息。
自適應(yīng)特征融合模塊的結(jié)構(gòu)如圖2所示。首先將編碼器分支輸出的多級(jí)基礎(chǔ)特征圖設(shè)為f l,其中,l∈{1,2,3,4}分別對(duì)應(yīng)編碼器分支的4個(gè)層級(jí)。本文共設(shè)置了3個(gè)自適應(yīng)特征融合模塊主要用于連接前3個(gè)編碼器子模塊和其對(duì)應(yīng)的解碼器模塊。在基礎(chǔ)特征圖輸入進(jìn)自適應(yīng)特征模塊前,由于在不同層上的特征圖f n(n≠l),具有不同大小的分辨率和通道數(shù),所以需要通過上采樣或下采樣策略將其統(tǒng)一到和f l相同的大小,將調(diào)整過后的特征圖設(shè)為f n→l。對(duì)于兩倍的降采樣,使用步長為2的3×3卷積將特征圖的通道數(shù)和分辨率同時(shí)進(jìn)行調(diào)節(jié);對(duì)于四倍的降采樣,首先采用步長為2的池化層和步長為2的3×3級(jí)聯(lián)進(jìn)行分辨率和通道數(shù)的調(diào)節(jié);對(duì)于上采樣,本文先采用1×1卷積將特征圖通道數(shù)進(jìn)行壓縮,再采用雙線性插值進(jìn)行上采樣,最后再用1×1卷積對(duì)結(jié)果進(jìn)行平滑。
圖2 自適應(yīng)特征融合模塊Fig.2 Adaptive feature fusion module
在輸入的特征圖統(tǒng)一到相同的分辨率和通道數(shù)后,由各解碼器的原始輸入dink(k∈{1,2,3}),通過信息選擇層為來自于不同層級(jí)的特征圖學(xué)習(xí)權(quán)重參數(shù)al,bl,cl,并通過如式(1)所示方式進(jìn)行融合。
盡管自適應(yīng)特征融合模塊通過融合編碼器不同層級(jí)特征,在一定程度上解決了多尺度問題,但是僅依靠卷積網(wǎng)絡(luò)中連續(xù)的卷積和池化操作只能在有限的尺度范圍內(nèi)提取多尺度特征,因此,受文獻(xiàn)[20-21]啟發(fā),本文提出了自適應(yīng)上下文信息提取器。
如圖3所示,自適應(yīng)上下文信息提取器可以分為兩部分:金字塔池化單元和尺度感知融合單元。金字塔池化單元將輸入特征圖池化到2×2、6×6、9×9三個(gè)不同的尺度來編碼不同感受野下的上下文信息,為了將不同感受野下的上下文信息進(jìn)行融合,在每個(gè)池化后的特征圖后先利用1×1的卷積在不改變通道數(shù)的前提下整合通道維度上的特征信息,再通過雙線性插值將各個(gè)上下文信息特征圖上采樣到和輸入特征圖同樣的尺寸。
圖3 自適應(yīng)上下文信息提取器Fig.3 Adaptive context extractor
考慮到輸入圖片中快速尺度變化,例如一張圖中,可能上千人是小尺寸的人頭,只有少部分人頭尺寸較大,所以不能將這些上下文信息簡單地直接進(jìn)行合并。因此,本文在金字塔池化層后加上了尺度感知融合單元,使網(wǎng)絡(luò)能夠自適應(yīng)地根據(jù)圖片中的尺度分布,對(duì)最有代表性的上下文信息施加大的權(quán)重,對(duì)尺寸占比較少的上下文信息施加較小的權(quán)重。尺度感知融合單元的具體操作如下式:其中,yACE是自適應(yīng)上下文信息提取器輸出的特征圖,f4為編碼器分支提供的最后一個(gè)基礎(chǔ)特征圖,代表經(jīng)過上采樣后的金字塔池化單元不同層級(jí)提取的上下文信息特征圖,參數(shù)a、b、c、d代表尺度重要性權(quán)重,網(wǎng)絡(luò)可以自動(dòng)學(xué)習(xí)得到這些參數(shù),計(jì)算方式為:設(shè)置a+b+c+d=1,并且a,b,c,d∈(0,1),尺度重要性權(quán)重a的權(quán)重如下式計(jì)算:其中,att是由一個(gè)全局平均池化層和Sigmoid激活函數(shù)組成,通過同樣的方式,可以計(jì)算得到b、c、d。
總結(jié),本文所提出的自適應(yīng)上下文信息提取器不僅能夠提取多尺度的上下文特征,還能根據(jù)給定圖片中潛在的尺度分布自適應(yīng)的將上下文信息進(jìn)行加權(quán)融合,有效地提高了網(wǎng)絡(luò)對(duì)于尺度變化的魯棒性。
解碼器分支的作用是進(jìn)一步聚合網(wǎng)絡(luò)提取的特征并進(jìn)行上采樣,最終生成人群密度圖。本文中的解碼器單元與傳統(tǒng)的編碼器-解碼器網(wǎng)絡(luò)中的解碼器單元結(jié)構(gòu)近似,如圖4所示,其中dink(k∈{1,2,3})代表該編碼器上一層模塊的輸出同時(shí)也是當(dāng)前層級(jí)解碼器的原始輸入,yk(k∈{1,2,3})代表由dink從對(duì)應(yīng)的自適應(yīng)特征融合模塊獲得的增強(qiáng)特征圖。在經(jīng)過兩層卷積層后得到該解碼器的輸出doutk(k∈{1,2,3})。
圖4 解碼器模塊Fig.4 Decoder branch
如圖3所示,本文的解碼器分支共由三個(gè)解碼器模塊構(gòu)成,在得到最后一個(gè)解碼器分支的輸出dout1后,通過1×1卷積和ReLu激活函數(shù)生成最終的人群密度圖。
目前主流的人群計(jì)數(shù)數(shù)據(jù)集都只提供了圖中人頭中心位置的標(biāo)注信息,本文采用歸一化高斯核濾波器[22]對(duì)每個(gè)人頭中心位置進(jìn)行濾波操作,來生成網(wǎng)絡(luò)訓(xùn)練所用的密度圖。δ(x-xi)表示位于圖片中坐標(biāo)為xi的人頭中心點(diǎn),那么,一張有N個(gè)人頭的圖片可以表示為:
再通過高斯核濾波器對(duì)人頭中心點(diǎn)進(jìn)行濾波生成對(duì)應(yīng)的人群密度圖,具體計(jì)算如下:
其中,Gσ代表高斯核濾波器,σ代表高斯核濾波器的標(biāo)準(zhǔn)差,由于不同數(shù)據(jù)集之間的樣本差異,本文根據(jù)不同的數(shù)據(jù)集訓(xùn)練設(shè)置不同的超參數(shù)σ來制作對(duì)應(yīng)的密度圖用于訓(xùn)練。
對(duì)最終生成的人群密度圖進(jìn)行積分操作即可得到圖像中人群的總數(shù)。
本文采用歐氏距離計(jì)算預(yù)測(cè)的密度圖與真實(shí)的密度圖之間的差值來對(duì)網(wǎng)絡(luò)中的參數(shù)進(jìn)行優(yōu)化。損失函數(shù)的表達(dá)式如下:
其中,N為訓(xùn)練集中圖片數(shù)量,yi代表網(wǎng)絡(luò)預(yù)測(cè)的密度圖,ti代表真實(shí)的人群密度圖。
在訓(xùn)練中,將整幅圖像輸入到網(wǎng)絡(luò)中,每張圖像有一半的幾率會(huì)進(jìn)行水平翻轉(zhuǎn)。使用Pytorch框架來進(jìn)行模型的搭建,網(wǎng)絡(luò)中的參數(shù)在訓(xùn)練前采用均值為0,標(biāo)準(zhǔn)差為0.01的高斯分布進(jìn)行初始化。本文采用隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)優(yōu)化器,動(dòng)量因子設(shè)置為0.95,學(xué)習(xí)率初始為1×10-5,每個(gè)循環(huán)結(jié)束后學(xué)習(xí)率乘以參數(shù)0.95。
人群計(jì)數(shù)研究中普遍采用平均絕對(duì)誤差(Mean Absolute Error,MAE)和平均平方誤差(Mean Square Error,MSE)作為評(píng)價(jià)算法性能的指標(biāo),兩個(gè)指標(biāo)定義如下:
其中,N是指測(cè)試集中圖片的數(shù)量,zi表示第i張圖片中預(yù)測(cè)的人群的數(shù)量表示第i張圖實(shí)際的人群數(shù)量。
上海ShanghaiTech數(shù)據(jù)集分為Part_A和Part_B兩部分:Part_A共有482張圖像,標(biāo)注的行人累計(jì)有241 667個(gè),其中訓(xùn)練集有300張,測(cè)試集有182張;Part_B共有716張圖像,全部采集自上海街頭的監(jiān)控視頻,其中訓(xùn)練集400張,測(cè)試集316張。ShanghaiTech是人群計(jì)數(shù)領(lǐng)域中相當(dāng)有挑戰(zhàn)的數(shù)據(jù)集,也是目前被用來驗(yàn)證算法性能最廣泛的數(shù)據(jù)集。表1為本文提出的算法與其他先進(jìn)算法在ShanghaiTech數(shù)據(jù)集上的對(duì)比結(jié)果,從表1可以看到,本文提出的算法與ANF相比在Part_A上MAE減少了2.7,MSE減少了3.9;在Part_B上,本文提出的方法相比ANF算法MAE減少了0.6,MSE減少了0.9。
表1 ShanghaiTech數(shù)據(jù)集上的對(duì)比結(jié)果Table 1 Performance comparison with state-of-the-art methods on ShanghaiTech
UCF-CC-50是一個(gè)極度密集的數(shù)據(jù)集,該數(shù)據(jù)由50張不同分辨率大小的圖片組成,每張圖標(biāo)注的人頭數(shù)量從94到4 543個(gè),平均一張圖有1 280人。本文按照五折交叉實(shí)驗(yàn)的方式對(duì)算法進(jìn)行驗(yàn)證。如表2所示,本文所提出的自適應(yīng)特征融合網(wǎng)絡(luò)相比之前的算法,提升較為明顯,與ANF算法相比,本文提出的算法MAE減少了40.8,MSE則較減少了37.3。
表2 UCF-CC-50數(shù)據(jù)集上的對(duì)比結(jié)果Table 2 Performance comparison with state-of-the-art methods on UCF-CC-50
UCF-QNRF是近年提出的一個(gè)具有挑戰(zhàn)性的高密度場(chǎng)景數(shù)據(jù)集,包含1 535張人群圖片,其中訓(xùn)練集1 201張,測(cè)試集334張,平均每張圖片的人數(shù)為815個(gè)。如表3所示,本文提出的算法之前的算法相比,無論是MAE還是MSE均取得了最佳結(jié)果。
表3 UCF-QNRF數(shù)據(jù)集上的對(duì)比結(jié)果Table 3 Performance comparison with state-of-the-art methods on UCF-QNRF
為了驗(yàn)證算法各模塊的有效性,本文在ShangHaitech Part_A數(shù)據(jù)集上采用第2章所提到訓(xùn)練方法和性能指標(biāo)進(jìn)行了如表4所示的消融實(shí)驗(yàn)。
表4 ShanghaiTech Part_A數(shù)據(jù)集上消融實(shí)驗(yàn)Table 4 Ablation study on ShanghaiTech Part_A dataset
其中,U-Net為基于VGG16[17]網(wǎng)絡(luò)搭建的基礎(chǔ)網(wǎng)絡(luò),后續(xù)的改進(jìn)是基于U-Net網(wǎng)絡(luò)進(jìn)行,其在ShangHaitech Part_A數(shù)據(jù)集的MAE為84.6,MSE為139.4。如表4所示,自適應(yīng)特征融合模塊對(duì)于基礎(chǔ)網(wǎng)絡(luò)性能的提升非常顯著,MAE減少了17.1,而MSE減少了31,因?yàn)樽赃m應(yīng)特征融合模塊增強(qiáng)了網(wǎng)絡(luò)對(duì)于深、淺特征的提取和融合能力,使網(wǎng)絡(luò)能夠充分利用淺層的邊緣細(xì)節(jié)和深層的語義信息。在基礎(chǔ)網(wǎng)絡(luò)上增加自適應(yīng)上下文信息提取后,相比基礎(chǔ)網(wǎng)絡(luò)MAE減少了10.9,MSE則減少了29.1,這說明在獲得自適應(yīng)加權(quán)的多感受野下的上下文信息后,網(wǎng)絡(luò)能夠更好地對(duì)不同大小的人頭進(jìn)行更好的判別,進(jìn)而提高了網(wǎng)絡(luò)對(duì)于尺度變化的魯棒性。將自適應(yīng)特征融合模塊和自適應(yīng)上下文信息提取器同時(shí)結(jié)合到基礎(chǔ)網(wǎng)絡(luò),即為本文所提出的自適應(yīng)特征融合網(wǎng)絡(luò),該算法融合了兩種模塊的優(yōu)點(diǎn),因而在ShangHaitech Part_A數(shù)據(jù)集達(dá)到了先進(jìn)的水平。
算法的可視化結(jié)果如圖5所示,從左至右為輸入的圖片、真實(shí)的人群密度圖和網(wǎng)絡(luò)預(yù)測(cè)的人群密度圖。從結(jié)果來看,對(duì)于不同密度的人群,本文所提出的自適應(yīng)特征融合網(wǎng)絡(luò)都能保持較好的泛化能力,對(duì)于背景和前景幾乎都能正確地進(jìn)行辨別,對(duì)于圖像中人頭的尺度變化具有較強(qiáng)的魯棒性。這說明網(wǎng)絡(luò)充分地利用了深、淺特征和不同感受野下的上下文信息,進(jìn)一步提升了網(wǎng)絡(luò)對(duì)于圖像中人頭區(qū)域的特征采集和辨別能力,從而在多個(gè)數(shù)據(jù)集上達(dá)到了先進(jìn)水平。
圖5 算法可視化結(jié)果Fig.5 Visualized result
針對(duì)于人群計(jì)數(shù)中尺度變化和多層級(jí)特征融合不佳的問題,本文研究并提出了自適應(yīng)特征融合網(wǎng)絡(luò)。提出設(shè)計(jì)自適應(yīng)特征融合模塊,來有效地利用解碼器中不同層次的特征信息來提高網(wǎng)絡(luò)整體的信息融合能力;提出自適應(yīng)上下文信息提取器,提高了網(wǎng)絡(luò)對(duì)于尺度變化的魯棒性。最后,通過實(shí)驗(yàn)證明,本文提出的算法是有效的,適用于多種場(chǎng)景,并在多個(gè)數(shù)據(jù)上取得了較好的結(jié)果。然而,目前人群計(jì)數(shù)研究的重點(diǎn)大多是放在靜態(tài)圖的密度預(yù)測(cè)上,而實(shí)際應(yīng)用中多是視頻流的在線預(yù)測(cè),因此,下一步將研究連續(xù)視頻流的人群計(jì)數(shù),在保證算法準(zhǔn)確度的前提下,提高網(wǎng)絡(luò)的實(shí)時(shí)性能,并合理利用從視頻前幀中提取的信息。