肖進(jìn)勝 申夢瑤 江明俊 雷俊峰 包振宇
隨著監(jiān)控?cái)z像頭的廣泛使用,其在維護(hù)社會(huì)安全、進(jìn)行法律取證等方面凸顯日益重要的作用.由于監(jiān)控視頻與審查人員數(shù)量不對等,大量監(jiān)控視頻無法得到有效處理.因此對視頻監(jiān)控進(jìn)行自動(dòng)智能分析十分必要.視頻在時(shí)間維度上蘊(yùn)含豐富信息,但其高維度的特性也使特征表達(dá)更為復(fù)雜而難以完整地提取;此外,視頻中包含大量的交互行為,增加了視頻處理的難度.在異常行為的界定上,類似行為在不同場景會(huì)被認(rèn)為是不同的行為類型.例如汽車行駛在車行道上屬于正常行為,出現(xiàn)在人行道中則屬于異常行為.異常行為種類多、時(shí)間短、判別困難,很難找到大量數(shù)據(jù)進(jìn)行深層網(wǎng)絡(luò)訓(xùn)練.這些問題給視頻異常行為檢測帶來巨大的挑戰(zhàn).
本文主要針對步行行人群體場景進(jìn)行異常行為檢測.異常行為定義為緩慢人群中的快速運(yùn)動(dòng)如騎車、奔跑、高空墜物等.本文將用于異常檢測的經(jīng)典數(shù)據(jù)集進(jìn)行整合和事件重標(biāo)注,使其與本文所要解決的問題契合,并在該數(shù)據(jù)集上進(jìn)行與其他算法的對比測試.測試結(jié)果表明,本文算法在指標(biāo)上有較大的優(yōu)勢.本文第1 節(jié)介紹了異常事件檢測方面的相關(guān)工作;第2 節(jié)介紹本文提出的異常檢測算法,給出算法中各模塊和損失函數(shù)的具體介紹;第3 節(jié)首先說明數(shù)據(jù)集的生成,然后分析了本文算法的實(shí)驗(yàn)效果,并與其他算法進(jìn)行對比,在多個(gè)指標(biāo)上進(jìn)行分析與評價(jià);第4 節(jié)給出全文總結(jié).
視頻異常事件檢測受多種因素掣肘而極具挑戰(zhàn)性,例如: 異常視頻數(shù)量少、異常事件難以定義且種類繁多.因此,很難找到一個(gè)具有概括力的模型囊括所有異常事件,所以學(xué)者們大多從提取視頻特征的角度出發(fā),尋找異常視頻最具表現(xiàn)力的特征表示方法.視頻特征的人工提取方法著重提取分析低層次視覺特征,如導(dǎo)向梯度直方圖[1]、光流圖[2]、主成分分析[3]等.文獻(xiàn)[4]中探索了多流手動(dòng)特征進(jìn)行視頻表達(dá)的方法,構(gòu)造了由時(shí)空向量和位置向量組成的視頻立體表達(dá)結(jié)構(gòu),并改進(jìn)編碼方法使其表征能力更強(qiáng).但人工特征提取步驟復(fù)雜且不全面.
隨著深度學(xué)習(xí)的快速發(fā)展,利用神經(jīng)網(wǎng)絡(luò)[5]進(jìn)行自動(dòng)特征提取成為研究熱點(diǎn).基于視頻固有特性,有學(xué)者提出使用3D 卷積神經(jīng)網(wǎng)絡(luò)[6]實(shí)現(xiàn)對視頻時(shí)空特征的提取.文獻(xiàn)[7]學(xué)習(xí)單目標(biāo)個(gè)體的外形和三維梯度運(yùn)動(dòng)信息,分類時(shí)將正常行為模式劃分為多個(gè)偽異常類,通過多個(gè)一對多二分類器來進(jìn)行分類.文獻(xiàn)[8]提出了一種多尺度時(shí)間遞歸神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)對劃分的多網(wǎng)格區(qū)域提取的特征進(jìn)行空間維度和時(shí)間維度的關(guān)系建模,以此來進(jìn)行人群異常事件的檢測和定位.
基于重建誤差的方式進(jìn)行異常檢測的代表當(dāng)屬自編碼網(wǎng)絡(luò)[9],通過計(jì)算解碼器輸出數(shù)據(jù)與編碼器輸入數(shù)據(jù)之間的歐氏距離來判斷輸入偏離正常分布的程度,以此判斷是否異常.文獻(xiàn)[10]中設(shè)計(jì)了一個(gè)時(shí)空自編碼器,通過空間卷積與基于卷積的長短期記憶 (Convolutional long-short term memory,ConvLSTM)[11]結(jié)構(gòu)來對視頻序列進(jìn)行編碼,再利用具有對稱結(jié)構(gòu)的解碼器將視頻編碼轉(zhuǎn)換成原始圖像序列,通過計(jì)算解碼圖像與原始圖像的歐氏距離得到重建誤差,再得到異常分?jǐn)?shù).文獻(xiàn)[12]提出了一種變分自編碼器(Variational autoencoder,VAE),利用視頻編碼結(jié)果擬合分布函數(shù),對分布參數(shù)而非編碼值本身進(jìn)行建模.文獻(xiàn)[13]在稀疏去噪自編碼網(wǎng)絡(luò)的基礎(chǔ)上,添加了梯度差約束條件,使網(wǎng)絡(luò)的性能在全局異常行為檢測方面更有效.
文獻(xiàn)[14]中將帶有異常片段的視頻分為若干視頻段組成多個(gè)視頻實(shí)例,設(shè)計(jì)了全連接網(wǎng)絡(luò)將C3D 網(wǎng)絡(luò)[15]提取的視頻特征映射成異常分?jǐn)?shù),根據(jù)排名損失使含有異常片段的實(shí)例得分高于僅含正常片段實(shí)例的得分.
本文模型訓(xùn)練使用了包含異常和正常的視頻,使模型預(yù)測更有針對性,以視頻包為網(wǎng)絡(luò)輸入,通過端到端的網(wǎng)絡(luò)映射出視頻包得分,輸入形式靈活.本文設(shè)計(jì)的端到端異常檢測網(wǎng)絡(luò)算法具有以下幾點(diǎn)貢獻(xiàn):
1)以時(shí)空自編碼網(wǎng)絡(luò)為基礎(chǔ)、視頻包為視頻提取的基本單位,以提取更多有效特征,同時(shí)解決了時(shí)空自編碼器不能實(shí)時(shí)輸出視頻異常得分的問題,擴(kuò)展了應(yīng)用場景.
2)引入多實(shí)例排名框架中重要節(jié)點(diǎn)得分高的思想,利用基于隱向量的注意力機(jī)制處理視頻包時(shí)空特征,以突出重要特征,弱化無關(guān)信息對檢測結(jié)果的干擾.
3)采用交叉熵?fù)p失耦合鉸鏈損失函數(shù),優(yōu)化網(wǎng)絡(luò)模型預(yù)測效果.
本文設(shè)計(jì)了一個(gè)端到端的異常檢測網(wǎng)絡(luò),如圖1 所示,以視頻包為輸入.視頻包由視頻中順序排列的連續(xù)τ幀圖像組成,在時(shí)間維度上以步長1滑動(dòng)窗口,可得到新的視頻包.利用視頻包進(jìn)行特征提取可以在進(jìn)行空間紋理特征分析的同時(shí)保留時(shí)間信息,使提取的特征更全面、更有表現(xiàn)力.

