蔡軼珩 劉天浩 劉嘉琦 郭雅君 胡紹斌
(北京工業大學信息學部 北京 100124)
在當下平安城市的背景下,保障人民群眾各方面的安全是一項刻不容緩的任務,而在諸如商場、車站、醫院等公共場所下,往往面臨著大量人群擁擠等情形,在這些場景中,出現各類異常事件的可能性也大大增加了,因此對這些公共場所進行安全監控是非常有必要的。目前通用異常檢測任務多采用基于手工特征以及基于深度學習的方法,在這些方法中采用深度學習基于預測的異常檢測方法[1,2]取得了較為優秀的檢測結果,其根據預測幀與原始幀的差異來判斷是否出現了異常。針對人群異常現象的檢測任務,同樣屬于通用異常檢測的范疇,不同的是此場景通常對人群聚集、人群四散、人群逆向等各類人群異常的檢測有著更為急切的需求,并且此類監控場景也具有自身的特點。當前的研究人員在人群異常檢測領域取得了一定的成果[3–7],例如Zhou等人[3]基于軌跡計算速度與方向建立了方向-集群性模型(Direction-Collectiveness Model,D-CM);Direkoglu等人[4]使用一分類支持向量機對前后幀的光流角度差進行建模;蔣俊等人[5]使用脈線流特征輸入殘差網絡中計算異常概率,與之類似的是,王洪雁等人[6]聯合速度、加速度、方向和能量等特征描述符并運用softmax進行異常的分類。同時文獻[8]設計了社會力模型來檢測并定位人群視頻中異常行為;文獻[9]結合灰度值與光流場的分布提取運動區域,并使用K-means方法對運動塊進行聚類,對每類樣本使用一類分類器進行建模,同時采用正常字典上的稀疏重建成本來衡量樣本的正常與否。然而在這些方法中,還存在著適應性較差,未能充分建立正常事件模型等不足之處。Cai等人[10]提出了一種多尺度特征記憶網絡(Multi-scale memory network, Msm-net),在預測網絡與檢測異常階段均強化了時空聯系,因此本文基于文獻[10]中的研究成果,對通用算法進行針對性的改進,致力于構建一種基于雙支路的人群監控視頻異常檢測算法,對正常事件進行建模,而不需要引入異常事件。通過最終的各類試驗分析表明,本文算法可以有效地檢測出人群中出現的異常現象,具有針對性強、魯棒性好、適用性高等特點。
本文針對的異常檢測類型為人群所出現的各類異常現象,同時以火車站出站口作為實際的應用場景進行驗證。為了更優地實現對人群場景下存在的各類異常事件進行針對性的檢測任務,本文提出一種基于雙支路的人群異常檢測算法。由于面向人群的監控視頻異常多集中于前景,且受光照噪聲等影響較多,同時還面臨著部署應用等需求,因此本文主要從上述3個方面加以改進。
人群異常檢測網絡的整體流程圖如圖1所示,網絡為人群異常多尺度特征記憶網絡,由3個階段組成,分別為編碼階段、多尺度特征和時間信息融合階段以及解碼階段。為了從多角度衡量異常現象的發生,并更優地將各類信息相融合,與文獻[10]中采取的單支路結構不同的是,編碼階段與多尺度特征和時間信息融合階段共同組成了雙支路共享單元結構,同步地對相同的參數結構進行優化。算法首先為了適應人群場景并融合多路信息,考慮背景的影響,輸入由兩種形式組成,分別為原始的視頻幀以及經過高斯混合建模后的視頻幀,兩種輸入共享相同的編碼結構與多尺度特征和時間信息融合模塊,并且輸入幀的數量是連續的T幀,將T幀中的每一幀轉化為兩種形式后逐一地輸入到雙支路共享單元結構中。經過共享單元結構后會進入解碼階段,在此階段,借鑒了Unet網絡上的拼接操作來整合不同尺度上的信息,最終生成預測幀。

