國立高雄大學電機工程學系碩士班
碩士論文
植基於卷積神經網路之人群計數
Crowd Counting Based on Convolutional Neural
Network
研 究 生: 宋翊誠
指導教授: 賴智錦 博士
i
植基於卷積神經網路之人群計數
指導教授:賴智錦 博士 國立高雄大學電機工程學系 研究生:宋翊誠 國立高雄大學電機工程學系碩士班 摘要 隨著人口的增加,應用於視訊監控和異常警告的狀況下,在非常密集的人群 中進行人群計數是個重要的步驟;因此,人群計數是智慧安全監控中一個重要的 研究主題。本論文提出一種具卷積通道特徵之雙尺度完全卷積神經網路架構進行 人群計數。我們對於人群影像透過不同大小的卷積核提取人頭特徵,接續進行卷 積神經網路模型的建立與人群計數。從ShanghaiTech 影像資料庫和 UCF_CC_50 影像資料庫的實驗結果顯示,我們所提方法在人群計數上有不錯的效果。 關鍵字:人群計數、卷積神經網路、卷積通道特徵、雙尺度完全卷積神經網路ii
Crowd Counting Based on Convolutional Neural
Network
Advisor: Dr. Chih-Chin Lai Department of Electrical Engineering
National University of Kaohsiung Student: Yi-Cheng Sung Department of Electrical Engineering
National University of Kaohsiung
ABSTRACT
With the increase of population, crowd counting in extremely dense crowds is an important step for video surveillance and anomaly warning. Therefore, crowd counting is an important research topic for smart visual surveillance. In this paper, we propose a two-scale fully convolutional network with convolutional channel features for crowd counting. We extract head features by convolution kernel of different sizes from crowd images and then perform crowd counting by using convolutional neural network. Experimental results on ShanghaiTech dataset and UCF_CC_50 dataset are given to illustrate the feasibility of the proposed approach for crowd counting.
Keywords: Crowd counting, convolutional neural network, convolutional channel features, two-scale fully convolutional network
iii
誌謝
首先,由衷感謝我的指導教授賴智錦教授。回顧碩士兩年間,從幫助我提升 思維的嚴謹性與改善報告的能力,到指導我研究方向與論文的撰寫與修改,老師 都能夠耐心地從旁教導。老師在待人處事上的自我要求與嚴謹的態度,更是我效 法的榜樣。此外,感謝口試委員吳志宏教授、歐陽振森教授、和潘欣泰教授於本 論文的指正與建議,使論文更加完善。 感謝顯峻學長在我進入實驗室時教導我許多影像處理相關的知識。感謝柏豪 學長在百忙之中抽空解惑我在卷積神經網路上的疑問。感謝兩位學弟駿霖與秉和, 在我忙於研究的期間,分擔了許多實驗室的事情。也感謝在我就讀碩士期間不論 是幫助我課業上的同學們或是精神上不斷地為我加油打氣的朋友們。 最後,我要感謝我的父母,在就讀碩士期間給予我無限的支持與鼓勵,讓我 能夠心無旁鶩地專注在我的課業與研究上,對於家人為我付出的一切,再次衷心 的感謝!iv
目錄
摘要... i ABSTRACT ... ii 誌謝... iii 目錄... iv 圖目錄... v 表目錄... vi 第一章 緒論... 1 1.1 研究動機與目的... 1 1.2 研究方法與架構... 2 第二章 文獻探討... 4 2.1 基於模型分析方法... 5 2.2 基於軌跡集群分析方法... 6 2.3 基於卷積神經網路之人群計數方法... 7 第三章 研究方法... 11 3.1 人群計數系統... 11 3.2 人群計數... 12 3.2.1 基於密度圖的人群計數... 12 3.2.2 生成人群密度圖與人群計數... 13 3.3 卷積神經網路... 15 3.3.1 特徵融合卷積神經網路... 15 3.3.2 多列與多尺度網路架構... 17 3.3.3 具卷積通道特徵之雙尺度完全卷積神經網路... 18 3.4 損失函數... 21 第四章 實驗結果... 22 4.1 實驗環境... 22 4.2 人群影像資料庫... 23 4.3 實驗結果與分析... 26 4.3.1 實驗一... 28 4.3.2 實驗二... 29 4.3.3 實驗三... 31 4.3.4 實驗四... 32 第五章 結論與未來工作... 36 參考文獻... 38v
圖目錄
圖1.1:ShanghaiTech 資料庫中擁擠場景[2] ... 1 圖1.2:人群計數系統簡易流程圖 ... 3 圖3.1:本論文所提之人群計數系統流程圖 ... 12 圖3.2:不同擁擠程度之原始人群影像與相對應的人群密度圖及人數 ... 14 圖3.3:VGG-16_4-3 網路架構圖 ... 16 圖3.4:FF-CNN 網路架構圖[28] ... 16 圖3.5:多列的網路架構示意圖 ... 17 圖3.6:多尺度的網路架構示意圖 ... 18 圖3.8:具卷積通道特徵之雙尺度完全卷積神經網路架構圖 ... 19 圖4.1:Part_A 與 Part_B 人群計數直方圖[18] ... 24 圖4.2:ShanghaiTech 人群影像資料庫樣本 ... 24 圖4.3:UCF_CC_50 人群影像資料庫樣本 ... 25 圖4.4:五次交叉驗證示意圖 ... 27 圖4.4:ShanghaiTech 資料庫之人群密度圖估計 ... 34 圖4.5:UCF_CC_50 資料庫之人群密度圖估計 ... 34vi
表目錄
表2.1:基於模型分析技術文獻彙整 ... 6 表2.2:基於軌跡集群分析技術文獻彙整 ... 7 表2.3:基於卷積神經網路之人群計數分析技術文獻彙整 ... 10 表4.1:實驗環境 ... 22 表4.2:ShanghaiTech 資料庫資料一覽 ... 23 表4.3:UCF_CC_50 資料庫資料一覽 ... 25 表4.4:ShanghaiTech 資料庫在多列與多尺度架構下的效能比較 ... 28 表4.5:UCF_CC_50 資料庫在多列與多尺度架構下的效能比較 ... 28 表4.6:ShanghaiTech 資料庫在不同架構的平均訓練時間 ... 29 表4.7:UCF_CC_50 資料庫在不同架構的平均訓練時間 ... 29 表4.8:ShanghaiTech 資料庫在雙尺度架構下不同卷積核組合之效能評估 .... 30 表4.9:UCF_CC_50 資料庫在雙尺度架構下不同卷積核組合之效能評估 ... 30 表4.10:ShanghaiTech 資料庫在雙尺度與多尺度之效能評估 ... 31 表4.11:UCF_CC_50 資料庫在雙尺度與多尺度之效能評估 ... 31 表4.12:ShanghaiTech 資料庫在我們所提出方法之效率評估 ... 32 表4.13:UCF_CC_50 資料庫在我們所提出方法之效率評估 ... 32 表4.14:本論文所提方法與其他文獻在 ShanghaiTech 之效能評估 ... 33 表4.15:本論文所提方法與其他文獻在 UCF_CC_50 之效能評估 ... 331
第一章 緒論
1.1 研究動機與目的
隨著全球人口迅速的增長,高密度的人群休閒活動日益增加,例如:大型博 覽會、選舉造勢晚會、和演唱會等,使得公共場所的人群安全一直是一項重大且 困難的任務。在高密度人群聚集的場所,人群密度越高,越容易失控進而導致人 員大量的傷亡。為了避免群眾公安事件,在公共場所進行智慧化的人群分析,以 幫助預防和決策公安事件的突發狀況[1],已成為公共安全一個重點項目。 有別於傳統單靠人力長時間專注於監視螢幕上,因為視覺與精神上的疲勞降 低注意力,而無法第一時間對於突發狀況做出相對的應對處理,使用機器從影片 中準確估算出人群數量並應用於公共安全,更有利於第一時間對於突發事件的危 機處理與應對。而人群計數的方法也可應用至其他領域,例如:估計顯微鏡下的 細胞數量、在野生動植物保護區的動物群估計、亦或在交通樞紐或交通堵塞的車 輛數量估計等。 如今,人群計數與人群估計成為安全領域的熱門話題。但是,現有的人群監 視系統仍然有很多缺點,例如:受應用場景限制以及大規模擁擠的人群數量。特 別是對大規模擁擠的人群數量進行監控的環境(如圖 1.1 所示),如何提升計算該 環境中人群計數的效果,為本論文主要的研究目的。 圖1.1:ShanghaiTech 資料庫中擁擠場景[2]2
本論文研究目的是提出一個適用於擁擠場景的人群計數統計,並基於卷積神 經網路(convolutional neural network, CNN)架構。該架構需具有適應性強且對於人 群密集的場景有不錯的計數效果,使該架構最終能實際應用於人群擁擠的公共場 所監控系統中。
1.2 研究方法與架構
一般而言,透過卷積神經網路估算出影像中的人數有兩種方式:(1)輸入人群 影像,經由卷積神經網路處理後,直接輸出估計的人數。(2)輸入人群影像,經由 卷積神經網路處理後輸出人群密度圖,並顯示出人群密度圖影像中每個像素中涵 蓋的人頭位置,最後對於訓練後的人群密度圖中每個像素位置與真實標記的原始 人群密度圖以歐幾里德距離求得最終的人頭數。 採行上述第二種方式之人群計數系統主要程序區分為五個步驟。步驟一是透 過攝影機針對擁擠的場景取得人群影像。步驟二是對人群影像進行前處理,為了 準確統計每個人數,我們需將影像中每個人的頭部進行標記形成真實標記 (ground truth),以利於後續卷積神經網路的損失函數計算。步驟三是對人群影像 進行卷積神經網路訓練並產生特徵圖。步驟四是生成人群密度圖。將原始影像的 真實標記與卷積神經網路訓練後的特徵圖,分別產生人群密度圖。真實標記的人 群密度圖目的是為了計算卷積神經網路的損失函數,至於經由卷積神經網路訓練 後得到的人群密度圖則有兩個目的:其一,是為了得到人群計數統計,其二,則 是與真實標記的人群密度圖進行卷積神經網路的損失函數計算。步驟五是人群計 數統計。人群計數是根據前一步驟生成卷積神經網路訓練的人群密度圖,經由高 斯函數積分計算後可獲得人群總數量。系統流程如圖1.2 所示。3 圖1.2:人群計數系統簡易流程圖 上述步驟中,人群密度圖的好壞將決定人群計數的結果,而卷積神經網路訓 練是產生人群密度圖最重要的一部分;因此,如何設計一個具有生成較好的人群 密度圖的方法,是相當重要。為此,本論文提出具有卷積通道特徵之雙尺度完全 卷積神經網路架構,利用此技術擷取出人群影像中各種不同大小的頭部特徵,接 著將獲得的特徵資訊送交完全卷積神經網路進行模型訓練,最後將訓練後的特徵 資訊轉換為人群密度圖,並藉由高斯函數對於人群密度圖乘積後得到估算人數。 為了驗證所提方法的正確性與效能,我們以 ShanghaiTech 影像資料集[2]與 UCF_CC_50 影像資料集[3]進行相關的實驗。 本論文共分成五個章節,第一章概述研究動機與目的。第二章為相關技術及 文獻探討。第三章介紹本論文所提出之方法。第四章是測試本論文方法的效能及 相關實驗結果,並與其他方法的實驗進行數據之比較。第五章則是本篇論文總結, 及討論未來可改進的方向。 輸入人群 影像 影像前處理 卷積神經 網路訓練 生成人群 密度圖 計數結果
4
第二章 文獻探討
自動化人群密度估測和計數目的就是通過一定的方法,估算出整個影像或視 訊內人群的密集程度或個體數目,協助我們處理大量的人群監控數據,達到預防 事故發生,降低公共場所安全疑慮。自動化人群密度估測和計數儼然成為智慧安 全監控系統一個熱門的研究主題。 根據Saleh 等人[4]的研究,用於視覺監控的人群密度估測和計數方法大致可分為兩大類別:直接法(direct approach)與間接法(indirect approach)。
直接法又稱基於物體檢測(object detection based),此方法是針對所需檢測的 物體從影像或視訊透過方法細分出來,並加以統計數量。因為檢測方法不同又可
分為模型分析(model based analysis)與軌跡集群分析(trajectory clustering based
analysis)。模型分析是嘗試分割和檢測人群中每一個人,透過人體形狀或是頭部 數量,甚至利用相對距離判斷是否為人體與所在位置。至於軌跡集群分析則是由 每個個體的運動與行進模式,透過方法分析其軌跡進行集群分析並得到該人群的 確切人數。 間接法是從整體人群中提取多個特徵以取得人群密度分類的相關資訊,並且 將該資訊比對至人群密度等級。間接法依據擷取不同的特徵可以分為像素分析 (pixel based analysis)、紋理分析(texture based analysis)、與角點分析(corner point based analysis)。
近幾年來,深度學習成為視覺影像領域上研究的重點,其中研究關於人群密 度估測與計數領域同樣包含直接法與間接法,由於本論文所使用之方法屬於直接 法,故只對於直接法之相關技術進行探討。
5
2.1 基於模型分析方法
以模型分析嘗試分割和檢測人群中每個對象,大致可分為人體模型以及局部 模型進而分析確切人群數目。 全局模型:Leibe 等人[5]提出了一種透過隨機由上至下分割影像的行人檢測 系統,該方法結合人體外觀特徵的局部資訊與全局特徵,獲得一個人出現的可能 性,並藉以進行人群計數。Jones 和 Show[6]提出一種基於期望最大化(Expectation Maximization)公式的 視訊人群分割系統,首先該系統會先使用似然函數(likelihood function)對影像特 徵進行分區,該函數根據影像中潛在個體的形狀與位置進行參數化,並透過期望 最大化公式進行人群計數統計。該方法的缺點是對於系統的運算成本極大,適用 性較低。 Zhao[7]對於在擁擠的情況下人與人的遮擋使得模型分割和追蹤變得困難, 因此提出一個透過貝葉斯(Bayesian)架構假設將多個被遮擋的人物用來解釋影像 觀測結果。他們根據人體的外觀模型,將多個人體的身體定義為一個聯合影像, 並透過將遮擋的前景與背景分離以獲得該圖。最後,透過馬爾可夫鏈蒙特卡洛方 法(data-driven Markov chain Monte Carlo),確立該影像觀察的人群計數。
局部模型:Lin 等人[8]提出了一種基於小波模型和基於影像的人群計數方法。 他們將哈爾小波轉換用於頭部輪廓的特徵擷取,並使用支持向量機(support vector machine, SVM)處理,將其分類為是否為頭部輪廓,最後使用透視轉換技術統計 人群的數量,但是,該方法僅在頭部輪廓不清楚的影像中做測試,且計算量大。 Wu 和 Nevatia[9]提出對於視頻中的可能被部分遮擋的人物進行自動檢測和 追蹤行走或站立。透過增強邊緣特徵的檢測模型,並將檢測模型組合形成一個聯 合似然模型,並對可能的遮擋的身體部位進行分析。 基於模型分析之方法雖然對於密集程度較低的影像有不錯的計算能力,但面 臨複雜的場景與擁擠的人群時,計數能力則將大幅下降。為了更加瞭解基於模型
6 分析方法文獻的優缺點並進行分析比較,我們將2.1 小節的相關文獻依照年份進 行整理,並比較其優點,如表2.1 所示。 表2.1:基於模型分析技術文獻彙整 作者 方法 優點 年份 Leibe 等人[5] Jones 和 Snow[6] 全局模型 全局模型 將人體局部特徵結合全局特徵 建立期望最大化系統 2005 2005 Zhao[7] 全局模型 導入貝葉斯架構 2008 Lin 等人[8] 局部模型 使用哈爾小波轉換計算個體 2001 Wu 和 Nevatia[9] 局部模型 邊緣特徵增強結合似然模型 2007
2.2 基於軌跡集群分析方法
透過視訊中時間推移獲得人們的運動軌跡,並基於軌跡集群之方法來檢測人 群場景中每個個體獨立運動,然後,藉由個體運動軌跡的差異進一步預測人群個 數。Brostow 和 Cipolla[10]提出了非監督式的數據驅動貝葉斯集群算法,將檢測 單個實體作為主要目標。他們追蹤簡易的影像特徵,並概略地將個體分別代表獨 立移動的集群。但是,對於激烈運動的場所,該系統可能導致大量誤判。擁擠物 體的運動分析,必須對每個移動個體進行識別和細分,是一項艱難的任務,Rabaud和Belongie[11]提出一種基於高度並行化的 Kanade Lucas Tomasi 特徵追蹤器,可
用於視訊處理,並在影像空間和時間上對軌跡集群的方法進行調節,這種特徵追 蹤機制在處理遮擋和擁擠的場景且有更好的效果。Sidla 和 Brandle[12]則提出一 種運動檢測和追蹤系統,適用於非常擁擠的場合進行人群計數。他們使用人的頭 與肩膀區域(他們形容為Ω的形狀),並使用感興趣區域(region of interest)濾波器
過濾檢測個體,然後採用 Kanade Lucas Tomasi 特徵追蹤器和卡爾曼濾波器
7 Cheriyadat 等人[13]提出一種基於相關運動區域的對象檢測系統,該系統先以簡 易的特徵位置作為輸入,並生成一組獨立的相關運動區域作為輸出。當對象移動 時,追蹤的特徵點則會移動,在多物體移動的情況下,每個物體在周圍可建構許 多可能的相關運動區域。他們的方法是確認所有可能的相關運動區域,並提取總 體似然函數的最大化子集,同時將每個軌跡分配給最多一個的運動區域,藉此達 到個體追蹤並統計人數。但是,如果人們在同一地點保持不動,例如:站立或坐 著,這時會導致錯誤的個體檢測。 由上述文獻我們可以得知,基於軌跡集群分析之方法,非常仰賴物體合理的 運動軌跡,在物體激烈運動或是靜止狀態時,容易發生錯誤的個體檢測。為了更 加瞭解基於軌跡集群分析方法文獻的優缺點並進行分析比較,我們將2.2 小節的 相關文獻依照年份進行整理並比較其優點,如表2.2 所示。 表2.2:基於軌跡集群分析技術文獻彙整 作者 方法 優點 年份
Brostow 和 Cipolla [10] Bayesian 非監督式學習 2006
Rabaud 和 Belongie [11] KLT 可用於視訊處理 2006
Sidla 和 Brandle[12] 感興趣區域 適合非常擁擠場景 2006
Cheriyadat 等人[13] 相關運動 適合大規模移動場景 2008
2.3 基於卷積神經網路之人群計數方法
卷積神經網路(convolutional neural network, CNN)在許多計算機影像辨識中 有著不錯的效果,激勵了許多研究人員使用卷積神經網路學習將人群影像求得非 線性函數密度圖或相應的人群計數。Wang 等人[14]將卷積神經網路應用於人群
計數,他們採用Alexnet 網路架構[15],將具有 4096 個神經元的完全連接層改為
8
經網路應用於不同場景時將會嚴重的不適應,因此提出了一種數據驅動的方法針 對卷積神經網路進行微調。該方法避免了場景轉換時的重新訓練問題,但仍然需 要大量的訓練資料量,並且難以在一轉換場景時達到良好的水準。
受到多列深度類神經網路(multi-column deep neural networks, MDNN)[17]在 影像識別應用的啟發,Zhang 等人[18]提出了多列卷積神經網路(multi-column convolutional neural network, MCNN)將過去僅使用單一列的網路架構,更改為三 列並在最後進行特徵合併。透過具有不同大小的濾波器做出具有大、中、小三個 領域的特徵圖,最後將三者結合並透過高斯函數與歐幾里德距離計算出人數。 Sam 等人[19]則提出切換型卷積神經網路(switching convolutional neural network),
他們依然採用多列卷積神經網路的架構,並提出基於VGG-16 架構[20]的切換分
類器,用以選擇三列中最好的結果。但是,在切換的過程,對於計算成本上代價 非常大,且往往不夠精準。Zeng 等人[21]認為多列卷積神經網路需每列各自訓練 單列網路,最後再進行特徵合併,消耗過多的計算機資源,因此提出了多尺度卷 積神經網路(multi-scale convolutional neural network, MSCNN)提取與比例尺相關 的特徵。他們引入具有不同卷積核大小的多尺度斑點(multi-scale blob),類似 inception 模塊(inception module)[22]。Kumagai 等人[23]認為不同場景環境中預測 單一變量不足以正確預測行人個數,因此提出了一種混合 型卷積神經網路
(mixture ofconvolutional neural network, MoCNN),類似於多列卷積神經網路的概
念,他們將其做為專家卷積神經網路和閘控模型(gating model)混合結構,根據輸 入影像的背景自動選擇適應的專家卷積神經網路。在預測中,專家卷積神經網路 會估計影像中的人數,而閘控模型的部分則會預測每個專家卷積神經網路適當的 機率,這些機率將進一步做為加權參數。混合型卷積神經網路不僅可透過專家卷 積神經網路估計人數,更可通過閘控卷積神經網路訓練該結構。但是,此結構僅 能估算出人數,無法產生人群密度分布圖。
9
neural network, SaCNN)估計人群密度圖,透過多層提取特徵圖且使該圖具有相同 的輸出大小,獲得更準確地估計人數。
Tang 等人[25]提出了一個基於低階稀疏深度融合卷積神經網路(low-rank sparse deep-fusion convolutional neural network, LFCNN),該方法是將低階稀疏懲
罰應用於 GoogleNet[22]並採用回歸的方法以提高人群密度圖投影的準確性,藉
由較良好的人群密度圖進而得到更好的人群計數結果。Han 等人[26]提出組合卷
積神經網路和馬爾可夫隨機場 (convolutional neural network-Markov random field,
CNN-MRF),此方法含三個部分:首先使用深層殘差網路-152[27]提取特徵,再則 使用一個完全連接的神經網路進行計數回歸,最後使用馬爾可夫隨機場平滑局部
修補計數結果。透過局部相鄰修補的高相關性可以提高計數準確性。Luo 等人[28]
提出了特徵融合卷積神經網路(feature fusion convolutional neural network, FF-CNN),該方法採用 VGG-16 [20]做為中繼網路以獲得更豐富的特徵,並藉由反卷 積技術[29, 30]實現高階特徵與低階特徵的融合,將特徵融合卷積神經網路應用 在人群影像轉換成人群密度圖,藉此獲得良好的人群密度圖以利轉換後統計人群 數目。 由上述文獻我們可得知基於卷積神經網路之人群計數方法,在解決高密度人 群計數上有一定的突破,且越來越多的研究學者朝向使用該方法進行研究。為了 更加瞭解基於卷積神經網路之人群計數方法之文獻並進行分析比較,我們將 2.3 小節的相關文獻依照年份進行整理並比較其優點,如表2.3 所示。
10 表2.3:基於卷積神經網路之人群計數分析技術文獻彙整 作者 方法 優點 年份 Wang 等人[14] Alexnet 早期使用CNN 的學者 2015 Zhang 等人[16] Data-driven 可用於場景變換 2015 Zhang 等人[18] MCNN 採用三列網路架構 2016 Sam 等人[19] Switching CNN 使用切換模組選擇三列網 路架構中較好的數據 2017 Zeng 等人[21] MSCNN 引入多尺度斑點於 三列網路架構中 2017 Kumagai 等人[23] MoCNN 提出專家模組與閘控模組 組成混合型CNN 2017 Zhang 等人[24] SaCNN 上海數據集Part A MSE 降至 139.2 2017 Tang 等人[25] LFCNN 採用低階稀疏懲罰 應用於回歸方法 2017 Han 等人[26] CNN-MRF 結合殘差網路與 馬爾可夫隨機場 2017 Luo 等人[28] FF-CNN 透過單列架構進行高 階與低階的特徵合併 2018
11
第三章 研究方法
使用擁擠人群影像進行人群計數是本論文的研究目的。常見的人群計數方法 是透過卷積神經網路取得適合的人群密度圖(crowd density map),再將人群密度 圖進行積分,以獲得最後的人群個數統計。在人群計數的過程中,產生適當的人 群密度圖是相當重要的。產生合適的人群密度圖有利於最終的統計結果,若產生 不適當的人群密度圖,在統計的過程中可能會將背景資訊或是物件資訊當作人群 資訊,最後導致統計結果不佳。基於上述原因,本論文提出具卷積通道特徵之雙 尺度卷積神經網路以提取人群密度圖,該方法基於多列卷積神經網路[18]與特徵 融合卷積神經網路[28]進行結構改良。本章節將逐步介紹人群計數系統所使用的 相關技術,及本論文所提具卷積通道特徵之雙尺度完全卷積神經網路的方法。
3.1 人群計數系統
本論文所提出的人群密度圖生成的方法,主要是針對已進行過人頭標記的影 像數據集轉換成人群密度圖;因此,在生成人群密度圖之前,我們必須預先獲得 人群總數量以及人頭的標記位置,以利後續人群密度圖的生成與最終的人數統計。 我們的人群計數系統共分為三個階段,依序分別為: 1. 影像前處理 2. 卷積神經網路 3. 人群數量統計 第一階段的影像前處理主要是為了獲得正確的人頭位置與數量並產生真實 標記,而這些資訊會轉換為真實標記的人群密度圖,並與第二階段中透過卷積神 經網路訓練後產生的人群密度圖,進行第三階段的人群數量統計。本論文提出的 系統架構如圖3.1 所示,各階段所使用技術將在後續章節進行詳細說明。12 圖3.1:本論文所提之人群計數系統流程圖
3.2 人群計數
3.2.1 基於密度圖的人群計數
在1.2 小節中,我們提到基於卷積神經網路的人群計數有兩種方式,而我們 採用第二種方式的原因有以下兩點: 1. 人群密度圖保留更多訊息。人群密度圖具有影像中人群空間分佈的資訊, 這樣的分佈訊息有利於許多現實層面的應用,例如:如果影像中特定區 域的人群密度遠高於其他區域,表示該區域可能發生異常狀況。 2. 使用卷積神經網路生成人群密度圖時,網路架構中所使用的濾波器更適 合用來擷取不同尺寸的人頭特徵,進而提高後續人數統計的準確性。因 此,採用人群密度圖對於現實中因為不同角度的影像輸入以致於影響人 頭大小差異的問題,較容易克服。13
3.2.2 生成人群密度圖與人群計數
由於我們採用的是監督式學習,在訓練卷積神經網路時需要提供原始人群影 像的真實標記(ground truth),而訓練影像中的真實標記對於我們的方法能否準確 計算影像中人群的數目有著極重要的影響性。本小節將以文獻[28]為例,如何將 影像中標記的人頭影像轉換為人群密度圖。 假設原始人群影像或卷積神經網路訓練後的特徵圖中人頭部位在像素xi處, 為了將其兩者轉換為人群密度圖,我們將欲生成人頭位置於人群密度圖中設為 x 與標記的人頭位置x 相減,表示為增量函數i (
x−xi)
,上述所提及標記的人頭位 置,若是生成原始人群影像的人群密度圖則為真實標記,而若是生成卷積神經網 路訓練後的特徵圖之人群密度圖則為特徵圖中辨別為人頭位置的標記。對於原始 人群影像或是卷積神經網路訓練後的特徵圖中的N個標記總人頭數,可將其表 示成公式(1)所示。 1 ( ) ( ). N i i H x x x = =
− (1) 為了從人群密度圖中計算出人群數量,我們使用高斯函數與公式(1)相乘,如 公式(2)所示。 1 ( ) ( ) ( ), N i i F x x x G x = =
− (2) 其中 N 是標記總人頭數, 是高斯函數的變異數,該參數需根據影像中每個人的 頭部大小做調整。但是,在人群高度擁擠的場景中幾乎不可能依照每個個體的頭 部大小進行變動,因為我們很難準確的定義每顆頭部的大小。然而,文獻[16-21] 提及在人群擁擠的場景中所拍攝的影像,距離拍攝鏡頭較近的人頭較大,且人頭 與人頭之間的距離也比較大;反之,距離拍攝鏡頭較遠的人頭較小,其人頭與人 頭之間的距離也比較小;因此,我們將高斯變異數 調整為每個人頭之間的平均14 距離。 假設人群均勻分佈在每個人的人頭周圍,每個人頭與其k個鄰居之間的平均 距離可以提供可行的幾何畸變(geometric distortion)估計方法。對於影像中每個人 頭xi與其k個最近鄰居的距離分別為{ , 1 2, ..., } i i i k d d d ,因此,我們將平均距離設 為 i 1 k 1 i j j d d k = =
且設定 為初始的變異數,則密度函數如公式(3)所示。 1 ( ) ( ) ( ), i N i i F x x x G x = =
− (3) . i i d = (4) 對於參數,我們將參照多列卷積神經網路[18]所採用的 =0.3做為參數設定。 經由上述的方式所生成真實標記之人群密度圖及人數數量如圖3.2 所示。 原始影像 真實標記之人群密度圖:1111 人 原始影像 真實標記之人群密度圖:242 人 圖3.2:不同擁擠程度之原始人群影像與相對應的人群密度圖及人數15
3.3 卷積神經網路
擁擠的人群影像中包含許多資訊,例如:人物的遮擋、光線明暗度的變化、 影像的背景資訊及人物的陰影等,這些資訊量非常龐大。本論文皆採用高密度的 擁擠人群影像,而在場景中經常出現遮蔽物,例如:柵欄、樹木、旗子等等,如 果在辨識過程中採用了不適當的背景資訊,會造成人群計數的統計結果不佳。因 此,如何設計出一個適合表達人群的密度圖的架構是人群計數中非常重要的一環。 近年來廣受研究者使用的卷積神經網路是一項效能不錯的分類及統計的方 法,該方法避免了對影像與訊號複雜的前處理,可直接輸入原始影像與訊號獲得 較好的特徵。卷積神經網路普遍用於人臉辨識[32, 33]、醫學影像分析[34, 35]及 語音辨識[36, 37]等研究領域,受到廣泛應用之後,學者們紛紛提出許多改進卷積 神經網路架構的方法。本章節將介紹數種由卷積神經網路改良的架構,最後介紹 我們提出的網路架構,用以改良植基於卷積神經網路的人群計數效能。3.3.1 特徵融合卷積神經網路
VGG-16 網路架構[20]在影像分類競賽中取得了出色的成績,是個具有很強 的擴展性和泛化性能力的卷積神經網路。Luo 等人[28]則基於 VGG-16 網路架構 提出了特徵融合卷積神經網路(feature fusion convolutional neural network,FF-CNN)。VGG-16 的網路架構主要是採用3 3 的卷積核應用在堆疊的卷積層,與
採用 2 2 的最大池化層。由於過多的下採樣(down sampling)會導致較小的特徵圖
和較低的辨識率,為了獲得更好的人群密度圖,他們僅採用VGG-16 中前四組的
卷積與三組池化層的網路結構(在本論文中,我們稱之為 VGG-16_4-3),如圖 3.3 所示,其中每個卷積層左上角所顯示的數值代表所使用的卷積核數量。
16
圖3.3:VGG-16_4-3 網路架構圖
研究結果顯示卷積通道特徵(convolutional channel features, CCF)[39]可將單 列的網路架構中所需卷積通道的特徵資訊以進行特徵融合。受到此結論的啟發,
為了將經由pooling3 池化層前的 Conv3_3 卷積通道特徵與最後 Conv4_3 得到的
特徵圖進行融合,需透過上採樣(upsampling)技術結合了 Conv3_3 和 Conv4_3, 以獲得更豐富的特徵資訊,藉此得到更佳的人群密度圖。文獻[28]所提出的 FF-CNN 網路架構如圖 3.4 所示。 圖3.4:FF-CNN 網路架構圖[28] 在FF-CNN 的架構中,從 Conv1_1 到 Conv4_3 皆採用 3 3 的卷積核,卷積 步徑長為1 個單位,並且皆使用像素填充(padding)進行補零的動作,使得經過卷 積後的影像大小保有原始影像尺寸。在每個卷積層與池化層則使用線性整流函數 作為激活函數,而所有的池化層皆採用大小為 2 2 濾波器的最大池化層。由於的 特徵圖為原始影像大小的十六分之一,而 Conv4_3 的特徵圖比 Conv3_3 多經歷 了一次下採樣,導致與原始影像大小相差六十四分之一。為了達到 Conv3_3 和
17
Conv4_3 的特徵融合,在 Conv4_3 的後續加入了反卷積層(deconvolution)進行上
採樣,使其特徵圖尺寸大小與Conv3_3 相同並進行特徵融合。為了減少融合後的
特徵圖數量與增加模型的非線性,在特徵融合之後,增加了大小為3 3 的濾波器
與使用ReLU 激活函數的 Conv5_1 和 Conv5_2。最後,透過卷積大小為1 1 濾波
器將特徵圖轉換至人群密度圖,並進行人群密度圖積分獲得總體人數。
3.3.2 多列與多尺度網路架構
在一張擁擠的人群影像中,通常是由各種大小不一的人頭構成。由於單列的 卷積神經網路架構中通常僅使用相同大小的卷積核,很難對大小不一的人頭進行 處理;因此,可藉由多通道的網路架構提取不同大小的人頭特徵圖,使其成為提 升人群計數能力的方法。而多通道的網路架構又可分為多列的網路架構與多尺度 的網路架構。 多列的網路架構其發想來自於文獻[18]多列卷積神經網路(multi-column convolutional neural network, MCNN)網路架構,藉由三通道各自提取出原始影像 中大中小不同尺寸的人頭特徵,最後再將三個特徵進行合併至後續單列架構生成人群密度圖所需的特徵圖。多列的網路架構如圖3.5 所示。
18 由於多列的網路架構需將一張原始影像分別至三個不同的通道各自訓練,其 做法將消耗過多的計算機資源導致訓練時間過長。為了避免計算機資源的浪費, 又能提取到不同大小的人頭特徵,文獻[21]中提出多尺度(multi-scale)的網路架構, 如圖3.6 所示。 在多尺度與多列的網路架構中,其最主要的差異在於原始人群影像是否先經 過單列進行特徵擷取;因此,在網路架構中前端單列的提取特徵資訊好壞將影響 後續的結果。我們將對多尺度的網路架構進一步的研究與分析,並提出我們改善 後的網路架構。 圖3.6:多尺度的網路架構示意圖
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
3.4 損失函數
在2.3 小節裡所提到的每種人群計數方法,例如:MCNN、Switching CNN 及 FF-CNN 等,其最後結尾皆採用1 1 大小的濾波器,目的是將特徵圖轉換為單一 張的人群密度圖。人群密度圖除了可以計算人群數量外,亦可做為卷積神經網路 在訓練時的損失函數運算的組成成分之一,損失函數的數值最小化為卷積神經網 路在訓練時最佳化的目標。 人群計數主題中,一般將卷積神經網路訓練後所生成的人群密度圖中人頭位 置與真實標記的人群密度圖中人頭位置,使用歐幾里得距離(Euclidean distances) 做為卷積神經網路中的損失函數。透過歐幾里得距離我們可以得知卷積神經網路 訓練後的人群密度圖,與真實標記的人群密度圖之間的相關性,該關係如公式(5) 所示。 2 2 1 1 ( ) ( ; ) , 2 N i i i L F X D N = =
− (5) 其中 是在卷積神經網路中需學習的參數,N是訓練影像的總數,Xi為輸入影像, i D 為相對應的真實標記之人群密度圖。F X( i; ) 是對於訓練影像Xi透過 參數化 並藉由卷積神經網路訓練並生成的人群密度圖。由於卷積神經網路在訓練的過程 中有可能會將背景資訊,例如:樹木、房子等,誤判為人頭,透過F X( i; ) −Di可 表示Xi的人群密度圖中正確估計的人數。22
第四章 實驗結果
本章節中,我們首先介紹實驗環境與實驗所使用的人群影像資料庫,並依據 我們所提出之人群計數方法進行實驗與分析,其中包括:多列架構與多尺度架構 的比較、後端雙尺度結構比較、多尺度架構與雙尺度架構的比較,最後,與其它 論文所提之人群計數方法的實驗數據進行比較。4.1 實驗環境
本論文以一台六核心的電腦進行所有相關實驗。我們選用搭載 2560 CUDAcores 的 NVIDIA GeForce RTX 2070 Super 顯示卡進行 GPU-CNN 之實驗,並搭配 16GB 的記憶體。在相關程式的撰寫開發方面,我們採用 Anconda3 Jupyter Note book、Python 3.5.6、Keras 2.2.5 及 Tensorflow-GPU 1.14.0 撰寫實驗所需的程式。
所有實驗使用到的軟硬體資訊整理如表4.1 所示。
表4.1:實驗環境
CPU Intel Core i7-8700 CPU @3.20GHz
記憶體 8GB × 2
顯示卡
NVIDIA GeForce RTX 2070 Super
CUDA cores 2560
程式開發軟體 Anconda3 Jupyter Note book
23
4.2 人群影像資料庫
為 了 驗 證 本 論 文 所 提 方 法 之 效 能 , 我 們 採 用 ShanghaiTech[2] 和 UCF_CC_50[3]兩個人群影像資料庫做為測試的對象,這兩個資料庫已經被諸多 研究人員廣泛的應用在人群計數的研究中。 ShanghaiTech 人群影像資料庫是由 Zhang 等人建立於 2016 年,是上海科技 大學免費提供給研究人員作為實驗用途的標準資料庫。該資料庫的實驗者為上海 科技大學的學生及工作人員,資料庫內的影像樣本中,除了有不同人群密度級別 的影像,更具有不同的複雜場景。ShanghaiTech 人群影像資料庫分為 Part_A 與 Part_B 兩部份共 1198 張影像,總人數為 330,165 人,每張影像皆附有頭部真實 標記的檔案。Part_A 資料庫中包含 482 張影像,其中,300 張為訓練集影像,182 張為測試集影像,人群影像來源皆從網際網路中隨機選擇影像所組成的資料庫。 而Part_B 資料庫中包含 716 張影像,其中,400 張為訓練集影像,316 張為測試 集影像,影像來源擷取自上海繁忙街道的人群影像。ShanghaiTech 人群影像資料 庫的詳細資訊如表4.2 所示。由圖 4.1 可見兩個資料庫之間的人群密度差異極大,Part_A 的資料庫相較於 Part_B 資料庫含有更擁擠的人群影像。ShanghaiTech 兩
個不同資料庫的人群影像樣本如圖4.2 所示。
表4.2:ShanghaiTech 資料庫資料一覽
資料庫 影像尺寸 影像張數 最多人數 最少人數 平均人數 總人數
Part_A 不一致 482 3,139 33 501.4 241,677
24 圖4.1:Part_A 與 Part_B 人群計數直方圖[18] (a) Part_A 人群影像樣本 (b) Part_B 人群影像樣本 圖4.2:ShanghaiTech 人群影像資料庫樣本 為了增加用於訓練具卷積通道特徵之雙尺度完全卷積神經網路方法的訓練 集,我們將每張影像隨機剪裁成9 個大小為原始影像四分之一的擴充影像,使得 Part_A 訓練集影像擴充至 300 9 2700 = 張影像,Part_B 訓練集影像則擴充至 400 9 =3600張影像。此外,除了訓練集與測試集之外,我們亦在訓練的過程中 加入驗證集,以利於我們在訓練的過程中觀察是否有異狀的發生。各驗證集的影 像來自於各訓練集總張數的十分之一,並且與訓練集相同皆採用隨機剪裁成9 個 大小為原始影像四分之一的擴充影像,Part_A 驗證集影像總張數為 270 張,Part_B
25 則為360 張。 UCF_CC_50 人群影像資料庫是由 Idress 等人建立於 2013 年,是美國佛羅里 達大學免費提供給研究人員作為實驗用途的標準資料庫,其詳細資訊如表4.3 所 示。該資料庫影像拍攝自各種場景,例如:音樂會、政治集會、宗教聚會與體育 館等,是較早期採用高密度人群影像應用於人群計數領域中。從表4.3 中,我們 可以看到UCF_CC_50 總張僅有 50 張,卻提供總人數高達 63,974 的人頭真實標 記檔。這是一個非常具有挑戰性的數據集,因為不僅影像張數有限,而且人數眾 多,影像的人數差距變化也相當大。影像中人數的數量範圍介於 94 至 4,543 之 間,每張影像平均包含1,280 個人,其平均人數與單張最多人數皆為現階段人群 計數領域中最多的資料庫。UCF_CC_50 不同場景與高密集人群樣本影像如圖 4.3 所示。 表4.3:UCF_CC_50 資料庫資料一覽 影像尺寸 影像張數 最多人數 最少人數 平均人數 總人數 不一致 50 4,543 94 1,280 63,974 圖4.3:UCF_CC_50 人群影像資料庫樣本 由於該資料庫並無區分訓練集與測試集,為了客觀分析我們所提出的方法, 我們將進行K 次交叉驗證(K-fold cross-validation),並且我們採用文獻[3, 16, 42,
26 43]的標準配置,使用 5 次交叉驗證。因為 UCF_CC_50 資料庫所具有的影像資料 量極少,我們參考文獻[21, 43]的做法將分好五等分的影像資料,每張影像隨機剪 裁成36 張大小為 225 225 的影像,使得總影像資料量擴增至10 36 5 1800 = 張 影像。
4.3 實驗結果與分析
本節將介紹我們所進行之四項實驗,以測試本論文所提方法之效能。在實驗 一,我們將比較多列架構與多尺度架構的人群計數效能,同時探討兩架構平均每 次迭代生成模型所需時間長度。在實驗二,我們將 CCF 想法加入到 VGG-16 與 雙尺度中,並探討我們所提的方法在雙尺度架構中使用不同的卷積核參數組合對 於人群計數結果的影響,找出最佳卷積核參數組合。在實驗三中,我們將最佳卷 積核參數的組合和使用CCF 及未使用 CCF 的多尺度架構進行比較,以驗證我們 的方法性能較佳。實驗四則與其他相關論文進行比較,以驗證我們所提方法對於 人群計數的性能。 為了更客觀的分析我們所提方法之效能,本論文的實驗皆使用人群計數領域 中較多研究學者[18-24]使用的評估指標:平均平方誤差(mean square error, MSE) 與平均絕對誤差(mean absolute error, MAE),兩者定義如公式(6)與(7)所示。2 1 1 ˆ ( ) , N i i i MSE z z N = =
− (6) 1 1 ˆ , N i i i MAE z z N = =
− (7) 其中,N 為測試影像的數量,z 代表原始影像的真實人數,ˆi z 則代表估計的人數。i 當 MSE 與 MAE 求得的數值越小表示人群數量統計越精準。 五次交叉驗證的方式是將影像資料分成五等分,每次僅選取一份資料做為測27 試集資料,其餘四份資料做為訓練集資料,完成訓練後使用測試集資料進行人群 數量預測,預測的評估指標為上述提及 MSE 與 MAE。重複五次上述動作,直到 每一份影像資料皆被選為測試集資料後,將五次的 MSE 與 MAE 進行加總並取 得平均值,即為該次人群計數的辨識結果。兩者指標的整體結果如公式(8)、(9)所 示,圖 4.4 為五次交叉驗證示意圖。 5 1 1 5 AVG i i MSE MSE = =
(8) 5 1 1 5 AVG i i MAE MAE = =
(9) 圖4.4:五次交叉驗證示意圖 各實驗中,我們參考了文獻[18]對於公式(4)的 值設置為 0.3。訓練的過程 中,我們採用的梯度下降法為 Adam 參數設置為 0.0001。在 ShanghaiTech 資料庫 中,Part_A 迭代次數為 150 次,Part_B 迭代次數為 100 次,兩個資料集的訓練集 與驗證集皆採用批次大小(batch size)參數設為 1。在 UCF_CC_50 資料庫中,我 們將迭代次數設為 200 次,批次大小參數設為 1 進行訓練。28
4.3.1 實驗一
卷積神經網路採用多列架構或多尺度架構為本實驗中最重要的步驟之一,而 兩者的優劣將對最終人群計數結果產生直接的影響;因此,在進行後續實驗之前, 我們先對多列架構與多尺度架構進行效能的比較。本實驗多列架構與多尺度架構 在單列架構中我們採用 VGG16_4-3,而三通道架構我們採用 MCNN。實驗結果 如表4.4 及 4.5 所示。 表4.4:ShanghaiTech 資料庫在多列與多尺度架構下的效能比較 方法 Part_A Part_BMSE MAE MSE MAE
多列架構 198.4 132.1 37.8 25.1 多尺度架構 164.5 108.4 34.2 23.6 表4.5:UCF_CC_50 資料庫在多列與多尺度架構下的效能比較 方法 MSE MAE 多列架構 512.2 388.7 多尺度架構 487.7 371.3 由表4.4 和 4.5 實驗結果得知,我們可以發現到不管是在 ShanghaiTech 資料
庫或 UCF_CC_50 資料庫,多尺度架構比多列架構在評估指標 MSE 或 MAE 上 更都適合用於人群計數統計中。此外,我們也將兩個資料庫分別對於兩個架構進
29 表4.6:ShanghaiTech 資料庫在不同架構的平均訓練時間 方法 模型平均訓練時間(sec) Part_A Part_B 多列架構 71.6 108.5 多尺度架構 66.2 98.3 表4.7:UCF_CC_50 資料庫在不同架構的平均訓練時間 方法 模型平均訓練時間(sec) 多列架構 139.1 多尺度架構 123.6 觀察表4.6 與表 4.7 的實驗數據可以得知,由於多列架構是將影像分別各自 三通道訓練後,再進行特徵結合並進行後續訓練與生成人群密度圖,這樣的方式 明顯比多尺度先進行單列處理後再進行後續三通道訓練,在平均訓練時間上慢上 許多。綜合以上效能與效率的比較結果,應用多尺度網路架構相較於多列網路架 構於人群計數確實較為可行。
4.3.2 實驗二
在實驗一中,我們得知多尺度架構不論是在評估指標或在平均訓練時間上, 皆比多列架構來的優秀。為了更加提升我們方法的人群計數效能,我們將多尺度 架構調整為雙尺度架構,並找出最適合用於本論文雙尺度的兩列卷積核參數組合。 此外,我們將文獻[28]所採用的 CCF 觀念加入到 VGG-16_4-3 中,並與雙尺度架 構進行特徵融合。在實驗二,我們將進行具卷積通道特徵之雙尺度完全卷積神經 網路的雙尺度卷積核參數比較。由於卷積核的大小會影響我們對於人頭大小差異 的特徵提取,卷積核太大可能會因為包含太多非必要的細節資訊而導致統計人數30 的性能下降,卷積核太小則可能失去完整的人頭特徵資訊,因此選擇合適的卷積 核大小才能使具卷積通道特徵之雙尺度完全卷積神經網路的性能達到理想。相關 實驗數據如表4.8 及 4.9 所示。 表4.8:ShanghaiTech 資料庫在雙尺度架構下不同卷積核組合之效能評估 卷積核組合 Part_A Part_B
MSE MAE MSE MAE
11 11 與9 9 146.3 98.2 32.5 20.4 9 9 與 7 7 130.3 85.2 30.4 18.1 9 9 與 5 5 143.6 96.8 33.7 21.8 7 7 與 5 5 150.9 99.7 34.0 21.9 表4.9:UCF_CC_50 資料庫在雙尺度架構下不同卷積核組合之效能評估 卷積核組合 MSE MAE 11 11 與9 9 457.5 359.2 9 9 與 7 7 430.7 310.6 9 9 與 5 5 476.3 369.1 7 7 與 5 5 489.6 373.9 由於我們方法的前端單列的網路架構會將較小的人頭特徵資訊,與後端兩列 網路架構所產生的特徵資訊進行特徵融合,而根據表4.8 與 4.9 的實驗結果發現, 具卷積通道特徵之雙尺度完全卷積神經網路在 9 9 與 7 7 的卷積核組合中在評 估指標 MSE 或 MAE 上都更適合用於人群計數統計中。因此,我們選擇了 9 9 與 7 7 的卷積核組合做為我們雙尺度架構中用以提取較大與適中人頭特徵資訊 的核心。
31
4.3.3 實驗三
在實驗二中,我們得知具卷積通道特徵之雙尺度完全卷積神經網路中較佳的 卷積核組合,在實驗三,則是將第一項實驗中提到的單純使用VGG-16_4-3 的多 尺度網路架構與透過文獻[28]所採用的 CCF 觀念加入到 VGG-16_4-3 中,並與多 尺度架構進行特徵融合。並驗證我們的方法與上述提及的兩項多尺度架構,透過 評估指標比較雙尺度架構是否優於多尺度架構。相關實驗數據如表 4.10 及 4.11 所示。 表4.10:ShanghaiTech 資料庫在雙尺度與多尺度之效能評估 方法 Part_A Part_BMSE MAE MSE MAE
未使用卷積通道特徵之 多尺度架構 164.5 108.4 34.2 23.6 使用卷積通道特徵之 多尺度架構 142.8 96.3 33.1 21.2 具卷積通道特徵之雙尺度 完全卷積神經網路 130.3 85.2 30.4 18.1 表4.11:UCF_CC_50 資料庫在雙尺度與多尺度之效能評估 方法 MSE MAE 未使用卷積通道特徵之 多尺度架構 487.7 371.3 使用卷積通道特徵之 多尺度架構 475.2 368.6 具卷積通道特徵之雙尺度 完全卷積神經網路 430.7 310.6 不論是在多尺度架構或是雙尺度架構中,如果皆採用VGG-16_4-3 作為前端
32 單列的網路架構,我們可以由表4.10 與 4.11 的實驗結果看出,結合 CCF 於 VGG-16_4-3 中,對於評估結果有其一定的影響。而具卷積通道特徵之雙尺度完全卷積 神經網路採用雙尺度架構避免了多尺度對於較小人頭特徵資訊上過於深入擷取, 導致失去完整的人頭特徵資訊,使得具卷積通道特徵之雙尺度完全卷積神經網路 的評估指標MSE 或 MAE 皆優於其他兩種卷積網路架構。 由於我們所提出之方法總參數量為高達11,007,403,因此,應用在兩個不同 資料庫的訓練時間與測試時間如表4.12 與表 4.13 所示。 表4.12:ShanghaiTech 資料庫在我們所提出方法之效率評估 方法 Part_A Part_B 訓練時間 (sec) 測試時間 (sec) 訓練時間 (sec) 測試時間 (sec) 具卷積通道特徵 之雙尺度完全卷 積神經網路 約10,500 約90 約10,700 約105 表4.13:UCF_CC_50 資料庫在我們所提出方法之效率評估 方法 訓練時間(sec) 測試時間(sec) 具卷積通道特徵 之雙尺度完全卷 積神經網路 約30,000 約120
4.3.4 實驗四
為了證明我們所提之方法在人群計數的問題上有著不錯的計數效果,本實驗 將我們所提出之方法和其他文獻進行比較,詳細比較數據如表 4.14 及 4.15 所示。 為了使比較的過程更為客觀,我們將和採用相同資料庫與使用人群密度圖的相關 文獻進行評估指標的比較。由實驗三的結果得知,我們的方法在 ShanghaiTech33
Part_A 的最佳 MSE 與 MAE 分別是 130.2 及 85.2,Part_B 的最佳 MSE 與 MAE 分別為 30.4 及 18.1,而 UCF_CC_50 我們經過五次交叉驗證後獲得的最佳的平 均 MSE 與 MAE 分別為 430.7 與 310.6,我們以前述數據作為本論文所提方法的 效能代表。 表4.14:本論文所提方法與其他文獻在 ShanghaiTech 之效能評估 方法 Part_A Part_B
MSE MAE MSE MAE
MCNN[18] 173.2 110.2 41.3 26.4 CMTL[44] 152.4 101.3 31.1 20 Switching CNN[19] 135 90.4 33.4 21.6 SaCNN[24] 139.2 86.8 25.8 16.2 FF-CNN[28] 138.8 81.75 26.2 16.4 Ours 130.3 85.2 30.4 18.1 表4.15:本論文所提方法與其他文獻在 UCF_CC_50 之效能評估 方法 MSE MAE MCNN[18] 509.1 377.6 MoCNN[23] 493.3 361.7 Switching CNN[19] 439.2 318.1 SaCNN[24] 424.8 314.9 Ours 430.7 310.6
34
Original Ground truth:1111
(a) Part_A 人群影像樣本
Estimation:1073
Original Ground truth:242
(b) Part_B 人群影像樣本
Estimation:257
圖4.4:ShanghaiTech 資料庫之人群密度圖估計
Original Ground truth:1565 Estimation:1782
圖4.5:UCF_CC_50 資料庫之人群密度圖估計
雖然本論文提出的方法和其他文獻在實驗中的實驗環境設定、人群影像張數、 訓練的部分參數略有不同,若直接比較相關數據未必公正客觀,但是實驗的結果
35 據中可以發現,我們所提之方法相較於其他方法,我們除了保有提取不同大小的 人頭特徵資訊外,我們更結合了卷積通道特徵與多尺度的觀念,使得我們在相關 的評估指標中仍可獲得較為滿意的人群計數結果。此外,我們可以從圖 4.4 與圖 4.5 看出,儘管原始影像在背景和人群擁擠程度方面有很大的變化,但我們的方 法仍然可以生成合適的人群密度圖以及估算出較接近原始的人群數量。由此可知, 我們在人群計數的問題上,確實提供了一個值得參考的解決方法。
36
第五章 結論與未來工作
人群計數的目的在於透過電腦判定監視影像畫面其人群數量,進而控管人數 限制及預防公共危險。人群計數系統具有自動統計即時人數,無須人為介入監視 等優勢,使得國內外學者與各國政府部門相當重視該技術的發展。隨著全世界人 口不斷地成長與不同的消費習性快速地發展,人們進行大規模的休閒活動也日漸 增長,強化人群擁擠場所的安全監控變得非常重要。人群計數系統可以應用於造 勢晚會、演唱會、與人們的遊行街景等場所,成為一種新型態的公共安全預防系 統。 擁擠的人群影像中包含許多複雜的資訊,例如:各影像環境的差異,不同天 氣產生的光線差異,甚至在相同影像中,擁擠的場合導致人與人之間所產生互相 遮擋,皆會影響到人數統計結果。因此,使用電腦進行自動化人群計數的困難度 極高,如何從擁擠的人群影像中找出有利於統計人數的特徵變得相當重要。在擷 取人頭特徵方面,如果卷積核過大所擷取到的特徵,會因為訓練時包含太多非必 要的資訊導致統計人數的效能下降,如果卷積核過小所擷取到的特徵,則可能會 失去完整的人頭特徵資訊,進而導致人數的誤判。有鑑於此,本論文提出一種解 決上述情況的卷積神經網路架構,稱為具卷積通道特徵之雙尺度完全卷積神經網 路,訓練時透過三種不同卷積核擷取擁擠人群影像中的特徵資訊,最後生成人群 密度圖並與真實標記圖進行人數統計,實驗結果顯示,本論文所提出之方法確實 可以擁有不錯的人數統計結果。 針對本論文所提出之方法,未來主要的研究重點有: 1. 在人群影像標記階段,我們可以從文獻得知,進行人群計數的研究,幾乎採 同一個真實標記檔;也就是在同樣的真實人頭標記的條件下,進行卷積神經 網路的訓練。為了客觀地與其他文獻進行比較,所以,本論文並未考慮重新 標記各人頭的位置進而生成新的人頭標記檔,未來可以嘗試將人頭重新標記 後進行相關方法的設計與探究。37 2. 我們所提出的具卷積通道特徵之雙尺度完全卷積神經網路中,在後端的兩通 道卷積核參數是參考MCNN 所提出之卷積核參數大小,未來可嘗試採用不同 架構所建議的卷積核參數。 3. 我們實驗中所採用的 UCF_CC_50 資料庫進行模型訓練與測試皆使用同一個 資料庫,未來可以嘗試跨影像資料庫,建立更良好的人群計數系統。 4. 在我們的方法裡,我們採用隨機剪裁原始影像進行資料擴增,未來我們可重 新設計訓練集的資料擴增方式,使得各種不同大小的人頭影像都能獲得訓練, 以增進模型的估算能力。 5. 由於我們對於還原影像尺寸所選擇的方法與真實數值相比效果較差,未來可 採用不同還原影像尺寸的方法,藉此改善整體效能。
38
參考文獻
[1] B. Zhan, D. N. Monekosso, P. Remagnino, S. A. Velastin, and L. Q. Xu, “Crowd analysis: a survey,” Machine Vision and Applications, vol. 19, pp. 345-357, 2008.
[2] ShanghaiTech Benchmark Data.
available at https://svip-lab.github.io/dataset/campus_dataset.html.
[3] H. Idress, I. Saleemi, C. Seibert, and M. Shah, “Multi-source multi-scale counting in extremely dense crowd images,” in Proc. IEEE Conference on Computer Vision
and Pattern Recognition, 2013, pp. 2547-2554.
[4] S. A. M. Saleh, S. A. Suandi, and H. Ibrahim, “Recent survey on crowd density estimation and counting for visual surveillance,” Engineering Applications of
Artificial Intelligence, vol. 41, pp. 103-114, 2015.
[5] B. Leibe, E. Seemann, and B. Schiele “Pedestrian detection in crowded scenes,” in Proc. IEEE Conference on Computer Vision and Pattern Recognition, 2005, vol. 1, pp. 878-885.
[6] M. J. Jones and D. Snow, “Pedestrian detection using boosted features over many frames,” in Proc. 19th International Conference on Pattern Recognition, 2008, pp. 143-152.
[7] T. Zhao, “Segmentation and tracking of multiple humans in crowded environments,” IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 30,
no. 7, pp. 1198-1211, 2008.
[8] S. F. Lin, J. Y. Chen, and H. X. Chao, “Estimation of number of people in crowded scenes using perspective transformation,” IEEE Trans. Systems, Man, and
Cybernetics - Part A: Systems and Humans, vol. 31, no. 6, pp. 645-654, 2001.
[9] B. Wu and R. Nevatia, “Detection and tracking of multiple, partially occluded humans by Bayesian combination of edgelet based part detectors,” International
Journal of Computer Vision, vol. 75, no. 2, pp. 247-266, 2007.
[10] G. J. Brostow and R. Cipolla, “Unsupervised bayesian detection of independent motion in crowds,” in Proc. IEEE Conference on Computer Vision and Pattern
Recognition, 2006, pp. 594-601.
[11] V. Rabaud and S. Belongie, “Counting crowded moving objects,” in Proc. IEEE
Conference on Computer Vision and Pattern Recognition, 2006, pp. 705-711.
[12] O. Sidla and N. Brandle, “Pedestrian detection and tracking for counting applications in crowded situations,” in Proc. IEEE International Conference on
Video and Signal Based Surveillance, 2006, pp. 1-7.
[13] A. M. Cheriyadat, B. L. Bhaduri, and R. J. Radke, “Detecting multiple moving objects in crowded environments with coherent motion regions,” in Proc. IEEE
1-39
8.
[14] C. Wang, H. Zhang, L. Yang, S. Liu, and X. Cao, “Deep people counting in extremely dense crowds,” in Proc. The 23rd ACM International Conference on
Multimedia, 2015, pp. 1299-1302.
[15] A. Krizhevsky, I. Sutskever, and G. E. Hinton, “ImageNet classification with deep convolutional neural networks,” in Proc. The Advances in Neural Information
Processing Systems, 2012, pp. 1097-1105.
[16] C. Zhang, H. Li, X. Wang, and X. Yang, “Cross-scene crowd counting via deep convolutional neural networks,” in Proc. IEEE Conference on Computer Vision
and Pattern Recognition, 2015, pp. 833-841.
[17] D. Ciresan, U. Meier, and J. Schmidhuber, “Multi-column deep neural networks for image classification,” in Proc. IEEE International Conference on Computer
Vision and Pattern Recognition, 2012, pp. 3642-3649.
[18] Y. Zhang, D. Zhou, S. Chen, S. Gao, and Y. Ma, “Single-image crowd counting via multi-column convolutional neural network,” in Proc. IEEE International
Conference on Computer Vision and Pattern Recognition, 2012, pp. 589-597.
[19] D. B. Sam, S. Surya, and R. V. Babu, “Switching convolutional neural network for crowd counting,” in Proc. IEEE Conference on Computer Vision and Pattern Recognition, 2017, pp. 5744-5752.
[20] K. Simonyan and A. Zisserman, “Very deep convolutional networks for large scale image recognition,” in Proc. International Conference on Learning
Representations, 2015, pp. 1-14.
[21] L. Zeng, X. Xu, B. Cai, S. Qiu, and T. Zhang, “Multi-scale convolutional neural networks for crowd counting,” in Proc. IEEE International Conference on Image
Processing, 2017, pp. 1-5.
[22] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich, “Going deeper with convolutions,” in Proc. IEEE
Conference on Computer Vision and Pattern Recognition, 2015, pp. 1-9.
[23] S. Kumagai, K. Hotta, and T. Kurita, “Mixture of counting CNNs: adaptive integration of CNNs specialized to specific appearance for crowd counting,”arXiv: 1703.09393v1, 2017.
[24] L. Zhang, M. Shi, and Q. Chen, “Crowd counting via scale-adaptive convolutional neural network,” in Proc. IEEE Winter Conference on Applications of Computer
Vision, 2018, pp. 1113-1121.
[25] S. Tang, Z. Pan, and X. Zhou, “Low-rank and sparse based deep-fusion convolutional neural network for crowd counting,” Mathematical Problems in Engineering, vol. 2017, Article ID 5046727, 11 pages, 2017.
40
neural network and Markov random field,” Journal of Advanced Computational
Intelligence and Intelligent Informatics, vol. 21, no. 4, pp. 632-638, 2017.
[27] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” in Proc. IEEE Conference on Computer Vision and Pattern Recognition, 2016, pp. 770-778.
[28] H. Luo, J. Sang, W. Wu, H. Xiang, Z. Xiang, Q. Zhang, and Z. Wu, “A high-density crowd counting method based on convolutional feature fusion,” Applied Sciences, vol. 8, no. 12, pp. 1-12, 2018.
[29] M. D. Matthew, D. Krishnan, G. W. Taylor, and R. Fergus, “Deconvolutional networks,” in Proc. IEEE International Conference on Computer Vision and
Pattern Recognition, 2010, pp. 2528-2535.
[30] M. D. Matthew and R. Fergus, “Deconvolutional networks,” in Proc. The European Conference on Computer Vision, 2014, pp. 818-833.
[31] V. Lempitsky and A. Zisserman, “Learning to count objects in images,” in Proc.
Advances in Neural Information Processing Systems, 2010, pp. 1324-1332.
[32] S. Lawrence, C. L. Giles, A. C. Tsoi, and A. D. Back, “Face recognition: a convolutional neural-network approach,” IEEE Transactions on Neural Networks, vol. 8, no. 1, pp. 98-113, 1997.
[33] M. Matsugu, K. Mori, Y. Mitari, and Y. Kaneda, “Subject independent facial expression recognition with robust face detection using a convolutional neural network,” Neural Networks, vol. 16, no. 5-6, pp. 555-559, 2003.
[34] W. Xie, J. A. Noble, and A. Zisserman, “Microscopy cell counting and detection with fully convolutional regression networks,” Computer Methods in
Biomechanics and Biomedical Engineering: Imaging & Visualization, pp.
283-292, 2016.
[35] N. Tajbakhsh, J. Y. Shin, R. T. Hurst, B. Kendall, M. B. Gotway, and J. Liang, “Convolutional neural networks for medical image analysis: full training or fine tuning?,” IEEE Transactions on Medical Imaging, vol. 35, no. 5, pp. 1299-1312, 2016.
[36] O. A. Hamid, A. R. Mohamed, H. Jiang, L. Deng, G. Penn, and D. Yu, “Covolutional neural networks for speech recognition,” IEEE/ACM Transactions
on Audio and Language Processing, Vol. 22, no. 10, pp. 1533-1545, 2014.
[37] J. T. Huang, J. Li, and Y. Gong, “An analysis of convolutional neural networks for speech recognition,” in Proc. IEEE international Conference on Acoustices,
Speech and Signal Processing (ICASSP), 2015, pp. 4989-4993.
[38] M. D. Zeiler, M. Ranzato, R. Monga, M. Mao, K. Yang, Q. V. Le, P. Nguyen, A. Senior, V. Vanhoucke, J. Dean, and G. E. Hinton, “On rectified linear units for speech processing,” in Proc. IEEE international Conference on Acoustices,
41
Speech and Signal Processing (ICASSP), 2013, pp. 3517-3521.
[39] B. Yang, J. Yan, Z. Lei, and S. Z. Li, “Convolutional channel features,” in Proc.
IEEE International Conference on Computer Vision, 2015, pp. 82-90.
[40] J. Long, E. Shelhamer, and T. Darrell, “Fully convolutional networks for semantic segmentation,” in Proc. IEEE Conference on Computer Vision and Pattern
Recognition, 2015, pp. 3431-3440.
[41] M. Marsden, K. Mcguinness, S. Little, and N. E. O’Connor, “Fully convolutional crowd counting on highly congested scenes,” in Proc. The 12th International
Conference on Computer Vision Theory and Applications, 2017, pp. 27-33.
[42] D. O. Rubio and R. J. L. Sastre, “Towards perspective-free object counting with deep learning,” European Conference on Computer Vision, 2016, pp. 615-629. [43] L. Boominathan, S. S. S. Kruthiventi, and R. V. Babu, “Crowdnet : a deep
convolutional network for dense crowd counting,” in Proc. ACM on Multimedia
Conference, 2016, pp. 640-644.
[44] V. A. Sindagi and V. M. Patel, “CNN-based cascaded multi-task learning of high-level prior and density estimation for crowd counting,” in Proc. IEEE
International Conference on Advanced Video and Signal Based Surveillance, 2017,