圖1 異常行為檢測網(wǎng)絡(luò)架構(gòu)Fig.1 The framework for abnormal behavior detection
對于視頻包,首先提取單幀空間特征和多幀時(shí)間特征.為了更好地實(shí)現(xiàn)特征融合,利用三維卷積核在時(shí)間和空間維度再同時(shí)作加權(quán)特征融合,從而得到整個(gè)視頻包的時(shí)空特征表示.之后采用加入Dropout 操作的全連接層將特征轉(zhuǎn)換到一個(gè)更有表現(xiàn)力的空間中,同時(shí)降低模型過擬合風(fēng)險(xiǎn);對于視頻包的新特征表示,根據(jù)其自身特點(diǎn)利用注意力機(jī)制對其各元素進(jìn)行加權(quán)處理,再利用包級池化操作將視頻包級別的特征映射為該視頻包的異常分?jǐn)?shù)B.具體操作為

其中,I為輸入圖像,Ppre進(jìn)行圖像預(yù)處理,Fbag表示進(jìn)行視頻包特征提取,Katten表示進(jìn)行注意力機(jī)制,Pool表示進(jìn)行包級池化,將視頻包特征映射為視頻包異常得分.
動(dòng)作的發(fā)生發(fā)展具有先后順序,其中蘊(yùn)含了大量的信息.參照文獻(xiàn)[10]中對多幀序列時(shí)空特征的提取方法,首先對圖像進(jìn)行空間特征提取,之后利用ConvLSTM 針對時(shí)流中同一特征進(jìn)行狀態(tài)隨時(shí)間遷移變化過程的學(xué)習(xí).為了得到更有效的視頻包特征表示,將視頻包中提取到的各級時(shí)空特征進(jìn)行加權(quán)融合編碼,從而將幀級特征轉(zhuǎn)換為視頻包級別的特征表示.
2.1.1 單幀空間信息提取
為了獲取單幀像素之間的空間聯(lián)系及紋理結(jié)構(gòu),采用 “卷積?正則?激活”結(jié)構(gòu)[16]實(shí)現(xiàn)空間信息提取.首先利用不同權(quán)重的卷積核對輸入數(shù)據(jù)進(jìn)行線性變換,減少數(shù)據(jù)冗余的同時(shí)提取圖片結(jié)構(gòu)信息;卷積核的權(quán)重由訓(xùn)練得出.利用批規(guī)范化操作通過對隱藏層輸出的自適應(yīng)重參數(shù)化來防止梯度彌散效應(yīng),加快模型收斂速度,同時(shí)降低模型過擬合風(fēng)險(xiǎn).最后利用激活函數(shù)使網(wǎng)絡(luò)模型具有非線性性能,以便更好地?cái)M合數(shù)據(jù)分布.
在具體的網(wǎng)絡(luò)實(shí)現(xiàn)上,由于視頻包包含多幀連續(xù)圖像,為了不破壞連續(xù)幀之間的時(shí)間信息,我們在時(shí)間維度上采用兩組 “卷積?正則?激活”結(jié)構(gòu)提取單幀空間信息.對于視頻包中的每一幀固定為224×224像素大小的圖片而言,首先經(jīng)過含128 個(gè)尺寸為 5×5 的卷積核、步長為3 的卷積層,得到了128個(gè) 75×75 像素大小的特征圖,在一個(gè)批次(Batch)中對不同圖片的相應(yīng)特征圖的值進(jìn)行歸一化操作之后,采用Relu 激活函數(shù)使網(wǎng)絡(luò)具備非線性性能;之后經(jīng)過含64 個(gè)尺寸為 3×3 的卷積核、步長為2 的卷積層,得到64 個(gè)大小為 38×38 像素的特征圖,同樣以一個(gè)Batch 為單位進(jìn)行歸一化操作并進(jìn)行非線性映射.正則化和激活結(jié)構(gòu)不會(huì)改變特征圖的尺寸.輸出特征圖尺寸計(jì)算式為

