郭瑞琴, 陳雄杰, 駱 煒, 符長虹
(1.同濟大學(xué) 機械與能源工程學(xué)院, 上海 201804; 2.斯圖加特大學(xué) 工程與計算力學(xué)研究所, 斯圖加特 70569)
隨著科學(xué)技術(shù)的快速發(fā)展,交通工具更加便利,城市化進程不斷加快,城市流動人口的數(shù)量快速增長,城市繁華街道越來越擁擠,各種大型展覽會的參展人員也越來越多.為了保證城市交通通暢,合理控制人群密集場合的人員數(shù)量,保證人民群眾生命安全,有必要對行人行為和分布規(guī)律進行研究[1-11].人群計數(shù)技術(shù)作為該領(lǐng)域的重要組成部分之一,近年來受到眾多國內(nèi)外研究機構(gòu)的關(guān)注[1-7].人群計數(shù)主要有以下難點:第一,在一張圖片中,行人的尺度變化;第二,不同場景下的行人分布變化;第三,相同場景下不同時間的行人分布變化.由于不同場景圖片中行人數(shù)量和大小差別較大,因此要求計數(shù)方法對不同環(huán)境場景中行人尺寸的多樣性具有很強的魯棒性.為解決這個難題,學(xué)者們提出了各種不同的人群計數(shù)方法來保證神經(jīng)網(wǎng)絡(luò)適應(yīng)這種尺度的變化[1-6].
在早期的人群計數(shù)研究中,大多數(shù)計數(shù)方法是以目標檢測為基礎(chǔ),其檢測方法主要分為兩類:一類是基于人工設(shè)計特征的目標檢測[11];另一類是基于深度神經(jīng)網(wǎng)絡(luò)提取特征的目標檢測[12-13].目標檢測方法首先通過訓(xùn)練得到能夠定位目標的檢測器,然后使用該目標檢測器在圖片中找到指定目標,并將檢測得到的目標數(shù)量作為最后的計數(shù)結(jié)果.該方法能夠比較有效地檢測出目標,并對單個目標精確定位,但是對于有行人相互遮擋和尺度變化比較大,且人群密度較高的場景圖片,其識別準確率較低.
為了解決目標檢測方法存在的問題,Chan等[14]提出了基于回歸的計數(shù)方法,該方法直接給出人群的目標數(shù)量,不需要對每個目標進行檢測.雖然基于回歸的方法相對于基于目標檢測的方法準確率有所提升,但此種方法沒有考慮人群的空間分布,無法理解深層的場景信息,從而影響整體計數(shù)結(jié)果的準確性.為了將圖片中人群的空間位置信息加以利用以提高人群計數(shù)的準確率,Ooro-Rubio等[15]提出了基于密度圖的計數(shù)方法.該方法通過對人群密度圖的像素分析,并對密度圖按像素求和,將求和得到的數(shù)字作為計數(shù)的結(jié)果.其中,多列結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)是具有代表性的密度計數(shù)方法,該方法的基本思想是在不同的列中使用不同大小的卷積,使得每一列網(wǎng)絡(luò)具有不同大小的感知野,通過提取每列網(wǎng)絡(luò)的特征,并將這些特征進行融合,解決人群計數(shù)中的行人尺度變化問題[1-2].該方法的不足之處在于,當多列結(jié)構(gòu)訓(xùn)練參數(shù)較多時,訓(xùn)練網(wǎng)絡(luò)變得困難.其次,每一列的網(wǎng)絡(luò)都表現(xiàn)出相似的人群密度變化特性,使得各列之間的差異并不顯著,這與設(shè)計多列結(jié)構(gòu)的初衷相違背[6].
最近,Zhang等[3]提出一種端到端的尺度自適應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)用于生成密度圖,并在多個數(shù)據(jù)集上證明其有效性,展示出其在準確率和魯棒性上的優(yōu)越性.值得注意的是,該網(wǎng)絡(luò)在其后端使用了最大池化層和反卷積層,盡管這種結(jié)構(gòu)能增大其感知野,但也會導(dǎo)致細粒度信息的丟失.Li等[6]隨后提出一種使用空洞卷積作為其后端的神經(jīng)網(wǎng)絡(luò),可有效地增大網(wǎng)絡(luò)的感知野,同時也避免了使用最大池化層帶來的細粒度信息丟失等問題.然而,該網(wǎng)絡(luò)結(jié)構(gòu)并不包含多尺度信息.本文實例的實驗結(jié)果證明,多尺度信息可以改進網(wǎng)絡(luò)人群計數(shù)的準確率.
為了提高人群計數(shù)方法的準確率,本文使用優(yōu)化的Inception-ResNet-A模塊[16]并結(jié)合Gradient Boosting集成學(xué)習(xí)方法提出一種端到端的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),即Gradient Boosting Multi-Scale Counting Net(GB-MSCNet),該結(jié)構(gòu)能夠在有效地增大網(wǎng)絡(luò)輸出層感知野的同時保存圖片中的細粒度信息.而且該網(wǎng)絡(luò)能夠?qū)⒍喑叨忍卣魅诤?,保證該網(wǎng)絡(luò)對于行人尺度變化以及人群密度變化的魯棒性,使生成的密度圖更精確,從而準確地給出圖片中的行人數(shù)目.
在基于密度圖的計數(shù)方法中,監(jiān)督學(xué)習(xí)的目標就是學(xué)習(xí)從原圖片到相對應(yīng)真實密度圖的映射,因此,真實密度圖能否準確反應(yīng)原圖中行人的空間分布,對最后的計數(shù)準確率有很大的影響.
對于人群計數(shù)數(shù)據(jù)集,數(shù)據(jù)集中通常會給出行人在圖片中的位置參數(shù),即計數(shù)目標在圖片中幾何中心的位置(以像素點坐標的形式給出).根據(jù)數(shù)據(jù)集中的位置參數(shù),可得到初始密度圖M
(1)
式中:Pi為第i個行人目標在圖片中的位置;J為行人的數(shù)量;M為與原圖片尺寸相同但通道數(shù)為1的n×m矩陣;δ(Pi)表示在Pi處的值為1,而其他位置值為0的與M相同尺寸、相同通道數(shù)的矩陣.在M的基礎(chǔ)上,用高斯核Gσi對M進行濾波操作,生成真實密度圖F
F=M*Gσi(x)
(2)
高斯核函數(shù)Gσi(x)定義如下:
(3)
式中:σi為二維高斯分布的標準差;Gσi(x)代表矩陣F中x處關(guān)于Pi的高斯核的取值,最后F在x處的取值為所有Pi在x處的高斯核函數(shù)取值(與σi相關(guān))之和.
根據(jù)高斯核函數(shù)的性質(zhì)可知,σi越大,第i個行人在生成的真實密度圖中對應(yīng)的區(qū)域越大,因此σi應(yīng)與第i個行人在圖片中的大小相關(guān),為達成這一目的, Zhang等[2]提出了一種用于密集人群的真實密度圖的生成方法,將σi與行人之間的平均距離相關(guān)聯(lián),即對每個行人,以距離該行人最近的k個行人與該行人之間的平均距離來代表σi(k是超參數(shù),可通過實驗選擇效果最好的k).使用該方法在圖1a所示的ShanghaiTech數(shù)據(jù)集中生成的真實密度圖如圖1b所示,對圖片中的所有行人使用同樣大小的σi生成的真實密度圖如圖1c所示.顯然圖1b中的密度分布隨著行人在圖片中的大小而變化,相比圖1c更接近圖1a中行人的密度分布.
然而Zhang等[2]提出的方法不適用于描述相對稀疏人群的行人目標大小.如果行人之間的平均距離與行人在圖片中的大小相關(guān)度不高,就無法使用平均距離代表行人在圖中的大小.為解決這一問題,Chen等[17]提出一種針對具有固定背景的人群計數(shù)數(shù)據(jù)集的真實密度圖生成方法,使用線性擬合的方法模擬行人在圖片中的位置與行人大小的關(guān)系,并通過數(shù)據(jù)集中的位置信息近似計算σi并進一步得到不同位置行人的大小,使獲得的真實密度圖能更精確地表示行人的空間分布.如圖2所示,使用該方法在UCSD數(shù)據(jù)集(該數(shù)據(jù)集中的圖片背景固定不變)中生成的真實密度圖相比于使用固定的σi更能代表行人的密度分布.
a
b
c
圖1 ShanghaiTech數(shù)據(jù)集中的密集人群圖片與用平均距離代表和使用固定不變的σi生成的真實密度圖
Fig.1 Crowd image with dense population in ShanghaiTech dataset and corresponding density map with average distance between pedestrians and fixedσi
a
b
c
圖2 UCSD數(shù)據(jù)集中的人群圖片與使用線性擬合方法近似計算和使用固定不變的σi生成的真實密度圖
Fig.2Crowd image in UCSD dataset and corresponding density map with linear fitting and fixedσi
由于上述原因,在本文中,對于人群密度較大的ShanghaiTech數(shù)據(jù)集和UCF_CC_50數(shù)據(jù)集[11],使用Zhang等提出的基于行人平均距離的真實密度圖生成方法;而對于人群相對稀疏且圖片背景固定不變的UCSD數(shù)據(jù)集,則使用Chen等人提出的基于線性擬合的真實密度圖生成方法.
GB-MSCNet是基于Inception-Res-Net-A模塊的端到端的全卷積網(wǎng)絡(luò)結(jié)構(gòu),其具體結(jié)構(gòu)如圖3所示;GB-MSCNet中各模塊詳細結(jié)構(gòu)如圖4所示.
圖3 GB-MSCNet網(wǎng)絡(luò)結(jié)構(gòu)
Fig.3 Architecture of GB-MSCNet
該網(wǎng)絡(luò)能在有效增大網(wǎng)絡(luò)輸出層感知野的同時避免丟失圖片中的淺層特征,并將不同尺度的特征融合,保證了該網(wǎng)絡(luò)對于行人尺度變化的魯棒性,使生成的密度圖更精確.
根據(jù)之前的研究,在人群計數(shù)中,網(wǎng)絡(luò)提取特征的能力、感知野大小、多尺度特征是影響準確率的主要因素[17].因此,GB-MSCNet使用在ImageNet上預(yù)訓(xùn)練過的VGG16[16]的前10層卷積層作為前端網(wǎng)絡(luò),以增強網(wǎng)絡(luò)提取特征的能力;而在網(wǎng)絡(luò)的后端,使用多個優(yōu)化的Inception-ResNet-A模塊,因為該模塊能在增大網(wǎng)絡(luò)的感知野的同時將不同尺度的特征融合.
為了適應(yīng)VGG16的網(wǎng)絡(luò)結(jié)構(gòu),在各個Block中使用優(yōu)化后的Inception-ResNet-A模塊,優(yōu)化后的模塊與原模塊的主要區(qū)別在于通道數(shù),實驗證明優(yōu)化后的模塊能夠提高人群計數(shù)的精度[17].相比于第1列的網(wǎng)絡(luò),第2列刪去了Block-1,這種結(jié)構(gòu)設(shè)計的好處在于既能避免參數(shù)量過多(Block 1中的參數(shù)占MSCNet參數(shù)量的80%),又能使用Gradient Boosting方法提高計數(shù)的準確率.
在本文中,使用Gradient Boosting方法對GB-MSCNet進行訓(xùn)練.Gradient Boosting是集成學(xué)習(xí)方法的一種,它主要的思想是每一次學(xué)習(xí)都是建立在前一次模型所犯的錯誤的基礎(chǔ)上,以糾錯的方式來提升整體模型的性能.在訓(xùn)練GB-MSCNet時,首先單獨訓(xùn)練第1列的卷積網(wǎng)絡(luò),至其收斂時將第1列的權(quán)重固定,再將第2列的卷積網(wǎng)絡(luò)與第1列并聯(lián),使其學(xué)習(xí)第1列產(chǎn)生的密度圖與真實密度圖之間的殘差.
在訓(xùn)練過程中,首先使用Adam優(yōu)化器,學(xué)習(xí)率設(shè)置為1×10-6,待其收斂時使用SGD優(yōu)化器,學(xué)習(xí)率設(shè)置為1×10-8.同時在訓(xùn)練過程中,還使用了權(quán)重衰減(weight decay)、動量(momentum)等方法以加速收斂過程.
本文中使用真實密度圖與人群計數(shù)網(wǎng)絡(luò)生成的密度圖之間每個像素的歐式距離之和來衡量兩者之間的距離,并將這種距離作為訓(xùn)練中的優(yōu)化函數(shù),其具體定義如下:
(4)
式中:K為人群圖片總數(shù);θ為計數(shù)網(wǎng)絡(luò)中的參數(shù);I為輸入到網(wǎng)絡(luò)中的人群圖片;Di(Ii,θ)為網(wǎng)絡(luò)生成的密度圖;Di,gt代表真實密度圖.
目前,評價人群計數(shù)網(wǎng)絡(luò)的性能一般采用平均絕對誤差(MAE)e1和均方誤差(MSE)e2兩個指標值,本文采用MAE和MSE指標對所構(gòu)建的網(wǎng)絡(luò)系統(tǒng)進行評價.MAE和MSE的定義如下:
(5)
(6)
式(5)、(6)中:M為測試的圖片數(shù)量;Ci為網(wǎng)絡(luò)給出的第i張圖片的計數(shù)結(jié)果;Ci,gt為第i張圖片的真實計數(shù)結(jié)果.當網(wǎng)絡(luò)給出的計算結(jié)果Ci,gt越接近準確計數(shù)結(jié)果Ci時,網(wǎng)絡(luò)結(jié)構(gòu)的性能越好,相對應(yīng)的式(5)和式(6)的計算結(jié)果,MAE和MSE值越小.因此,MAE和MSE越小,表示網(wǎng)絡(luò)的計數(shù)準確率越高、魯棒性越強.
圖5是實驗過程中GB-MSCNet的損失函數(shù)曲線以及各階段對應(yīng)的密度圖以及測試得到的MAE數(shù)值,從圖5中可以看出,隨著損失函數(shù)函數(shù)值的減小,密度圖越來越接近于真實密度圖,各訓(xùn)練階段生成的密度如圖6a~6e所示.從第1個輪數(shù)完全隨機產(chǎn)生的密度圖開始,訓(xùn)練到第10個輪數(shù)已經(jīng)能較準確地感應(yīng)出行人的位置,但仍然存在許多對與行人無關(guān)的背景的感應(yīng);接下來從100到500再到1 000輪數(shù)的過程就是逐漸將背景信息過濾的過程,觀察圖6d可以看出,第500個輪數(shù)時還存在一些不明顯的背景干擾,但到1 000輪數(shù)時背景干擾基本消失.同時,計數(shù)產(chǎn)生的誤差值也隨著訓(xùn)練逐漸減小,這充分說明使用公式(4)中的函數(shù)作為損失函數(shù)是較為合理的.另外,使用該公式作為損失函數(shù)的另一個重要原因是該函數(shù)是凸函數(shù),而這對于神經(jīng)網(wǎng)絡(luò)的損失函數(shù)來說是一個必不可少的屬性,否則會極大地加大訓(xùn)練的難度.
圖5 GB-MSCNet訓(xùn)練集與驗證集損失函數(shù)曲線
圖7中給出了測試時估計行人數(shù)量與真實行人數(shù)量隨測試視頻圖片幀數(shù)變化的曲線.從圖7中可以看出,估計行人數(shù)量的曲線與真實行人數(shù)量的曲線非常接近,最大的計數(shù)誤差不超過8,說明GB-MSCNet能夠較好地完成人群計數(shù)的任務(wù).
在訓(xùn)練GB-MSCNet時,首先訓(xùn)練第1列,再用第2列學(xué)習(xí)第1列與真實密度圖之間的殘差,如圖8所示,殘差不均勻地分布在每一個行人處,主要存在于人群密集區(qū).加入第2列并訓(xùn)練后,模型的計數(shù)性能得到提升,圖9所示是MAE和MSE在UCSD數(shù)據(jù)集中隨測試視頻圖片幀數(shù)的變化曲線,相比于只使用第1列,加入第2列后模型的MSE和MAE 均有下降.從圖9可以看出,MAE和MSE的數(shù)值都比較小,并且圖中兩條曲線的變化趨勢平緩,說明GB-MSCNet的計數(shù)準確性和穩(wěn)定性都達到了一個較高的水平.
a 訓(xùn)練輪數(shù)=1
b 訓(xùn)練輪數(shù)=10
c 訓(xùn)練輪數(shù)=100
d 訓(xùn)練輪數(shù)=500
e 訓(xùn)練輪數(shù)=1 000
f 真實密度圖
圖7 UCSD數(shù)據(jù)集中估計行人數(shù)量與真實行人數(shù)量隨測試圖片幀數(shù)變化的曲線
為了能夠更客觀地說明本文所構(gòu)建的網(wǎng)絡(luò)結(jié)構(gòu)在人群計數(shù)問題中的有效性,本實例驗證使用UCSD數(shù)據(jù)集作為衡量對于稀疏人群的計數(shù)性能的數(shù)據(jù)集,ShanghaiTech和UCF_CC_50數(shù)據(jù)集作為衡量對于密集人群的計數(shù)性能的數(shù)據(jù)集,最后使用采集于真實場景的包含光照和視角變化的TongjiCanteen數(shù)據(jù)集測試本文的方法對于這些變化的魯棒性,同時對本文構(gòu)建的網(wǎng)絡(luò)結(jié)構(gòu)的性能進行評價.
圖8 GB-MSCNet中第1列產(chǎn)生的殘差圖
圖9 UCSD數(shù)據(jù)集中評價指標MAE和MSE隨測試圖片幀數(shù)的變化曲線
3.3.1稀疏人群實例驗證
UCSD是稀疏人群場景下獲得的一組數(shù)據(jù)集,該數(shù)據(jù)集中包含2 000張分辨率為238像素×158像素的灰度監(jiān)控照片,平均每張圖片有25.0個標注行人.為了與GB-MSCNet 的感知野大小相匹配,在訓(xùn)練及測試時將UCSD數(shù)據(jù)集中所有的圖片放大7倍至1066像素×1666像素.本次試驗中第601至第1 400張圖片被用作訓(xùn)練集,余下的圖片被用作測試集.該數(shù)據(jù)集中人群圖片、真實密度圖、使用GB-MSCNet生成的密度圖如圖10所示.用不同的方法測試UCSD數(shù)據(jù)集,得到不同網(wǎng)絡(luò)結(jié)構(gòu)下的計數(shù)誤差,實驗結(jié)果如圖11所示.
分析圖11中的MAE和MSE數(shù)值可知,GB-MSCNet在計數(shù)準確率與計數(shù)穩(wěn)定性兩方面都展示了其良好的性能,證明了該網(wǎng)絡(luò)在對相對稀疏的人群進行計數(shù)時表現(xiàn)良好.
3.3.2密集人群實驗驗證
ShanghaiTech數(shù)據(jù)集是密集人群場景下的一組數(shù)據(jù)集,該數(shù)據(jù)集分為A和B兩部分,其中,A部分中包含482張圖片,平均每張圖片包含501.4個標注行人;B部分中包含716張圖片,平均每張圖片包含123.6個標注行人.根據(jù)之前研究的設(shè)定[2],對于A部分,300張圖片被用作訓(xùn)練集,余下的182張作為測試集;對于B部分,400張圖片被用作訓(xùn)練集,余下的316張作為測試集.該數(shù)據(jù)集中人群圖片、真實密度圖、使用GB-MSCNet生成的密度圖如圖12所示.
圖10 UCSD 實驗結(jié)果示例
Fig.10 Example of experiment results on UCSD dataset
使用不同的方法對ShanghaiTech數(shù)據(jù)集進行測試,得到不同網(wǎng)絡(luò)結(jié)構(gòu)下的計數(shù)誤差,實驗結(jié)果如圖13所示.從圖13中可以看出,GB-MSCNet在該數(shù)據(jù)集中的計數(shù)準確率和穩(wěn)定性均較好.
UCF_CC_50數(shù)據(jù)集中包含50張密集人群的圖片,總共63 974個標注行人,平均每張圖片包含1 279.5個行人,是目前公開的數(shù)據(jù)集中人群最密集的數(shù)據(jù)集.該數(shù)據(jù)集中人群圖片、真實密度圖、使用GB-MSCNet生成的密度圖如圖14所示.根據(jù)之前研究的設(shè)定[11],在該數(shù)據(jù)集中使用五折交叉驗證,其實驗結(jié)果如圖15所示.從圖15中可以看出,GB-MSCNet在非常密集的人群圖片中同樣獲得了較高的準確率與較好的穩(wěn)定性.
圖11 UCSD數(shù)據(jù)集網(wǎng)絡(luò)結(jié)構(gòu)計數(shù)誤差值
3.3.3TongjiCanteen數(shù)據(jù)集驗證
為了驗證本文提出方法對于光照和視角變化的魯棒性,本文采集并標注了4段60 s的真實場景下的視頻,4段視頻拍攝于同一場景,但光照條件、視角都不相同.圖16是該數(shù)據(jù)集中不同條件下的人群圖片、真實密度圖和使用GB-MSCNet生成的密度圖.
該數(shù)據(jù)集中,在每個視頻前50 s每秒采集3幀圖像作為訓(xùn)練集,剩余的所有圖像作為測試集,在4個不同的視頻中,GB-MSCNet均表現(xiàn)良好,具體的MAE與MSE如表1所示.
3.3.4實時性分析
本次實驗所用的顯卡型號為GTX1070,處理器為Intel i7處理器.在TongjiCanteen數(shù)據(jù)集中,測試的圖片分辨率為(307像素×425像素),本文提出的方法在該條件下的圖像處理速度如圖17所示.從圖17中可以看出,GB-MSCNet平均每秒能夠處理38.9幀圖片,達到了在實際應(yīng)用中的實時性要求.
a A部分
b B部分
圖13 ShanghaiTech數(shù)據(jù)集計數(shù)誤差值
Fig.13 Experiment results on ShanghaiTech dataset
圖15 UCF_CC_50數(shù)據(jù)集計數(shù)誤差值
表1 真實場景下計數(shù)誤差值
綜合以上數(shù)據(jù)集來看,GB-MSCNet在對稀疏人群與密集人群進行計數(shù)時,能夠準確給出復(fù)雜場景中行人的數(shù)目,并且對于相機視角和光照變化的魯棒性較強,較之于之前的方法在準確率和穩(wěn)定性兩方面都有所提高.
視角一光照條件一
真實行人數(shù)量4.00
估計行人數(shù)量4.02
視角一光照條件二
真實行人數(shù)量10.00
估計行人數(shù)量10.17
視角二光照條件一
真實行人數(shù)量11.00
估計行人數(shù)量11.01
視角二光照條件二
真實行人數(shù)量21.00
估計行人數(shù)量21.48
圖17 GB-MSCNet在TongjiCanteen數(shù)據(jù)集中的運行速度
本文針對基于視覺的人群計數(shù)進行了研究,提出了使用集成學(xué)習(xí)方法Gradient Boosting進行訓(xùn)練的人群計數(shù)網(wǎng)絡(luò)GB-MSCNet,該網(wǎng)絡(luò)具有較大的感知野,且能夠融合各個尺度的特征,從而適應(yīng)人群計數(shù)中行人的尺度變化.實驗結(jié)果證明,對于不同的人群密度、相機視角與光照變化,該方法都能夠較準確地給出圖片中的行人數(shù)量,證實了該網(wǎng)絡(luò)對于人群密度、行人大小、光照以及視角的變化具有較強的魯棒性.與之前的人群計數(shù)方法相比較,GB-MSCNet在準確率與穩(wěn)定性兩方面均有較大的提高.