徐 濤,李夏華,劉才華+
(1.中國民航大學 計算機科學與技術學院,天津 300300;2.中國民用航空局 智慧機場理論與系統(tǒng)民航局重點實驗室,天津 300300)
傳統(tǒng)的安全管理依靠人工監(jiān)測區(qū)域內的人群分布狀況,這需要極高的人力成本,而通過計算機視覺算法等手段預測未來人群分布,能夠降低人群聚集可能帶來的風險。
Lempitsky等首次提出通過對密度圖積分實現對圖片中的人群計數[1],由于密度圖可以清楚地反映出當前場景下人群的分布狀態(tài)及擁擠程度,因此預測未來時刻的人群密度圖,對于人群異常聚集現象的預防十分有效。人群密度預測問題主要存在以下技術難點:①給定的多個輸入幀易產生多個相似的特征表示,這會使預測結果趨于模糊;②視頻監(jiān)控場景下可能存在多個人群及零散的行人,每個行人的運動軌跡獨立,模型設計需要對時空特征有效建模;③對于較長時間間隔的預測,幀間時空相關性較小。
為了解決上述問題,本文提出一種基于生成對抗網絡動態(tài)建模的人群密度預測方法,用于實現未來時刻人群密度預測。主要貢獻為:①得益于生成對抗網絡[2]良好的圖像生成能力,本文模型采用生成對抗網絡結構,生成器采用U-Net[3]結構保證預測圖像的質量,并利用預訓練的光流網絡FlowNet[4]提取人群運動特征,提升對未來時刻人群密度分布狀態(tài)估計的準確性;②優(yōu)化了U-Net解碼階段,采用擴張卷積[5],在保持特征圖分辨率的同時增加網絡的感受野,接收更加廣泛的人群分布信息;③針對時空序列預測問題,不同于其它模型采用MSE均方誤差,本文通過聯合強度損失、梯度損失、對抗性損失和光流損失,分別從人群空間分布狀態(tài)和人群運動趨勢兩個方面加以約束,優(yōu)化模型的預測結果。
隨著智能化安防的發(fā)展,一些研究人員關注到了人群密度預測問題上。本節(jié)將介紹與該問題相關的一些研究工作,包括人群密度預測、視頻幀預測、人群計數。
Minoura等[6]建立基于patch的動態(tài)網絡模型,通過學習不同patch之間的緊湊特征表示捕捉復雜變化的人群運動,并使用完全卷積的編碼-解碼架構應對相鄰patch之間預測結果的不連續(xù)性。Niu等[7]提出了一種全局殘差雙流網絡,首先利用一系列卷積級聯LSTM層和ConvLSTM模塊提取視頻幀的時空特征,接著利用一個循環(huán)自編碼器抽取對應的密度圖更加抽象的人群狀態(tài)和動態(tài)表示,并通過一個基于注意力的融合模塊傳遞融合特征,得到最終的預測結果。人群密度預測的相關工作于近兩年才被研究人員所關注,且目前的工作主要集中在短期預測方面,長期預測仍然具備一定的挑戰(zhàn)性,是一項極具潛力的研究方向。
視頻幀預測是指,利用給定的一組連續(xù)幀預測未來的視頻幀。Shi等[8]提了一種新的網絡結構ConvLSTM,將原有的全連接LSTM的門狀態(tài)轉換計算中的矩陣乘運算改為卷積運算,通過在多維數據中進行卷積操作來捕獲空間特征,并將其用于氣象降水預報。Liang等[9]提出了一種對偶學習機制的生成對抗模型,使用對偶訓練的方法來確保預測出來的光流能夠幫助網絡進行推理,使預測結果更加真實。安利智等[10]提出了一種動態(tài)卷積生成對抗模型,利用ConvLSTM和卷積神經動態(tài)平流單元融合視頻中的時空特征,提高時空建模的準確性。與視頻預測不同的是,本文的輸入是經過稀疏采樣的人群視頻幀,相比于視頻幀預測方法的輸入時間間隔更長,幀與幀之間的相關性更小,具有更大的挑戰(zhàn)和應用價值。
人群計數的目的是計算圖像中的人數,并估計人群在圖像中的空間分布情況。早期大多基于檢測技術以及基于回歸技術實現。隨著深度學習技術的發(fā)展,基于卷積神經網絡(CNN)的方法在人群計數中表現出優(yōu)異的性能。Cao等[11]利用尺度聚合模塊對多尺度特征提取,利用轉置卷積生成高分辨率的人群密度圖像,另外聯合歐幾里得損失和局部模式一致性損失優(yōu)化模型訓練。Li等[12]通過使用擴張卷積代替池化操作來擴大感受野,并提取更深層次的特征。崔宇超等[13]提出一種基于幀間輔助的視頻人群計數方法,通過獲取相鄰幀之間的空間關聯特性融合相鄰幀之間的特征實現單張圖像計數。盡管人群計數有大量的前期工作,但基于視頻的人群密度估計[14]研究較少,并且主要關注的是如何利用時間連續(xù)性來改進人群密度估計,并非如何預測未來時刻的人群密度。與以往的人群計數工作不同,本文工作是在給定先前觀察到的多個人群分布圖像序列的情況下,預測未來人群的空間分布。
對公共場景下未來時刻的人群分布狀態(tài)預測是指,給定一段人群視頻,生成對應的人群密度圖,并根據密度圖預測未來時刻人群分布情況。為了有效捕捉人群運動狀態(tài),并能夠更好地應用到實際當中,獲取人群在較長一段時間內的運動變化是十分重要的,這也有利于人群密度監(jiān)測系統(tǒng)提前發(fā)出預警。因此,以相等時間間隔對給定人群視頻幀間隔采樣,預測下一相同時間間隔的人群分布情況。
基于此,我們將該問題描述為
P(t+NΔt)=F({It,It+Δt,…,It+(N-1)Δt})
(1)
其中,{It,It+Δt,…,It+(N-1)Δt} 表示模型F的輸入幀,包含從人群視頻以相等時間間隔Δt順序采樣的N幀。根據給定輸入幀,預測下一相同時間間隔第N+1幀(即t+NΔt幀)的人群密度圖P。
圖1為本文提出的模型整體結構。模型整體采用生成對抗網絡結構,利用生成器與判別器之間的博弈思想指導生成器生成更加準確的預測結果。首先將輸入視頻的每一幀根據數據集的標簽信息轉換為人群密度圖,將得到的人群密度圖送入生成器網絡生成預測結果。對預測結果與ground-truth之間施加強度損失和梯度損失,同時利用預訓練的光流網絡FlowNet分別計算輸入最后一幀圖像與預測圖像之間的光流圖和輸入最后一幀圖像與ground-truth圖像之間的光流圖,通過最小化上述二者之間的L1損失學習時序信息。最終,聯合強度損失、梯度損失、對抗性損失和光流損失,分別從空間特征和時序特征兩個方面加以約束,進一步優(yōu)化生成器的預測結果。
2.2.1 生成器
現有工作中用于圖像生成的網絡通常是由編碼器和解碼器兩個模塊組成的。編碼器通過逐步降低空間分辨率得以提取圖像特征,解碼器通過增加空間分辨率得以逐漸還原圖像。然而,這種方法會導致梯度消失和信息不平衡等問題出現。為了解決這些問題,U-Net模型被提出,它在具有相同分辨率的編碼層和解碼層之間加入了跳躍連接,能夠有效抑制梯度消失并保證信息對稱。
對于人群密度預測問題,輸入視頻來自于固定攝像機拍攝,跳躍連接可幫助預測圖像快速重建。具體實施過程中,本文對U-Net進行了一些修改,對于每兩個卷積層,保持輸出分辨率不變,當添加跳躍連接時,它不再需要對圖片裁剪和調整大小。另外,將解碼層采用擴張卷積,以增加網絡的感受野。擴張卷積的原理如圖2所示,將緊密的卷積核按照擴張系數增大,用0填充空位,這樣可以在擁有同樣的計算成本的情況下,使卷積計算獲得更寬的視野。相比于U-Net網絡原始解碼層所采用的反卷積,擴張卷積可以在減少信息丟失的同時保證執(zhí)行效率;相比于池化層來說,擴張卷積可以在控制過擬合的同時保證空間分辨率。人群密度圖存在尺度變化的問題,一般的卷積核無法準確地提取到不同尺度下的行人特征信息,而擴張卷積可以通過設置不同的擴張率聚合不同尺度的上下文信息,充分提取特征。
圖2 擴張卷積感受野變化[5]
2.2.2 判別器
針對未來時刻人群密度預測問題,既要獲取輸入圖像中人群分布的局部相關性,又要保證預測結果清晰。受到Isola等[15]的啟發(fā),判別器結構采用PixelDiscriminator,通過逐次疊加的卷積層一次判斷一個N×N的圖像塊是否為真,將所有圖像塊的結果求平均,作為整張圖像的判別結果。這種結構在減少訓練所需參數量的同時,能夠更好地捕捉到圖像局部信息,增強生成器輸出預測圖像的局部相關性,提高生成圖像的質量。具體實施過程中,采用4個卷積層構建判別器,其中前3個卷積層均具有批量歸一化層并采用LeakyReLU作為激活函數,最后一層卷積層作為輸出層。這種結構可以覆蓋到輸入的人群密度圖像的每個局部區(qū)域,可以更好地指導生成器學習人群分布的局部相關性,并幫助生成器重建圖像的邊緣、輪廓等高頻信息,進而保證生成器預測圖像的質量。
本文采用強度損失、梯度損失對空間特征施加約束,保證預測圖像的質量;采用光流損失、對抗性損失對時序特征施加約束,保證輸入序列和預測結果的時序一致。
2.3.1 強度損失和梯度損失
為了使預測結果與ground-truth更加接近,采用強度損失和梯度損失[16]約束空間特征信息。強度損失保證RGB空間下所有像素的相似性,梯度損失可以銳化生成的圖像,使預測的圖像更加清晰。
具體而言,強度損失將預測結果I′與真實結果I之間的L2距離最小化,定義為
(2)
梯度損失定義為
(3)
其中,i和j表示視頻幀的空間索引值。
2.3.2 光流損失
過去的研究方法僅通過強度損失和梯度損失約束圖片的空間特征來生成未來幀,然而即使預測幀的所對應的強度損失和梯度損失極小,也可能導致完全不同的光流,也就丟失了視頻重要的時序特征,因此采用光流估計網絡FlowNet來計算預測圖像與ground-truth圖像的光流信息。具體而言,通過最小化輸入幀最后一幀It分別與預測圖像I′t+Δt和ground-truth圖像It+Δt產生的光流圖的L1距離,定義為
(4)
其中,F為FlowNet網絡,實驗中所采用的F經過文獻[4]中的合成數據集預訓練,并且保持參數固定不變。
2.3.3 對抗性損失
對于生成對抗網絡來說,生成器G試圖通過最小化損失函數優(yōu)化自身,而判別器D試圖通過最大化損失函數來指導生成器學習,對抗性損失定義為
(5)
將上述對空間時序特征約束的損失函數加權組合,得到目標函數,定義為
L=αintLint+αgdLgd+αopLop+αadvLadv
(6)
其中,αint,αgd,αop,αadv分別為強度損失、梯度損失、光流損失和對抗性損失的系數因子。
Mall[17]是從一個購物中心的監(jiān)控錄像中收集的公共數據集。Mall數據集中的視頻序列由2000幀640×480的圖像組成,總共包含62 325個行人,幀率小于2 Hz,該數據集標注了每一幀中的行人的頭部位置。對Mall數據集將前1200幀作為訓練數據,對后800幀進行測試。
除此之外,我們還手動標注了一段來自于國內某機場航站樓內的監(jiān)控錄像,對其中每一幀的行人頭部位置進行了標注,本文將該手動標注數據集稱為Airport,共包含800幀人群圖像,每一幀圖像大小為480×270。
在時空序列預測領域,廣泛使用的評價指標依賴于基于圖像相似性的度量,例如均方誤差MSE(mean-square error)、峰值信噪比PSNR(peak signal to noise ratio)以及結構相似性SSIM(structural similarity index measure)。本文采用這3種評價標準對結果定量分析。
MSE評價指標定義如下
(7)
其中,n表示預測密度圖像的數量,x′i表示第i張預測密度圖像,xi表示對應于第i張預測圖像的ground-truth密度圖像。MSE用于衡量算法的魯棒性,MSE值越小,說明模型的魯棒性越好。
PSNR評價指標定義如下
(8)
其中,n表示預測密度圖像的數量,x′i表示第i張預測密度圖像,xi表示對應于第i張預測圖像的ground-truth密度圖像。PSNR用于衡量預測圖像的質量,PSNR值越大,說明生成圖像質量越好。
給定兩張圖像x和y,SSIM評價指標定義如下
(9)
本文基于Pytorch1.1.0深度學習框架開發(fā),使用英偉達RTX5000顯卡進行實驗。本實驗首先對數據集進行預處理,將數據集對照每一幀標簽生成人群密度圖,再分別以1.5 s、3 s、4.5 s對數據集間隔采樣,以保證網絡能夠捕捉人群運動變化信息。訓練過程中,將所有幀的像素強度歸一化為[-1,1],輸入圖像尺寸歸一化為256×256,模型輸出相同大小的人群密度圖。設置輸入視頻序列長度為5,預測下一相等時間步長的人群密度圖。參數優(yōu)化選擇基于Adam的隨機梯度下降法,batch-size大小為4。生成器和判別器的學習率分別為0.0002和0.000 02,目標函數L中的系數αint,αgd,αop,αadv分別為1.0、1.0、2.0和0.05。
目前針對人群密度預測這一問題的工作成果較少,本文與文獻[7]的D2D-Net以及視頻幀預測模型ConvLSTM[8]進行了比較。實驗對比結果見表1。
表1 在兩個數據集上不同時間間隔下不同預測方法的結果
ConvLSTM通過擴展全連接LSTM,使其在狀態(tài)轉換中具有卷積結構,從而更好捕捉時空相關性。然而在ConvLSTM中空間表示是被層層編碼,而隱藏狀態(tài)自底向上傳遞,屬于每一層的存儲單元是相互獨立的,這會導致其底層完全忽略上一個時間步的信息。D2D-Net同樣采用U-Net結構,并在編碼階段和解碼階段中間連接處插入了3個ConvLSTM單元,用于融合時空特征。然而D2D-Net由于引入了3個ConvLSTM單元,會導致其參數量增加,計算速度慢,同時依然存在幀與幀之間的時間信息丟失的問題。
通過表1可知,本文模型在3個評價標準均取得了更好的結果,在預測更長時間間隔下的人群運動變化更加有效,能夠更好將空間信息和時間信息有效融合。
圖3展示了在輸入序列時間間隔為1.5 s的情況下,本文模型分別在Mall數據集和Airport數據集上預測的結果。前5列是輸入的原始視頻幀,由原始視頻稀疏采樣得到。對于Mall數據集,每3幀采樣一次,對于Airport數據集,每5幀采樣一次??梢钥吹?,本文模型能夠預測不同人群場景下的未來時刻人群分布。
圖3 預測結果示例
本文首先分析了不同的損失函數對結果的影響,并對不同的損失函數進行了逐步消融。通過把不同的損失結合起來,在Mall數據集上進行實驗。表2中的結果顯示,更多的損失函數對模型施加約束可以得到更好的預測結果。
表2 不同損失函數對結果的影響對比
接著,在時間間隔為1.5 s的情況下,評估了輸入幀的數量。模型默認設置為5幀,并分別以2幀、3幀和4幀作為輸入序列長度對模型進行了驗證,結果見表3。根據結果分析,輸入序列越長,模型的性能越好,因為更長的輸入序列能帶來更多的時序信息。根據實驗觀察,當輸入超過5幀后,模型的性能不會有太大的提高,但需要消耗更多的計算資源。因此將模型的輸入序列長度設置為5幀。
表3 不同輸入序列長度對比
對于生成器網絡中解碼器部分的擴張卷積,我們對不同的擴張率分別進行對比,結果見表4,當擴張率為2時,模型的預測效果最好。
表4 不同擴張率對比
本文提出一種基于生成對抗網絡動態(tài)建模的人群密度預測方法,用于解決未來時刻人群密度預測問題。首先將視頻幀轉換成對應的人群密度圖送入由改進后的U-Net所構成的生成器中得到預測結果。接著通過聯合強度損失、梯度損失、對抗性損失和光流損失,分別從空間特征和時序特征兩個方面施加約束,得到較為準確的未來時刻人群密度分布。最后通過實驗驗證本文方法能夠準確預測不同人群場景下的未來時刻人群分布情況。但本文方法在預測更長時間間隔后的人群密度分布以及精準預測較密集區(qū)域內的人群密度變化方面仍需改進。后期可以改進模型對更長時間間隔的輸入序列中所包含的時序信息的提取,以及對視頻場景中不同區(qū)域之間的運動關聯信息的學習。