其中,Lout,Lin是特征圖某維度(長、寬) 長度,Wkernel指卷積核在對應(yīng)尺寸上的大小,Sstride為步長值,為向上取整.
2.1.2 多幀時(shí)間信息提取
對于圖像序列而言,每幀像素間具有很強(qiáng)的相關(guān)性,LSTM 只能保留其時(shí)間維度上的關(guān)聯(lián)而不能很好地保留空間特征.針對這一缺陷,文獻(xiàn)[11]中加入卷積操作,使得對圖像序列特征的提取更加有效.具體為

其中,符號?表示卷積操作.記憶單元Ct記錄了從起始時(shí)刻到時(shí)刻t的累積狀態(tài)信息,ht表示輸出的時(shí)刻t的最終狀態(tài),xt表示t時(shí)刻的輸入,符號?表示Hadamard 乘積,σ和 t anh 分別表示sigmoid 和tanh 激活函數(shù),用于對提取的信息進(jìn)行非線性變換.卷積類型1W2與卷積類型2W3的不同之處在于其輸入數(shù)據(jù)有兩種或者三種,用上標(biāo)表示輸入數(shù)據(jù)種類數(shù);為了區(qū)別相同類型的不同卷積核,在式(2)和式(3)中采用權(quán)重W的不同下標(biāo)來表示不同的卷積核,如表示輸入是兩路數(shù)據(jù)但值不同的兩個(gè)卷積核.ConvLSTM 利用σ選擇性舍棄遺忘門輸入信息,輸入門利用與遺忘門相似的結(jié)構(gòu)選擇性地保留經(jīng)過tanh 非線性變換的上一時(shí)刻輸出與當(dāng)前時(shí)刻輸入的加權(quán)融合信息.
當(dāng)前時(shí)刻記憶單元狀態(tài)是由經(jīng)過遺忘門選擇性保留的上一時(shí)刻記憶單元狀態(tài)與輸入門輸出信息相加,當(dāng)前時(shí)刻輸出狀態(tài)是遺忘門選擇性保留的當(dāng)前時(shí)刻記憶單元狀態(tài)經(jīng)過 t anh 非線性變換的信息,具體實(shí)現(xiàn)為

