袁 燁,吳震宇,江先志
(浙江理工大學(xué) 機(jī)械與自動控制學(xué)院,浙江 杭州 310018)
基于卷積神經(jīng)網(wǎng)絡(luò)的人群計數(shù)研究
袁 燁,吳震宇,江先志
(浙江理工大學(xué) 機(jī)械與自動控制學(xué)院,浙江 杭州 310018)
針對卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練效率不高的問題,在人群計數(shù)方面提出了一種分塊多列卷積神經(jīng)網(wǎng)絡(luò)構(gòu)架,即將整幅圖像分割成大小相等的3部分后分別進(jìn)行訓(xùn)練.這樣大大降低了單個模型數(shù)據(jù)的輸入維度,訓(xùn)練效率有了很大的提升.針對數(shù)據(jù)準(zhǔn)備階段密度圖不易生成的問題,提出了一種簡化且有效的密度圖生成方法.在公開數(shù)據(jù)集mall_dataset上對所提出的方法進(jìn)行了驗(yàn)證,并與現(xiàn)在表現(xiàn)優(yōu)秀的多列卷積神經(jīng)網(wǎng)絡(luò)(MCNN)方法做了對比.實(shí)驗(yàn)結(jié)果表明,本方法在保持計數(shù)準(zhǔn)確率的基礎(chǔ)上提高了模型的訓(xùn)練效率.
人群計數(shù);卷積神經(jīng)網(wǎng)絡(luò);密度圖
據(jù)統(tǒng)計,2000~2006年國內(nèi)外大型活動中曾發(fā)生85起擁擠踩踏事故,造成4 026人死亡,7 513人受傷, 平均每起擁擠踩踏事故死亡48人,受傷89人,已達(dá)到了我國規(guī)定的特別重大傷亡事故級別[1].此外,在各大城市中,隨著居住人口密度的增長,人群大量聚集的頻率越來越高.因此,人群密度信息研究刻不容緩,對城市管理意義重大.比如,對于城市公交系統(tǒng),通過及時獲得乘客在空間上、時間上的分布情況來靈活調(diào)整車輛運(yùn)行時間表;對于大型商場,通過顧客的流量信息來制定高效率的營銷策略,等等.與此同時,隨著視頻監(jiān)控行業(yè)的高速發(fā)展,如何準(zhǔn)確高效地估計監(jiān)控視頻中的行人數(shù)目也引起了研究者的高度關(guān)注.
傳統(tǒng)人群計數(shù)算法的主要原理可以概括為,基于某種或幾種設(shè)計好的特征對人群數(shù)量或人群密度等級進(jìn)行回歸[2].Rabaud V等通過運(yùn)動物體的檢測來估計視頻中的人數(shù),這種方法的局限性在于無法有效檢測靜止的行人[3];Idrees H等通過基于HOG的頭部檢測、傅里葉分析、角點(diǎn)檢測等多元特征,結(jié)合多尺度馬爾科夫隨機(jī)場來估計圖像中的人數(shù),這種方法優(yōu)于單一特征的人群計數(shù)方法,但是手工提取的特征很難克服光照變化、圖像的透視變換、人群遮擋等難題[4].
隨著近兩年來深度學(xué)習(xí)技術(shù)的飛速發(fā)展,一些研究者采用深度學(xué)習(xí)的方法進(jìn)行人群計數(shù)和人群密度的估計.其中最具代表性的是,Zhang C等利用卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Networks,CNN)自動提取圖像中人群密度特征來估算不同場景的人數(shù)[5].其具體方法是用圖像和標(biāo)注好的密度圖作為輸入數(shù)據(jù),借助深度學(xué)習(xí)框架進(jìn)行監(jiān)督學(xué)習(xí).其中,對于密度圖的制作,研究者分別采用二維高斯分布和二元正態(tài)分布來標(biāo)注近似人的頭部區(qū)域和身體部分,并通過歸一化,使密度圖的積分和等于標(biāo)注的總?cè)藬?shù).這樣的標(biāo)注方法較好地表現(xiàn)了人體的形狀,但是卻稍顯復(fù)雜.為了解決圖像的透視畸變,Zhang C等在模型訓(xùn)練時引入了針對不同場景的透視矯正矩陣,但事實(shí)上,不同場景下透視矯正矩陣的獲得并不是一件簡單的事情.Zhang Y等[6]在文獻(xiàn)[7]的啟發(fā)下,采用多列卷積神經(jīng)網(wǎng)絡(luò)(MCNN)來學(xué)習(xí)圖像中的人群特征,取得了較好的效果;同時提出了一種基于幾何自適應(yīng)高斯內(nèi)核的密度圖生成方法,可在不用透視矯正矩陣的情況下較為準(zhǔn)確地生成密度圖.這種幾何自適應(yīng)方法通過計算圖像中不同人頭之間的距離,根據(jù)一個人頭與周圍人頭之間的平均距離,自適應(yīng)地調(diào)整密度圖生成時所用歸一化高斯分布內(nèi)核的大小,對于與周轉(zhuǎn)人頭之間平均距離較小的人頭采用較小的高斯分布內(nèi)核,而對于平均距離較大的人頭采用較大的高斯分布內(nèi)核.這種方法也稍顯復(fù)雜且不適用于稀疏人群,同時數(shù)據(jù)集在做人頭標(biāo)注時,標(biāo)注位置隨意性較大.因此,這種生成密度圖的方法也非盡善盡美.
本文受分治算法思想的啟發(fā),對以上基于卷積神經(jīng)網(wǎng)絡(luò)的人群計數(shù)方法擬進(jìn)行兩點(diǎn)改進(jìn).
第一、針對卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練效率不高的問題,在人群計數(shù)方面提出了一種分塊多列卷積神經(jīng)網(wǎng)絡(luò)構(gòu)架,將整幅圖像分割成大小相等的3部分,分別用這3部分來訓(xùn)練3個模型.對人群圖像進(jìn)行計數(shù)時,首先將人群圖像分割為3部分,然后分別將這3部分輸入對應(yīng)的3個網(wǎng)絡(luò)中,最后對其輸出結(jié)果進(jìn)行加和,即可得到整幅圖像的人數(shù).這樣大大降低了單個模型數(shù)據(jù)的輸入維度,訓(xùn)練效率有了很大的提高.
第二、針對數(shù)據(jù)準(zhǔn)備階段密度圖不易生成的問題,分別對各部分采用不同大小的二維歸一化高斯分布內(nèi)核來生成密度圖,較好地克服了透視畸變的影響,簡化了密度圖的生成方法.
近年來深度學(xué)習(xí)技術(shù)掀起了人工智能的浪潮,在圖像分類和識別領(lǐng)域,深度卷積神經(jīng)網(wǎng)絡(luò)更是取得了一系列重大的突破.就人群計數(shù)和密度檢測而言,卷積神經(jīng)網(wǎng)絡(luò)通過一系列的卷積運(yùn)算自動學(xué)習(xí)圖像中的人群高層語義特征,并通過反向誤差傳播不斷修正特征參數(shù). 它實(shí)現(xiàn)了端到端的訓(xùn)練與檢測,無需前景分割、人工設(shè)計和特征提取等繁瑣步驟.
2.1 分塊多列卷積神經(jīng)網(wǎng)絡(luò)
通常情況下由于相機(jī)拍攝角度的原因,人群圖像往往會發(fā)生不同程度的透視畸變.其總體表現(xiàn)為,距離相機(jī)較近的行人在圖像中占據(jù)的面積較大,遠(yuǎn)離相機(jī)的行人在圖像中占據(jù)的面積較小.本文將一張圖片從上至下分割為大小相同的3部分,分別訓(xùn)練3個模型,然后用這3個模型去預(yù)測一張圖像中
對應(yīng)的部分,最后將3部分的預(yù)測結(jié)果簡單加和,得到最終的預(yù)測結(jié)果.本方法借鑒了文獻(xiàn)[6]中做法,在這3部分圖像上使用了大致相同的網(wǎng)絡(luò)結(jié)構(gòu),這3個網(wǎng)絡(luò)結(jié)構(gòu)除了卷積核大小不等之外,其他均相同.為了更好地捕捉不同尺度的人群密度特征,對人頭較小(遠(yuǎn)離相機(jī))的部分采用較小感受野的卷積核,對于人頭較大(靠近相機(jī))的部分采用較大感受野的卷積核.該網(wǎng)絡(luò)與文獻(xiàn)[6]中網(wǎng)絡(luò)的區(qū)別在于,文獻(xiàn)[6]中網(wǎng)絡(luò)為了提取一張圖片中不同大小的人頭特征,3個網(wǎng)絡(luò)都作用于整幅圖像,而本文將圖像三等分后,每一部分的人頭大小近似相等,這樣可以更有針對性地將單列網(wǎng)絡(luò)作用于某一部分圖像.分塊多列卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.其中池化層采用2×2最大池化,激活函數(shù)采用性能優(yōu)異且被廣泛使用的修正線性單元(Relu)[8].為了將卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的特征圖映射到密度圖中,本文參考文獻(xiàn)[9]中做法,用1×1的卷積核來處理最后一層輸出的特征圖,對密度圖簡單積分,以獲得估計的人數(shù).本方法的損失函數(shù)采用歐式距離進(jìn)行定義,其具體形式為:
(1)
式中:θ為一組從卷積神經(jīng)網(wǎng)絡(luò)中學(xué)到的參數(shù);N為訓(xùn)練圖像的數(shù)量;Xi為輸入CNN的圖像;F(Xi;θ)為通過CNN預(yù)測得到的密度圖;Fi為真實(shí)標(biāo)注的密度圖;L(θ)為預(yù)測密度圖和真實(shí)標(biāo)注的密度圖之間的損失值.
2.2 密度圖的制作
卷積神經(jīng)網(wǎng)絡(luò)通過訓(xùn)練來學(xué)習(xí)特征的過程屬于典型的監(jiān)督學(xué)習(xí).其訓(xùn)練數(shù)據(jù)的質(zhì)量,尤其是密度圖的質(zhì)量對最終模型性能的影響至關(guān)重要.如何簡單且有效地將標(biāo)注過的人群圖像轉(zhuǎn)化為密度圖值得研究.人群圖像的標(biāo)注示例如圖2所示.
具有N個人頭標(biāo)記的圖像可以表示為如下函數(shù):
(2)
式中:δ(x-xi)為delta函數(shù);xi表示一個人頭標(biāo)注點(diǎn)所在的位置.簡化起見,可對此函數(shù)和歸一化高斯核函數(shù)Gσ(x)進(jìn)行卷積運(yùn)算,從而將標(biāo)注過的圖像轉(zhuǎn)化為連續(xù)的密度圖.其數(shù)學(xué)表達(dá)式[6]如下:
F(x)=H(x)·Gσ(x)
(3)
圖1 分塊多列卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖2 圖像的標(biāo)注示例
事實(shí)上受透視畸變的影響,圖像中不同位置的人頭對應(yīng)的歸一化高斯核函數(shù)Gσ(x)的大小有所不同,而通常情況下一張圖像的透視矯正矩陣又不容易獲得.研究發(fā)現(xiàn),一張圖像的透視畸變中隱含著近似的線性畸變關(guān)系.因此,本文將一張圖像從上至下大小均等地分成3部分,相應(yīng)的人群圖像中的標(biāo)注點(diǎn)也被分為了3部分,分別對每一部分采用一個適當(dāng)大小的歸一化高斯核函數(shù)處理,就可在不用圖像畸變矯正矩陣的情況下近似地生成人群圖像的密度圖.研究發(fā)現(xiàn),在公開的數(shù)據(jù)集mall_dataset[10]上,對分割后得到的上、中、下3部分圖像依次使用大小為hsize=8,hsize=10,hsize=11,標(biāo)準(zhǔn)差為σ=hsize/2.5的歸一化高斯核函數(shù)處理,可以得到較好的密度圖(圖3).顯然,采用本方法生成的密度圖效果(圖3c)與采用透視矯正矩陣生成的密度圖效果(圖3a)幾乎相同.
圖3 生成密度圖效果
3.1 實(shí)驗(yàn)環(huán)境
本文在公開數(shù)據(jù)集mall_dataset上對所提出的方法進(jìn)行了驗(yàn)證.該數(shù)據(jù)集由某商場的網(wǎng)絡(luò)攝像頭收集,包含2 000幀視頻圖像和大約60 000人的行人標(biāo)注,給出了視頻幀的透視矯正矩陣,為實(shí)驗(yàn)提供了很多便利.為了盡可能簡便地驗(yàn)證本方法的有效性,從mall_dataset數(shù)據(jù)集中取前1 600幀作為訓(xùn)練集,后400幀作為驗(yàn)證集,使用caffe[11]深度學(xué)習(xí)框架及GTX1070 GPUs顯卡對模型進(jìn)行訓(xùn)練.
3.2 訓(xùn)練效率
由于卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的模型參數(shù)非常多,深度學(xué)習(xí)技術(shù)本身又要基于大量數(shù)據(jù)才能達(dá)到不錯的效果,因此訓(xùn)練好一個卷積神經(jīng)網(wǎng)絡(luò)模型本身就非易事.稍大一點(diǎn)的模型通常需要多塊GPUs,經(jīng)過數(shù)小時甚至數(shù)天的反復(fù)迭代才能得到不錯的效果.本方法將一張圖像等分為3份(從上至下依次標(biāo)記為part1,part2,part3),降低了每一列網(wǎng)絡(luò)輸入數(shù)據(jù)的維度,使模型的訓(xùn)練速度大大提升.這里對MCNN和本文提出的分塊多列卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行10萬次迭代訓(xùn)練,記錄前1萬次的訓(xùn)練用時.其結(jié)果如表1所示.
表1 訓(xùn)練性能對比 s
由表1可見,與文獻(xiàn)[6]中表現(xiàn)優(yōu)秀的3列網(wǎng)絡(luò)組合訓(xùn)練相比,本文將圖像拆分,每列網(wǎng)絡(luò)僅訓(xùn)練圖像中的一部分,在訓(xùn)練效率上提升了約2.59倍.同時,本方法與表現(xiàn)優(yōu)秀的3列網(wǎng)絡(luò)結(jié)構(gòu)相比,在測試性能上并沒有明顯的下降.
3.3 實(shí)驗(yàn)結(jié)果
本文采用人群計數(shù)方面普遍使用的平均絕對誤差(MAE)和均方誤差(MSE)[5-6],對預(yù)測的結(jié)果進(jìn)行評價.其中平均絕對誤差反映了預(yù)測的準(zhǔn)確性,均方誤差反應(yīng)了預(yù)測的魯棒性.二者的詳細(xì)定義如下:
(4)
(5)
本文除了對所提出方法進(jìn)行驗(yàn)證之外,還分別用這3列網(wǎng)絡(luò)單獨(dú)學(xué)習(xí)圖像中的人群特征,同時借鑒文獻(xiàn)[6]的做法,將3列網(wǎng)絡(luò)組合起來使用.為保證測試的準(zhǔn)確性,本文對每種方法各取3組測試數(shù)據(jù),每組數(shù)據(jù)從驗(yàn)證集中隨機(jī)取20張圖像,最后將測得的3組數(shù)據(jù)取平均值(圖4).
注:c1,c2,c3分別對應(yīng)于圖1中從上到下3列網(wǎng)絡(luò)單獨(dú)訓(xùn)練時的檢測結(jié)果;3column為借鑒目前表現(xiàn)優(yōu)秀的網(wǎng)絡(luò)模型[6]構(gòu)建網(wǎng)絡(luò)的檢測結(jié)果;proposed為本方法的檢測結(jié)果.圖4 平均絕對誤差與均方誤差結(jié)果評價
從圖4可以看出,本方法與文獻(xiàn)[6]中表現(xiàn)優(yōu)秀的3列網(wǎng)絡(luò)模型達(dá)到了同樣的效果,本方法有效.但是,在準(zhǔn)確率方面,本方法的結(jié)果并沒有達(dá)到同等人群規(guī)模下文獻(xiàn)[6]的水平.其原因主要在于,深度學(xué)習(xí)技術(shù)本身需要大量的數(shù)據(jù)支撐,本文旨在驗(yàn)證所提出的分塊多列卷積神經(jīng)網(wǎng)絡(luò)構(gòu)架在人群計數(shù)方面的有效性,實(shí)驗(yàn)過程中為了盡可能簡化,并沒有對數(shù)據(jù)進(jìn)行過多的增強(qiáng)處理.文獻(xiàn)[6]中公開的數(shù)據(jù)模型進(jìn)行了數(shù)百萬次的迭代,而本文受計算機(jī)性能的限制僅進(jìn)行了10萬次迭代.
本方法的預(yù)測效果如圖5所示.
本文在人群計數(shù)和密度檢測方面提出了一種分塊多列卷積神經(jīng)網(wǎng)絡(luò)構(gòu)架.將人群圖像分割成3部分進(jìn)行訓(xùn)練,得到3個模型,然后用這3個模型分別對圖像的3個部分進(jìn)行預(yù)測,最后將預(yù)測結(jié)果簡單加和,得到最終的預(yù)測結(jié)果.本文在公開數(shù)據(jù)集mall_dataset上對所提出的方法進(jìn)行了驗(yàn)證.實(shí)驗(yàn)結(jié)果表明,所提出的簡化密度圖生成方法,在不用透視矯正矩陣的情況下即可由標(biāo)注圖像生成效果較好的密度圖,提出的分塊多列卷積神經(jīng)網(wǎng)絡(luò)構(gòu)架極大地提高了訓(xùn)練效率,同時在同等條件下達(dá)到了與當(dāng)前表現(xiàn)優(yōu)秀的MCNN方法同樣的效果.
[1] 王起全,王 敏.大型活動擁擠踩踏事故人群疏散研究分析[J]. 三峽大學(xué)學(xué)報(人文社會科學(xué)版), 2008,30(s2):34-37.
[2] 沈 娜. 智能視頻監(jiān)控系統(tǒng)中人群密度估計與實(shí)現(xiàn)[D]. 南京:南京航空航天大學(xué), 2012.
[3] Rabaud V,Belongie S.Counting crowded moving objects[C]// IEEE Computer Society Conference on Computer Vision and Pattern Recognition.New York:IEEE Computer Society,2006:705-711.
[4] Idrees H,Saleemi I, Seibert C, et al. Multi-source multi-scale counting in extremely dense crowd images[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Porland,OR:IEEE Computer Society,2013:2547-2554.
[5] Zhang C, Li H, Wang X, et al. Cross-scene crowd counting via deep convolutional neural networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Boston,MA:IEEE Computer Society,2015: 833-841.
[6] Zhang Y, Zhou D, Chen S, et al. Single-image crowd counting via multi-column convolutional neural network[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas,NV:IEEE Computer Society,2016: 589-597.
[7] Ciregan D, Meier U, Schmidhuber J. Multi-column deep neural networks for image classification[J].IEEE Conference on Compater Vision & Pattem Recogoition,2012, 157(10):3642-3649.
[8] Zeiler M D, Ranzato M, Monga R, et al. On rectified linear units for speech processing[C]//IEEE International Conference on Acoustics, Speech and Signal Processing.Vancouver,BC:IEEE, 2013:3517-3521.
[9] Sheelhamer E, Long J,Darrell T. Fully convolutional networks for semantic segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Boston, MA:IEEE,2015: 3431-3440.
[10] Chen K,Gong S, Xiang T, et al. Cumulative attribute space for age and crowd density estimation[C]//Computer Vision and Pattern Recognition.Portland,OR:IEEE Computer Society, 2013:2467-2474.
[11] Jia Y,Shelhamer E,Donahue J, et al. Caffe:Convolutional architecture for fast feature embedding[C]//ACM International Conference on Multimedia.Orlando,Florida:ACM,2014:675-678.
Research on Crowd Counting via Deep Convolution Neural Networks
YUAN Ye,WU Zhen-yu, JIANG Xian-zhi
(Scholl of Mechanical Engineering & Automation Zhejiang Sci-Tech University, Hangzhou 310018,China)
In recent years, the convolution neural networks(CNN) has made a good progress in the crowd counting. Aiming at the training of the convolution neural network model is not efficient, inspired by the idea of divide-and-conquer, this paper proposes a deep learning framework for estimating crowd counting. That is, the entire image for training is divided into 3 equal-sized portions, which greatly reduces the dimensions of the input data for one model, so the training efficiency has been greatly improved. this paper also proposes a simplified and effective method for generating density maps for the problem that the density map of the crowd is not easy to be generated. At last, the proposed method is verified on the public data set mall_dataset and compared with the presently well performed method, Experiments show that our method can improve the training efficiency as well as get a good enough result.
crowd counting; convolutional neural networks; density map
2017-05-09
袁 燁(1991-),男,河南洛陽人,碩士研究生,研究方向?yàn)橛嬎銠C(jī)視覺.
1006-3269(2017)02-0049-05
TH
A
10.3969/j.issn.1006-3269.2017.02.011