MCNN(簡單理解):
三列卷積神經網絡,分別為大中小三種不同尺度的卷積核,表示為L列(使用大尺度卷積核: 9*9, 7*7, 7*7,7*7), M(使用中等尺度卷積核: 7*7, 5*5, 5*5, 5*5), S列(使用小尺度卷積核: 5*5, 3*3, 3*3, 3*3)),其目的在於使用多種尺度的卷積核來適應不同尺度的人頭大小。最后將L,M,S三列卷積神經網絡進行合並,得到網絡生成的密度圖。
從圖中可觀察到,MCNN實際的下采樣系數為4,因此網絡輸出的密度圖也是原圖寬高的1/4,在制作其作為訓練數據的標簽密度圖時,除了要制作為原圖1/4的密度圖外,幾何自適應高斯核相關的的限制,也要相應為1/4,將限制在100/4=25個像素之內
圖 MCNN網絡結構
CSRNet 網絡可以理解高度擁擠的場景並執行准確的計數估計以及呈現高質量密度圖
1.CSRnet網絡結構
CSRnet網絡模型主要分為前端和后端網絡,采用剔除了全連接層的VGG-16作為CSRnet的前端網絡,輸出圖像的大小為原始輸入圖像的1/8。卷積層的數量增加會導致輸出的圖像變小,從而增加生成密度圖的難度。所以本文采用空洞卷積神經網絡作為后端網絡,在保持分辨率的同時擴大感知域, 生成高質量的人群分布密度圖。
1.1網絡結構
采用剔除了全連接層的VGG-16網絡,並且采用3×3的卷積核。研究表明,對於相同大小的感知域,卷積核越小,卷積層數越多的模型要優於那些有着更大卷積核且卷積層數較少的模型。為了平衡准確性和資源開銷,這里的VGG-16網絡采用10層卷積層和3層池化層的組合。后端網絡采用六層空洞卷積層,空洞率相同。最后采用一層1×1的普通卷積層輸出結果。網絡結構如下:
其中所有的卷積層均被填充保持原來大小。表中顯示的卷積層的參數被表示成“conv-(卷積核大小)-(通道數)-(空洞率)”,其中最大池化層大小為2×2,步數為2。
1.2空洞卷積
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。
2.訓練過程
2.1生成密度圖
通俗理解:根據josn文件中的標注,對訓練集中每張圖片生成密度圖,原理為先生成一個與圖片大小相同的全0矩陣,然后將人頭坐標位置設為1,其他位置設為0,然后根據高斯核函數生成的矩陣保存在.Xls文件中作為密度圖,即為label。
2.2損失函數
作為端到端網絡的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表示真實人數
參考:https://blog.csdn.net/weixin_41548113/article/details/85912714