本文采用的ConvLSTM 作用的對象是經(jīng)過卷積層提取過的空間特征圖.針對視頻包序列中每幀對應(yīng)的空間特征提取其隨時(shí)間變化信息,一則可以減少圖像數(shù)據(jù)冗余,二則可以針對關(guān)鍵特征追蹤其時(shí)流信息.本文采用了兩層ConvLSTM 級聯(lián)來提取時(shí)流信息,第1 層采用64 個(gè) 3×3 的卷積核,第2 層采用32 個(gè) 3×3 的卷積層.卷積操作時(shí)保持特征圖尺寸不變,因此兩層ConvLSTM 的輸入特征圖分別為 38×38×64 和 38×38×32.
為了更好地提取視頻包的空間和時(shí)間信息、高層與低層特征,在ConvLSTM 層后利用三維卷積層在時(shí)間和空間兩個(gè)維度上對視頻包多個(gè)特征圖進(jìn)行可訓(xùn)練參數(shù)的加權(quán)融合,輸出結(jié)果作為最終的視頻包的特征表示.融合層作用于時(shí)間維度,將8×38×38×32 的特征圖轉(zhuǎn)換為 1×38×38×32 的特征圖.融合層特征輸出結(jié)果如圖2 所示.
圖2(a)為正常幀視頻包輸入網(wǎng)絡(luò)后融合層輸出的部分特征圖.每個(gè)特征圖細(xì)化了靜態(tài)背景的建模,突出顯示運(yùn)動(dòng)物體區(qū)域.圖2(b)為異常幀視頻包融合層輸出特征圖,由于快速運(yùn)動(dòng)導(dǎo)致的時(shí)間流和空間流的信息重分配,使得前景運(yùn)動(dòng)區(qū)域與背景靜態(tài)區(qū)域融合度更高,區(qū)分度降低.

圖2 融合層特征輸出結(jié)果圖Fig.2 The feature map of fusion-layer
視頻包內(nèi)各特征元素對于最終視頻包標(biāo)簽的影響是不同的,因此我們考慮利用注意力機(jī)制對不同特征分配不同權(quán)重,使關(guān)鍵特征對結(jié)果影響占比更大.首先進(jìn)行特征空間轉(zhuǎn)換,使原始視頻包特征編碼更有表現(xiàn)力;之后利用可訓(xùn)練權(quán)值矩陣計(jì)算隱藏特征,利用隱向量訓(xùn)練擬合出該特征元素的影響占比;最后將編碼特征按占比重取值,利用包級池化操作將視頻包重定義特征映射為該視頻包的異常得分.具體流程如圖3 所示.
為了得到更加緊湊的視頻包特征表示,將時(shí)空編碼器輸出的初級視頻包特征經(jīng)由兩個(gè)帶Dropout 的全連接層處理,即圖3 中的 “特征空間轉(zhuǎn)換”過程.兩層全連接層輸出維度均為512,采用Relu激活函數(shù);Dropout 參數(shù)設(shè)為0.5,即每次訓(xùn)練時(shí)有50%的神經(jīng)單元被舍棄不參與訓(xùn)練,此舉可以降低神經(jīng)網(wǎng)絡(luò)過擬合的風(fēng)險(xiǎn).經(jīng)過特征空間轉(zhuǎn)換,得到512 維的視頻包最終特征向量.

圖3 視頻包得分計(jì)算流程Fig.3 The flowchart of bag-score calculation
之后利用可訓(xùn)練權(quán)值矩陣操作將視頻包最終特征轉(zhuǎn)換為隱藏特征,隱藏層特征維度設(shè)為128.基于隱藏特征即隱向量計(jì)算出權(quán)值向量.為了增加變換的非線性性能,在最終生成權(quán)值向量前引入非線性Softmax 變換.權(quán)值向量與視頻包最終特征向量的Hadamard 乘積即為加權(quán)視頻包特征向量.記視頻包特征總數(shù)為K,第k個(gè)視頻包特征為αk,可訓(xùn)練權(quán)值矩陣V將αk轉(zhuǎn)換為隱層特征; ΨNL為隱層特征加入非線性操作,本文采用 t anh 非線性函數(shù)實(shí)現(xiàn);W將非線性隱層特征轉(zhuǎn)換回原始空間特征;之后利用softmax 操作進(jìn)行非線性映射得到特征權(quán)值κk,即


