陳景霞,林文濤,龍旻翔,張鵬偉
(陜西科技大學(xué) 電子信息與人工智能學(xué)院,陜西 西安 710021)
傳統(tǒng)視頻異常檢測[1]采用手工特征提取方法,雖然檢測效果較好,但是計算成本高。與傳統(tǒng)方法相比,基于深度學(xué)習(xí)的視頻異常檢測方法具有更好的準確性、魯棒性和運行速度[2]。
為了緩解視頻中正異常事件不均衡[3],以及有監(jiān)督訓(xùn)練所需視頻標注工作量過大等問題,目前大部分研究集中在弱監(jiān)督[4]、半監(jiān)督[5]和無監(jiān)督[6]方向進行。在訓(xùn)練模型時只采用正常行為的視頻數(shù)據(jù),旨在學(xué)習(xí)正常情況下的行為變化以及緩解樣本事件不平衡的問題。在測試時如果出現(xiàn)與正常行為不符的事件,則生成的數(shù)據(jù)會與原測試數(shù)據(jù)產(chǎn)生較大誤差,由此判斷產(chǎn)生異常。
基于生成對抗網(wǎng)絡(luò)和自編碼器結(jié)構(gòu)的檢測方法不斷被提出[2],通過提取視頻幀空間特征或時間特征學(xué)習(xí)視頻中的行為變化。
本文就不同場景下多尺度特征提取不完全等問題,提出兩種生成對抗網(wǎng)絡(luò)方法。一種是將UNet3+[7]嵌入生成對抗網(wǎng)絡(luò)中學(xué)習(xí)全局信息,捕獲簡單場景下更深層次小尺度特征信息(簡稱U3P2)。另一種是將UNet++[8]引入生成對抗網(wǎng)絡(luò),學(xué)習(xí)復(fù)雜場景下大尺度特征信息(簡稱UP3)。
現(xiàn)階段的視頻異常檢測研究主要采用深度學(xué)習(xí)方法,并以視頻幀重構(gòu)和未來幀預(yù)測兩類方法為主。
基于重構(gòu)的視頻異常檢測通過訓(xùn)練正常視頻數(shù)據(jù)來獲得正常數(shù)據(jù)的分布表示[9],而異常行為出現(xiàn)時會有不同的分布,帶來較大的重構(gòu)誤差。Gong等[10]為了減輕重構(gòu)異常的漏檢問題,引入內(nèi)存模塊,提出內(nèi)存增強自編碼器模型(MemAE)。Chu等[11]結(jié)合時空特征,提出了一種使用稀疏編碼和深度學(xué)習(xí)表示的檢測方法。Ganokratanaa等[12]提出深度殘差時空轉(zhuǎn)換網(wǎng)絡(luò)(DR-STN),提高了生成器合成的圖像質(zhì)量。Wang等[13]引入基于邊緣的潛在損失,迫使產(chǎn)生更大的重建誤差,加強正異常幀的差距。
在基于預(yù)測的視頻異常檢測方面,Liu等[14]提出將分割模型UNet(U-shaped network)用于視頻異常檢測方法,通過生成對抗網(wǎng)絡(luò)(generative adversarial networks,GANs)和其獲取語義信息的能力預(yù)測未來幀進行異常判別,并采用光流模型學(xué)習(xí)幀的運動變化,取得較好的檢測結(jié)果。Dong等[15]提出雙鑒別器生成對抗網(wǎng)絡(luò)(CT-D2GAN)進行異常檢測,同樣基于UNet分割模型生成異常幀。Li等[16]提出一種基于注意力的多實例框架和幀預(yù)測框架,在預(yù)測框架內(nèi)引入內(nèi)存尋址模型。Chang等[17]提出一種帶有時空分離的卷積自動編碼器結(jié)構(gòu),采用RGB差值模擬光流運動,并在空間重構(gòu)最后一幀。
上述基于生成對抗網(wǎng)絡(luò)的研究[14-17]均采用UNet分割模型作為其網(wǎng)絡(luò)的生成器模型,雖然這些方法取得一定成果,但依然存在模型檢測效果低、場景適用性不高、多尺度特征提取不完全等問題。此外,基礎(chǔ)的UNet無法學(xué)習(xí)長距離依賴性[18],存在不能有效捕捉目標對象中多尺度特征等問題。
UNet3+[7]和UNet++[8]均是針對多尺度特征提取且具有高性能的圖像分割模型。本文也是受分割模型在視頻異常檢測應(yīng)用[14]的啟發(fā),將兩種性能較優(yōu)且能緩解上述問題的圖像分割模型應(yīng)用于生成對抗網(wǎng)絡(luò)中進行視頻異常檢測。
本文根據(jù)視頻中內(nèi)容的拍攝角度分為近景和遠景,其中近景主要是人物行為及背景距離拍攝設(shè)備較近的場景,歸屬于簡單場景;遠景是距離拍攝設(shè)備較遠的場景,如監(jiān)控視頻等,歸屬于復(fù)雜場景。
針對不同場景下,使用簡單的卷積自編碼器網(wǎng)絡(luò)特征提取能力有限[19],為此本文提出兩種異常檢測方法。其檢測整體流程如圖1所示。
圖1 異常檢測結(jié)構(gòu)
首先,疊加融合并歸一化連續(xù)的視頻幀,再通過編碼器對輸入數(shù)據(jù)提取小尺度特征。然后在簡單場景下,解碼器對編碼特征通過反卷積進行上采樣,使用U3P2網(wǎng)絡(luò)中的全尺度跳躍連接融合不同層次的特征圖,通過添加的雙卷積更全面地提取視頻幀的空間特征,在提升檢測效果的同時也減少了模型的參數(shù)量。在復(fù)雜場景下,使用UP3網(wǎng)絡(luò)并在其密集跳躍連接中引入更多的卷積來提取更加豐富的語義特征,從而提升模型對大尺度特征的提取能力。另外,所提兩種方法均采用光流模型來更好地提取視頻幀間運動信息。最后通過生成對抗網(wǎng)絡(luò)獲得預(yù)測幀,并計算預(yù)測幀與真實幀的差值,進而判斷視頻中的異常情況。
針對現(xiàn)有方法在遠景視頻中小尺度行為特征提取不準確、參數(shù)量大的問題,本文提出基于UNet3+的視頻異常檢測方法(U3P2),在提高檢測效果的同時,降低模型的參數(shù)量。
2.1.1 生成模塊
U3P2框架主要結(jié)構(gòu)如圖2所示。本文采用改進的UNet3+[7]作為網(wǎng)絡(luò)生成器,整體采用四層自編碼器結(jié)構(gòu)并將3×3大小的64個卷積核的卷積塊作為第一層。
圖2 U3P2方法結(jié)構(gòu)
下采樣階段,每層輸入將經(jīng)過雙卷積、LeakyRelu激活函數(shù),提取各個層次特征數(shù)據(jù)。上采樣階段,由于雙線性插值方法會丟掉部分特征信息,為了更好還原特征圖,解碼器部分采用反卷積的方式對拼接后特征進行上采樣操作,公式計算如下
(1)
為了捕獲更多細粒度和粗粒度的語義信息,采用全尺度跳躍連接方式,將上采樣過程中每個卷積層的卷積核個數(shù)固定,使其與第一層卷積核數(shù)量相同,從而每一層能融合來自低、同、高層次的特征圖。在拼接全尺度特征圖時,使用連續(xù)的雙卷積以及LeakyRelu激活函數(shù)作為連接時的卷積塊,以此提高對特征的提取能力,其計算公式如下
(2)
2.1.2 U3P2
當生成器的編碼層采用M特征數(shù),編碼器N層時,其中UNet3+模型參數(shù)量計算如下
(3)
式中:DF代表卷積核大小,d(·) 代表節(jié)點深度。
(4)
式中:G代表生成器,[I1,…It-1]代表連續(xù)的視頻幀。
最后采用全卷積網(wǎng)絡(luò)鑒別器,通過卷積感受野判斷每個區(qū)域,最后根據(jù)加權(quán)結(jié)果判斷預(yù)測幀是否與原圖接近。由判別器判別真假,以預(yù)測幀和真實幀的差值作為異常分數(shù)。
針對現(xiàn)有方法在近景視頻中大尺度行為特征提取不準確、準確度不高等問題,本文提出基于UNet++的視頻異常檢測方法(UP3)。
UP3框架主要結(jié)構(gòu)如圖3所示。本文使用改進的UNet++[8]作為近景視頻檢測網(wǎng)絡(luò)的生成器模型。模型整體采用五層結(jié)構(gòu),并引入密集的跳躍連接,在跳躍連接路徑中使用雙卷積卷積塊,其卷積的輸入來自同層前一個或多個卷積層的輸出和下一層低密度卷積的輸出相融合,以此減少編碼器和解碼器子網(wǎng)絡(luò)的特征圖之間的語義差距,通過抓取不同層次的特征,來捕獲更大感受野的區(qū)域特征,獲得更加豐富的語義信息。
圖3 UP3方法生成器結(jié)構(gòu)
在解碼器階段也采用反卷積對特征圖進行上采樣,每個卷積結(jié)點的計算公式如下
(5)
式中:i代表沿編碼器下采樣層索引,j代表沿跳躍連接的密集卷積層,Xi,j表示當前節(jié)點,C(·) 代表卷積以及激活函數(shù)計算,[·]代表級聯(lián)層,U(·) 代表上采樣層。
其輸入與上節(jié)相同,選取連續(xù)t-1幀在通道維度上融合疊加,再輸入改進的生成器模型預(yù)測下一幀。采用相同的損失函數(shù)學(xué)習(xí)外觀特征,并送到光流模型和全卷積網(wǎng)絡(luò)判別器中,結(jié)合足夠的對抗迭代以及損失約束,讓模型在時空維度上提取更多特征信息,學(xué)習(xí)正常行為的變化。
其中模型的參數(shù)計算如下
(6)
式中:DF代表卷積核大小,d(·) 代表節(jié)點深度。
為了加強對抗網(wǎng)絡(luò)對視頻幀的預(yù)測能力,引入4種損失約束[14]。
2.3.1 強度損失
(7)
2.3.2 梯度損失
為了更好保證預(yù)測幀的清晰度,引入梯度損失Lgd,其定義如下
(8)
式中:i,j代表視頻幀的空間索引。
2.3.3 光流損失
為了加強學(xué)習(xí)運動信息,本文引入運動損失約束,在時間上對其約束,其損失函數(shù)表示如下
(9)
2.3.4 對抗損失約束
生成對抗網(wǎng)絡(luò)已被證明在視頻生成中的可行性[2]。通常網(wǎng)絡(luò)包含一個生成器G和一個判別器D,本文將采用UNet3+或UNet++作為生成器G,使用全卷積網(wǎng)絡(luò)作為判別器D。
訓(xùn)練生成網(wǎng)絡(luò)目的是為了使生成器G學(xué)習(xí)正常事件行為特征,從而輸出與正常事件真實幀更加接近的預(yù)測幀,具體表示如下
(10)
(11)
2.3.5 目標損失函數(shù)
結(jié)合前幾節(jié)提到強度損失、梯度損失、光流損失以及對抗損失,最終目標損失函數(shù)如下所示
(12)
式中:λint、λgd、λol和λadv為各個損失部分的權(quán)重參數(shù)。
假設(shè)異常事件是不可預(yù)測,因此在訓(xùn)練時均采用正常數(shù)據(jù)訓(xùn)練,預(yù)測幀的結(jié)果也只會更加接近真實幀,將預(yù)測幀與真實幀間的差異作為異常分數(shù)的判斷。當出現(xiàn)真實異常情況時,預(yù)測幀和真實幀必會產(chǎn)生差異,若差異較小,則視為正常情況。峰值信噪比(peak signal to noise ratio,PSNR)是一種評估圖像質(zhì)量的有效方法[14],表達為
(13)
式中:在t幀時的PSNR值越高表示其預(yù)測幀生成質(zhì)量越好,更加接近真實幀,代表行為正常,反之異常。同時每個視頻的所有幀的PSNR也將歸一化到[0,1],具體計算每幀分數(shù)的公式如下
(14)
最終根據(jù)S(t) 結(jié)果判斷預(yù)測幀是否異常。
為了有效開展實驗,本文提出的兩種模型使用TensorFlow框架和NVIDIA GeForce GTX3090 GPU,在兩個公開數(shù)據(jù)集[18]CUHK Avenue和UCSD Pedestrian 2(Ped2)進行實驗驗證。數(shù)據(jù)集具體內(nèi)容如下:
(1)CUHK Avenue數(shù)據(jù)集:包含16個訓(xùn)練視頻和21個測試視頻,場景是校園大道且每幀為RGB圖像,每幀的尺寸為640×360,采取固定角度錄制的監(jiān)控視頻,其中存在行人跑錯方向、快速的奔跑、物品散落等47個異常事件。
(2)UCSD Ped2數(shù)據(jù)集:包含16個訓(xùn)練視頻和12個測試視頻,場景是行人與攝像頭拍攝方向平行的區(qū)域,每幀的尺寸為360×240,其中存在騎自行車、玩滑板、汽車等12個異常事件。
以上兩個數(shù)據(jù)集在訓(xùn)練時均采用只包含正常事件的訓(xùn)練視頻,在測試時會存在異常事件的測試視頻,異常數(shù)據(jù)部分展示如圖4所示。
圖4 異常數(shù)據(jù)部分展示
為了方便實驗對比,本文與Liu等[14]采用相同的評價指標AUC,作為視頻異常檢測的評價指標。
AUC(area under curve)是接收者操作特征曲線(receiver operating characteristic curve,ROC)下的面積。視頻異常檢測標準方式一般分為幀級和視頻級,本次實驗在幀級進行操作,根據(jù)AUC指標評估模型對異常檢測效果的好壞,當ROC曲線面積越大時,則AUC分數(shù)越高,模型檢測效果越好。
本文采用連續(xù)5幀作為網(wǎng)絡(luò)輸入,輸入每幀大小固定256×256。其中連續(xù)的前4幀用于預(yù)測最后一幀。方法均使用光流模型學(xué)習(xí)在時間維度的運動特征,并引入不同損失約束使其學(xué)習(xí)外觀特征,最終以預(yù)測幀和真實幀的差值計算異常分數(shù)。
3.3.1 不同算法性能對比
為了驗證本文模型的有效性,將與現(xiàn)有的視頻異常檢測研究在幀級的AUC指標進行對比,方法分為基于重構(gòu)和基于預(yù)測兩種,具體對比結(jié)果見表1,模型的參數(shù)量對比見表2。本文提出的UP3在Avenue數(shù)據(jù)集上AUC達到了85.8%,U3P2在Ped2數(shù)據(jù)集上AUC達到96.0%。所提方法分別是兩種數(shù)據(jù)集的最優(yōu)結(jié)果,驗證了本文提出的視頻異常檢測方法的有效性以及兩種圖像分割模型的可應(yīng)用性。
表1 幀級檢測性能比較AUC/%
表2 計算成本對比
U3P2在Avenue數(shù)據(jù)集的檢測效果雖低于UP3模型方法,但在Ped2數(shù)據(jù)集上取得最好結(jié)果,較于基準方法[14]提升0.6%,較于方法UP3提升0.3%。結(jié)合表2,方法U3P2在提升異常檢測效果的同時,也帶來了更少參數(shù)量,并與其它算法的性能保持持平甚至優(yōu)于其它算法,降低了視頻異常檢測模型的復(fù)雜度。Ped2數(shù)據(jù)集是更接近現(xiàn)實監(jiān)控的黑白視頻,視頻中的行為特征較為細小。通過全尺度跳躍連接結(jié)構(gòu),將不同尺度的特征圖進行拼接,能更有效獲取視頻幀中多尺度特征的語義信息,該方法更適用在遠景監(jiān)控的場景下。在Avenue數(shù)據(jù)集中效果與近年其它方法相差不多,其原因可能是,方法還未能將多個局部信息聯(lián)系,對大尺度行為特征提取欠缺,由于該數(shù)據(jù)集中人物行為變化較大,因此對人物行為檢測效果略低一些。
UP3在Avenue數(shù)據(jù)集檢測效果較于基準方法[14]提升0.9%,取得最優(yōu)結(jié)果。UP3采用深度卷積以及密集跳躍連接提取特征信息,針對近景視頻中的人物行為特征,該方法相比U3P2能關(guān)注較大的感受野區(qū)域特征信息,較好檢測視頻中存在的大尺度行為特征,卻也存在大量參數(shù)的使用。對于遠景數(shù)據(jù)檢測效果略低的原因,可能是UP3未能處理更小感受野的局部信息。
MemAE[10]雖然用記憶模塊存儲正常行為特征,但沒有考慮時間維度的行為變化,當記憶模塊空間設(shè)置越大時,也會帶來更多的參數(shù)量。SCG-SF[11]雖然考慮到時空特征信息,但對視頻中的多尺度特征提取能力不足,檢測結(jié)果相比其它幾種方法略低。CT-D2GAN[15]方法采用雙鑒別器生成對抗網(wǎng)絡(luò),效果就基線方法相比,提升并不明顯,說明網(wǎng)絡(luò)的疊加使用并不能提升特征的提取,而本文所提方法能更有效提取多尺度特征,提高檢測能力。
相比于重構(gòu)的模型[10,11,20],基于預(yù)測的模型[14,15]檢測效果更好。說明本文的預(yù)測模型可以有效提取連續(xù)視頻幀的時空特征信息,也證實UNet++和UNet3+圖像分割模型在視頻異常檢測領(lǐng)域的適用性。
3.3.2 結(jié)果可視化
為了更好驗證模型的有效性,將U3P2模型預(yù)測結(jié)果可視化展示,如圖5所示。
圖5 預(yù)測結(jié)果可視化
在正常行為中,預(yù)測幀與真實幀接近;出現(xiàn)異常時,將生成較為模糊的異常行為,如圖5左下角的自行車為生成的模糊異常行為。
本文所提模型在訓(xùn)練時實時計算并記錄了每個預(yù)測幀的PNSR值。當圖像生成質(zhì)量越高時,PSNR值越大,反之越小。在視頻異常檢測領(lǐng)域根據(jù)PSNR值的變化可以更加直觀判斷模型檢測的效果,在U3P2模型實驗的PSNR值結(jié)果展示如圖6所示。
圖6 PSNR值結(jié)果可視化
選取Ped2數(shù)據(jù)集中第二個測試片段作為PSNR值變化分析。從圖中看到正常行為的PSNR值變化不大,僅在[0,1]范圍發(fā)生波動,而在后幾幀中PSNR值快速下降,是由于出現(xiàn)訓(xùn)練中突然未出現(xiàn)的騎自行車現(xiàn)象,該現(xiàn)象被判定為異常,后幾幀的值趨于低值穩(wěn)定是因為在后面的片段中一直存在騎自行車的行為,即一直存在異常行為。由此也證實了本文所提方法確實能有效分辨視頻片段中的正常行為和異常行為。
3.3.3 驗證實驗
為了確定網(wǎng)絡(luò)層數(shù)的不同對視頻異常檢測效果的影響,就本文提出的兩種方法,分別以四層結(jié)構(gòu)和五層結(jié)構(gòu)且采用相同的參數(shù)在Ped2數(shù)據(jù)集上進行實驗對比。最終幀級AUC(%)結(jié)果以及參數(shù)量在表3和表4中展示,損失函數(shù)對模型的影響在表5展示。
表3 不同層數(shù)對結(jié)果的影響
表4 不同層數(shù)對參數(shù)量的影響
表5 不同損失函數(shù)在Ped2數(shù)據(jù)集中的AUC值
其中,四層網(wǎng)絡(luò)均采用特征數(shù)為64、128、256和512的結(jié)構(gòu),而五層網(wǎng)絡(luò)均采用特征數(shù)為32、64、128、256和512的結(jié)構(gòu)。通過表3和表4發(fā)現(xiàn)四層U3P2的結(jié)果優(yōu)于五層的結(jié)果,其原因在于四層時使用的參數(shù)量更多;五層的UP3的結(jié)果優(yōu)于四層的結(jié)果,也表明在參數(shù)量多的情況下預(yù)測效果更好。而U3P2在四層時的參數(shù)多,源于其全尺度跳躍連接結(jié)構(gòu),其上采樣的每層卷積核數(shù)量與下采樣第一層卷積核數(shù)量相同。當采用四層結(jié)構(gòu)且第一層數(shù)量為64,則上采樣的每一層特征數(shù)為64×4,而五層設(shè)置第一層數(shù)量為32,則上采樣的每一層特征數(shù)為32×5,五層的特征數(shù)低于四層,因此該模型在四層時效果更好;針對不同層數(shù)的UP3的預(yù)測方法,由于減少一層32特征數(shù)的卷積層,只帶來少量參數(shù)減少,因此不同層數(shù)的檢測結(jié)果接近。
表5顯示4種損失約束對方法U3P2在Ped2數(shù)據(jù)集上的影響。表中結(jié)果顯示,光流損失引入后達到96.0%,較未引入時提高至少1%,說明光流能有效提升方法在時間維度的特征提取能力。隨著損失約束的添加,AUC值明顯提升,因此驗證了加入不同的損失約束會影響方法的檢測性能,引入更多的約束條件可能會提升AUC。
針對現(xiàn)有研究方法存在不同場景下多尺度特征提取不完全等問題,本文提出兩種方法。
U3P2能夠在少量參數(shù)的情況下提取更多的空間特征信息。結(jié)合光流以及其它損失函數(shù)能在時空維度準確提取特征。在Avenue數(shù)據(jù)集檢測結(jié)果達到85.0%,在Ped2數(shù)據(jù)集檢測結(jié)果達到96.0%,適用在簡單場景中檢測小尺度行為特征。
UP3采用深度卷積和密集跳躍連接,關(guān)注更大范圍的感受野,能更好提取視頻幀復(fù)雜語義特征信息。在Avenue數(shù)據(jù)集檢測結(jié)果達到85.8%,在Ped2數(shù)據(jù)集檢測結(jié)果達到95.7%,適用于檢測更加復(fù)雜場景下的異常情況。
未來的視頻異常檢測研究主要從優(yōu)化算法的時空特征提取能力、減少模型的參數(shù)量、關(guān)聯(lián)前后景的行為變化3個方面展開。