陳紀銘,陳利平
(湖南工學院 計算機與信息科學學院 湖南 衡陽 421002)
隨著監(jiān)控設(shè)備的日益普及,有必要通過計算機視覺技術(shù)對視頻數(shù)據(jù)進行分析。其中,異常檢測[1]是視頻數(shù)據(jù)分析的重要分支。很多視頻異常事件由稀少形狀或罕見動作組成,但由于“異常”的定義具有一定的主觀性,且取決于情景,因此,該研究的挑戰(zhàn)性較大。
目前很多方法將正常幀的區(qū)域或分塊作為參考模型進行學習,這些參考模型包括訓練數(shù)據(jù)的正常運動或形狀。在測試階段,將不同于正常模型的區(qū)域視為異常。其中,目標行為常用基于軌跡的方法定義[2],但基于軌跡的方法存在2個主要缺陷[3]:①不能處理遮擋問題;②計算復雜度較高。為避免出現(xiàn)上述問題,一些方法使用了時空低階特征,如光流或梯度。文獻[4]將高斯模型擬合到時空梯度特征中,并使用隱Markov模型(hidden Markov model, HMM)來檢測異常事件。文獻[5]在相關(guān)約束下,利用光流特征圖結(jié)構(gòu)(graphic structure, GS)的迭代尺度化變換,有效降低了視頻異常檢測中的光流特征數(shù)量,從而完成特征優(yōu)化。文獻[6]提出一種公交車人群異常檢測方法,根據(jù)人群運動軌跡確立圖像感興趣區(qū)域,利用L-K光流法提取運動目標速度信息,通過速度大小進行異常情況的檢測。但該方法難以解決遮擋和大量人群問題。文獻[7]提出了深度級聯(lián)分類器(deep cascade classifier,DCC),利用2個深度神經(jīng)網(wǎng)絡(luò)進行異常檢測,首先利用一個較小的深度網(wǎng)絡(luò)識別出有挑戰(zhàn)性的分塊;然后將鄰近分塊通過另一個深度網(wǎng)絡(luò)作分類操作。文獻[8]提出基于密集軌跡對準及其運動影響描述符的算法,其中,密集軌跡保證對視頻運動目標的有效提取,捕獲運動目標的關(guān)鍵信息,然而該方法的計算復雜度較高,且無法對遮擋進行有效處理。文獻[9]提出一種描述群體中的個體信息結(jié)構(gòu)描述符,引入了固體物理中粒子間作用力的勢能函數(shù),同時,設(shè)計魯棒的多目標跟蹤器來關(guān)聯(lián)不同幀中的目標。文獻[10]提出利用灰度值與光流場的分布提取運動區(qū)域,通過對運動區(qū)域的分割得到有效運動塊,使用運動連續(xù)性約束來抑制噪聲,然而運動連續(xù)性約束產(chǎn)生很大的計算量。綜上,大多數(shù)異常檢測方法主要有2個改進方向:①特征優(yōu)化,如采用梯度直方圖或光流直方圖等低階特征;②框架改進,針對特定情況優(yōu)化求解框架。
眾所周知,卷積神經(jīng)網(wǎng)絡(luò)[11](convolution neural network, CNN)可以為各種應用確定有效的數(shù)據(jù)分析,與傳統(tǒng)計算方法相比,其數(shù)據(jù)處理能力更強大,由于權(quán)值可以共享,所用參數(shù)的數(shù)量更少,可以適用于多種計算場景。但使用CNN進行異常檢測時,分塊的速度過慢,且無法從不存在的異常類中訓練大量樣本。全卷積網(wǎng)絡(luò)[12](full convolution network, FCN)作為CNN的一種優(yōu)化,依然存在以上問題。因此,本文對FCN進行優(yōu)化,使用AlexNet模型[13]預訓練的CNN的數(shù)個初始卷積層和一個額外卷積層,采用該方法提取出的特征,對于視頻數(shù)據(jù)中的異常具有足夠的可辨別性。本文主要工作總結(jié)如下:①將預訓練分類的CNN應用到FCN,以生成同時描述運動和形狀的視頻區(qū)域;②提出了一種優(yōu)化的FCN架構(gòu),以高效完成異常檢測和定位。
視頻數(shù)據(jù)中的異常行為一般被定義為異常形狀或異常運動。因此,形狀和運動的識別至關(guān)重要。為了識別出運動特性,需要一系列視頻幀。因為單幀中不包含運動特性,僅能提供形狀信息。
為了同時分析形狀和運動,本文考慮了當前幀It和上一幀It-1的像素平均為
(1)
為了推導出特征向量,首先,在尺寸w×h遞減的網(wǎng)格上對視頻幀進行表征,定義序列Dt在大小w0×h0的網(wǎng)格Ω0上;然后,將序列Dt傳遞到FCN,由第k個中間卷積層定義,其中,k=0, 1,…,L,尺寸wk×hk的網(wǎng)格Ωk上定義每個視頻幀,滿足wk>wk+1,hk>hk+1。
FCN的第k個中間卷積層的輸出為特征向量fk∈Rmk(即每個包含mk個實特征值),其中R為代數(shù)域,從m0= 1開始。對于輸入序列Dt,第k個卷積層的輸出為向量值矩陣
(2)
特征向量的推導可以總結(jié)為①針對視頻第t幀給出Dt的高階描述;②通過FCN的第k個中間卷積層(k=0, 1,…,L)對Dt進行表征。使用該表征,在Ωk(接受域)中識別出部分逐對重疊區(qū)域集合。同此,通過Ω0上的序列Dt對幀It進行表征;③通過Ωk上的mk次映射,從接受域推導特征向量。
假設(shè)視頻的q個訓練幀都是正常的,基于FCN的第k個卷積層對這些普通幀進行表征,則2D正常區(qū)域的描述可定義為wk×hk×q個長度為mk的向量。為了對正常行為建模,將高斯分布作為正常區(qū)域描述的分類器進行擬合,從而定義出正常參考模型。在測試階段,以類似的方式通過一組區(qū)域特征來描述測試幀It。將不同于正常參考模型的區(qū)域標記為異常。值得一提,預訓練CNN(AlexNet的第2層)生成的特征已經(jīng)具備足夠的可分辨性,對接受域的表征效果如圖1。當再次通過自動編碼器(即最終卷積層)來表示區(qū)域描述符時,異常區(qū)域在熱圖中更具視覺上的可區(qū)分性。
圖1 對接受域的表征效果Fig.1 Representation of reception domain
本文將可疑區(qū)域表征為一個“更具辨識性”的特征集。這一表示法有助于更好地區(qū)分異常區(qū)域和正常區(qū)域。即AlexNet生成的特征被轉(zhuǎn)換為一個異常檢測問題,通過在普通區(qū)域上訓練的自動編碼器來完成;然后,將可疑區(qū)域傳遞至自動編碼器,以得到更好的表征。
本文所提檢測方法的流程圖如圖2。首先,將輸入幀傳遞至預訓練后的FCN;然后,在第k層的輸出中生成hk×wk個區(qū)域特征向量。使用高斯分類器G1對這些特征向量進行驗證。將與G1存在顯著差異的分塊標記為異常。將低擬合置信度的可疑區(qū)域輸入到稀疏自動編碼器中。在該階段中,基于高斯分類器G2(與G1工作原理相似)標記這些區(qū)域。G2是區(qū)域特征向量上訓練后的高斯分類器,表示為一個自動編碼器;最后,這些異常區(qū)域的位置將被自動傳回FCN。
圖2 所提方法流程圖Fig.2 Flow chart of the proposed method
本文使用卷積層將CNN的分類調(diào)整為FCN。由于選擇最適合表征視頻的層至關(guān)重要,本文考慮如下2點。
1)雖然深層特征通常具更好的可分辨性,但使用深層特征會增加計算時間。此外,由于CNN針對圖像分類而訓練,使用更深層次可能會得到圖像分類的過擬合特征。
2)更深層次會造成輸入數(shù)據(jù)中接受域更大;由此會增加不準確定位的可能性,造成性能下降。
所實施的FCN包含3個卷積層,為了找到最優(yōu)卷積層k,設(shè)初始k為1,其后增加至3。在確定最優(yōu)k后,忽略更深的卷積層。首先,使用層C1的輸出,在區(qū)分異常區(qū)域與正常區(qū)域時,相應的接受域尺寸較小,且生成的特征無法得到適當結(jié)果,因此,會得到大量假陽性樣本;然后,使用更深層的C2的輸出。在此階段得到優(yōu)于C1的性能,這是因為在C1的輸入幀中相應的接受域足夠大,且更深的特征具有更好的可分辨性;最后,k=3時,將層C3的結(jié)果作為輸出。此時,雖然網(wǎng)絡(luò)容量增加,但結(jié)果卻不如第2個卷積層。因此,多增加1層將會得到更深的特征,但這些特征存在過擬合現(xiàn)象。
綜上,本文使用C2的輸出來提取區(qū)域特征,利用卷積層轉(zhuǎn)換每個生成區(qū)域特征的描述[14],通過稀疏自動編碼器得到卷積層的內(nèi)核。所提FCN結(jié)構(gòu)如圖3,該FCN僅用于區(qū)域特征提取。在之后的階段,嵌入2個高斯分類器以標記異常區(qū)域。新的層稱為CT,位于CNN的C2層之上。通過預訓練CNN的3個初始層(即卷積層C1、下采樣層S1和卷積層C2)與額外的新卷積層的組合,作為異常檢測的聯(lián)合架構(gòu)。
圖3 所提優(yōu)化的FCN結(jié)構(gòu)Fig.3 Proposed optimized FCN structure
優(yōu)化的FCN包括2部分:固定部分和可訓練部分。固定部分來自于AlexNet,所有的訓練視頻幀由固定部分來表征,使用從正常視頻中提取出的所有特征向量來訓練稀疏自動編碼器。將1×1×256特征向量轉(zhuǎn)換為尺寸1×1×500的稀疏向量(見圖3)。假定有m個(1, 256)維的特征向量,而xi∈RD=1×256是用于自動編碼器學習的原始數(shù)據(jù)。自動編碼器通過重建原始數(shù)據(jù)以最小化公式
(3)
本文使用區(qū)域特征集對視頻進行表征。這些特征是密集提取的,通過第k個卷積層輸出的特征向量來描述。針對判斷的標準,首先,將一個高斯分類器G1(.)擬合到FCN生成的所有正常區(qū)域特征中;然后,判斷與G1(.)的距離大于閾值α的區(qū)域特征視為異常;與G1相兼容的區(qū)域特征(即與G1的距離低于閾值β)標記為正常;與G1之間的距離在α和β之間的區(qū)域視為可疑區(qū)域。
將所有可疑區(qū)域傳遞至下一個卷積層,該卷積層在預訓練FCN生成的所有正常區(qū)域上訓練。由此,這些可疑區(qū)域?qū)@得分辨性更好的新表征
當n=1,2,…,h
(4)
(4)式中,h表示自動編碼器生成的特征向量的大小(與隱藏層的大小相等)。
(5)
(6)
(6)式中,d(G,x)為區(qū)域特征向量x到G-模型的Mahalanobis距離。
假設(shè)第一個卷積層有m1個尺寸為x1×y1的卷積內(nèi)核。在分析第t幀時,序列Dt用這些內(nèi)核作卷積,通過卷積運算提取特征。通過長度為m1的特征向量來描述FCN輸入的每個區(qū)域。在這個連續(xù)過程中,將mk個映射作為第k層的輸出。由此,用第k層輸出的一個點,來描述FCN輸入中重疊的第(x1×y1)個接受域的子集,如圖4。
圖4 尋找輸入幀的相關(guān)接受域Fig.4 Finding the relevant reception domain of input frame
修改后的AlexNet中的層序為
Alexnet→[C1,S1,C2,S2,C3,fc1,fc2]
(7)
(7)式中,C和S分別為卷積層和下采樣層。最后2層為全連接層。
另外,下采樣(平均池化)層也可考慮為僅有1個內(nèi)核的卷積層。原始幀(即Ω0)中任何被檢測為異常的區(qū)域,均為一些較大重疊分塊的組合,但這樣會造成定位性能較差。為了提高異常檢測的精度,本文將Ω0中被超過ζ個相關(guān)接受域覆蓋的像素識別為異常。
實驗基于前文定義的最優(yōu)FCN(見圖3)完成所有測試。在自動編碼器的目標函數(shù)中,β(懲罰項權(quán)值),ρ(稀疏性)和s(隱藏層節(jié)點數(shù))的參數(shù)值分別設(shè)為0.1,0.05和500,其中,隱藏層的節(jié)點用于存儲可訓練部分向量(最大維數(shù)為500),因此,s取值500。參數(shù)β為稀疏自動編碼器目標函數(shù)中懲罰項的權(quán)值,ρ是伯努利分布的參數(shù),表示稀疏性,即通過自動編碼器以0.05的稀疏性完成特征學習,且β和ρ均是經(jīng)驗數(shù)值。
本文在UCSD[15]和Subway數(shù)據(jù)集[16]上對所提方法進行性能評價。其中,UCSD數(shù)據(jù)集內(nèi)的動態(tài)目標是行人,人群密度從低到高變化,汽車、滑板、輪椅或自行車等目標視為異常。數(shù)據(jù)集中包含12個用于測試的視頻序列,16個用于訓練的視頻序列,分辨率為320像素×240像素,異常幀和正常幀的總數(shù)分別為約2 384幀和約2 566幀。
Subway數(shù)據(jù)集包括地鐵站入口(96 min,144 249幀)和出口(43 min,64 900幀)錄制的2個視頻序列。進出車站的人通常是行為正常的。異常事件定義為向錯誤方向移動的人(即離開入口或進入出口),或逃票。該數(shù)據(jù)集存在2個局限:異常事件的數(shù)量較少,且空間上的定位是可預測的(在入口或出口區(qū)域)。
本文使用受試者操作特征(receiver operating characteristic, ROC)曲線、等錯誤率(equal error rate, EER)和曲線下面積(area under curve, AUC),比較所提方法與其他先進方法的結(jié)果。使用了幀級和像素級2個度量[17]。根據(jù)這些度量將幀分為異常(陽性)或正常(陰性)。這些度量定義如下。
1)幀級:該度量中,若1個像素檢測到異常,則考慮其為異常。
2)像素級:若算法檢測出的像素至少覆蓋了40%異常的真實像素,則該幀被視為異常。
所提方法在UCSD和Subway數(shù)據(jù)集的樣本上的輸出如圖5??梢钥闯?,本文方法正確檢測并定位了這些樣本的異常。圖5a的UCSD數(shù)據(jù)集檢測結(jié)果中,在校園道路上,檢測出一些使用滑輪車的人、騎自行車的人以及行駛的汽車;圖5b的Subway數(shù)據(jù)集檢測結(jié)果中,第1行是地鐵出口的門禁處,有行人準備逆向行走,并有跨越門禁的行為。這些行為均被檢測出,并標有紅色,其中,第2,第3幀是從出口強行通過門禁進入地鐵,第4幀是從樓梯處逆向步行到門禁處。第2行是地鐵入口,第2行的第2和第3幀圖像檢測出異常,可以看出,該人正在翻越門禁,第4幀圖像檢測的異常是該人正在逆向行走,從入口出來。
目前,絕大數(shù)異常檢測方法的主要問題是依然存在一定的假陽性率。圖6給出了使用所提方法時,被錯誤地檢測為異常區(qū)域(假陽性)的例子。假陽性會在2種情況下產(chǎn)生:①過于擁擠的場景;②人們向不同方向行走。由于訓練識別中未觀察到走反方向的其他行人,所提方法會將這一行為識別為異常。
圖6 2個假陽性樣例Fig.6 Two false positive samples
所提方法與文獻[4]提出的隱Markov模型方法(簡稱HMM[4])、文獻[5]光流特征圖結(jié)構(gòu)方法(檢測GS[5])和文獻[7]提出的深度級聯(lián)分類器方法(DCC[7])進行比較。各方法在UCSD數(shù)據(jù)集上的幀級和像素級的ROC比較如圖7。
圖7中TPR(%)表示分到正樣本中真實的正樣本占所有正樣本的比例,定義為
(8)
(8)式中:TP表示被判定為正樣本,事實也是正樣本;FN表示被判定為負樣本,事實是正樣本。
FPR(%)表示被錯誤分到正樣本類別中真實的負樣本占所有負樣本總數(shù)的比例,定義為
(9)
(9)式中,F(xiàn)P表示被判定為正樣本,事實是負樣本;TN表示被判定為負樣本,事實也是負樣本。
圖7 各方法的ROC比較Fig.7 ROC comparison of different methods
在圖7的ROC結(jié)果圖中,當FPR越小,TPR越大時,表示分類的效果越好。EER用于衡量方法的整體性能,表示FPR等于FNR(假陰性)的值,由于FNR=1-TPR,因此,可以畫一條從(0,1)到(1,0)的直線(即EER曲線),該曲線與某方法ROC曲線的交點(橫坐標FPR值)表示該方法的EER值,EER值越小表示錯誤率越低,方法性能越好。由圖7a和圖7b可知,所提方法的ROC性能優(yōu)于其他方法。這主要是因為所提FCN架構(gòu)對輸入數(shù)據(jù)作了分塊級操作,生成的區(qū)域特征不受情境影響,從而增加了異常檢測的準確率,降低了誤檢率。
在UCSD數(shù)據(jù)集上,各方法在的幀級和像素級EER如表1。所提方法的幀級EER為11%,僅次于DCC[7]的EER,在像素級EER方面,所提方法的EER為15%,表現(xiàn)最優(yōu)。
在Subway數(shù)據(jù)集上,各方法在AUC和EER方面的性能比較如表2,這里分別討論了地鐵出口和入口。表格中的數(shù)值第1個是AUC值,第2個是EER值。對于出口場景,所提方法在AUC和EER度量上均優(yōu)于其他方法;其中AUC和EER分別比其他方法至少提升0.5%和0.4%。對于入口場景,所提方法的AUC比其他方法至少提升0.4%;在EER度量上提出的方法性能與DCC[7]幾乎相同。
表1 各方法在UCSD數(shù)據(jù)集的EER性能比較
表2 各方法在Subway數(shù)據(jù)集的性能比較
由于β和ρ的取值可能會對性能結(jié)果產(chǎn)生影響,因此,有必要對這些參數(shù)的敏感性進行分析。其中,β是正則化項的懲罰系數(shù),取值為[0,1];ρ是稀疏性參數(shù),也是伯努利分布(0~1)的概率,取值為(0,1),實驗常用的幾個數(shù)值有0.01,0.05,0.1,0.2和0.5;實驗數(shù)據(jù)集選取Subway,度量采用EER值,β與EER關(guān)系如圖8??梢钥闯?,β取值0時,正則化項的系數(shù)為0,函數(shù)退化,EER性能最差;當正則化項的懲罰系數(shù)β為0.1時,EER表現(xiàn)較優(yōu)。稀疏性參數(shù)ρ與EER關(guān)系如表3,可以看出,ρ=0.05,EER表現(xiàn)最優(yōu)。通常情況下,ρ值越大,區(qū)域特征的表征越差,因為一些無用特征的權(quán)重被賦值;相反,ρ值越小,很多無用特征的權(quán)重被置為0,有利于特征表示。
表3 稀疏性參數(shù)ρ的影響
本文方法在Intel酷睿雙核i3的臺式機上運行,2.89 GHz,內(nèi)存4 GByte,采用matlab和C++混合編程。在處理視頻幀時,需要執(zhí)行3個步驟:①重新調(diào)整幀尺寸并重建FCN的輸入;②通過FCN對輸入進行表征;③利用高斯分類器對區(qū)域描述符進行檢驗。所提方法預處理平均時間為0.01 s,表征0.001 s,分類0.01 s,單個幀的異常檢測為0.021 s,大約60 frame/s。
圖8 懲罰系數(shù)β的影響Fig.8 Influence of penalty coefficient β
與其他方法的比較如表4,由于硬件和編程方法的差異,會有所差異,但差異應該不會很大??梢钥闯觯疚姆椒ㄋ俣茸羁?。其原因主要在于使用了全卷積神經(jīng)網(wǎng)絡(luò),僅處理2個卷積層,并使用稀疏自動編碼器對一些區(qū)域進行分類。處理這些較淺的層可以明顯降低計算量。此外,本文方法還采用FCN同時執(zhí)行特征提取和定位,由此實現(xiàn)了比其他方法更快的處理速度。
表4 平均運行時間比較
本文提出了一個優(yōu)化的FCN架構(gòu),生成并描述視頻的異常區(qū)域。利用FCN架構(gòu)對輸入數(shù)據(jù)做分塊級操作,由此生成的區(qū)域特征不受情境影響。此外,提出的FCN結(jié)合了預訓練CNN(AlexNet版本)和卷積層(根據(jù)訓練視頻訓練的內(nèi)核),克服了使用訓練采樣來學習完備CNN的限制。實驗結(jié)果表明,所提方法優(yōu)于其他同類方法,且整個方法的運行速度在60 frame/s左右,實時性較好。