基於CSRnet的高密度人羣的人羣估計

論文:CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes前端

CVPR 2018 Paper : https://arxiv.org/abs/1802.10062git

Keras實現:https://github.com/DiaoXY/CSRnetgithub

官方Pytorch實現:https://github.com/leeyeehoo/CSRNet-pytorch後端

迴歸法對人羣計數:根據圖像迴歸人羣密度圖,直接計算人羣數量網絡

經過論文中的對比數據發現,相較於Crowdnet、MCNN、SCNN等方法,CSRnet是目前計算擁擠人羣密度的最好的迴歸方法模型。函數

論文介紹

1.CSRnet網絡結構

CSRnet網絡模型主要分爲前端和後端網絡,採用剔除了全鏈接層的VGG-16做爲CSRnet的前端網絡,輸出圖像的大小爲原始輸入圖像的1/8。卷積層的數量增長會致使輸出的圖像變小,從而增長生成密度圖的難度。因此本文采用空洞卷積神經網絡做爲後端網絡,在保持分辨率的同時擴大感知域, 生成高質量的人羣分佈密度圖。學習

1.1空洞卷積

CSRnet中最重要的部分是後端網絡中的空洞卷積神經網絡。定義一個二維的空洞卷積以下:測試

x(m,n)是長寬分別爲M和N的輸入圖像信息,通過卷積核w(i,j)獲得空洞卷積的輸出y(m,n),其中參數r表示空洞率。若是r=1則空洞卷積就是普通卷積。實驗證實,空洞卷積利用稀疏的卷積核,實現交替卷積和池化操做,在沒有增長網絡參數和計算規模的前提下增大了感知域,更適合人羣密度估計任務。而普通的卷積操做須要增長卷積層數才能得到更大的感知域,並且也增長了更多的數據操做。空洞率爲r 的空洞卷積操做,K x K的卷積核會被擴大爲K+(K-1)(r-1)。圖1中卷積核大小爲3×3的感知域分別被擴大爲5×5和7×7。spa

本文將CSRnet分紅兩部分,分爲前端網絡和後端網絡。前端網絡3d

採用剔除了全鏈接層的VGG-16網絡,而且採用3×3的卷積核。研究代表,對於相同大小的感知域,卷積核越小,卷積層數越多的模型要優於那些有着更大卷積核且卷積層數較少的模型。爲了平衡準確性和資源開銷,這裏的VGG-16網絡採用10層卷積層和3層池化層的組合。後端網絡採用六層空洞卷積層,空洞率相同。最後採用一層1×1的普通卷積層輸出結果。網絡結構以下:

其中全部的卷積層均被填充保持原來大小。表中顯示的卷積層的參數被表示成「conv-(卷積核大小)-(通道數)-(空洞率)」,其中最大池化層大小爲2×2,步數爲2。

2. 訓練方法

2.1生成密度圖

CSRnet模型生成密度圖的方法參考的MCNN(CVPR2016)中的方法。採用脈衝函數卷積高斯核的方式來定義密度圖。假設標註點的位置爲xi,那麼具備N個頭的標籤能夠被表示爲

這裏把它與高斯函數作卷積變成一個連續的函數。可是這種密度函數假設每一個xi在圖像空間中是獨立的。然而事實上,每一個xi是在3D場景中一我的羣密度的樣本,而且因爲透視失真,不一樣樣本xi相關的像素與場景中區域的不一樣尺度一致。因而爲了精確估計羣體密度,須要考慮透視變換。若是假設在一我的頭區域的周圍,人羣的密度是均勻的,它的最近鄰給出了一個對於幾何形變的合理的估計。 爲了使得密度圖可以更好地與不一樣視角(不一樣人頭大小)且人羣很密的圖像對應起來,做者對傳統的基於高斯核的密度圖作了改進,提出了基於幾何適應高斯核的密度圖,由下式表示: 

通俗理解就是:密度圖是由delta脈衝函數與一個高斯函數卷積得來,這裏先卷積再求和

對於每個人頭的xi點,給出了k個近鄰距離的的平均值di,因而,與xi相關的像素對應於場景中地面上的一個區域,這個區域的半徑與di成正比。因而,爲了估計像素xi周圍的人羣密度,爲咱們須要把H(x)卷積一個自適應的高斯核的,這個高斯核的的方差σi是可變的而且和di成比例。

總結就是把標籤H和一個自適應核的高斯核函數進行卷積,這個高斯核函數的方差爲β與xi的K個最近鄰平均距離的乘積。

2.2數據加強

2.3損失函數

做爲端到端網絡的CSRnet,採用最直接的方法進行模型訓練便可。前端網絡中10個卷積層來自已經訓練好的VGG-16,因此只須要進行微調訓練。對於其餘卷積層的參數採用0.01的標準誤差的高斯初始化。在訓練期間,隨機梯度降低的學習率固定爲1e-6。採用歐氏距離測量咱們生成的密度圖與真實值的距離。損失函數定義以下:

 

N表示batch size,Z表示生成的密度圖,ZGT表示密度圖ground truth

3實驗結果

3.1評估標準

評估人羣密度估計模型時,爲了與最新的研究進行對比,咱們採用廣泛被研究人員採用的均方偏差(MSE)和平均絕對偏差(MAE),MSE用來描述模型的準確度,MSE越小則準確度越高,MAE能反映出預測值的偏差狀況。

N表示一次測試序列中圖片的數量,Ci表示對圖片Xi的預測人數,CiGT表示真實人數

Zl,w表示在長爲L寬爲W的密度圖中(l,w)處的像素值。

3.2評估對比

論文中分別在ShanghaiTech dataset、UCF_CC_50 dataset、The WorldExpo’10 dataset、The UCSD dataset、TRANCOS dataset五個數據集中與當前最流行的模型進行對比,具體對比數據能夠參考論文。我在實現的時候只在ShanghaiTech數據集中進行了測試,全部這裏只給出在ShanghaiTech數據集中的效果,CSRnet模型具備很是大的優點。

在測試時,咱們在ShanghaiTech數據集上實現的效果很是接近論文中給出的數據。

Dataset MAE(paper) MSE(our)
ShanghaiTech PartA 68.2 65.9
ShanghaiTech PartB 10.6 11.0