圖1 算法整體流程圖
其次從實際落地部署考慮,為了進一步減少網絡的參數量,減低顯存占用率,進而增加模型推斷速度,本文將文獻[10]中的普通卷積結構替換為深度可分離卷積。
最后,為了增強網絡建模的魯棒性,針對實際監控畫面主要存在的光照與噪聲問題,在這兩個方面針對性地使用了數據擴增方法增大數據量級。同時為了能夠從多個方面提升幀的生成質量,本文使用了生成對抗網絡,將CaMsm-net作為生成器,將文獻[11]中基于補丁的卷積神經網絡作為判別器,并結合了多種損失函數對網絡進行優化。下面將詳細介紹各改進措施。
對于當前大多數通用異常檢測的任務來講,輸入的原始幀均是單一的,即只有一種輸入模式,然而本文針對的檢測場景是人群,由于面向人群的監控視頻往往瞬時人流量較大,人員流動性強,異常行為的出現也基本集中于前景中的人群,相較于其他場景,背景對檢測結果的影響較高,因此首先需要考慮背景對檢測結果的干擾。背景建模是一種常見消除背景的方法,其中高斯混合模型(Gaussian Mixed Model, GMM)是使用量較多的,GMM只需要通過建立多個高斯模型的線性組合即可實現對數據的建模。為此,在本文采用的輸入中不僅考慮了當前幀的原始形式,還考慮了經GMM處理后幀的形式。
GMM主要采取的建模依據為大量樣例值在較長范圍內的概率密度等統計信息。主要思路是設置多個高斯模型對圖片中的像素進行建模,并根據每一張圖片的計算結果不斷迭代優化模型參數,查看圖片的像素點與各模型的匹配狀態,進而確定每一個像素點屬于前景還是背景。
經過上述處理后,便可對背景進行建模處理,計算出每一幀的前景圖像。根據使用的數據集,經過建模后的圖像舉例如圖2所示。

圖2 高斯混合建模舉例
本文采用的CaMsm-net網絡主要對文獻[10]中的Msm-net進行了針對性的改進,主要有以下兩個變動:(1)將網絡的輸入模式更改為雙支路輸入,分別輸入原始幀以及經過背景建模后處理的幀。同時編碼階段與多尺度特征和時間信息融合階段共享相同的參數結構,從而形成雙支路共享單元模塊;(2)將各階段的普通卷積替換為深度可分離卷積。
下面分別介紹雙支路共享單元模塊與深度可分離卷積的使用。
2.2.1 雙支路共享單元模塊
如上所述,本文算法不僅輸入原始形式的幀,也輸入經過GMM處理后的幀,同時為了將兩條支路的信息更好地融合在一起,本文構建了一種共享單元結構的建模方式,即兩條支路共同對編碼模塊與多尺度特征和時間信息融合模塊進行相應的卷積和池化等操作,每一條支路生成對應的預測幀后通過2.4節介紹的損失函數統一地對參數進行迭代優化,共享單元模塊最終提取到各自的低層特征信息供后續解碼模塊處理。該模塊可視化結構如圖3所示。

圖3 雙支路共享單元示意圖
詳細的網絡結構如圖4所示,由3個階段組成,其編碼階段由深度可分離卷積(Separable_Conv)+非線性激活函數(Leakly_ReLU)+最大池化層(Max_Pool)組成;多尺度特征和時間信息融合階段由文獻[10]中的Context module與ConvGRU module組成,其目的是在網絡的底層強化多尺度特征與時間信息的聯系,其詳細結構可以參考文獻[10]中的論述,此階段與編碼階段對輸入的兩條支路是參數共享的;解碼階段由轉置卷積(Conv_Transpose)+深度可分離卷積(Separable_Conv)+非線性激活函數(Leakly_RELU)組成。網絡的輸入是連續T 幀的雙支路信息,各部分的輸出特征圖分辨率在圖4中標出。綜上所述,本文搭建了一種雙支路共享單元結構的網絡結構,采取預測的思路對人群的行為進行異常檢測,不僅輸入原始幀,還輸入去除背景的幀,并分別預測兩種圖片結構。