最后對加權(quán)視頻包特征進(jìn)行包級池化.借助神經(jīng)網(wǎng)絡(luò)訓(xùn)練置換不變函數(shù)求得視頻包的異常得分.將正樣本即包含異常的視頻包標(biāo)記為1,僅包含正常視頻幀的視頻包標(biāo)記為0,因此可將得出的概率作為視頻包得分的歸一化最終結(jié)果.至此最終實(shí)現(xiàn)視頻包特征到視頻包得分的映射.記 Π 是對第k個(gè)加權(quán)視頻包特征向量進(jìn)行的置換不變操作,在實(shí)驗(yàn)中取各元素累加和.σ是sigmoid 函數(shù),即圖3中的非線性映射.對應(yīng)的視頻包得分B為

網(wǎng)絡(luò)最終的輸出是使用sigmoid 處理過的[0,1]數(shù)值,該輸出既可以作為輸入被判為正類的概率,也可作為視頻包的最終異常得分.因此損失函數(shù)的構(gòu)成也從這兩方面進(jìn)行考慮.根據(jù)sigmoid 函數(shù)的計(jì)算式,得


其中,N為樣本總數(shù),Bi為第i個(gè)樣本真實(shí)值,為第i個(gè)樣本預(yù)測值.
交叉熵?fù)p失函數(shù)在輸入噪聲時(shí)也會(huì)得到非0即1 的結(jié)果,會(huì)增加網(wǎng)絡(luò)過擬合的風(fēng)險(xiǎn),在實(shí)際應(yīng)用中不好進(jìn)行閾值的選取.考慮到視頻包的特性,我們希望包含異常幀的視頻包的異常得分要比僅含正常幀的異常得分高,因此損失函數(shù)最好可以增大類別間距.本文加入二分類鉸鏈損失函數(shù)lossbh,即

lossbh通過增大正樣本預(yù)測概率,減小負(fù)樣本預(yù)測概率來增大類間距,使網(wǎng)絡(luò)在應(yīng)對少量噪聲輸入時(shí)有一定的容錯(cuò)量.最終的網(wǎng)絡(luò)訓(xùn)練損失函數(shù)為

其中,λ為lossbh的權(quán)重參數(shù),作為基礎(chǔ)分類網(wǎng)絡(luò)損失函數(shù)lossbc的補(bǔ)充項(xiàng)協(xié)助訓(xùn)練模型參數(shù).為了探究λ對模型訓(xùn)練的影響,取其值為0.5,1,2,3 時(shí)分析損失函數(shù)整體性能,結(jié)果如圖4 所示.

