林峰,江荔
(福州職業技術學院,福州350108)
視頻監控是現代安防技術的關鍵組成部分。視頻監控系統歷經模擬、數字視頻監控,當前已進入智能視頻監控時代。智能視頻監控將傳統視頻監控技術與人工智能技術進行深度融合,通過構建一系列的算法模型,使得安防監控能夠更加智能化、自動化,減少了人工干預,提高了監控效率和準確性。在智能視頻監控系統中,人群密度檢測是一項核心任務,特別是在景點、車站、商場等應用場景重,通過攝像頭采集人群影像數據,快速分析統計人數,對過高人群密度進行告警,提前進行人流疏散,有助于避免出現過分擁擠甚至踩踏等安全事件[1-2]。
現有的人群密度檢測方法主要有對象檢測、回歸分析以及目標檢測。這些方法已廣泛運用在視頻監控系統中,具有分析速度快、檢測精確度高等優點。但是在人群密度分布不均、遮擋嚴重、目標尺度變化大等場景中,傳統方法無法做出精確判斷,存在誤檢率高的缺點[3]。卷積神經網絡是一類成熟的深度學習技術,在自然語言處理、圖像識別、計算機視覺等領域有著廣泛的應用。MS-CNN(Multi-Scale Convolutional Neural Network)網絡是卷積神經網絡中的一種,通過在卷積層中加入多個分支結構,解決了傳統卷積神經網絡只適用于單一尺度目標檢測的問題,提高了在復雜背景下多尺度目標檢測的準確率[4-7]。
本文通過對視頻圖像進行高斯濾波預處理,構建MS-CNN 多尺度卷積神經網絡模型,使用國際基準數據集Mall Dataset 進行測試,驗證了模型在遮擋嚴重、目標尺度變化大等場景中仍具有較高的人群密度檢測準確性。
攝像頭所采集的影像數據,往往存在背景復雜、人群密度分布不均、人體部位互相遮擋等問題,對人流計數模型的準確性產生了較大的影響。為了有效抑制噪聲,平滑圖像,減少像素與像素之間的相關性,本文采用了高斯濾波的方法,對監控圖像進行了必要的預處理。其具體操作是,利用二維高斯分布函數,生成高斯模板,掃描監控圖像中所有的像素點,用模板(本文模板尺寸選用15×15)框選范圍內像素點的加權平均值,作為新生成圖像的像素點的值[11]。其中二維高斯分布函數如公式(1)所示:

此外,為了進一步減少干擾,在檢測模型構建前,針對已標注人像位置的圖像,經過高斯濾波器模糊處理后,同時生成相應人群密度圖,進一步提高了模型訓練速度和準確性。圖像預處理效果如圖1 所示。

圖1 經過高斯濾波處理后的密度圖
傳統的卷積神經網絡通常由輸入層、卷積層、池化層、扁平層、全連接層、輸出層等網絡結構組成,用于圖像特征的提取和結果的分類。對于單一尺度或尺度變化不大的圖像進行目標檢測,傳統卷積神經網絡模型具有較高的識別率。但是針對尺度變化較大的人像檢測,傳統卷積神經網絡模型誤判率較高,在人群密度計數等應用上表現效果較差[8-10]。

圖2 傳統CNN結構
MS-CNN 是對傳統卷積神經網絡的升級和改造,通過在傳統卷積神經網絡結構的基礎上增加了若干MSB(Multi Scale Blob)層,可實現不同尺度的圖像特征的提取。本文中所使用的MSB 層由4 次卷積操作構成,卷積核大小分別為9×9、7×7、5×5、3×3,負責對應尺度范圍內圖像特征的提取。MSB 層結構示意圖如圖3所示。

圖3 MSB層結構
針對安防監控人群密度檢測問題領域,本文基于MS-CNN 網絡進行了部分改進和優化,其完整網絡結構如圖4 所示。通過若干次“卷積層-MSB 層-最大池化層”的組合,構建多尺度目標檢測器,解決了待檢測目標與感受野大小不一致的問題,使得所構建的神經網絡,能夠在淺層網絡檢測較小的目標,在深層網絡檢測較大的目標。

圖4 改進的MS-CNN網絡結構
此外,在卷積層的構建中,使用的激活函數為Re-LU 函數,優化器選擇隨機梯度下降算法,損失函數采用MSE 函數。其中ReLU 函數如公式(2)所示:

本次方法涉及的完整算法流程如下所示:
Step1 將訓練樣本按公式(1)進行高斯濾波預處理,并根據人像所在像素位置,生成密度圖;
Step2 按圖4 結構,構建經過優化的MS-CNN 網絡,其中卷積層激活函數使用ReLU 函數,MSB 層中涉及的四個卷積操作對應的卷積核大小分別為9×9、7×7、5×5、3×3;
Step3 將訓練樣本逐個輸入Step2 中構建的神經網絡,進行模型參數的訓練,其中模型優化器選擇隨機梯度下降算法(SGD),損失函數使用均方誤差(MSE);
Step4 重復步驟Step3,直到損失函數逐漸收斂,且不再發生變化,將結果模型進行保存;
Step5 使用模型對待預測圖像進行人群密度統計。
本次實驗所用數據集為國際標準數據集Mall Dataset[12]。該數據使用了某大型購物商場監控數據,涉及超過60,000 個不同的行人,共有2000 幀,每幀均為JPEG 格式,圖像大小統一為640×480 像素,視頻圖像具有人群分布不均、部分遮擋及尺度變化較大等特點,其完整分布圖如圖5 所示。每張圖像的人數及人像位置均作了標記,并保存為MAT 格式。

圖5 人數分布圖
本次實驗基于當前流行的Python 語言,深度學習框架前端采用Keras(版本號:2.2.2),后端采用Tensor-Flow(版本號:1.11.0),圖像預處理選擇OpenCV 代碼庫(版本號:4.0.0)。模型訓練所用設備計算性能:CPU 型號為Intel 酷睿i5-3427U(核心數:4,主頻:1.8GHz)、內存10GB。經過10 輪的迭代訓練,模型逐漸收斂,共耗時約7 天,訓練參數個數總計57,892,305。模型訓練過程中損失函數的收斂情況如圖6 所示。

圖6 損失函數收斂情況
人群密度計數所使用的評估指標為MSE(Mean Square Error,均方誤差),其指標計算公式如下所示:

式中,N 為圖像個數,zi為第i 張圖像真實人數為第i 張圖像通過模型預測的人數。
對上述訓練后的模型進行評估,其MSE 值為3.2,較傳統方法(MSE 值:3.4)[12]有所提高。隨機20 幀監控的實際與估計人數比對情況如圖7 所示。

圖7 實際人數與模型估計人數比對
為了提升人群密度檢測準確性,本文通過對視頻圖像進行高斯濾波預處理,有效抑制了噪聲,減少了像素干擾,同時設計并構建了MS-CNN 深度卷積神經網絡,經過訓練的模型,提高了在復雜背景下多尺度目標檢測的準確率,經在標準數據集Mall Dataset 上測試,其MSE 值達到3.2,較傳統方法有所提升,在安防監控領域中具有較良好的應用前景。但是在實驗過程中,模型訓練耗時過長(運行約7 天),后續將研究如何通過搭建分布式系統,加快神經網絡參數的訓練過程[13-15]。