圖4 網絡詳細結構圖
2.2.2 深度可分離卷積
深度可分離卷積是在Mobilenet網絡中提出的,其主要優勢是不僅能夠較大幅度地減少網絡參數量,同時對網絡精確度的影響不大甚至無明顯的損耗。主要方法是將普通卷積分為兩部分,即深度卷積(depthwise conv)和逐點卷積(pointwise conv),其中深度卷積類似于普通的卷積操作,卷積核作用于全部通道,只是在不同的通道上采用不同的卷積核進行計算。同時由于深度卷積并沒有考慮到處于同一位置但不同通道上參數之間所處的關系,因此還需要逐點卷積進行進一步的處理,逐點卷積是用1×1的卷積對不同通道上的信息進行整合,最終輸出指定個數的通道特征。
通過對采用的實際火車站數據的視頻片段進行分析以及實際人群監控視頻的特殊性,本文發現此場景下往往受光照變化與畫面突發噪聲的影響較大。針對此問題,為了增強模型的魯棒性,本文對原始的數據進行了隨機的光照變換處理與隨機信噪比的噪聲加入,從而使訓練好的模型能夠適應這兩種變化的發生。主要變換方法是在原始訓練數據的基礎上,隨機挑選50%左右的視頻片段,其中1/2的數據以不高于0.3的權重對片段中的幀進行光照改變,另1/2的數據添加高斯噪聲,擴增比例在50%左右。經過數據擴增處理后的圖片舉例如圖5所示。

圖5 采用的兩種數據擴增方式
本文所采用的損失函數和異常分數計算方式與文獻[10]類似,不同的是由于采取的是雙支路設計,因此在計算損失函數與異常分數時,也需要分別計算兩條支路的各自損失與分數并加以融合。首先對于損失函數來講,原始幀預測支路以及背景建模幀對應的預測支路均由對抗損失、msssim損失、梯度損失、強度損失組成,如式(1)與式(2)所示。綜上,本文采用的整體損失函數如式(3)所示,λ1,λ2為兩條支路各自的損失權重,為了平衡兩條支路的信息,權重在本文中兩者均為0.5

為了更加合理地證明本文所提方法的有效性與適用性,本文不僅在公開的美國明尼蘇達大學(University of MinNesota, UMN)人群異常數據集中進行了實驗對比,同時在實際場景的火車站出站口數據集上進行了進一步的論證。其中UMN人群異常數據集包含廣場、草坪和室內3個場景下的人群四散、同向加速跑等異常和正常行為,分辨率為320×240,總共有7740幀。此數據集的異常行為與火車站出站口常見的異常行為類似,可以更加有效地展示算法的效果。為了更科學合理地評價算法的效果,本文沒有在UMN公開數據集上使用數據擴增。而來源于實際監控的火車站出站口數據集,分辨率為1280×720,主要由行人出站的各種行為組成,根據現有視頻的異常種類,本文針對的是人群大量聚集以及人流異常走向等異常行為的判定。本文對原始數據進行了劃分,其中訓練集全部由正常事件組成,實驗中采用了8000幀,經過數據增強后達到了12000幀,測試集由異常行為與正常行為組成,使用了7500幀。各數據集可視化展示舉例如圖6所示。

圖6 數據集展示
為了更優地說明算法的優勢,實驗評估采用了兩種不同角度的評價指標,一種是異常檢測領域的受試者工作特征曲線(Receiver Operating Characteristic curve, ROC)與坐標軸形成的面積(Area Under ROC, AUC)作為總體評判方法的標準,其中較高的AUC就代表著模型具有更好的檢測異常的能力。另一種評價指標是針對具體的異常行為的檢測準確率(ACCuracy, ACC)指標,其中判定異常分數的閾值使用的是AUC指標中對應的最佳閾值。對于異常事件,分別計算出正樣本預測正確的個數(True Positives, TP)與正樣本預測錯誤的個數(False Negatives, FN);對于正常事件,則分別計算出負樣本預測錯誤的個數(False Positives,FP)與負樣本預測正確的個數(True Negatives,TN),進而通過式(6)計算出ACC數值。同時使用這兩種指標,可以從不同角度評判算法優劣性,從而更好地實現實際應用