圖4 不同預(yù)測分值下的loss 變化Fig.4 The loss under different predictions
取正樣本的不同預(yù)測值得到不同的損失值,網(wǎng)絡(luò)輸出sigmoid 函數(shù)歸一化[0,1]值.交叉熵?fù)p失(bc_loss)是分類網(wǎng)絡(luò)的基礎(chǔ)損失函數(shù),其在整個(gè)預(yù)測值空間呈非線性變化,預(yù)測值與真實(shí)值差距越大,懲罰越嚴(yán)重.變種鉸鏈損失(hingle_new_loss)意圖使正樣本得分比負(fù)樣本得分高,使模型更多關(guān)注整體的分類效果.對變種鉸鏈損失取不同權(quán)值組合成混合損失(mix_loss),從結(jié)果圖可以看到,當(dāng)λ=0.5時(shí),在基礎(chǔ)損失函數(shù)上添加的線性因素效果不甚明顯;而當(dāng)λ取值較大時(shí),過多的線性因素會(huì)遮蓋基礎(chǔ)損失函數(shù)的非線性性能.從損失函數(shù)值域考慮,兩項(xiàng)值域相近,權(quán)值加倍反而會(huì)導(dǎo)致值域的不平衡.綜合考慮,后續(xù)實(shí)驗(yàn)將采用λ=1 時(shí)訓(xùn)練的模型,結(jié)合非線性損失函數(shù)和線性損失函數(shù),增大懲罰值,使網(wǎng)絡(luò)收斂更快.
本文算法應(yīng)用場景為行人正常運(yùn)動(dòng)場景,所要進(jìn)行的異常事件檢測包括跑動(dòng)、滑板、車類及高空拋物.異常事件的定義基于以下考慮: 1) 行人步行群體中駕駛交通工具屬于不規(guī)范行為,容易產(chǎn)生交通事故;2) 正常人群中的跑動(dòng)意味著某種緊急事情的發(fā)生,需要引起重視;3) 高空拋物有誤傷人的嫌疑,判為異常.所使用的視頻由固定角度的監(jiān)控?cái)z像頭拍攝.目前常用的數(shù)據(jù)集有Avenue,UMN,UCSD.
Avenue 數(shù)據(jù)[17]包含CUHK 校園大道拍攝的正常行人行走的視頻,其中訓(xùn)練集包含16 個(gè)視頻段共15328 幀,測試集包含21 個(gè)視頻共15324 幀.異常場景是人物跑動(dòng)、反方向走動(dòng)、閑逛等.UMN數(shù)據(jù)集[18]包含11 個(gè)視頻段,異常事件類型為人群突散,長度在70~ 200 幀不等.室內(nèi)場景光照不足而視頻整體偏暗.UCSD 數(shù)據(jù)集[19]的異常事件包括騎自行車、滑冰、小型手推車及橫穿人行道踐踏草地.Ped1 是朝向和遠(yuǎn)離攝像頭方向的片段,有34個(gè)訓(xùn)練視頻和36 個(gè)測試視頻.Ped2 是行人運(yùn)動(dòng)軌跡與攝像頭平行的場景,包括16 個(gè)訓(xùn)練視頻和12個(gè)測試視頻.
以上數(shù)據(jù)集中訓(xùn)練集只包含正常行人行走的視頻,本文網(wǎng)絡(luò)訓(xùn)練同時(shí)依賴正樣本與負(fù)樣本.鑒于此,本文將以上數(shù)據(jù)集進(jìn)行合并篩選,將含有異常事件的視頻重新進(jìn)行整合分配,劃分訓(xùn)練集與測試集;同時(shí)根據(jù)本文所定義的任務(wù),將原有數(shù)據(jù)集中規(guī)定的不符合本文任務(wù)目標(biāo)的異常事件去除,即重新標(biāo)定ground truth.對于整合的數(shù)據(jù)集而言,選取事件較為單一的40 個(gè)視頻文件作為訓(xùn)練集,其余33 個(gè)視頻文件為測試集.新的數(shù)據(jù)集相較于原有數(shù)據(jù)集而言,增加了不少挑戰(zhàn): 1)場景多.共有室內(nèi)和室外六種不同場景,不同場景攝像頭位置與角度不同,幀率及清晰度也有很大差異;2)異常事件類型多.涉及單人和群體異常事件,對于滑板、自行車、跑動(dòng)等異常事件類型,人物外觀與正常行走狀態(tài)相差無幾,增加了算法檢測難度.后續(xù)實(shí)驗(yàn)在該數(shù)據(jù)集上進(jìn)行.
本文所提出的神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)輸入格式方面尚未做多尺度輸入設(shè)計(jì),所以在原始視頻輸入網(wǎng)絡(luò)時(shí)需要進(jìn)行預(yù)處理.對于輸入的三通道彩色圖將其轉(zhuǎn)換為 224×224 像素大小的單通道灰度圖.為了降低因噪聲而產(chǎn)生的圖像像素離群值的干擾,同時(shí)為得到圖像稀疏性表示,對輸入圖像矩陣進(jìn)行歸一化處理,并將值域限制在[0,1].
訓(xùn)練及測試代碼運(yùn)行在Centos7 系統(tǒng)下,使用Intel i5-8600K@3.60 GHz×6 及 NVIDIA Ge-Force TITAN X.算法搭建使用以tensorflow 為后端的keras 框架,語言為python,此外還使用了opencv等擴(kuò)展包.
3.3.1 訓(xùn)練參數(shù)變化
本文算法訓(xùn)練使用Adam 優(yōu)化器,學(xué)習(xí)率為0.0001;batch_size 為32;當(dāng)loss 連續(xù)5 個(gè)訓(xùn)練批次epoch 不變結(jié)束訓(xùn)練.網(wǎng)絡(luò)輸入視頻包,由于采用LSTM 提取時(shí)間特征,τ值不宜過小,因此參考文獻(xiàn)[10]中取τ=8,另取τ=10 分別進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,訓(xùn)練損失變化如圖5.

