馬 煜,杜慧敏,毛智禮,張 霞
西安郵電大學(xué) 電子工程學(xué)院,西安 710121
隨著世界經(jīng)濟(jì)的不斷增長(zhǎng),全球人口數(shù)量急劇增加,大量的人口涌入土地面積有限的城市,導(dǎo)致城市中的公共場(chǎng)所在重大節(jié)日或活動(dòng)中會(huì)面臨高流量、高密度的人群壓力。當(dāng)大量的人群處于較為狹小的空間時(shí),一旦發(fā)生騷亂,人群會(huì)很容易失去控制,從而將會(huì)導(dǎo)致惡性事故的發(fā)生。近年來(lái),關(guān)于在大型活動(dòng)、體育賽事、旅游景點(diǎn)、學(xué)校等地發(fā)生推搡踩踏等嚴(yán)重事件的新聞報(bào)導(dǎo)屢見不鮮。例如,2009年3 月29 日在科特迪瓦阿比讓舉行的世界杯和非洲國(guó)家隊(duì)預(yù)選賽期間,由于人群密度太大使得墻體倒塌造成19 人死亡,132 人受傷;2013 年6 月,英格蘭球星貝克漢姆到達(dá)同濟(jì)大學(xué)開展交流活動(dòng),現(xiàn)場(chǎng)發(fā)生踩踏事件,受傷人數(shù)頗多;2014 年12 月31 日,在上海外灘的跨年活動(dòng)上發(fā)生惡性踩踏事件,造成36 人死亡,47 人受傷。這些悲劇均是在人群密度過大時(shí)發(fā)生的,由此可見,公共安全與人群密度息息相關(guān)。為了預(yù)防類似的惡性事件發(fā)生,需要掌握實(shí)時(shí)的人群密度情況,在密度過大時(shí)進(jìn)行預(yù)警并采取合理的管控措施。因此對(duì)人群密度進(jìn)行精確的檢測(cè)對(duì)預(yù)防惡性事件的發(fā)生有著重要意義以及研究?jī)r(jià)值。而人群中的密集性、遮擋性以及多尺度性對(duì)檢測(cè)的精度有著很大的影響,尤其是人群中的尺度多樣性給該領(lǐng)域的研究帶來(lái)了極大的挑戰(zhàn)。人群擁擠場(chǎng)景如圖1所示。
Fig.1 Crowd image圖1 擁擠人群場(chǎng)景
近年來(lái)深度學(xué)習(xí)發(fā)展迅速,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)在圖像處理領(lǐng)域有著優(yōu)異的表現(xiàn),人群密度檢測(cè)領(lǐng)域的研究者們也將卷積神經(jīng)網(wǎng)絡(luò)運(yùn)用到該領(lǐng)域中。Zhang 等人[1]首先提出多陣列網(wǎng)絡(luò)結(jié)構(gòu)(multi-column convolutional neural network,MCNN)來(lái)應(yīng)對(duì)人群數(shù)據(jù)中的不同尺度問題,設(shè)計(jì)出了三列卷積核大小不同的網(wǎng)絡(luò)。該網(wǎng)絡(luò)在ShanghaiTech 數(shù)據(jù)集上有良好的表現(xiàn),但當(dāng)涉及到處理人數(shù)較多(尺度多)、場(chǎng)景遮擋多以及透視問題時(shí)效果明顯下降。Boominathan 等人[2]提出的Crowd-Net 在不同的列上組合了淺層網(wǎng)絡(luò)和深層網(wǎng)絡(luò),其中淺層網(wǎng)絡(luò)捕獲對(duì)應(yīng)于大規(guī)模變化的底層特征,而深層網(wǎng)絡(luò)捕獲高層語(yǔ)義信息。該網(wǎng)絡(luò)只用了兩種卷積核大小不同的網(wǎng)絡(luò)對(duì)全圖的所有尺度信息進(jìn)行提取,在人群分布不均勻的圖片中會(huì)出現(xiàn)淺層網(wǎng)與深層網(wǎng)提取特征的準(zhǔn)確性下降。Switching CNN[3]在圖像塊上訓(xùn)練幾個(gè)獨(dú)立的CNN人群密度回歸器,這些回歸器與MCNN具有相同的結(jié)構(gòu)。此外,還對(duì)回歸分類器進(jìn)行了交替分類訓(xùn)練,以選擇最佳分類器進(jìn)行密度估計(jì)。該網(wǎng)絡(luò)首先將圖片分成9 塊,通過switchlayer對(duì)每一塊圖片中人群密度進(jìn)行分析后分類,使不同密度的塊進(jìn)入相應(yīng)的人群密度回歸器,由于在分塊時(shí)會(huì)出現(xiàn)人臉的不規(guī)則劃分,此類情況會(huì)使得對(duì)人進(jìn)行識(shí)別時(shí)出錯(cuò)從而會(huì)導(dǎo)致網(wǎng)絡(luò)精度下降。U-GAnet[4]通過多通道融合淺層特征生成人群密度圖,但對(duì)于人群密集度大的區(qū)域則無(wú)法生成高質(zhì)量密度圖。
為了更好地解決人群中的尺度多樣性問題,本文提出了新型的用于人群密度檢測(cè)的網(wǎng)絡(luò)結(jié)構(gòu)。VGG[5](visual geometry group)和殘差網(wǎng)絡(luò)[6](residual network,ResNet)均為具有特征提取性能的網(wǎng)絡(luò),考慮到網(wǎng)絡(luò)的結(jié)構(gòu),本文選擇使用VGG16 的部分網(wǎng)絡(luò)作為前端網(wǎng)絡(luò)來(lái)對(duì)圖像進(jìn)行特征提取,在后端網(wǎng)絡(luò)的設(shè)計(jì)中使用了兩陣列的空洞卷積網(wǎng)絡(luò)對(duì)第一部分網(wǎng)絡(luò)輸出進(jìn)行處理從而生成不同尺度下的特征圖,最后將兩列網(wǎng)絡(luò)的輸出進(jìn)行級(jí)聯(lián)生成預(yù)測(cè)密度圖。本文在UCF_CC_50[7]和ShanghaiTech 數(shù)據(jù)集上進(jìn)行測(cè)試,測(cè)試結(jié)果好于大部分主流人群密度檢測(cè)算法。
本文所使用的訓(xùn)練數(shù)據(jù)為人群密度圖,因此在訓(xùn)練網(wǎng)絡(luò)前需要將人群密度數(shù)據(jù)集中的人群圖片使用Matlab 進(jìn)行預(yù)處理,將其轉(zhuǎn)化為可用的密度圖,如圖2 所示。
Fig.2 Density map圖2 密度圖
對(duì)于一張有N個(gè)人數(shù)標(biāo)記的圖片數(shù)據(jù)可以使用式(1)來(lái)表示:
式中,xi為人頭在圖像中的像素位置,δ(x-xi)表示圖像中人頭位置的沖激函數(shù)。將式(1)與高斯核濾波器進(jìn)行卷積得到密度方程,如式(2):
考慮到由尺度不同引起的人頭變形,本文使用由Zhang 等人提出的基于幾何自適應(yīng)核函數(shù)的方法來(lái)生成網(wǎng)絡(luò)訓(xùn)練時(shí)所用到的密度圖,如式(3)所示:
本文在訓(xùn)練網(wǎng)絡(luò)時(shí)使用計(jì)算所得的預(yù)測(cè)密度圖與真實(shí)密度圖間的歐幾里德距離(Euclidean distance)作為損失函數(shù),如式(4)所示:
其中,θ為待優(yōu)化網(wǎng)絡(luò)參數(shù),N為訓(xùn)練圖片數(shù)目,xi為輸入圖像,zi表示xi對(duì)應(yīng)密度圖的真實(shí)值,z(xi;θ)表示由網(wǎng)絡(luò)估計(jì)出的密度圖。
在圖像分割領(lǐng)域中完成一項(xiàng)任務(wù)需要由若干卷積層和池化層組成的卷積神經(jīng)網(wǎng)絡(luò)。圖像輸入到卷積層來(lái)提取圖像特征得到該層輸出特征圖,再通過池化層來(lái)對(duì)特征圖進(jìn)行感受野增大并減小圖像大小以便進(jìn)行下一步操作。分割任務(wù)是在像素級(jí)上完成預(yù)測(cè)的,因此后端網(wǎng)絡(luò)需要對(duì)池化后的特征圖進(jìn)行上采樣(upsampling),使得輸出圖像恢復(fù)到與輸入圖像相同大小。由于分割任務(wù)對(duì)圖像細(xì)節(jié)信息的需求度較大,而過多的池化操作會(huì)導(dǎo)致部分細(xì)節(jié)丟失。本文使用空洞卷積(atrous convolution)來(lái)解決這一問題??斩淳矸e操作如圖3 所示。圖3(a)為擴(kuò)張率為1的空洞卷積,當(dāng)擴(kuò)張率為1 時(shí)空洞卷積即為普通3×3卷積操作,其感受野為(a)中紅色部分。圖中(b)為擴(kuò)張率為2 的情況,即在(a)中每個(gè)卷積核之間進(jìn)行補(bǔ)零,擴(kuò)張后只有紅色部分與3×3 卷積核進(jìn)行卷積操作,其感受野擴(kuò)大為(b)中綠色框內(nèi)的部分,即感受野擴(kuò)大為7×7。
Fig.3 Atrous convolution圖3 空洞卷積
空洞卷積核實(shí)際大小如式(5)所示:
式中,k為原始卷積核大小,r為擴(kuò)張率。
空洞卷積感受野計(jì)算方式如式(6)所示:
式中,f為上一層感受野大小,s為卷積步長(zhǎng),ks為卷積核大小。
為了解決人群密度檢測(cè)任務(wù)中由于攝像機(jī)視角原因所引起的多尺度問題,本文設(shè)計(jì)了如圖4 所示的網(wǎng)絡(luò)結(jié)構(gòu)。
網(wǎng)絡(luò)第一部分使用了經(jīng)典網(wǎng)絡(luò)VGG16 的部分網(wǎng)絡(luò),由于VGG16 結(jié)構(gòu)中存在5 次最大池化操作,使輸出特征圖為輸入圖像大小的1/32,這對(duì)于生成密度圖來(lái)說(shuō)會(huì)丟失很多細(xì)節(jié)信息。因此,本文采用第3 次池化操作后的結(jié)果作為第一部分網(wǎng)絡(luò)的輸出,使得輸出密度圖為輸入圖像的1/8,以提高預(yù)測(cè)密度圖的準(zhǔn)確性。網(wǎng)絡(luò)第二部分使用了多陣列空洞卷積,由于空洞卷積是在普通卷積的基礎(chǔ)上對(duì)卷積核進(jìn)行間隔補(bǔ)零操作,因此可以在不增加網(wǎng)絡(luò)計(jì)算參數(shù)的情況下來(lái)擴(kuò)大感受野,以此來(lái)提高網(wǎng)絡(luò)對(duì)圖像多尺度信息的捕捉能力。人群數(shù)據(jù)是高密集度圖像數(shù)據(jù),因此空洞卷積特有的提高感受野的方式尤其適用于人群密度檢測(cè)工作。本文網(wǎng)絡(luò)使用兩陣列擴(kuò)張率不同的空洞卷積對(duì)第一部分的網(wǎng)絡(luò)輸出進(jìn)行處理,其擴(kuò)張率為2 和4,使得網(wǎng)絡(luò)能夠捕捉更多的尺度細(xì)節(jié)信息。網(wǎng)絡(luò)最后使用1×1 的卷積對(duì)輸出進(jìn)行級(jí)聯(lián),得到高質(zhì)量預(yù)測(cè)密度圖。
本文實(shí)驗(yàn)分別在ShanghaiTech、UCF_CC_50 兩個(gè)數(shù)據(jù)集上對(duì)網(wǎng)絡(luò)性能進(jìn)行測(cè)試。本文在pytorch環(huán)境下進(jìn)行訓(xùn)練,初始學(xué)習(xí)率為1×10-6,訓(xùn)練周期為400個(gè)epoch。
本文使用平均絕對(duì)誤差(mean absolute error,MAE)及均方誤差(mean squared error,MSE)來(lái)衡量網(wǎng)絡(luò)性能,計(jì)算方法如式(7)、式(8)所示:
其中,N為測(cè)試數(shù)據(jù)集中圖片的個(gè)數(shù);Ci為網(wǎng)絡(luò)預(yù)測(cè)的圖片數(shù)據(jù)中人頭個(gè)數(shù);為Ci對(duì)應(yīng)的真實(shí)人頭個(gè)數(shù)。
式(9)為人頭數(shù)計(jì)算方式,其中l(wèi)、w為所計(jì)算密度圖的長(zhǎng)、寬,即對(duì)該密度圖中所有像素點(diǎn)求和來(lái)得到人頭個(gè)數(shù)。
UCF_CC_50 數(shù)據(jù)集是第一個(gè)具有挑戰(zhàn)性的人群密度數(shù)據(jù)集,數(shù)據(jù)集中含有各種密度以及不同角度的場(chǎng)景,整個(gè)數(shù)據(jù)集每個(gè)圖像平均有1 280 人,整個(gè)數(shù)據(jù)集共標(biāo)記了63 075人。圖片內(nèi)人數(shù)從94到4 543不等,這樣差異巨大的數(shù)據(jù)集對(duì)模型性能也有很大的挑戰(zhàn)。因?yàn)閿?shù)據(jù)集中只有50張圖片,在訓(xùn)練前對(duì)每張圖片進(jìn)行部分截取,截取大小為原圖1/4共20張,再對(duì)截取出的圖片進(jìn)行翻轉(zhuǎn)操作來(lái)擴(kuò)大訓(xùn)練數(shù)據(jù)集。如表1所示,本文算法在UCF_CC_50 數(shù)據(jù)集上的表現(xiàn)與其余6 種算法相比兩項(xiàng)參數(shù)均達(dá)到最好,證明了算法的準(zhǔn)確性。
Table 1 Performance comparison on UCF_CC_50 dataset表1 UCF_CC_50 數(shù)據(jù)集上性能對(duì)比
ShanghaiTech 數(shù)據(jù)集為上??萍即髮W(xué)團(tuán)隊(duì)為解決人群密度檢測(cè)問題所建立的大規(guī)模人群數(shù)據(jù)集,該數(shù)據(jù)集共1 198 張圖片,其中標(biāo)記人數(shù)達(dá)到330 165。其中Part_A 部分包括300 張訓(xùn)練圖片以及182 張測(cè)試圖片,Part_B 部分包括400 張訓(xùn)練圖片以及316 張測(cè)試圖片。本文所提出的人群密度檢測(cè)算法與其他主流算法在該數(shù)據(jù)集上的測(cè)試結(jié)果如表2 所示。
Table 2 Performance comparison on ShanghaiTech dataset表2 ShanghaiTech 數(shù)據(jù)集上性能對(duì)比
由表2 可見,本文算法在ShanghaiTech Part_A 密集人群數(shù)據(jù)上的表現(xiàn)與表中7 種主流算法相比均達(dá)到最優(yōu),在Part_B 街景人群數(shù)據(jù)上表現(xiàn)依然突出,證明了本文算法的可靠性。
實(shí)驗(yàn)效果如圖5 所示。本文算法效果與MCNN對(duì)比如圖6 所示。
Fig.6 Compared with MCNN圖6 與MCNN 結(jié)果對(duì)比
由于空洞卷積會(huì)帶來(lái)柵格效應(yīng),即在卷積核中間插入0 后再進(jìn)行卷積操作時(shí)不是每一個(gè)像素都參與計(jì)算,會(huì)造成部分信息不連續(xù)的結(jié)果,對(duì)預(yù)測(cè)效果有一定的影響。因此,本文參考文獻(xiàn)[15-16],在原有的網(wǎng)絡(luò)基礎(chǔ)上進(jìn)行了空洞率調(diào)整,將其中一列空洞卷積的擴(kuò)張率調(diào)整為[1,2,5,1,2,5]鋸齒狀空洞卷積網(wǎng)絡(luò),并在ShanghaiTech Part_A 上對(duì)微調(diào)后的網(wǎng)絡(luò)進(jìn)行了訓(xùn)練以及測(cè)試,對(duì)比效果如表3 所示。
Table 3 Comparison on ShanghaiTech Part_A表3 ShanghaiTech Part_A 上效果對(duì)比
鋸齒狀空洞卷積在擴(kuò)張率大于1 的空洞卷積操作后插入一層擴(kuò)張率為1 的基礎(chǔ)卷積,可以對(duì)擴(kuò)大感受野后的卷積操作中每一個(gè)像素都進(jìn)行計(jì)算來(lái)保證信息的連續(xù)性。由表3 中數(shù)據(jù)可知,鋸齒狀空洞卷積結(jié)構(gòu)對(duì)解決柵格效應(yīng)有良好的效果并對(duì)網(wǎng)絡(luò)性能有了一定的提高。
本節(jié)對(duì)生成密度圖進(jìn)行圖像熵計(jì)算,結(jié)果如表4所示。本文算法所生成的密度圖相較于其他算法包含更多信息,質(zhì)量更好。
Table 4 Image entropy of ShanghaiTech Part_A表4 ShanghaiTech Part_A 圖像熵
為驗(yàn)證本文算法所引入雙陣列空洞卷積與對(duì)VGG 網(wǎng)絡(luò)進(jìn)行改進(jìn)工作的有效性以及對(duì)本文算法的性能影響,本文在ShanghaiTech Part_A 數(shù)據(jù)集上進(jìn)行了消融實(shí)驗(yàn),效果如表5 所示。
Table 5 Ablation experiment on ShanghaiTech Part_A表5 ShanghaiTech Part_A 上消融實(shí)驗(yàn)
由表5 數(shù)據(jù)可得,本文所使用的改進(jìn)后的VGG相較于使用原始VGG 對(duì)網(wǎng)絡(luò)性能提高了19.7%。由于原始VGG 需要經(jīng)過5 次池化操作使前端網(wǎng)絡(luò)的輸出為原圖的1/32,本文使用的改進(jìn)VGG 進(jìn)行了3 次池化操作使得輸出為原圖的1/8,可以保留更多的邊緣人群信息,有利于密度圖的精確生成。為測(cè)試空洞卷積對(duì)網(wǎng)絡(luò)性能的影響,本節(jié)對(duì)去掉空洞卷積模塊后的網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)并與原網(wǎng)絡(luò)進(jìn)行對(duì)比,如表5 數(shù)據(jù)所示去掉空洞卷積模塊后網(wǎng)絡(luò)性能下降了36.2%。使用不同擴(kuò)張率的網(wǎng)絡(luò)相較于單一擴(kuò)張率的網(wǎng)絡(luò)性能提高了10.3%。
網(wǎng)絡(luò)改進(jìn)前后輸出特征圖如圖7 所示。
本節(jié)對(duì)網(wǎng)絡(luò)改進(jìn)前后相同層相同通道的特征圖進(jìn)行提取,由圖7 可以看出改進(jìn)后的網(wǎng)絡(luò)可提取到更多的邊緣人頭特征,并且生成質(zhì)量更高的密度圖。
Fig.7 Feature visualization圖7 特征可視化
本文提出了一種應(yīng)對(duì)多尺度問題的基于兩陣列卷積神經(jīng)網(wǎng)絡(luò)的人群密度檢測(cè)算法,測(cè)試結(jié)果表明該算法在通用人群數(shù)據(jù)集上有著良好的準(zhǔn)確性。在未來(lái)的研究工作中,將從空洞卷積的空洞率的設(shè)計(jì)方向入手來(lái)解決空洞卷積的柵格效應(yīng),以及如何在網(wǎng)絡(luò)中引入注意力機(jī)制等方面來(lái)開展工作。