本文網絡的生成器學習率設定為2e-4,判別器學習率設定為2e-5,強度損失、梯度損失、對抗損失、msssim損失的學習率分別為1, 1, 0.05, 0.5。計算異常分值時,時間上滑動窗口的長度為2,空間上滑動窗口的尺寸為32×64,步長S為32。網絡輸入每4幀來預測下一幀。訓練的Batch-size設置為4,迭代次數為30000次。模型在NVIDIA GeForce GTX 2080 GPU和Intel?Core TM i7-7700 CPU@3.60 GHz×8上進行訓練測試。在訓練階段,將原始幀與經過GMM處理后的幀同時送入到設計好的網絡結構當中,生成兩路不同的預測幀,將兩路不同的預測幀分別與原始幀計算相應的損失函數,使用Adam方法進行迭代優化,其中編碼階段與多尺度特征和時間信息融合階段對應的兩條支路共同進行優化,達到迭代次數后得到最終模型;在測試階段,同樣將兩種不同的輸入幀輸入到訓練好的模型之中,得到兩路不同的預測幀,計算每一路的STW-Score,通過式(4)得到最終的異常分數,通過提前預設好的閾值,對異常與否進行判斷。
3.3.1 方法有效性
為了證明所提算法的效果,本文做了以下的分析實驗。首先,使用AUC作為通用異常檢測領域的分析指標,與目前幾種典型人群異常檢測算法進行比較,如表1所示。
從表1的結果可以看出,在公開的UMN人群異常數據集上,所提算法的AUC指標達到了99.2%,與其他經典方法(如社會力模型[8]與局部統計[12])以及類似的背景建模方法[9]相比取得了良好的結果。而在火車站數據集上進行的算法驗證,AUC也可以達到84.1%,這也說明了算法在實際監控場景中具有良好的應用價值,訓練好的模型基本可以適應不同標準下的異常檢測需求。同時與其他方法相比(如采用先聚類后分類的方法[9],基于概率模型區分異常邊界的方法[13]),本文算法可以端到端地對異常現象進行判別,整體網絡框架的復雜度相對更加簡潔,同時與一些較低復雜度的方法[8]相比,本文算法檢測效果也更優。

表1 各方法AUC指標比較(%)
其次計算不同異常事件所對應的準確度(ACC),這里的分數閾值選取了ROC曲線上的最佳閾值,UMN數據集上的結果如表2所示,火車站數據集上的結果如表3所示。

表2 UMN數據集異常事件檢測準確度(%)
從表2、表3各個異常事件準確度的指標來看,本文算法在兩個數據集上均取得了較優的檢測效果。其中在UMN數據集異常事件對應的檢測準確度上收獲了最佳結果,在草坪與廣場兩個室外場景當中達到了超過97%的準確度,而在室內場景中也取得了95.2%的指標。與一些只能針對特定幾種異常類型進行檢測的方法(如使用能量模型的文獻[14])相比,本文算法具有更廣泛的適用范圍,而在一些基于軌跡進行特征設計的方法中(例如文獻[3]的方向-集體模型),往往面對一些人群運動較為分散的場所的效果是不理想的,這與實際應用下的火車站場景是相悖的。同時通過對其他算法的結果進行分析,本文發現面對3種不同場景各類算法呈現了不盡相同的趨勢,例如使用SRC[9]與SFM[8]方法,兩個室外場景都比室內場景的準確度要高,而在C3D-GRNN[15]方法中則表現出了相反的結果。通過本文算法取得的實驗結果可知是與文獻[8,9]的趨勢一致的,由于場景2中的室內場景較暗,人群可能會與背景混為一體,背景建模的效果不佳,因此效果略遜于場景1與場景3。然而這也表明了本文算法更加適合應用于較開闊的室外人群場景,這與實際場景下的火車站出站口數據是相匹配的。而在火車站數據集中對所需的檢測人群大量聚集以及異常走向任務下的結果也收獲了總體81.7%的準確度,考慮到公開數據集與實際數據集在各方面的差別,此結果的表現也是較優的,基本滿足了階段性的檢測需求。綜上所述,所提方法可以較好地檢測出存在的人群異常現象,并針對不同場景與需求,適應性也較魯棒。