圖5 損失訓(xùn)練變化曲線圖Fig.5 The loss curve in training stage
當(dāng)τ=8 (train_loss_t8)時(shí),每個(gè)epoch 含有15618 組輸入,在第34 個(gè)epoch 時(shí)訓(xùn)練終止,以該處模型為此次訓(xùn)練代表模型,在測試集進(jìn)行測試,所得到AUC_T8=0.754,EER_T8=0.292.當(dāng)τ=10 (train_loss_10)時(shí),每個(gè)epoch 含有15538組輸入,訓(xùn)練到第53 個(gè)epoch 終止,由于訓(xùn)練結(jié)尾模型訓(xùn)練損失產(chǎn)生波動(dòng),取相對平穩(wěn)狀態(tài)下的模型,即第48 個(gè)epoch 時(shí)訓(xùn)練的模型作為此次訓(xùn)練的代表模型,在測試集測試結(jié)果為AUC_T10=0.724,EER_T10=0.347.
從訓(xùn)練過程來看,訓(xùn)練前期τ=8 模型網(wǎng)絡(luò)損失值下降速度相對較快,模型收斂速度更快,而在訓(xùn)練終點(diǎn)處所達(dá)到的網(wǎng)絡(luò)損失值相對略高;從測試集測試定量指標(biāo)來看,τ=8 模型有較高的檢測正確率,可以預(yù)想到,雖然τ=10 模型中視頻包中包含了更多時(shí)間信息,但是由于數(shù)據(jù)維度增加,模型擬合困難,從而出現(xiàn)指標(biāo)降低的現(xiàn)象.后續(xù)實(shí)驗(yàn)中本文采用τ=8 的第34 個(gè)epoch 訓(xùn)練的模型進(jìn)行客觀指標(biāo)的對比測試.
3.3.2 測試結(jié)果對比與分析
1)客觀指標(biāo)AUC 及EER
參考文獻(xiàn)[19?20],本文同樣使用操作者操作特征 (Receiver operating characteristic,ROC)曲線及其所對應(yīng)的面積(Area under the curve,AUC)來作為模型特性的衡量指標(biāo).ROC 橫軸負(fù)正類率(False positive rate,FPR)表示負(fù)類被預(yù)測為正類的概率,縱軸真正類率(True positive rate,TPR)表示正類預(yù)測正確的概率.理想目標(biāo)是TPR=1,FPR=0,故ROC 曲線越靠攏點(diǎn)(0,1)越好.定義錯(cuò)誤率EER=((1-TPR)+FPR)/2.
本文算法(Milfusion)與時(shí)空自編碼器 (Encoder)[10]、變分編碼器(Vae)[12]、多實(shí)例排名框架(Mir)[14]在ROC 指標(biāo)的對比結(jié)果如圖6 所示.從圖中可以看出,本文算法曲線最接近點(diǎn)(0,1),曲線下面積最大,時(shí)空自編碼算法次之,變分自編碼算法表現(xiàn)最差.

圖6 異常檢測算法ROC 曲線圖Fig.6 The ROC curve of different algorithms
AUC 及EER 指標(biāo)見表1,本文算法在這兩項(xiàng)指標(biāo)上效果最好,錯(cuò)誤率最低.

表1 異常檢測算法AUC 及EER 指標(biāo)Table 1 The AUC and EER of different algorithms
2)幀級正確率與事件正確率
AUC 計(jì)算時(shí)須使待檢測樣本中同時(shí)包含正例和負(fù)例.而對于一些只包含異常或正常的視頻而言,該指標(biāo)無法使用,因此增加新的指標(biāo)評估模型性能.記正例判斷錯(cuò)誤的比率為幀級漏檢率,負(fù)例判斷正確的比率為幀級虛警率,二者之和為幀級錯(cuò)誤率(Frame-error rate,FER).
由于不同幀率人物運(yùn)動(dòng)速度不盡相同,對事件發(fā)生的邊緣定界有很大的歧義.因此補(bǔ)充事件級別的指標(biāo),事件識(shí)別率(EHR),根據(jù)檢測出異常幀的百分比來判斷是否檢測出該異常.事件級別的指標(biāo)優(yōu)勢在于事件邊界界定影響小.對于定義的異常事件,相差20 幀以上記為兩事件.
圖7 選取了[0,1]范圍內(nèi)以0.01 的步長作為閾值,在該閾值下幾種算法在整個(gè)數(shù)據(jù)集的FER、EHR.對于一個(gè)事件,以幀級檢測率不小于60%判為檢測出該事件.從圖中可以看出,多實(shí)例排名框架的事件檢測率和幀級錯(cuò)誤率最高,綜合來看,其性能不佳.本文算法的幀級錯(cuò)誤率明顯低于其余三種算法,事件檢測率指標(biāo)略低于時(shí)空自編碼算法.因此,在整體指標(biāo)上本文算法具有很大優(yōu)勢.

