張瑜瑋,王燕妮
(西安建筑科技大學(xué)信息與控制工程學(xué)院, 陜西 西安 710055)
異常行為檢測(cè)是增強(qiáng)監(jiān)控場(chǎng)所安全的重要科學(xué)技術(shù)手段,具有重要的社會(huì)價(jià)值和應(yīng)用價(jià)值[1]。傳統(tǒng)的異常行為檢測(cè)算法特征提取方法包括通過獲取物體在運(yùn)動(dòng)過程中的位置、長(zhǎng)度、速度等信息構(gòu)造特征的基于軌跡的方法[2-3]和通過提取底層的空間信息的基于低維特征的方法[4-7]。雖然這些方法在某些特定的場(chǎng)景下能夠取得較好的檢測(cè)效果,但這些方法是通過人工提取特征,算法對(duì)于數(shù)據(jù)庫依賴較大,其異常檢測(cè)算法不具有客觀性,且易受光照變換、視角轉(zhuǎn)換、圖像噪聲等方面的影響。
隨著卷積神經(jīng)網(wǎng)絡(luò)在行為識(shí)別領(lǐng)域研究的逐步深入,基于深度學(xué)習(xí)的視覺特征逐漸應(yīng)用到異常行為檢測(cè)模型中,并取得了較大的進(jìn)展。目前,基于深度學(xué)習(xí)的異常行為檢測(cè)主要有兩個(gè)方向:一是基于重構(gòu)的異常行為檢測(cè);二是基于預(yù)測(cè)的異常行為檢測(cè)?;谥貥?gòu)的異常行為檢測(cè)是對(duì)輸入正常行為的視頻圖像進(jìn)行特征提取,再解碼為重構(gòu)圖像,最終以重構(gòu)誤差作為異常得分判斷視頻圖像中是否含有異常行為。該方法包括以循環(huán)卷積網(wǎng)絡(luò)[8-10](RNN)、生成對(duì)抗網(wǎng)絡(luò)[11](GAN)、3D卷積網(wǎng)絡(luò)[12]等網(wǎng)絡(luò)為基礎(chǔ)模型進(jìn)行圖像重構(gòu)。由于基于重構(gòu)的異常行為檢測(cè)方法僅在正常數(shù)據(jù)上進(jìn)行學(xué)習(xí),因此模型不能準(zhǔn)確判斷出遮擋情況下的異常行為,導(dǎo)致檢測(cè)效果差?;陬A(yù)測(cè)的異常行為檢測(cè),通過提取一段連續(xù)幀視頻圖像的外觀特征與運(yùn)動(dòng)特征進(jìn)行建模,生成預(yù)測(cè)圖像,將預(yù)測(cè)圖像與真實(shí)圖像進(jìn)行對(duì)比得到預(yù)測(cè)誤差來判斷。該方法主要應(yīng)用于異常行為類型定義不準(zhǔn)確的檢測(cè)算法中。
針對(duì)現(xiàn)實(shí)生活中提取到的視頻無任何標(biāo)簽信息,異常行為類型不能準(zhǔn)確判斷等問題,提出一種注意力與特征融合的未來幀預(yù)測(cè)算法用于異常行為檢測(cè)。
生成對(duì)抗網(wǎng)絡(luò)(GAN)是一種生成式的、對(duì)抗的無監(jiān)督網(wǎng)絡(luò)模型,是生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)兩個(gè)神經(jīng)網(wǎng)絡(luò)相互競(jìng)爭(zhēng)的過程。生成器的目的是通過學(xué)習(xí)真實(shí)的圖像數(shù)據(jù)分布盡可能生成讓判別器無法區(qū)分的逼真樣本,而判別器則是盡可能去判別該樣本是真實(shí)樣本還是由生成器生成的假樣本。在理想條件下,生成器和判別器會(huì)達(dá)到納什均衡狀態(tài)。圖1展示了GAN的基本框架。
圖1 生成對(duì)抗網(wǎng)絡(luò)原理圖
為了使模型更加關(guān)注圖像的細(xì)節(jié)特征,提高圖像的清晰度,2017年Isola等人提出馬爾可夫判別器(PatchGAN)[13],將判別器改進(jìn)成了全卷積網(wǎng)絡(luò),輸出n×n的矩陣作為評(píng)價(jià)值用來評(píng)價(jià)生成器的生成圖像。
基于自身參數(shù)較少、易于訓(xùn)練的優(yōu)點(diǎn),U-Net網(wǎng)絡(luò)在圖像檢測(cè)領(lǐng)域得到了廣泛的應(yīng)用[14]。為了解決梯度消失和信息不平衡問題, U-Net網(wǎng)絡(luò)在編碼器與解碼器之間引入跳躍連接,將相同分辨率的全局空間信息與局部細(xì)節(jié)信息進(jìn)行融合,生成較高質(zhì)量的圖像。
文獻(xiàn)[15]提出了一種基于生成對(duì)抗網(wǎng)絡(luò)預(yù)測(cè)未來幀的異常行為檢測(cè)方法,該方法以正常樣本進(jìn)行學(xué)習(xí),運(yùn)用以U-Net網(wǎng)絡(luò)作為生成器的生成對(duì)抗網(wǎng)絡(luò),通過對(duì)比預(yù)測(cè)幀和未來幀,判斷圖像是否包含異常行為,但該方法的準(zhǔn)確率還需要進(jìn)一步提升。
為了對(duì)原始算法的不足進(jìn)行改進(jìn),本文采用無監(jiān)督學(xué)習(xí)方式進(jìn)行視頻幀預(yù)測(cè),利用生成對(duì)抗網(wǎng)絡(luò)作為基礎(chǔ)網(wǎng)絡(luò),以U-Net網(wǎng)絡(luò)為基礎(chǔ)對(duì)生成器進(jìn)行改進(jìn)。首先引入了SoftPool層盡可能減少池化過程中帶來的信息損失;其次,為了保留更為豐富的上下文信息,突出關(guān)鍵信息部分,引入ECA注意力機(jī)制;然后,編碼器對(duì)輸入的連續(xù)幀進(jìn)行下采樣提取底層特征,并將最后一層特征圖輸入BTENet模塊編碼全局信息,學(xué)習(xí)特征像素之間的相關(guān)信息;最后,在網(wǎng)絡(luò)特征圖的輸出部分引入CSENet模塊,基于注意力機(jī)制的特征提取出更加符合要求的通道作為輸出。然后將預(yù)測(cè)圖像輸入到馬爾可夫判別器中,由其判斷真假。為了提升模型的預(yù)測(cè)效果,施加強(qiáng)度和梯度損失函數(shù)對(duì)空間進(jìn)行約束,并加入光流損失來加強(qiáng)時(shí)間約束,保證運(yùn)動(dòng)的一致性。整體網(wǎng)絡(luò)框架如圖2所示。
圖2 整體網(wǎng)絡(luò)框架圖
異常行為檢測(cè)中所采集到的數(shù)據(jù)集大多包含大量背景信息,人在圖像中所占像素較少且相鄰幀圖像的相似度較高。原U-Net網(wǎng)絡(luò)利用最大值池化實(shí)現(xiàn)下采樣的過程容易損失部分重要信息導(dǎo)致誤檢。因此,使用SoftPool[16]池化層替換U-Net中的最大池化層,利用softmax的加權(quán)方法保留輸入圖像的特征屬性,對(duì)感受野內(nèi)的所有像素以加權(quán)求和的方式映射到網(wǎng)絡(luò)的下一層,使得網(wǎng)絡(luò)在對(duì)特征圖進(jìn)行下采樣的同時(shí),盡量減少特征信息的丟失,更多保留圖中的細(xì)粒度信息,適用于異常行為的特征提取網(wǎng)絡(luò)。
考慮到計(jì)算性能和模型的復(fù)雜度,在特征融合層中引入了一種輕量級(jí)注意力機(jī)制ECA-Net[17],其架構(gòu)圖如圖3所示。
圖3 ECA架構(gòu)圖
該網(wǎng)絡(luò)在不降低通道維數(shù)的情況下進(jìn)行跨通道信息交互。首先采用全局平均池化操作實(shí)現(xiàn)低維嵌入,得到1×1×C的特征向量,其次采用大小為K的一維卷積進(jìn)行局部跨通道連接操作。通道數(shù)C和局部跨通道卷積核K對(duì)應(yīng)關(guān)系為
(1)
式(1)中,r=2,b=1,K為計(jì)算出來臨近的奇數(shù)值。
基于BoTNet模型[18]在低層U-Net編碼器與解碼器之間添加改進(jìn)的Bottleneck Transformers模塊和ECA模塊組合而成的BTENet模塊,其結(jié)構(gòu)圖如圖4所示。其中Bottleneck Transformers模塊借鑒了ResNet Bottleneck模塊結(jié)構(gòu),將ResNet Bottleneck模塊中的空間卷積層替換成多頭自注意力塊MHSA(multi-head self-attention),如圖5所示。添加BTENet模塊后,提升目標(biāo)檢測(cè)的性能,使得網(wǎng)絡(luò)能夠更好地提取圖像中有效的局部特征,聚合圖像全局信息的同時(shí)降低模型參數(shù)量,使延遲最小化。
圖4 BTE Net結(jié)構(gòu)圖
圖5 MHSA結(jié)構(gòu)圖
為了更好融合圖像的上下文信息,增強(qiáng)特征表示,改進(jìn)了解碼器輸出分類層的上采樣網(wǎng)絡(luò)結(jié)構(gòu),將其命名為CSENet。該模塊將單一的卷積層替換成殘差網(wǎng)絡(luò)結(jié)構(gòu)[19],同時(shí)考慮到特征通道間重要程度的不同,提高對(duì)圖像幀關(guān)鍵信息的提取能力,引入SE注意力模塊[20],為后續(xù)圖像預(yù)測(cè)過程打基礎(chǔ)。CSENet模塊的結(jié)構(gòu)圖如圖6所示。
圖6 CSE Net結(jié)構(gòu)圖
3.1.1損失函數(shù)
在本文實(shí)驗(yàn)中,生成器不僅被訓(xùn)練用來欺騙判別器,而且還被要求約束條件中生成的圖像和原圖像之間的相似性。因此,生成器的損失函數(shù)由強(qiáng)度損失、梯度損失、光流損失、對(duì)抗損失組成。
強(qiáng)度損失用來保證兩幀圖像的RGB空間中對(duì)應(yīng)像素的相似性;梯度損失可以使生成的圖像銳化,更好地保持幀的清晰度;引入光流損失為了約束運(yùn)動(dòng)信息,計(jì)算預(yù)測(cè)幀與真實(shí)幀之間運(yùn)動(dòng)信息。
生成對(duì)抗網(wǎng)絡(luò)的訓(xùn)練過程包含訓(xùn)練判別器和訓(xùn)練生成器。判別器和生成器的訓(xùn)練過程的損失函數(shù)為
(2)
(3)
(4)
最終得到生成器的損失函數(shù)為
(5)
判別器的損失函數(shù)為
(6)
式(6)中,λi表示強(qiáng)度損失函數(shù)的權(quán)重,λg表示梯度損失函數(shù)的權(quán)重,λo表示光流損失函數(shù)的權(quán)重,λa表示對(duì)抗損失函數(shù)的權(quán)重。
3.1.2異常得分函數(shù)
(7)
PSNR越小表明該幀是異常的概率越大,因此,可根據(jù)PSNR設(shè)置閾值判斷視頻幀是否異常。
CUHK Avenue數(shù)據(jù)集是目前視頻異常檢測(cè)領(lǐng)域最廣泛使用的數(shù)據(jù)集之一,其主要包括16個(gè)訓(xùn)練視頻段和21個(gè)測(cè)試視頻段,測(cè)試視頻中總共包含有47個(gè)異常事件。每個(gè)視頻時(shí)長(zhǎng)約為1 min,視頻幀的分辨率大小為640×360。部分異常行為示例如圖7所示。
圖7 CUHK Avenue數(shù)據(jù)集部分異常行為示例
UCSD Ped2數(shù)據(jù)集由加州大學(xué)制作的視頻異常檢測(cè)數(shù)據(jù)集,其異常事件都與交通工具有關(guān),部分異常行為如圖8所示。該數(shù)據(jù)集包含16個(gè)訓(xùn)練視頻段和12個(gè)測(cè)試視頻端,測(cè)試視頻共包含12個(gè)異常事件。每個(gè)視頻段大約包含170幀灰度圖,視頻的分辨率大小為360×240。
圖8 UCSD Ped2數(shù)據(jù)集部分異常行為示例
該模型在NVIDIA Tesla V100,顯存為16 GB的平臺(tái)上進(jìn)行實(shí)驗(yàn),使用Python3.8語言,軟件環(huán)境為Pytorch 1.8.1,cuda 10.2。
為了衡量本文方法用于視頻異常行為檢測(cè)的有效性,采用了控制異常得分閾值來繪制接收者操作特征曲線(receiver operating characteristic,ROC)的曲線下面積(area under curve,AUC)作為評(píng)價(jià)指標(biāo)。本文方法和大多數(shù)算法一樣,使用幀級(jí)別AUC來評(píng)價(jià)算法性能,即只要在視頻幀中任何一個(gè)位置被判定為異常,則該視頻幀就被判定為異常。
訓(xùn)練時(shí),所有幀的像素被歸一化值[-1,1],每幀圖像大小設(shè)置為256×256,將連續(xù)4幀圖像作為生成器的輸入數(shù)據(jù),即設(shè)置t=4。使用Adam優(yōu)化方法,生成器和判別器的學(xué)習(xí)率分別設(shè)置為0.000 2和0.000 02,目標(biāo)函數(shù)中λi、λg、λo、λa分別設(shè)置為1.0、1.0、2.0、0.05。
3.4.1檢測(cè)性能比較
為了證明本文方法在視頻異常檢測(cè)方面的有效性,將改進(jìn)的方法與現(xiàn)有的7種不同方法在CUHK Avenue數(shù)據(jù)集和UCSD Ped2數(shù)據(jù)集中進(jìn)行比較。其中包含構(gòu)建傳統(tǒng)淺層模型、深度重構(gòu)模型、深度預(yù)測(cè)模型三類。MPPCA(概率主成分分析器的混合)+SF(社會(huì)力)[6]、MDT(動(dòng)態(tài)紋理的混合)[21]是基于手工特征的方法;Conv-AE[22]、Convlstm-AE[9]、Stacked RNN[10]和Self-training[23]是基于自編碼器的方法,通過重構(gòu)模型檢測(cè)異常行為;Pred+Recon[15]是基于生成對(duì)抗網(wǎng)絡(luò)的方法,通過預(yù)測(cè)模型檢測(cè)異常行為。表1顯示了各種方法的幀級(jí)視頻異常檢測(cè)結(jié)果。
表1 不同算法在CUHK Avenue和UCSD Ped2數(shù)據(jù)集上的AUC結(jié)果對(duì)比
從表1可以觀察到,基于自編碼器的深度重構(gòu)模型通常優(yōu)于基于手工特征的傳統(tǒng)淺層模型。這是因?yàn)槭止ぬ卣鞯奶崛⊥ǔJ腔谄渌娜蝿?wù)而取得的,因此可能是次優(yōu)的。此外,從表中數(shù)據(jù)還可以發(fā)現(xiàn)基于生成對(duì)抗網(wǎng)絡(luò)的深度預(yù)測(cè)模型比大多數(shù)基線方法表現(xiàn)更優(yōu)。本文提出的算法在CUHK Avenue數(shù)據(jù)集上取得了85.4%的AUC,比效果最優(yōu)的Pred+Recon方法領(lǐng)先0.5%。在UCSD Ped2數(shù)據(jù)集上AUC達(dá)到了92.4%。
為了更直觀地顯示本文算法的有效性,圖9展示了最優(yōu)的深度學(xué)習(xí)預(yù)測(cè)算法同一視頻幀的熱圖和本文改進(jìn)算法的熱圖。通過對(duì)比可以看出,改進(jìn)算法中目標(biāo)和背景差被明顯放大,背景噪聲減小,亮度被抑制,有利于網(wǎng)絡(luò)更專注于提取運(yùn)動(dòng)的目標(biāo),同時(shí)減少了背景對(duì)目標(biāo)的影響。
3.4.2有效性驗(yàn)證及討論
為了驗(yàn)證本文方法中各個(gè)模塊的有效性,在CUHK Avenue數(shù)據(jù)集上做了消融實(shí)驗(yàn)來驗(yàn)證。實(shí)現(xiàn)結(jié)果如表2所示。
表2 不同模塊結(jié)果對(duì)比
3.4.3異常行為結(jié)果顯示
以CUHK Avenue數(shù)據(jù)集的Testing05測(cè)試視頻為示例顯示異常檢測(cè)結(jié)果,如圖10所示。橫軸表示視頻幀數(shù),縱軸用預(yù)測(cè)幀與真實(shí)幀之間的峰值信噪比(PSNR)作為異常得分的評(píng)判指標(biāo),本文將閾值設(shè)置為35,PSNR值越小,則表明有異常行為出現(xiàn),PSNR值越大,則行為正常。從圖中可以看出,當(dāng)行人正常行走時(shí),PSNR保持較高值,當(dāng)有行人出現(xiàn)并拋擲物體時(shí),異常得分極速降低;最后行人恢復(fù)正常行走時(shí),PSNR又恢復(fù)到較高水平值。
圖10 異常檢測(cè)結(jié)果
注意力與特征融合的未來幀預(yù)測(cè)異常行為檢測(cè)算法通過構(gòu)建生成對(duì)抗網(wǎng)絡(luò)對(duì)視頻進(jìn)行未來幀預(yù)測(cè)來檢測(cè)異常行為,該算法對(duì)U-Net網(wǎng)絡(luò)框架進(jìn)行了改進(jìn),引入了一種快速高效的池化方法,設(shè)計(jì)了新的特征融合模塊和特征提取模塊,引入了輕量級(jí)注意力機(jī)制,有效改善了復(fù)雜場(chǎng)景下前景背景區(qū)分不明顯,視頻流時(shí)空間信息量不均衡,檢測(cè)效果差等問題。實(shí)驗(yàn)結(jié)果表明,該算法對(duì)復(fù)雜場(chǎng)景中的人體異常檢測(cè)更準(zhǔn)確,在CUHK Avenue數(shù)據(jù)集中AUC達(dá)到了0.854,在UCSD Ped2數(shù)據(jù)集中AUC達(dá)到了0.924,證明了改進(jìn)方法的有效性。但該算法的檢測(cè)速度有所下降,在后續(xù)工作中將進(jìn)一步輕量化網(wǎng)絡(luò)結(jié)構(gòu),提升算法的檢測(cè)速度。