李欣璐,吉根林,趙 斌
(南京師范大學(xué)計(jì)算機(jī)與電子信息學(xué)院/人工智能學(xué)院,南京210023)
視頻異常事件檢測(cè)是計(jì)算機(jī)視覺(jué)的重要應(yīng)用之一,它可以將潛在的危險(xiǎn)事件檢測(cè)出來(lái),并發(fā)出警報(bào),從而提高有關(guān)部門(mén)和機(jī)構(gòu)的響應(yīng)效率。目前視頻異常事件檢測(cè)得到了廣泛的研究,人們提出了針對(duì)各種場(chǎng)景和檢測(cè)要求的異常事件檢測(cè)方法,其中的關(guān)鍵問(wèn)題就是視頻前景中運(yùn)動(dòng)物體的特征表示。由于視頻場(chǎng)景具有多樣性,且異常的定義具有主觀不確定性,異常事件檢測(cè)任務(wù)存在一定的挑戰(zhàn)。例如,為了發(fā)現(xiàn)跌倒或打架斗毆等指定異常動(dòng)作,研究者通常以視頻中的行人交互問(wèn)題為中心,重點(diǎn)提取行人的姿態(tài)特征和運(yùn)動(dòng)特征[1?2],采用姿態(tài)估計(jì)[3]和動(dòng)作識(shí)別[4]的方式檢測(cè)視頻中的行人是否存在異常動(dòng)作。但是,在現(xiàn)實(shí)場(chǎng)景中發(fā)生的異常往往是不可預(yù)計(jì)的,而該類異常檢測(cè)方法僅能檢測(cè)出指定的人體異常動(dòng)作,通用性不強(qiáng)。并且在人群密集的場(chǎng)景下,存在行人遮擋和視頻分辨率低的問(wèn)題,姿態(tài)估計(jì)和動(dòng)作識(shí)別的準(zhǔn)確度不高,直接影響了異常檢測(cè)的準(zhǔn)確性。本文針對(duì)基于姿態(tài)和動(dòng)作的異常檢測(cè)方法存在的不足,采用表觀特征和運(yùn)動(dòng)特征共同表示前景物體的運(yùn)動(dòng)特征,將方向梯度直方圖(Histogram of oriented gradient,HOG)作為表觀特征,并選取深度神經(jīng)網(wǎng)絡(luò)提取出的光流作為運(yùn)動(dòng)特征。HOG特征的提取較為簡(jiǎn)單并且可以清晰表示視頻畫(huà)面中的紋理信息,能夠檢測(cè)出可疑物體。深度神經(jīng)網(wǎng)絡(luò)提取出的光流比傳統(tǒng)光流法提取的光流更加準(zhǔn)確且能夠充分表示移動(dòng)物體的運(yùn)動(dòng)狀態(tài),能夠檢測(cè)出運(yùn)動(dòng)異常。采用光流和HOG特征相結(jié)合的方式,不僅能檢測(cè)出視頻中的異常行為,還可以檢測(cè)出非行人實(shí)體闖入視頻區(qū)域的異常情況,增強(qiáng)了異常檢測(cè)模型的普適性。
異常事件在現(xiàn)實(shí)場(chǎng)景中不常發(fā)生,因此正常樣本的數(shù)量遠(yuǎn)大于異常樣本的數(shù)量。針對(duì)正負(fù)樣本數(shù)量不均的問(wèn)題,本文采用卷積自編碼器進(jìn)行特征學(xué)習(xí),僅用正常視頻樣本訓(xùn)練模型,無(wú)需對(duì)訓(xùn)練集和測(cè)試集進(jìn)行重新劃分。通過(guò)學(xué)習(xí)正常的行為模式,將與正常運(yùn)動(dòng)模式不匹配的情況設(shè)定為異常,可檢測(cè)所有的非正常事件。異常檢測(cè)的常用方法是將視頻幀的特征提取出來(lái)之后,直接放入異常檢測(cè)模型中進(jìn)行特征學(xué)習(xí)。而本文考慮到在視頻的不同區(qū)域,視覺(jué)信息和移動(dòng)物體的運(yùn)動(dòng)狀態(tài)差異較大,首先將視頻幀均勻劃分成互不重疊的圖塊,再對(duì)每一個(gè)圖塊進(jìn)行特征提取。讓卷積自編碼器針對(duì)視頻不同區(qū)域中的特征進(jìn)行學(xué)習(xí),在檢測(cè)時(shí)判斷視頻某一位置上的圖塊是否存在異常事件,不僅使模型的學(xué)習(xí)內(nèi)容更有針對(duì)性,同時(shí)能實(shí)現(xiàn)異常事件定位。
視頻異常事件檢測(cè)可分為兩個(gè)部分:視頻特征的提取和異常事件檢測(cè)模型的建立。視頻特征提取對(duì)于異常事件檢測(cè)的精確度起到關(guān)鍵作用,常用的特征主要分為手工設(shè)計(jì)的特征和深度模型提取的特征。Mahadevan等[5]利用混合動(dòng)態(tài)紋理(Mixtures of dynamic textures,MDT)對(duì)人群中的局部異常進(jìn)行檢測(cè)。張俊陽(yáng)等[6]考慮到異常事件通常發(fā)生在前景區(qū)域,利用自適應(yīng)混合高斯模型進(jìn)行背景分割,提取視頻前景進(jìn)行人群異常事件檢測(cè),減少計(jì)算量。光流可以較好地表示移動(dòng)物體的運(yùn)動(dòng)特征,Cong等[7]改進(jìn)光流直方圖,利用多尺度的光流直方圖(Multi?scale histograms of optical flow,MHOF)捕捉視頻中物體的運(yùn)動(dòng)信息,Colque等[8]提出了基于光流場(chǎng)矢量的方向、模長(zhǎng)、像素熵值的運(yùn)動(dòng)特征HOFME(His?togram of optical flow orientation and magnitude and entropy)。Mehran等[9]提取光流信息中更高層次的語(yǔ)義特征,利用社會(huì)力模型(Social force,SF)進(jìn)行人群異常檢測(cè)。另一種具有高層語(yǔ)義的特征是移動(dòng)物體的軌跡,常用于交通異常事件檢測(cè)[10],但是在存在遮擋時(shí)軌跡提取效果不佳。多種特征融合的方式比單一特征具有更強(qiáng)的表達(dá)能力,Xu等[11]對(duì)視頻前景圖像塊與光流場(chǎng)塊進(jìn)行像素級(jí)別的融合,形成新的圖塊,再將其輸入去噪自編碼器,以學(xué)習(xí)融合圖塊的深度特征。近年來(lái)深度學(xué)習(xí)快速發(fā)展,研究者常用深度模型對(duì)視頻進(jìn)行特征提取。異常檢測(cè)任務(wù)中常用的深度模型有:全卷積神經(jīng)網(wǎng)絡(luò)[12]、稀疏去噪自編碼器(Sparse denoising auto?encoders,SDAE)[13]等。此外,雙流卷積網(wǎng)絡(luò)[14]可提取出人體的動(dòng)作特征來(lái)對(duì)視頻中行人的動(dòng)作進(jìn)行識(shí)別,可用于異常動(dòng)作檢測(cè)。人體骨架特征可以較好地表示行人姿態(tài),Morais等[15]利用深度神經(jīng)網(wǎng)絡(luò)提取出視頻中行人的骨架特征,通過(guò)單個(gè)行人的骨架序列進(jìn)行異常行為檢測(cè),但是在人群密集的場(chǎng)景下異常檢測(cè)效果不佳。
根據(jù)不同的建模角度,視頻異常事件檢測(cè)模型可以分為基于傳統(tǒng)概率推斷的模型和基于深度學(xué)習(xí)的模型?;旌细怕手髟治觯∕ixture of probabilistic principal component analysis,MPPCA)是基于概率推斷的一種經(jīng)典模型,Kim等[16]將MPPCA和時(shí)空馬爾可夫隨機(jī)場(chǎng)(Markov random field,MRF)相結(jié)合以檢測(cè)人群異常行為。Sabokrou等[17]在將每個(gè)視頻劃分為立方塊之后,計(jì)算相鄰塊的相似度值,并利用高斯分布對(duì)正常的視頻塊進(jìn)行建模,在測(cè)試時(shí)計(jì)算提取的特征和正常特征的距離大于閾值的判定為異常。基于傳統(tǒng)概率推斷的建模方法常用高斯混合模型(Gaussian mixture model,GMM)和其他的模型進(jìn)行組合,以提高異常檢測(cè)的準(zhǔn)確度,F(xiàn)eng等[18]將多個(gè)GMM堆疊起來(lái)對(duì)正常行為模式建模,Li等[19]首先假設(shè)正常事件的表觀及運(yùn)動(dòng)特征的深度表示都服從多變量高斯分布,結(jié)合自編碼器和生成對(duì)抗網(wǎng)絡(luò)進(jìn)行聯(lián)合訓(xùn)練,對(duì)多變量高斯分布進(jìn)行擬合?;谏疃葘W(xué)習(xí)的模型中,常用的兩種方法是重構(gòu)和分類。Hasan等[20]利用傳統(tǒng)的自編碼器對(duì)HOG特征和HOF特征進(jìn)行學(xué)習(xí),并用卷積自編碼器(Con?volutional auto?encoders,Conv?AE)來(lái)學(xué)習(xí)視頻序列中的正常模式。Chong等[21]更關(guān)注視頻幀在時(shí)間維度上的變化,利用時(shí)空自編碼器(SpatioTemporal?AE)學(xué)習(xí)視頻片段中的時(shí)空特征,在異常檢測(cè)時(shí)利用重構(gòu)誤差計(jì)算異常得分,得分低的判為異常視頻幀。袁靜等[22]在SDAE中增加梯度差約束,以提升自編碼器的異常檢測(cè)效果。利用分類進(jìn)行異常檢測(cè)通常需要在訓(xùn)練時(shí)就對(duì)正常樣本和異常樣本進(jìn)行標(biāo)注,因此會(huì)面臨正負(fù)樣本不均的問(wèn)題。Xu等[11]使用單類支持向量機(jī)(One?class support vector ma?chine,OCSVM)以生成決策邊界,對(duì)深度融合表示后的特征進(jìn)行分類。Sultani等[23]提出了弱監(jiān)督算法框架,利用深度多實(shí)例排序方法訓(xùn)練分類網(wǎng)絡(luò),減少了異常樣本少帶來(lái)的問(wèn)題。2020年,Nawaratne等[24]將模糊聚合與時(shí)空自編碼器的異常檢測(cè)方法結(jié)合起來(lái),提出時(shí)空增量學(xué)習(xí)(Incremental spatio?tem?poral learner,ISTL)方法實(shí)現(xiàn)異常檢測(cè)模型的更新,不斷提高模型的性能。
本文提出的視頻異常事件檢測(cè)與定位方法處理流程如圖1所示。首先將視頻樣本拆分成視頻幀序列{frame1,frame2,…,framet,…,framen},然后將視頻幀均勻劃分成M×N個(gè)互不重疊的圖塊,每個(gè)圖塊的大小均為S×S。由于運(yùn)動(dòng)特征可以反映出視頻前景中的運(yùn)動(dòng)物體的運(yùn)動(dòng)狀態(tài),可檢測(cè)出奔跑、拋擲物品等運(yùn)動(dòng)異常,而表觀特征可以體現(xiàn)視頻畫(huà)面中是否存在異常物體,例如卡車、自行車等非行人對(duì)象,因此需要對(duì)視頻圖塊中的運(yùn)動(dòng)特征和表觀特征進(jìn)行提取。
在提取運(yùn)動(dòng)特征時(shí),將第t個(gè)視頻幀中某一位置的圖塊patch(t,i)和第t+1個(gè)視頻幀中對(duì)應(yīng)位置的圖塊patch(t+1,i)共同輸入到Flow Net2.0[25],可得到第t個(gè)視頻幀中該圖塊的光流。Flow Net2.0是一個(gè)基于卷積神經(jīng)網(wǎng)絡(luò)的深度模型,對(duì)于兩個(gè)視頻幀的輸入可以計(jì)算出前一幀相對(duì)于后一幀的光流。對(duì)光流的幅值和方向進(jìn)行顏色編碼,移動(dòng)物體的運(yùn)動(dòng)方向用不同的顏色進(jìn)行表示,而速度大小則用顏色深淺進(jìn)行表示,最終可得到1個(gè)RGB三通道的彩色光流圖。對(duì)視頻幀中每1個(gè)圖塊計(jì)算HOG,可提取視頻幀圖塊的表觀特征。
對(duì)于訓(xùn)練樣本和測(cè)試樣本先進(jìn)行視頻幀的劃分和視頻幀圖塊的特征提?。粚?duì)于某一圖塊的光流和HOG特征,分別設(shè)置一個(gè)異常檢測(cè)卷積自編碼器(Anomaly detection convolutional auto?encoders,AD?ConvAE)進(jìn)行訓(xùn)練和測(cè)試。一個(gè)位置圖塊上的AD?ConvAE僅關(guān)注該視頻位置區(qū)域里的人群運(yùn)動(dòng)情況,利用分塊學(xué)習(xí)的方式可以更有效地學(xué)習(xí)局部特征。在訓(xùn)練過(guò)程中視頻僅包含正常樣本,AD?Con?vAE通過(guò)視頻幀圖塊的光流和HOG特征學(xué)習(xí)某一區(qū)域的正常運(yùn)動(dòng)模式。在測(cè)試時(shí),將測(cè)試視頻中該區(qū)域圖塊的光流和HOG特征放入AD?ConvAE中進(jìn)行重構(gòu),根據(jù)光流的重構(gòu)誤差和HOG特征的重構(gòu)誤差計(jì)算加權(quán)重構(gòu)誤差,若重構(gòu)誤差大,則說(shuō)明該圖塊內(nèi)存在異常事件。
圖1 視頻異常事件檢測(cè)與定位方法處理流程Fig.1 Pipeline of video anomaly event detection and localization method
圖2 AD-ConvAE的網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Overview of AD-Conv AE structure
在特征學(xué)習(xí)的過(guò)程中使用卷積自編碼器作為特征學(xué)習(xí)模型,設(shè)計(jì)的異常檢測(cè)卷積自編碼器AD?Conv AE網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。卷積自編碼器和傳統(tǒng)自編碼器兩者的區(qū)別在于卷積自編碼器采用卷積方法對(duì)輸入內(nèi)容進(jìn)行變換。傳統(tǒng)自編碼器一般使用全連接層作為網(wǎng)絡(luò)的基本結(jié)構(gòu),但對(duì)于二維圖像來(lái)說(shuō)會(huì)丟失一定的空間信息,而卷積層可以更好地保留空間信息。不同于文獻(xiàn)[20]中將HOG特征和HOF特征輸入到傳統(tǒng)全連接自編碼器的方法,本文將光流和HOG特征分別輸入到卷積自編碼器中進(jìn)行重構(gòu),模型在訓(xùn)練過(guò)程中學(xué)習(xí)正常運(yùn)動(dòng)模式,在測(cè)試時(shí)計(jì)算重構(gòu)誤差進(jìn)行異常事件檢測(cè)。AD?Con?vAE的網(wǎng)絡(luò)結(jié)構(gòu)由編碼和解碼部分組成,在編碼部分,對(duì)于1個(gè)64×64×3大小的輸入,經(jīng)過(guò)3個(gè)卷積層和3個(gè)池化層,最終得到特征的深度表示。在解碼部分,對(duì)特征的深度表示進(jìn)行重構(gòu),采用卷積操作和上采樣操作,輸出一個(gè)和輸入圖像同樣大小的圖像。整個(gè)網(wǎng)絡(luò)中使用到的池化核大小均為2×2,卷積核大小均為3×3,圖中c表示通道數(shù),在卷積層中使用n個(gè)卷積核就會(huì)得到n個(gè)通道的特征圖。AD?ConvAE中使用交叉熵?fù)p失函數(shù)計(jì)算Loss值,其計(jì)算公式為
式中:x表示重構(gòu)圖像中某一點(diǎn)的像素值,y表示輸入圖像中該點(diǎn)像素值。經(jīng)式(1)計(jì)算,可以得到單個(gè)像素點(diǎn)的Loss值。對(duì)每個(gè)像素點(diǎn)都計(jì)算Loss值后取平均,可得到圖像的平均重構(gòu)誤差。在訓(xùn)練時(shí)重構(gòu)出來(lái)的圖像和輸入圖像越像越好,即平均重構(gòu)誤差越小越好。
在測(cè)試階段,將第t幀的第(m,n)位置上的視頻圖塊提取出來(lái)的光流和HOG特征分別放入已訓(xùn)練完成的AD?ConvAE中計(jì)算重構(gòu)誤差。重構(gòu)誤差大表示測(cè)試樣本存在異常,重構(gòu)誤差小表示測(cè)試樣本正常。根據(jù)得到的HOG特征重構(gòu)誤差Loss_hog(m,n,t)和光流重構(gòu)誤差Loss_optical(m,n,t),計(jì)算該位置上的總重構(gòu)誤差sumLoss(m,n,t)。第t幀的第(m,n)位置上的總重構(gòu)誤差計(jì)算公式為
式中:α為HOG特征重構(gòu)誤差的權(quán)重,β為光流重構(gòu)誤差的權(quán)重,且α+β=1。
通過(guò)設(shè)置重構(gòu)誤差閾值θ判斷該圖像塊是否存在異常事件。F(m,n,t)=0表示不存在異常事件,F(xiàn)(m,n,t)=1表示存在異常事件,判定規(guī)則為
由于采用視頻幀分塊的方式,讓異常事件檢測(cè)模型針對(duì)視頻幀中的某一區(qū)域判斷是否存在異常,因此在異常事件檢測(cè)的同時(shí)完成了異常事件定位。視頻異常事件檢測(cè)模型的訓(xùn)練過(guò)程如算法1所示。
算法1視頻異常事件檢測(cè)模型的訓(xùn)練算法
本文在3個(gè)公開(kāi)數(shù)據(jù)集(UCSD Ped1、UCSD Ped2和CUHK Avenue)上驗(yàn)證算法的有效性。UC?SD數(shù)據(jù)集中包含的異常情況主要為:非行人實(shí)體闖入人行道,例如卡車、輪椅、自行車等以及異常的行人運(yùn)動(dòng)模式,例如奔跑、玩滑板車、推車等。CUHK Avenue數(shù)據(jù)集中包含的異常情況有:行人奔跑、行人拋擲物品、行人行走方向錯(cuò)誤、出現(xiàn)非行人物體,例如自行車等。本文實(shí)驗(yàn)部分使用的數(shù)據(jù)集中,訓(xùn)練集部分僅包含正常模式,而測(cè)試集部分包含正常模式和異常模式。
由于UCSD Ped1和UCSD Ped2兩個(gè)數(shù)據(jù)集中的視頻幀大小不統(tǒng)一,并且為了方便使用Flow Net2.0進(jìn)行光流提取,在實(shí)驗(yàn)開(kāi)始時(shí)首先對(duì)視頻幀大小進(jìn)行調(diào)整。在實(shí)驗(yàn)中,將UCSD Ped1和UCSD Ped2的視頻幀大小統(tǒng)一調(diào)整為256像素×192像素,將CUHK Avenue的視頻幀大小調(diào)整為640像素×384像素。在對(duì)視頻幀進(jìn)行均勻分塊的步驟中,將UCSD Ped1和UCSD Ped2中的視頻幀劃分成互不重疊的48個(gè)圖塊,每個(gè)圖塊的大小為32像素×32像素。在CUHK Avenue數(shù)據(jù)集上,將視頻幀劃分成60個(gè)互不重疊的圖塊,每個(gè)圖塊的大小為64像素×64像素。
實(shí)驗(yàn)中使用的GPU型號(hào)為NVIDIA GeForce GTX 1060,在Tensorflow框架下實(shí)現(xiàn)。在使用卷積自編碼器AD?ConvAE進(jìn)行訓(xùn)練時(shí),根據(jù)觀察Loss值的下降速度,將迭代次數(shù)設(shè)置為50次。實(shí)驗(yàn)結(jié)果使用異常檢測(cè)任務(wù)常用性能評(píng)價(jià)標(biāo)準(zhǔn):幀級(jí)別AUC(Area under the curve)和等錯(cuò)誤率EER(Equal error rate)。
圖3 α和β取不同值時(shí)的ROC曲線圖Fig.3 ROC curves whenαandβtake different values
首先對(duì)HOG特征的重構(gòu)誤差權(quán)重α和光流的重構(gòu)誤差權(quán)重β這兩個(gè)超參數(shù)進(jìn)行調(diào)整,圖3給出了在CUHK Avenue數(shù)據(jù)集上繪制的ROC曲線。其中橫軸表示假正例率(False positive rate,F(xiàn)PR),縱軸表示真正例率(True positive rate,TPR)。計(jì)算ROC曲線下面積可得到AUC,AUC在不同α和β下的值如表1所示。實(shí)驗(yàn)結(jié)果表明,當(dāng)α=0.6,β=0.4時(shí),AUC達(dá)到最大值,即表觀特征的重要性要略高于運(yùn)動(dòng)特征,但是僅考慮移動(dòng)物體的表觀紋理信息或僅考慮移動(dòng)物體的運(yùn)動(dòng)信息時(shí),異常事件檢測(cè)的效果欠佳。因此結(jié)合移動(dòng)物體的表觀特征和運(yùn)動(dòng)特征進(jìn)行異常事件檢測(cè)合理有效。
表1 α和β取不同值時(shí)AUC值的比較Table 1 Comparison of AUC with different val?ues ofαandβ
本文所提方法在UCSD Ped1、UCSD Ped2和CUHK Avenue三個(gè)公開(kāi)數(shù)據(jù)集上,與基于傳統(tǒng)手工特征的異常檢測(cè)方法[5,8?9,16]和其他基于深度學(xué)習(xí)的異常檢測(cè)方法[20?21,24]進(jìn)行對(duì)比。由實(shí)驗(yàn)結(jié)果可知,基于深度學(xué)習(xí)的異常檢測(cè)方法整體優(yōu)于傳統(tǒng)的異常檢測(cè)方法。其中文獻(xiàn)[20]中的異常檢測(cè)方法沒(méi)有進(jìn)行分塊學(xué)習(xí)與檢測(cè),由此可見(jiàn)針對(duì)視頻的不同位置進(jìn)行特征學(xué)習(xí),可以有效地提升異常檢測(cè)性能。本文所提方法在幀級(jí)別的AUC和EER與其他方法的對(duì)比如表2所示。
表2 本文所提方法與其他異常檢測(cè)方法的比較Table 2 Compar ison of our method with other anomaly detection methods %
實(shí)驗(yàn)最后將本文提出的異常事件檢測(cè)與定位方法在3個(gè)實(shí)驗(yàn)數(shù)據(jù)集上進(jìn)行檢測(cè)結(jié)果可視化呈現(xiàn),在UCSD ped1和UCSD Ped2數(shù)據(jù)集上的可視化異常事件檢測(cè)結(jié)果如圖4所示,圖5給出了在CUHK Avenue數(shù)據(jù)集上的可視化異常事件檢測(cè)結(jié)果。其中,紅色的色塊標(biāo)識(shí)出視頻幀中包含的異常。實(shí)驗(yàn)結(jié)果表明,本文提出的異常事件檢測(cè)與定位方法可以有效地檢測(cè)出視頻中存在的異常事件,并給出準(zhǔn)確定位。
圖4 UCSD Ped1和UCSD Ped2數(shù)據(jù)集上的可視化異常事件檢測(cè)結(jié)果示例Fig.4 Visualization of abnormal event detection results on the UCSD Ped1 and UCSD Ped2 datasets
圖5 CUHK Avenue數(shù)據(jù)集上的可視化異常事件檢測(cè)結(jié)果示例Fig.5 Visualization of visual abnormal event detec?tion results on the CUHK Avenue dataset
本文提出了一種基于卷積自編碼器分塊學(xué)習(xí)的視頻異常事件檢測(cè)與定位方法,將視頻幀均勻劃分成互不重疊的圖塊,并提取各個(gè)圖塊的光流和HOG特征。利用分塊學(xué)習(xí)的方式,為視頻不同位置上的圖塊分別設(shè)計(jì)卷積自編碼器進(jìn)行正常模式的特征學(xué)習(xí)。在異常事件檢測(cè)時(shí),根據(jù)圖塊中光流和HOG特征的重構(gòu)誤差大小進(jìn)行異常判斷,并實(shí)現(xiàn)異常事件定位功能。實(shí)驗(yàn)結(jié)果表明本文提出的異常事件檢測(cè)與定位方法優(yōu)于其他方法,并且可以準(zhǔn)確地檢測(cè)和定位異常事件。