圖7 異常檢測算法在幀級及事件級指標(biāo)對比圖Fig.7 The frame-level and event-level index of different algorithms
3)視頻檢測效果及時(shí)間對比
從上述指標(biāo)來看,本文算法和時(shí)空自編碼算法性能最好,在此僅列舉本文算法和時(shí)空自編碼算法的效果.圖8 選取了3 個(gè)視頻的檢測結(jié)果.
圖8(a)來自于UMN 數(shù)據(jù)集,異常事件為人群突散: 本文算法在正常片段有三次持續(xù)時(shí)間較短的尖峰,在異常片段分?jǐn)?shù)較高且持續(xù)時(shí)間長;而時(shí)空自編碼算法在正常片段得分高.圖8(b)來自于Avenue 數(shù)據(jù)集,異常事件為高空拋物: 本文算法與對比算法都能正確檢測出異常事件,本文算法異常得分略低;在人物俯身撿拾墜落物時(shí),本文算法出現(xiàn)了虛警.圖8(c)來自UCSD 數(shù)據(jù)集,異常現(xiàn)象為騎車: 對比算法出現(xiàn)漏報(bào)和虛警,但本文算法能夠檢測出該事件.

圖8 視頻檢測結(jié)果Fig.8 The results of abnormal behavior detection in videos
在檢測時(shí)間上,本文將視頻輸入到輸出結(jié)果耗時(shí)也進(jìn)行了對比,該時(shí)間也包含了圖像尺寸改變所消耗的時(shí)間,具體見表2.表中數(shù)據(jù)是在測試集上所有視頻從網(wǎng)絡(luò)輸入到得到輸出結(jié)果的每幀耗時(shí)的平均值.本文網(wǎng)絡(luò)處理時(shí)間要比時(shí)空自編碼算法要短.

表2 算法處理時(shí)間(CPU) (ms)Table 2 The processing time of algorithms (CPU) (ms)
本文在輸出形式有很大的優(yōu)勢.自編碼算法輸出以重建損失為基礎(chǔ)進(jìn)行分?jǐn)?shù)的正則化處理,需要將所有視頻幀處理完畢后才能得到視頻每幀的異常得分.而本文算法網(wǎng)絡(luò)輸出即為視頻幀的異常得分,不需要經(jīng)過特殊處理,在使用場景方面有很大優(yōu)勢.
本文提出了一個(gè)端到端的異常檢測網(wǎng)絡(luò),用于監(jiān)控視頻行人步行群體中劇烈運(yùn)動(dòng)的檢測.該網(wǎng)絡(luò)以視頻包為輸入,有利于保存視頻本身的時(shí)序信息及圖像的紋理結(jié)構(gòu)信息.通過時(shí)空編碼器充分提取視頻時(shí)空特征后,再利用注意力機(jī)制對提取到的特征進(jìn)行加權(quán)處理,突出重要特征信息,弱化無關(guān)信息對檢測結(jié)果的干擾.最后采用包級池化將視頻包級別的特征映射為視頻包對應(yīng)的異常得分.該網(wǎng)絡(luò)在輸入形式上以滑動(dòng)步長為1 的窗口進(jìn)行視頻包的歸類提取,可以應(yīng)對視頻流等實(shí)時(shí)輸入情況,應(yīng)用場景得到了極大地?cái)U(kuò)展;在輸出形式上,該網(wǎng)絡(luò)直接輸出視頻幀的異常得分,不需要再做其他處理,方便使用.但是本文網(wǎng)絡(luò)的缺點(diǎn)在于在最后得到的是異常得分而非正常或異常的分類結(jié)果,在將得分進(jìn)行類別映射時(shí)需要設(shè)置閾值,閾值選取會(huì)極大地影響類別映射結(jié)果.