郭濠奇, 楊 杰, 康 莊
(江西理工大學(xué) 電氣工程與自動化學(xué)院,江西 贛州 341000)
現(xiàn)代交通發(fā)展日新月異,城市化進(jìn)程不斷加快,城市間的人口流動不斷增加,演唱會、學(xué)術(shù)大會等大型活動也越來越多,在這種人群密集的環(huán)境中,為保證人民群眾的生命安全,對這些場所進(jìn)行人群計(jì)數(shù)是十分必要的。針對人群計(jì)數(shù),國內(nèi)外學(xué)者進(jìn)行了大量的研究,計(jì)數(shù)方法主要分為三種,分別為基于目標(biāo)檢測的方法、基于回歸的方法、基于密度圖的方法?;诿芏葓D的計(jì)數(shù)方法是目前主流的計(jì)數(shù)方法[1~4]。郭俊等人[5]提出了一種基于機(jī)器視覺跟蹤的計(jì)數(shù)算法。Zhang Y Y等人[6]提出了基于多列卷積神經(jīng)網(wǎng)絡(luò)的人群計(jì)數(shù)算法。Li Y H等人[7]提出了基于膨脹卷積神經(jīng)網(wǎng)絡(luò)的CSRNet算法。孟月波等人[8]提出了一種編碼—解碼結(jié)構(gòu)的多尺度卷積神經(jīng)網(wǎng)絡(luò)。
針對現(xiàn)今計(jì)數(shù)算法存在的訓(xùn)練時(shí)間長、收斂慢的問題,本文提出了一種基于改進(jìn)CSRNet的人群計(jì)數(shù)算法。對CSRNet[9]的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),使用普通卷積網(wǎng)絡(luò)替換膨脹卷積網(wǎng)絡(luò),同時(shí)增加密集連接結(jié)構(gòu),改進(jìn)后的網(wǎng)絡(luò)分別在ShanghaiTech數(shù)據(jù)集[6]和UCF_CC_50數(shù)據(jù)集[10]上進(jìn)行實(shí)驗(yàn)驗(yàn)證。
基于密度圖的人群計(jì)數(shù)算法,在網(wǎng)絡(luò)訓(xùn)練時(shí),輸入為樣本圖片和對應(yīng)的真實(shí)密度圖。因此,在進(jìn)行訓(xùn)練前,需要根據(jù)樣本圖片的標(biāo)簽生成樣本圖片的真實(shí)密度圖。生成真實(shí)密度圖時(shí),讀取樣本圖片標(biāo)簽中的人頭位置信息,將該位置標(biāo)記為1,沒有人頭標(biāo)注的位置則為0,生成和圖像尺寸相同的矩陣,將該矩陣與高斯核函數(shù)進(jìn)行卷積操作,即可得到用于訓(xùn)練的連續(xù)的真實(shí)密度圖。設(shè)圖像對應(yīng)標(biāo)簽中的一個(gè)人頭標(biāo)注點(diǎn)為xi,用δ方程表示為δ(x-xi),則擁有N個(gè)人頭標(biāo)注點(diǎn)的圖片可用方程(1)表示
(1)
將H(x)與高斯核函數(shù)Gσ(x)進(jìn)行卷積得到連續(xù)的密度方程,用方程(2)表示
F(x)=H(x)*Gσ(x)
(2)
(3)
CSRNet算法采用單列卷積網(wǎng)絡(luò),分為前端網(wǎng)絡(luò)和后端網(wǎng)絡(luò)兩部分。前端網(wǎng)絡(luò)采用VGG16的前10個(gè)卷積層,后端網(wǎng)絡(luò)采用6層膨脹卷積[7]。在深度學(xué)習(xí)中,隨著網(wǎng)絡(luò)的加深,在不改變卷積核大小的情況下,一般采用減小圖片尺寸來擴(kuò)大卷積核的感受野。但圖片尺寸減小的同時(shí),圖片的空間特征信息也將有損失。CSRNet算法通過在后端網(wǎng)絡(luò)采用膨脹卷積,在不改變圖像尺寸的情況下,擴(kuò)大卷積核的感受野。針對后端網(wǎng)絡(luò),CSRNet給出了4種不同膨脹率的結(jié)構(gòu)設(shè)置,但在驗(yàn)證膨脹卷積效果時(shí),僅在ShanghaiTech的A數(shù)據(jù)集上對4種結(jié)構(gòu)進(jìn)行了對比,得出后端卷積網(wǎng)絡(luò)膨脹率為2時(shí)效果最好。本文針對CSRNet選出的膨脹率為2的網(wǎng)絡(luò)結(jié)構(gòu),將膨脹率改為1(膨脹率為1的卷積即普通卷積),在ShanghaiTech A,B數(shù)據(jù)集上分別進(jìn)行實(shí)驗(yàn),從平均絕對誤差(MAE)、均方誤差(MSE)和樣本的平均訓(xùn)練時(shí)間(time per sample,TPS)三個(gè)指標(biāo)進(jìn)行對比,對比結(jié)果見表1,其中,drate代表膨脹率。
表1 膨脹卷積結(jié)構(gòu)與普通卷積結(jié)構(gòu)實(shí)驗(yàn)對比
由表1可知,空洞卷積結(jié)構(gòu)的使用僅使ShanghaiTech A數(shù)據(jù)集的MAE略有提升,但樣本的平均訓(xùn)練時(shí)間相比采用普通卷積結(jié)構(gòu)的網(wǎng)絡(luò)卻提高了7倍多。因此,本文在網(wǎng)絡(luò)設(shè)計(jì)中摒棄了CSRNet后端網(wǎng)絡(luò)的空洞卷積,采用普通單列卷積結(jié)構(gòu)進(jìn)行網(wǎng)絡(luò)的設(shè)計(jì)。
本文提出的基于改進(jìn)CSRNet的人群計(jì)數(shù)算法屬于端到端的計(jì)數(shù)算法,網(wǎng)絡(luò)結(jié)構(gòu)采用單列卷積網(wǎng)絡(luò)。為增強(qiáng)網(wǎng)絡(luò)的特征提取能力,前端網(wǎng)絡(luò)采用VGG19的前12層卷積網(wǎng)絡(luò),后端網(wǎng)絡(luò)中,將膨脹卷積網(wǎng)絡(luò)替換為普通卷積網(wǎng)絡(luò),并增加密集連接結(jié)構(gòu),對卷積層的輸出特征進(jìn)行重利用,增加網(wǎng)絡(luò)的收斂速度,改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,卷積層命名方式為Conv-k-in_channel-out_channel,k表示卷積核的大小,in_channel表示輸入的通道數(shù),out_channel表示輸出的通道數(shù)。
圖1 本文網(wǎng)絡(luò)結(jié)構(gòu)
在后端網(wǎng)絡(luò)中增加的密集連接屬于跳連結(jié)構(gòu),結(jié)構(gòu)中每個(gè)卷積層與之后的卷積層都有連接,如圖2所示。假設(shè)有s層卷積,那么結(jié)構(gòu)中的連接總數(shù)為[s(s+1)]/2,第i層卷積的輸出特征圖用fi表示,f0表示輸入,經(jīng)過密集連接之后,第s層卷積會接收到前面(s-1)層的特征圖和輸入特征圖,則第s層的輸入可用Hs([f0,f1,f2,…,fs-1])表示,其中,[f0,f1,f2,…,fs-1]表示輸入特征圖和前(s-1)層的輸出特征圖在通道維度上疊加的結(jié)果,Hs包括卷積層和激活函數(shù)層,作用是對特征圖進(jìn)行降維,減小模型計(jì)算量。加入了密集連接的神經(jīng)網(wǎng)絡(luò),增加了卷積層之間信息和梯度的傳遞,減輕了神經(jīng)網(wǎng)路容易出現(xiàn)的梯度消失問題。
圖2 密集連接結(jié)構(gòu)
本文的實(shí)驗(yàn)平臺配置:電腦配置為i5—6500 CPU,8GB RAM,64位Windows7操作系統(tǒng),服務(wù)器配置為Tesla-P100,本文算法采用的深度學(xué)習(xí)框架是Pytorch框架。
在訓(xùn)練過程中,每次訓(xùn)練抽取的樣本數(shù)為1,采用RMSProp優(yōu)化器進(jìn)行網(wǎng)絡(luò)權(quán)重的訓(xùn)練,其中,優(yōu)化器的權(quán)重衰減設(shè)置為5×10-4,動量(momentum)設(shè)置為0.95,學(xué)習(xí)率的設(shè)置如圖3所示。
圖3 學(xué)習(xí)率設(shè)置
選擇歐氏距離作為網(wǎng)絡(luò)訓(xùn)練的損失函數(shù),用來衡量算法生成的密度圖與真實(shí)密度圖之間的差異,公式如下
(4)
選取MAE和MSE作為模型的評價(jià)指標(biāo),其中,MAE為真實(shí)人數(shù)和模型計(jì)數(shù)結(jié)果的平均絕對誤差,MSE為真實(shí)人數(shù)和模型計(jì)數(shù)結(jié)果的均方誤差,公式如下
(5)
(6)
1)ShanghaiTech數(shù)據(jù)集
ShanghaiTech數(shù)據(jù)集[6]包含A和B兩個(gè)數(shù)據(jù)集,一共1 198張圖片樣本,330 165個(gè)人頭標(biāo)記。A數(shù)據(jù)集為密集人群數(shù)據(jù)集,包含482張圖片樣本,其中300張用于訓(xùn)練,182張用于測試。B數(shù)據(jù)集為稀疏人群數(shù)據(jù)集,共包含716張圖片樣本,其中400張用于訓(xùn)練,316張用于測試。在ShanghaiTech數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表2所示,圖4是ShanghaiTech A數(shù)據(jù)集上的樣本圖片、對應(yīng)的真實(shí)密度圖和本文算法生成的密度圖,圖5是ShanghaiTech B數(shù)據(jù)集上的樣本圖片、對應(yīng)的真實(shí)密度圖和本文算法生成的密度圖。
表2 ShanghaiTech數(shù)據(jù)集上的結(jié)果對比
圖4 ShanghaiTech A數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
圖5 ShanghaiTech B數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
2)UCF_CC_50數(shù)據(jù)集
UCF_CC_50數(shù)據(jù)集由Idress H等人[10]提出,包含50張來自互聯(lián)網(wǎng)的圖片樣本,是一個(gè)非常具有挑戰(zhàn)性的數(shù)據(jù)集。UCF_CC_50數(shù)據(jù)集不僅圖片樣本數(shù)量十分有限,而且圖片中人數(shù)最少的為94,最多的為4 543,人數(shù)波動十分劇烈。其中,50張圖片的平均人頭標(biāo)點(diǎn)數(shù)量約為1 280個(gè),人頭標(biāo)點(diǎn)總數(shù)為63 974個(gè)。在訓(xùn)練UCF_CC_50數(shù)據(jù)集時(shí),采用Idress H使用的五折交叉驗(yàn)證法進(jìn)行模型的訓(xùn)練和驗(yàn)證。在UCF_CC_50數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表3所示,圖6為UCF_CC_50數(shù)據(jù)集的樣本圖片、對應(yīng)的真實(shí)密度圖和本文算法生成的密度圖。
表3 UCF_CC_50數(shù)據(jù)集上的結(jié)果對比
圖6 UCF_CC_50數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
經(jīng)實(shí)驗(yàn)驗(yàn)證,本文提出的基于改進(jìn)CSRNet的人群計(jì)數(shù)算法在兩個(gè)公共數(shù)據(jù)集上均表現(xiàn)良好,實(shí)現(xiàn)了精度上的提升。同時(shí),由于未采用膨脹卷積,相比CSRNet算法,本文的算法在樣本的平均訓(xùn)練時(shí)間上也有下降。
針對CSRNet后端網(wǎng)絡(luò),本文進(jìn)行了膨脹卷積結(jié)構(gòu)與普通卷積結(jié)構(gòu)的對比實(shí)驗(yàn),發(fā)現(xiàn)膨脹卷積相比普通卷積雖然特征提取能力稍強(qiáng),但訓(xùn)練更耗時(shí)。在本文算法中,采用普通卷積網(wǎng)絡(luò)結(jié)構(gòu)縮短訓(xùn)練模型所需的時(shí)間;采用更深的網(wǎng)絡(luò)增強(qiáng)網(wǎng)絡(luò)的特征提取能力;在網(wǎng)絡(luò)中增加密集連接結(jié)構(gòu),加強(qiáng)網(wǎng)絡(luò)中特征和梯度信息的傳遞。實(shí)驗(yàn)驗(yàn)證,本文的算法具有較高的精度和較快的訓(xùn)練速度,在安全預(yù)警、區(qū)域人群計(jì)數(shù)等方面具有廣闊的應(yīng)用前景。