崔 捷,張戰(zhàn)成,方 騫,殷 歆
(蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州215009)
異常行為檢測是智能公共監(jiān)控的重要任務(wù),對于提高監(jiān)控系統(tǒng)的智能性有明顯的實際意義。該任務(wù)的難點在于異常事件的發(fā)生非常罕見且異常行為類別很多難以定義,環(huán)境因素影響下某些看似正常的行為也可以被認為是異常。由于沒有很好的異常訓(xùn)練樣本,異常數(shù)據(jù)量相比正常數(shù)據(jù)量極度不平衡,業(yè)界普遍采用無監(jiān)督或半監(jiān)督機器學(xué)習(xí)算法來處理。其中無監(jiān)督算法不需要樣本標注,因此數(shù)據(jù)預(yù)處理較為簡單且非常適合樣本缺乏的情況,其通常的思路是:由于正常樣本是非常充足的,因此訓(xùn)練時可以讓模型學(xué)習(xí)正常的行為模式,當測試時輸入包含異常的樣本,由于模型沒見過異常數(shù)據(jù),算法會產(chǎn)生明顯區(qū)別于正常狀態(tài)的輸出。
深度學(xué)習(xí)在計算機視覺任務(wù)中取得了卓越的表現(xiàn)。自編碼器可用于無監(jiān)督的圖像重構(gòu),Hasan等人[1]使用3D卷積自編碼器(ConvAE)重建正常幀。Shi等人[2]考慮到長短記憶網(wǎng)絡(luò)(LSTM,Long Short-Term Memory)適合處理時間序列數(shù)據(jù)而CNN能夠提取視頻外觀信息,將長短記憶網(wǎng)絡(luò)的CNN變種Convlstm[3]引入做為自編碼器的層,取得了更高的精度提升。稀疏編碼常被用于異常檢測,這些方法假設(shè)視頻中只有一個很小的部分包含異常事件,因此,可將視頻用于構(gòu)建正常事件的學(xué)習(xí)詞典。Luo等人[4]提出ShanghaiTech無監(jiān)督數(shù)據(jù)集并提出時序相干稀疏編碼(TSC,Temporal Sparse Coding)對相似的相鄰幀用相似的重建系數(shù)進行字典編碼,同時用堆疊循環(huán)神經(jīng)網(wǎng)絡(luò)sRNN學(xué)習(xí)參數(shù)。以上方法都基于無監(jiān)督重構(gòu),即假定異常幀有更大的重構(gòu)誤差,然而由于神經(jīng)網(wǎng)絡(luò)良好的泛化性能,有時即使是異常幀也會得到較好的重構(gòu),因此這類算法往往有一定的漏檢率。Sultani等人[5]提出弱監(jiān)督數(shù)據(jù)集UCF-Crime并將異常檢測視為回歸問題,基于多示例學(xué)習(xí)將多個視頻幀視作一個多示例包并通過C3D[6]網(wǎng)絡(luò)進行特征提取,之后以多示例排序作為損失的多層全連接網(wǎng)絡(luò)預(yù)測多示例包中包含異常與否。這種方法精度很高,但是C3D[6]網(wǎng)絡(luò)計算量太大導(dǎo)致了實時性能略顯不足。肖進勝等人[7]使用Convlstm[3]和卷積-正則-激活的網(wǎng)絡(luò)代替C3D[6]提取空間和時間特征,同時引入基于隱空間的包級注意力機制,在提升速度的同時又提高了精度。
光流是物體運動映射在成像平面上像素點運動的瞬時速度,它可以反映物體運動的真實變化。Liu等人[8]加入Flownet[9]網(wǎng)絡(luò)的光流約束并提出一種基于GAN的歷史幀預(yù)測未來幀的異常檢測方法,該方法只使用正常幀訓(xùn)練。Sun等人[10]基于光流的亮度不變假設(shè)提出一種快速而魯棒的光流引導(dǎo)特征(OFF,OpticalFlow Guided Feature)用于有監(jiān)督的人員行為識別。Isola等人[11]基于條件GAN[12]提出圖像轉(zhuǎn)換模型pix2pix,該模型使用匹配的圖像作為輸入而不是隨機噪聲。尹一伊等人[13]基于GAN網(wǎng)絡(luò)求解運動學(xué)方程。受Liu等人[8]、Sun等人[10]、Isola等人[11]研究的影響,基于無監(jiān)督學(xué)習(xí)筆者提出了一種使用多個相鄰的歷史幀預(yù)測未來幀的網(wǎng)絡(luò)模型。由于考慮到正常相鄰視頻幀之間的光流引導(dǎo)特征變化是微小的,文中搭建了一種雙流生成器,并在其中設(shè)計了一種光流引導(dǎo)子網(wǎng),它能學(xué)習(xí)到輸入幀之間光流引導(dǎo)特征的稀疏變化,同時計算OFF的稀疏約束。實驗結(jié)果表明,該約束的引入提高了視頻異常行為檢測的精度。
為了提升生成器幀生成的質(zhì)量同時又能引導(dǎo)網(wǎng)絡(luò)學(xué)習(xí)到時間特征信息。筆者設(shè)計了一個端到端的基于生成對抗網(wǎng)絡(luò)的異常檢測網(wǎng)絡(luò),流程圖如圖1所示。預(yù)處理程序從攝像頭采樣監(jiān)控的連續(xù)t+1幀(t必須是大于2的偶數(shù)),其中奇數(shù)標號和偶數(shù)標號的幀分別做為上部和下部流的網(wǎng)絡(luò)輸入。生成器內(nèi)部通過光流引導(dǎo)子網(wǎng)計算OFF的損失,生成器生成的幀記為I^t+1,它將與真實的幀It+1計算幀強度和邊緣損失,最終的生成器輸出幀在組合損失的作用下接近It+1使鑒別器難以區(qū)分。Patch鑒別器則區(qū)分生成器生成的幀和真實幀。
圖1 異常行為檢測網(wǎng)絡(luò)流程圖
現(xiàn)有工作中幀或是圖片生成的網(wǎng)絡(luò)大都基于兩種結(jié)構(gòu):一是類似自編碼器的編碼解碼結(jié)構(gòu),通過對稱的編碼-解碼重建出原輸入大小的圖片,但這種結(jié)構(gòu)的生成器隨著網(wǎng)絡(luò)層數(shù)的增加存在梯度消失和信息丟失的問題;二是將U-net[14]做為生成器,它擁有多種分辨率的跳連接層解決了自編碼結(jié)構(gòu)的弊端。文中基于引入相鄰幀光流約束的原則構(gòu)造了如圖2所示的生成器。
圖2 帶有OFF約束雙流生成器
1.1.1 光流引導(dǎo)特征(OFF)約束和光流引導(dǎo)子網(wǎng)
光流法是通過相鄰圖像幀中像素點的運動對應(yīng)情況來描述場景中物體運動的一種方法。光流法的優(yōu)點就在于即使不了解場景的信息也可以準確地檢測識別運動目標的區(qū)域。且在監(jiān)控設(shè)備處于運動的情況下仍然適用,因此在深度網(wǎng)絡(luò)中引入光流相關(guān)特征是提高運動物體檢測精度的有效手段。
光流法中一個最重要的假設(shè)是亮度不變原理,即相鄰的視頻幀亮度不變,它可以用以下公式表示
其中I(x,y,t)代表t時刻視頻幀,位置(x,y)處像素的亮度值;而與之對應(yīng)的是下一個t+Δt時刻的視頻幀位置(x+Δx,y+Δy)處像素的亮度值。其中Δx和Δy代表在x和y方向上的小位移距離。將這個公式從像素層面推廣到圖像特征層面,顯然可以得到
其中f(I;w)是任意的可微映射函數(shù),I代表被f函數(shù)提取特征的圖像,w代表可微函數(shù)f中的參數(shù)。f(I;w)也可以是一個包含卷積或是循環(huán)神經(jīng)網(wǎng)絡(luò)的深度網(wǎng)絡(luò)。(x,y,t)表示為像素P點,則兩邊同時進行泰勒展開可以得到以下等式
兩邊同時除以Δt可以得到
其中(Vx,Vy)表示特征像素點P的瞬時速度。?f(I;w)(p)/?x,?f(I;w)(p)/?y分別表示?f(I;w)在點P處x和y方向上的空間梯度。?f(I;w)(p)/?t代表的是點P處沿著時間軸上的時間梯度。(Vx,Vy)所代表的就是特征級別的光流。從公式可以看出點P處的瞬時向量(Vx,Vy,1)所代表的特征級光流變化,始終與梯度向量[?f(I;w)(p)/?x,?f(I;w)(p)/?y,?f(I;w)(p)/?t]存在正交關(guān)系,該梯度向量隨著特征級光流的變化而變化。該梯度向量稱之為光流引導(dǎo)特征(OFF)。由于只使用正常幀進行訓(xùn)練,相鄰時間段內(nèi)的OFF變化應(yīng)當稀疏。
光流引導(dǎo)子網(wǎng)則基于光流引導(dǎo)特征,并將這個特征的計算推廣到深度網(wǎng)絡(luò)結(jié)構(gòu),如圖3所示,該網(wǎng)絡(luò)抽取上下流各跳連接層特征作為輸入,且不同分辨率級別的跳連接層特征對應(yīng)相應(yīng)的OFF單元。該單元使用1×1卷積分別提取t時刻及t+Δt時刻的特征,并將它們的特征通道數(shù)調(diào)整到128。水平及垂直方向的sobel卷積因子隨即對t時刻特征提取水平及垂直方向的特征空間梯度,該空間梯度即為OFF的前兩項。OFF單元的另一路將t+Δt時刻與t時刻的特征相減,由于Δt非常小,因此這步操作近似于對特征求時間梯度,這一路的輸出即為OFF的第三項。第一個OFF單元的輸出是128個OFF向量,該向量可用下面公式表示上個OFF單元輸出經(jīng)過Resnet20提取后的特征輸入t時刻特征
圖3 OFF子網(wǎng)
每個OFF單元的輸出通過Resnet20[15]提取并將該特征作為下一個分辨率OFF單元的信息輸入,它將與下一分辨率OFF單元的輸出信息進行通道數(shù)合并。OFF子網(wǎng)中最低分辨率的OFF單元輸出將通過最后一個Resnet20[15]輸出特征。這里的Resnet20[15]均是在Imagenet[16]預(yù)訓(xùn)練的,沒有批歸一化層且網(wǎng)絡(luò)輸出是最后一個殘差Block單元的輸出。子網(wǎng)最終的輸出特征記為off(t),它與光流場正交,且反映了輸入幀之間特征圖隨時間和空間的變化率。
用于預(yù)測未來幀的多個正常幀之間的OFF變化應(yīng)該是稀疏的。將任意時刻的OFF約束損失定義如下
1.1.2 強度損失
強度損失保證了生成器生成的幀和真實幀在RGB空間內(nèi)所有像素的相似性。在文中使用常用的L2范數(shù)損失函數(shù)來最小化生成幀和真實幀差值的平方和。該損失可以用以下公式表示
1.1.3 邊緣損失
Sobel算子常用于圖像的邊緣檢測,它可以銳化生成的圖像,Sobel卷積因子分為水平方向和垂直方向的,它們可以計算圖像水平方向和垂直方向的梯度,文中將水平方向設(shè)為x方向,垂直方向設(shè)為y方向,對應(yīng)方向的Sobel卷積因子同時作用于生成器生成幀和真實幀,其描述公式如下
使得預(yù)測的圖像更加清晰的策略就是直接對預(yù)測圖像梯度進行約束,基于Liu等人[8]和Mathieu等人[17]之前工作的研究結(jié)論,文中將邊緣損失定義如下
1.1.4 對抗訓(xùn)練損失
生成對抗網(wǎng)絡(luò)中包含一個生成器和一個鑒別器,訓(xùn)練生成器的目的是生成鑒別器難以區(qū)分的圖片,而訓(xùn)練鑒別器的目的是能夠區(qū)分當前這一幀是來源于真實數(shù)據(jù)集還是生成器的輸出。文中的雙流生成器在訓(xùn)練中能夠生成質(zhì)量清晰的圖片,為了能夠區(qū)分出生成器的輸出,文中使用了馬爾科夫鑒別器(Patch discriminator),該鑒別器采用了全卷積的結(jié)構(gòu)。所有Patch鑒別概率的均值為整個圖片的預(yù)測輸出?;谏厦娴脑瓌t,由I1,I2,…,It多個視頻幀經(jīng)過雙流生成器預(yù)測的輸出(未來幀)應(yīng)被Patch鑒別器判別為0,而將來源于真實數(shù)據(jù)的It判別為1,0和1分別代表虛假和真實的概率。
文中引入了最小二乘GAN[18]的對抗損失函數(shù),將均方誤差引入,鑒別器的對抗損失如下生成器要
生成能夠騙過鑒別器的圖像,因此,生成器的對抗損失可以描述為
綜上所述,文中的網(wǎng)絡(luò)的整體優(yōu)化目標函數(shù)可以描述為:
(1)生成器
(2)判別器
生成對抗網(wǎng)絡(luò)需要不斷博弈才能達到納什平衡。因此,訓(xùn)練時生成器和判別器的權(quán)重需要相互固定。文中網(wǎng)絡(luò)的幀輸入分辨率被調(diào)整為256×256,與Liu等人[8]采用的類似的方法,采樣程序一次打包5幀。文中方法的區(qū)別在于前4幀分為上下各2幀作為雙流生成器的輸入,訓(xùn)練時將batch-size調(diào)整為4。當RGB的圖像作為輸入時,學(xué)習(xí)率被設(shè)置為從0.000 2開始;當灰度圖像作為輸入時,學(xué)習(xí)率被調(diào)整為0.000 1開始,相同于RGB輸入時的動態(tài)衰減率。此外針對不同數(shù)據(jù)集,對λint,λsobel,λoff,λadv這幾個超參數(shù)設(shè)置了不同的值,一種簡單的設(shè)置方法是λint,λsobel,λoff,λadv分別設(shè)置為1.0,1.0,1.0和0.05。
由于該網(wǎng)絡(luò)只在擁有正常事件的訓(xùn)練集上進行訓(xùn)練,因此,網(wǎng)絡(luò)無法對異常事件生成清晰的視頻幀。在測試集上測試時,只有生成器參與到網(wǎng)絡(luò)的預(yù)測,生成器生成的幀與真實的幀在RGB空間的像素接近程度可以成為對異常事件的判別標準。一種簡單的方法是直接計算RGB像素值之間的歐式距離,但根據(jù)Liu等人[8]、Mathieu等人[17]的研究表明,峰值信噪比更適宜計算生成圖片的質(zhì)量,因此,文中采用峰值信噪比PSNR誤差來判別異常。生成幀和真實幀之間的峰值信噪比PSNR誤差可以用下面的公式計算,即
正常情況下PSNR的波動很小,當PSNR誤差突然變化,則意味著這些視頻幀里可能存在著異常。在計算完一個視頻的PSNR誤差后,將其值歸一化為介于[0,1]的正常得分。它反映了視頻幀的正常程度,可以用下面的公式表示
S(t)越接近0,則說明幀越異常,通過對S(t)設(shè)定相應(yīng)的閾值,則可以定位出異常的幀具體發(fā)生的時間段。
2.1.1 公開數(shù)據(jù)集
為了評估異常檢測準確性,文中的網(wǎng)絡(luò)分別在3個公開的標準數(shù)據(jù)集上做了測試,這些數(shù)據(jù)集都有真實值文件來評估準確率。此外為了檢驗OFF約束在異常檢測中的作用,筆者對比了網(wǎng)絡(luò)增加OFF約束前后的準確性和誤報率。
(1)CUHK Avenue數(shù)據(jù)集的場景設(shè)定在軌道交通的出口,該數(shù)據(jù)集包含16個訓(xùn)練視頻和21個測試視頻。訓(xùn)練視頻均是正常的行人出入車站,而異常視頻包含有人扔?xùn)|西,突然奔跑等47種異常。
(2)Shanghaitech[4]是一個設(shè)定在校園監(jiān)控場景內(nèi)的多視角較高難度的數(shù)據(jù)集,該數(shù)據(jù)集包含330個正常的訓(xùn)練視頻,測試視頻則是有人在汽車馬路上打架、玩滑板等130個異常事件。
(3)Ucf-crime[5]是一個同時包含正常以及異常的超大型弱監(jiān)督數(shù)據(jù)集,它包含1 900個共128 h時段的視頻。其中正常視頻900段,其余均是包含盜竊、槍擊、搶劫、斗毆等13種異常的視頻。圖4展示的是CUHK Avenue和Shanghaitech[4]測試數(shù)據(jù)中的正常和異常幀,圖中顯示的異常分別是有人在只允許步行的步行道上騎自行車、有人在地鐵站出口處亂扔雜物。
圖4 數(shù)據(jù)集中的正常和異常
2.1.2 實時監(jiān)控
為了體現(xiàn)該網(wǎng)絡(luò)的實際應(yīng)用性,筆者還從實時監(jiān)控中挑取了一些典型時段的畫面作為測試,由于異常在監(jiān)控中的發(fā)生十分罕見,因此,通過視頻合成的方法,在正常的視頻中插入有人打架、摔倒等異常事件的片段得到包含異常的測試監(jiān)控視頻。圖5顯示測試監(jiān)控片段中有人在地鐵站廳摔倒和在電梯打架的異常事件。
圖5 監(jiān)控中的異常事件
訓(xùn)練及測試代碼基于Tensorflow1.14的框架下編寫。GPU使用NVIDIA GeForce GTX1080,代碼在Linux 64位系統(tǒng)下運行,生成器和鑒別器訓(xùn)練均采用Adam[19]優(yōu)化器,網(wǎng)絡(luò)超參數(shù)的設(shè)置如1.2部分所述。訓(xùn)練迭代30 000次。為了降低噪聲產(chǎn)生的干擾,對輸入的訓(xùn)練圖像數(shù)據(jù)做了歸一化處理。
2.3.1 算法的準確性AUC和錯誤率EER評估
ROC是一個用于度量分類中的非均衡性的工具,由于異常行為檢測的正負樣本存在不平衡性,正負樣本的分布也可能隨著時間而變化,而采用ROC曲線來檢測可以保持不變性。ROC空間將假陽性率FPR定義為x軸,真陽性率TPR定義為y軸,因此曲線越接近坐標(0.0,1.0)說明準確率指標越好。文中的錯誤率EER定義為假陽性率數(shù)組中FPR+TPR-1的絕對值最小數(shù)為索引的值。
圖6 顯示了文中方法包含OFF約束前后的預(yù)測未來幀網(wǎng)絡(luò)與其他三個異常行為檢測算法:卷積自編碼ConvAE[1]、ConvlstmAE[2]以及TSC_sRNN[4]在CUHK Avenue數(shù)據(jù)集上的準確性。根據(jù)測試加入OFF約束后網(wǎng)絡(luò)準確率最高為84.3%,對比未加入OFF約束時準確率為82.3%,精度提高了2%。
圖6 算法在CUHK Avenue上的準確率對比
以上測試的準確率和錯誤率見表1。
表1 CUHK Avenue上的準確率和錯誤率
表2 顯示文中網(wǎng)絡(luò)與目前主流的算法在3個公開測試數(shù)據(jù)集CUHK Avenue、Shanghaitech[4]、Ucf-crime[5]上的準確率。
表2 準確率對比
文中網(wǎng)絡(luò)與目前主流算法使用相同的顯卡,在同一個測試短視頻下進行的速度比較,結(jié)果為:Ours(with OFF)(180 ms),TSC_sRNN(270 ms),ConvlstmAE(183 ms),ConvAE(238 ms)。
2.3.2 場景異常情況測試
文中的網(wǎng)絡(luò)可以通過檢測峰值信噪比PSNR的變化來實現(xiàn)異常事件發(fā)生區(qū)間段的定位,也可以通過歸一化后的異常得分設(shè)定報警閾值。圖7顯示的是網(wǎng)絡(luò)在典型視頻上的檢測情況。圖7(a)是CUHK Avenue測試集中發(fā)生異常的視頻,網(wǎng)絡(luò)在某人突然在地鐵出口處拋灑雜物,網(wǎng)絡(luò)檢測到PSNR的突然變化即發(fā)生異常。圖7(b)顯示的是一段實時監(jiān)控中原本正常的電梯場景里有人突然開始打架并爭吵,其PSNR誤差歸一化后為正常得分發(fā)生的變化。文中設(shè)定閾值為0.6,當?shù)陀?.6時視為發(fā)生異常。基本能夠?qū)崿F(xiàn)在現(xiàn)實場景中實現(xiàn)監(jiān)控報警的功能。圖7(c)顯示的是生成器在正常和有人摔倒異常時產(chǎn)生的幀輸出對比??梢娝さ巩惓J录黠@產(chǎn)生了模糊的圖像生成。
圖7 網(wǎng)絡(luò)在典型視頻上的檢測情況
基于視頻監(jiān)控場景中正常事件光流變化平滑的假設(shè),設(shè)計了一種相鄰幀的光流約束子網(wǎng)絡(luò),在條件生成對抗網(wǎng)絡(luò)中加入相鄰幀的光流約束,提出一種基于未來幀預(yù)測的視頻異常事件檢測模型。訓(xùn)練后的生成網(wǎng)絡(luò)對正常事件的視頻可以清晰的生成,異常事件的視頻幀由于不滿足光流平滑變化的假設(shè),生成的對應(yīng)的視頻幀會有較大的失真和模糊,以生成視頻幀的歸一化信噪比誤差作為異常事件檢測指標。在CUHK Avenue、Shanghaitech、Ucf-crime三個數(shù)據(jù)集上的實驗檢驗了相鄰幀光流約束的有效性,引入光流引導(dǎo)特征約束后的異常行為檢測準確率優(yōu)于傳統(tǒng)卷積自編碼器ConvAE、ConvlstmAE、稀疏編碼TSC_sRNN等方法。