第三章 研究方法
3.3 卷積神經網路
3.3.3 具卷積通道特徵之雙尺度完全卷積神經網路
為了透過卷積神經網路的運算後可獲取人群密度圖,我們採用完全卷積 (fully convolutional network, FCN)的網路架構[40, 41],在 FCN 的網路架構中不具 有一般卷積神經網路中的全連接層,因此,可以接受任何尺寸大小的影像輸入,
並且輸出特徵圖,而特徵圖可透過3.2.2 小節的方法轉換為人群密度圖。
為了減少多尺度的網路架構訓練的時間與提升人群計數效能,我們將多尺度 的網路架構中,將三列架構調整為雙列架構,形成雙尺度的網路架構。在雙尺度
19
的網路架構中,前端單列的結構若是提取特徵的效果不佳,將嚴重的影響後續人 群密度圖的生成。因此,為了產生較好的人群密度圖,我們將套用 CCF 的觀念 在VGG-16_4-3 以做為前端的單列結構,使其類似 FF-CNN 的架構。
最後,為了利於提取不同大小的人頭特徵,我們再結合由 MCNN 參數所組 成的雙列網路架構。將前端單列網路架構結合後端雙列網路架構形成雙尺度架構,
如圖3.7 所示,其優勢除了減少多列與多尺度網路架構訓練的時間,亦可提升人 群計數效果。
圖3.7:具卷積通道特徵之雙尺度完全卷積網路架構圖
在我們所提的架構中,前端單列部分我們採用VGG-16_4-3 的型式,並仿照 參考文獻[28]的想法,套用 CCF 觀念於 Conv3_3 與 Conv4_3 使其相結合,用意 是為了提取較小的人頭特徵資訊。而在整體的網路架構中,Conv1_1 到 Conv4_3 的卷積層皆使用大小為
3 3
的濾波器,且均使用像素填充(padding)進行補零的動 作,每次移動的步徑長度為1,池化層則採用最大池化且濾波器大小為 2 2 ,移 動的步徑長度為1。每次池化後,卷積層的層數將加倍。20
後端雙列結構則採用MCNN 架構中初始濾波器大小為
9 9
與7 7
兩列。第 一列結構中Conv5 濾波器大小為9 9
,Conv7_1 到 Conv7_3 濾波器大小則為7 7
且皆使用像素填充進行補零的動作,每次移動的步徑長度為 1。第二列結構中 Conv6 濾波器大小為7 7
,Conv8_1 到 Conv8_3 濾波器大小則為5 5
且皆使用 像素填充進行補零的動作,每次移動的步徑長度為1。由於過多的池化層會導致 較小的特徵圖和較低的辨識率,我們在此兩列中僅採用一次池化層。兩列的池化 層皆採用最大池化且濾波器大小為 2 2 ,移動的步徑長度為 1。由於特徵融合時尺寸需要一致,因此,我們在Conv4_3、Conv7_3 與 Conv8_3 後端分別連結一層上採樣層(upsampling),透過上採樣後我們再將 Conv3_3、
Conv4_3、Conv7_3 與 Conv8_3 進行特徵融合。為了減少融合後的特徵圖數量與 增加模型的線性優化,我們在特徵融合之後,增加了濾波器大小為
3 3
與使用 ReLU 激活函數的 Conv9_1 和 Conv9_2。最後,透過卷積核大小為1 1 濾波器將 特徵圖轉換至人群密度圖,並進行人群密度圖積分獲得總體人數。在FF-CNN 中,探討了單純使用 3 與使用 CCF 觀念的 VGG-16_4-3 對於人群計數的效果差異,但兩者架構其缺點皆是無法得到不同人頭大小的資 訊。由於在擁擠的人群影像中,人頭大小的差異性極高,因此,我們參考MCNN 具有可擷取不同人頭大小特徵的優點,採用雙列架構且將卷積核大小設定為
9 9
與7 7
以做為獲取較大的人頭與適中的人頭的特徵來源,並結合來自FF-CNN 以 擷取較小的人頭特徵做為最終影像中的人頭特徵資訊。在MCNN 使用多列的網路架構中,有著訓練時間長且消耗過多計算機效能 的缺點,因此,我們將多列的網路架構改為多尺度的網路架構,並且進一步調整 為雙尺度的網路架構,除了提升人群計數效能外,也降低了訓練時長。
21