表3 火車站出站口異常事件檢測準確度(%)
最后異常檢測的一些可視化的結果舉例如圖7—圖9所示。其中圖7是在UMN數據集下場景1中發生的異常原始幀以及預測差值圖與原始幀疊加后的展示圖,高亮的部分即代表預測差。可以較為明顯地看出,當出現異常現象時,會突顯出預測差,而在沒有出現異常的地方,則不會出現明顯的預測差值,這種預測差值也是本文判別異常的關鍵所在。

圖7 UMN數據集原始幀與預測差值圖
圖8是火車站數據集異常分數的曲線圖,此圖截取了測試視頻中某段3500幀左右的異常分數輸出圖,綠線代表真值,藍線代表每一幀的輸出分數,可以看出當視頻片段中出現異常事件時,分數會有一個較為明顯的降低過程,通過此過程,當輸出分數低于閾值時,即可判別出現異常從而發出預警。

圖8 火車站數據集異常分數展示
圖9是分別在火車站數據集以及UMN數據集上繪制得到的ROC曲線圖以及對應的等概率錯誤(Equal Error Rate, EER)指標,此圖的橫坐標為假陽性率(False Positive Rate, FPR),縱坐標為真陽性率(True Positive Rate, TPR),AUC的值即為曲線下的總面積,EER指標對應于橙色虛線與藍色實線相交點處FPR所對應的值,兩個數據集上展現的EER分別為0.219與0.039。這也表明了模型的適應性較好。
3.3.2 消融實驗
本文為了分別驗證采用的雙支路共享單元模塊,深度可分離卷積方法以及數據擴增對實驗結果的影響,本節單獨對每個模塊進行了消融實驗。這里選用更通用的AUC指標來進行說明。
雙支路共享單元模塊部分對比試驗:本部分在其他條件均保持一致的情況下,分別將原始幀(即采用文獻[10]的單支路結構)以及添加GMM處理后的雙路幀(即采用共享結構)送入到網絡進行訓練,結果如表4所示。可以看出,兩條支路聯合對共享單元模塊進行優化可以取得更出色的結果,這種形式考慮了背景對結果的影響,運用了多類信息加以融合,可以進一步提升網絡性能,表明了考慮多分支輸入對人群異常檢測場景下的重要性與有效性。

表4 雙支路共享單元模塊消融實驗結果(%)
深度可分離卷積部分對比試驗:本部分對比了使用普通的2D卷積以及使用深度可分離卷積的網絡結構的評價指標、參數數目與運行速度等結果,如表5所示。可以看出,在性能沒有大幅下降的情況下(僅僅下降了0.5%左右),模型的參數量減少了32%,檢測每秒傳輸幀數(frames per second,fps)提高了17%,這說明了采用深度可分離卷積在本文算法實際應用下的有效性,可以在保證高精確度檢測的同時,大幅度地減少網絡參數的數量,從而執行速度得到提升,基本保障了算法運行的實時性,為各場景下的人群異常檢測技術的實際應用奠定了良好基礎。

表5 深度可分離卷積消融實驗結果
數據擴增部分對比實驗:本部分比較了使用原始數據進行訓練以及經過數據擴增處理后的數據進行訓練后的評價指標,如表6所示,結果顯示經過數據擴增后,網絡的性能提升了近1%,從而使得優化好的模型魯棒性更好,表明了數據擴增在人群監控視頻應用環境下的優勢與作用。

表6 數據擴增消融實驗結果(%)
本文致力于構建一種高精度的基于雙支路的人群異常檢測算法,針對人群異常視頻這一特殊場景的設定,對先前的通用算法進行了針對性強的改進措施。其中,雙支路共享單元結構兼顧了人群密集冗余,異常一般集中于前景的特點,不僅考慮原始幀,還考慮了背景對檢測結果的影響,同時將兩條支路進行共同的特征編碼實現融合優化;深度可分離卷積設計針對實際應用場景,對模型進行瘦身,達到落地應用的目的;數據擴增考慮了實際監控視頻光照與噪聲的影響,使得最終訓練到的模型更具魯棒性。本文算法不僅在UMN人群異常數據集中進行了試驗對比,也在實際監控下的火車站出站口數據集上進行了驗證,證明了所提方法的有效性與可靠性。