陳景霞,林文濤,龍旻翔,張鵬偉
(陜西科技大學 電子信息與人工智能學院,陜西 西安 710021)
傳統視頻異常檢測[1]采用手工特征提取方法,雖然檢測效果較好,但是計算成本高。與傳統方法相比,基于深度學習的視頻異常檢測方法具有更好的準確性、魯棒性和運行速度[2]。
為了緩解視頻中正異常事件不均衡[3],以及有監督訓練所需視頻標注工作量過大等問題,目前大部分研究集中在弱監督[4]、半監督[5]和無監督[6]方向進行。在訓練模型時只采用正常行為的視頻數據,旨在學習正常情況下的行為變化以及緩解樣本事件不平衡的問題。在測試時如果出現與正常行為不符的事件,則生成的數據會與原測試數據產生較大誤差,由此判斷產生異常。
基于生成對抗網絡和自編碼器結構的檢測方法不斷被提出[2],通過提取視頻幀空間特征或時間特征學習視頻中的行為變化。
本文就不同場景下多尺度特征提取不完全等問題,提出兩種生成對抗網絡方法。一種是將UNet3+[7]嵌入生成對抗網絡中學習全局信息,捕獲簡單場景下更深層次小尺度特征信息(簡稱U3P2)。另一種是將UNet++[8]引入生成對抗網絡,學習復雜場景下大尺度特征信息(簡稱UP3)。
現階段的視頻異常檢測研究主要采用深度學習方法,并以視頻幀重構和未來幀預測兩類方法為主。
基于重構的視頻異常檢測通過訓練正常視頻數據來獲得正常數據的分布表示[9],而異常行為出現時會有不同的分布,帶來較大的重構誤差。Gong等[10]為了減輕重構異常的漏檢問題,引入內存模塊,提出內存增強自編碼器模型(MemAE)。Chu等[11]結合時空特征,提出了一種使用稀疏編碼和深度學習表示的檢測方法。Ganokratanaa等[12]提出深度殘差時空轉換網絡(DR-STN),提高了生成器合成的圖像質量。Wang等[13]引入基于邊緣的潛在損失,迫使產生更大的重建誤差,加強正異常幀的差距。
在基于預測的視頻異常檢測方面,Liu等[14]提出將分割模型UNet(U-shaped network)用于視頻異常檢測方法,通過生成對抗網絡(generative adversarial networks,GANs)和其獲取語義信息的能力預測未來幀進行異常判別,并采用光流模型學習幀的運動變化,取得較好的檢測結果。Dong等[15]提出雙鑒別器生成對抗網絡(CT-D2GAN)進行異常檢測,同樣基于UNet分割模型生成異常幀。Li等[16]提出一種基于注意力的多實例框架和幀預測框架,在預測框架內引入內存尋址模型。Chang等[17]提出一種帶有時空分離的卷積自動編碼器結構,采用RGB差值模擬光流運動,并在空間重構最后一幀。
上述基于生成對抗網絡的研究[14-17]均采用UNet分割模型作為其網絡的生成器模型,雖然這些方法取得一定成果,但依然存在模型檢測效果低、場景適用性不高、多尺度特征提取不完全等問題。此外,基礎的UNet無法學習長距離依賴性[18],存在不能有效捕捉目標對象中多尺度特征等問題。
UNet3+[7]和UNet++[8]均是針對多尺度特征提取且具有高性能的圖像分割模型。本文也是受分割模型在視頻異常檢測應用[14]的啟發,將兩種性能較優且能緩解上述問題的圖像分割模型應用于生成對抗網絡中進行視頻異常檢測。
本文根據視頻中內容的拍攝角度分為近景和遠景,其中近景主要是人物行為及背景距離拍攝設備較近的場景,歸屬于簡單場景;遠景是距離拍攝設備較遠的場景,如監控視頻等,歸屬于復雜場景。
針對不同場景下,使用簡單的卷積自編碼器網絡特征提取能力有限[19],為此本文提出兩種異常檢測方法。其檢測整體流程如圖1所示。

圖1 異常檢測結構
首先,疊加融合并歸一化連續的視頻幀,再通過編碼器對輸入數據提取小尺度特征。然后在簡單場景下,解碼器對編碼特征通過反卷積進行上采樣,使用U3P2網絡中的全尺度跳躍連接融合不同層次的特征圖,通過添加的雙卷積更全面地提取視頻幀的空間特征,在提升檢測效果的同時也減少了模型的參數量。在復雜場景下,使用UP3網絡并在其密集跳躍連接中引入更多的卷積來提取更加豐富的語義特征,從而提升模型對大尺度特征的提取能力。另外,所提兩種方法均采用光流模型來更好地提取視頻幀間運動信息。最后通過生成對抗網絡獲得預測幀,并計算預測幀與真實幀的差值,進而判斷視頻中的異常情況。
針對現有方法在遠景視頻中小尺度行為特征提取不準確、參數量大的問題,本文提出基于UNet3+的視頻異常檢測方法(U3P2),在提高檢測效果的同時,降低模型的參數量。
2.1.1 生成模塊
U3P2框架主要結構如圖2所示。本文采用改進的UNet3+[7]作為網絡生成器,整體采用四層自編碼器結構并將3×3大小的64個卷積核的卷積塊作為第一層。

圖2 U3P2方法結構
下采樣階段,每層輸入將經過雙卷積、LeakyRelu激活函數,提取各個層次特征數據。上采樣階段,由于雙線性插值方法會丟掉部分特征信息,為了更好還原特征圖,解碼器部分采用反卷積的方式對拼接后特征進行上采樣操作,公式計算如下
(1)

為了捕獲更多細粒度和粗粒度的語義信息,采用全尺度跳躍連接方式,將上采樣過程中每個卷積層的卷積核個數固定,使其與第一層卷積核數量相同,從而每一層能融合來自低、同、高層次的特征圖。在拼接全尺度特征圖時,使用連續的雙卷積以及LeakyRelu激活函數作為連接時的卷積塊,以此提高對特征的提取能力,其計算公式如下


(2)

2.1.2 U3P2

當生成器的編碼層采用M特征數,編碼器N層時,其中UNet3+模型參數量計算如下


(3)
式中:DF代表卷積核大小,d(·) 代表節點深度。

(4)
式中:G代表生成器,[I1,…It-1]代表連續的視頻幀。

最后采用全卷積網絡鑒別器,通過卷積感受野判斷每個區域,最后根據加權結果判斷預測幀是否與原圖接近。由判別器判別真假,以預測幀和真實幀的差值作為異常分數。
針對現有方法在近景視頻中大尺度行為特征提取不準確、準確度不高等問題,本文提出基于UNet++的視頻異常檢測方法(UP3)。
UP3框架主要結構如圖3所示。本文使用改進的UNet++[8]作為近景視頻檢測網絡的生成器模型。模型整體采用五層結構,并引入密集的跳躍連接,在跳躍連接路徑中使用雙卷積卷積塊,其卷積的輸入來自同層前一個或多個卷積層的輸出和下一層低密度卷積的輸出相融合,以此減少編碼器和解碼器子網絡的特征圖之間的語義差距,通過抓取不同層次的特征,來捕獲更大感受野的區域特征,獲得更加豐富的語義信息。

圖3 UP3方法生成器結構
在解碼器階段也采用反卷積對特征圖進行上采樣,每個卷積結點的計算公式如下
(5)
式中:i代表沿編碼器下采樣層索引,j代表沿跳躍連接的密集卷積層,Xi,j表示當前節點,C(·) 代表卷積以及激活函數計算,[·]代表級聯層,U(·) 代表上采樣層。
其輸入與上節相同,選取連續t-1幀在通道維度上融合疊加,再輸入改進的生成器模型預測下一幀。采用相同的損失函數學習外觀特征,并送到光流模型和全卷積網絡判別器中,結合足夠的對抗迭代以及損失約束,讓模型在時空維度上提取更多特征信息,學習正常行為的變化。
其中模型的參數計算如下


(6)
式中:DF代表卷積核大小,d(·) 代表節點深度。
為了加強對抗網絡對視頻幀的預測能力,引入4種損失約束[14]。
2.3.1 強度損失

(7)

2.3.2 梯度損失
為了更好保證預測幀的清晰度,引入梯度損失Lgd,其定義如下


(8)
式中:i,j代表視頻幀的空間索引。
2.3.3 光流損失
為了加強學習運動信息,本文引入運動損失約束,在時間上對其約束,其損失函數表示如下
(9)

2.3.4 對抗損失約束
生成對抗網絡已被證明在視頻生成中的可行性[2]。通常網絡包含一個生成器G和一個判別器D,本文將采用UNet3+或UNet++作為生成器G,使用全卷積網絡作為判別器D。
訓練生成網絡目的是為了使生成器G學習正常事件行為特征,從而輸出與正常事件真實幀更加接近的預測幀,具體表示如下
(10)

(11)
2.3.5 目標損失函數
結合前幾節提到強度損失、梯度損失、光流損失以及對抗損失,最終目標損失函數如下所示


(12)
式中:λint、λgd、λol和λadv為各個損失部分的權重參數。
假設異常事件是不可預測,因此在訓練時均采用正常數據訓練,預測幀的結果也只會更加接近真實幀,將預測幀與真實幀間的差異作為異常分數的判斷。當出現真實異常情況時,預測幀和真實幀必會產生差異,若差異較小,則視為正常情況。峰值信噪比(peak signal to noise ratio,PSNR)是一種評估圖像質量的有效方法[14],表達為
(13)
式中:在t幀時的PSNR值越高表示其預測幀生成質量越好,更加接近真實幀,代表行為正常,反之異常。同時每個視頻的所有幀的PSNR也將歸一化到[0,1],具體計算每幀分數的公式如下
(14)
最終根據S(t) 結果判斷預測幀是否異常。
為了有效開展實驗,本文提出的兩種模型使用TensorFlow框架和NVIDIA GeForce GTX3090 GPU,在兩個公開數據集[18]CUHK Avenue和UCSD Pedestrian 2(Ped2)進行實驗驗證。數據集具體內容如下:
(1)CUHK Avenue數據集:包含16個訓練視頻和21個測試視頻,場景是校園大道且每幀為RGB圖像,每幀的尺寸為640×360,采取固定角度錄制的監控視頻,其中存在行人跑錯方向、快速的奔跑、物品散落等47個異常事件。
(2)UCSD Ped2數據集:包含16個訓練視頻和12個測試視頻,場景是行人與攝像頭拍攝方向平行的區域,每幀的尺寸為360×240,其中存在騎自行車、玩滑板、汽車等12個異常事件。
以上兩個數據集在訓練時均采用只包含正常事件的訓練視頻,在測試時會存在異常事件的測試視頻,異常數據部分展示如圖4所示。

圖4 異常數據部分展示
為了方便實驗對比,本文與Liu等[14]采用相同的評價指標AUC,作為視頻異常檢測的評價指標。
AUC(area under curve)是接收者操作特征曲線(receiver operating characteristic curve,ROC)下的面積。視頻異常檢測標準方式一般分為幀級和視頻級,本次實驗在幀級進行操作,根據AUC指標評估模型對異常檢測效果的好壞,當ROC曲線面積越大時,則AUC分數越高,模型檢測效果越好。
本文采用連續5幀作為網絡輸入,輸入每幀大小固定256×256。其中連續的前4幀用于預測最后一幀。方法均使用光流模型學習在時間維度的運動特征,并引入不同損失約束使其學習外觀特征,最終以預測幀和真實幀的差值計算異常分數。
3.3.1 不同算法性能對比
為了驗證本文模型的有效性,將與現有的視頻異常檢測研究在幀級的AUC指標進行對比,方法分為基于重構和基于預測兩種,具體對比結果見表1,模型的參數量對比見表2。本文提出的UP3在Avenue數據集上AUC達到了85.8%,U3P2在Ped2數據集上AUC達到96.0%。所提方法分別是兩種數據集的最優結果,驗證了本文提出的視頻異常檢測方法的有效性以及兩種圖像分割模型的可應用性。

表1 幀級檢測性能比較AUC/%

表2 計算成本對比
U3P2在Avenue數據集的檢測效果雖低于UP3模型方法,但在Ped2數據集上取得最好結果,較于基準方法[14]提升0.6%,較于方法UP3提升0.3%。結合表2,方法U3P2在提升異常檢測效果的同時,也帶來了更少參數量,并與其它算法的性能保持持平甚至優于其它算法,降低了視頻異常檢測模型的復雜度。Ped2數據集是更接近現實監控的黑白視頻,視頻中的行為特征較為細小。通過全尺度跳躍連接結構,將不同尺度的特征圖進行拼接,能更有效獲取視頻幀中多尺度特征的語義信息,該方法更適用在遠景監控的場景下。在Avenue數據集中效果與近年其它方法相差不多,其原因可能是,方法還未能將多個局部信息聯系,對大尺度行為特征提取欠缺,由于該數據集中人物行為變化較大,因此對人物行為檢測效果略低一些。
UP3在Avenue數據集檢測效果較于基準方法[14]提升0.9%,取得最優結果。UP3采用深度卷積以及密集跳躍連接提取特征信息,針對近景視頻中的人物行為特征,該方法相比U3P2能關注較大的感受野區域特征信息,較好檢測視頻中存在的大尺度行為特征,卻也存在大量參數的使用。對于遠景數據檢測效果略低的原因,可能是UP3未能處理更小感受野的局部信息。
MemAE[10]雖然用記憶模塊存儲正常行為特征,但沒有考慮時間維度的行為變化,當記憶模塊空間設置越大時,也會帶來更多的參數量。SCG-SF[11]雖然考慮到時空特征信息,但對視頻中的多尺度特征提取能力不足,檢測結果相比其它幾種方法略低。CT-D2GAN[15]方法采用雙鑒別器生成對抗網絡,效果就基線方法相比,提升并不明顯,說明網絡的疊加使用并不能提升特征的提取,而本文所提方法能更有效提取多尺度特征,提高檢測能力。
相比于重構的模型[10,11,20],基于預測的模型[14,15]檢測效果更好。說明本文的預測模型可以有效提取連續視頻幀的時空特征信息,也證實UNet++和UNet3+圖像分割模型在視頻異常檢測領域的適用性。
3.3.2 結果可視化
為了更好驗證模型的有效性,將U3P2模型預測結果可視化展示,如圖5所示。

圖5 預測結果可視化
在正常行為中,預測幀與真實幀接近;出現異常時,將生成較為模糊的異常行為,如圖5左下角的自行車為生成的模糊異常行為。
本文所提模型在訓練時實時計算并記錄了每個預測幀的PNSR值。當圖像生成質量越高時,PSNR值越大,反之越小。在視頻異常檢測領域根據PSNR值的變化可以更加直觀判斷模型檢測的效果,在U3P2模型實驗的PSNR值結果展示如圖6所示。

圖6 PSNR值結果可視化
選取Ped2數據集中第二個測試片段作為PSNR值變化分析。從圖中看到正常行為的PSNR值變化不大,僅在[0,1]范圍發生波動,而在后幾幀中PSNR值快速下降,是由于出現訓練中突然未出現的騎自行車現象,該現象被判定為異常,后幾幀的值趨于低值穩定是因為在后面的片段中一直存在騎自行車的行為,即一直存在異常行為。由此也證實了本文所提方法確實能有效分辨視頻片段中的正常行為和異常行為。
3.3.3 驗證實驗
為了確定網絡層數的不同對視頻異常檢測效果的影響,就本文提出的兩種方法,分別以四層結構和五層結構且采用相同的參數在Ped2數據集上進行實驗對比。最終幀級AUC(%)結果以及參數量在表3和表4中展示,損失函數對模型的影響在表5展示。

表3 不同層數對結果的影響

表4 不同層數對參數量的影響

表5 不同損失函數在Ped2數據集中的AUC值
其中,四層網絡均采用特征數為64、128、256和512的結構,而五層網絡均采用特征數為32、64、128、256和512的結構。通過表3和表4發現四層U3P2的結果優于五層的結果,其原因在于四層時使用的參數量更多;五層的UP3的結果優于四層的結果,也表明在參數量多的情況下預測效果更好。而U3P2在四層時的參數多,源于其全尺度跳躍連接結構,其上采樣的每層卷積核數量與下采樣第一層卷積核數量相同。當采用四層結構且第一層數量為64,則上采樣的每一層特征數為64×4,而五層設置第一層數量為32,則上采樣的每一層特征數為32×5,五層的特征數低于四層,因此該模型在四層時效果更好;針對不同層數的UP3的預測方法,由于減少一層32特征數的卷積層,只帶來少量參數減少,因此不同層數的檢測結果接近。
表5顯示4種損失約束對方法U3P2在Ped2數據集上的影響。表中結果顯示,光流損失引入后達到96.0%,較未引入時提高至少1%,說明光流能有效提升方法在時間維度的特征提取能力。隨著損失約束的添加,AUC值明顯提升,因此驗證了加入不同的損失約束會影響方法的檢測性能,引入更多的約束條件可能會提升AUC。
針對現有研究方法存在不同場景下多尺度特征提取不完全等問題,本文提出兩種方法。
U3P2能夠在少量參數的情況下提取更多的空間特征信息。結合光流以及其它損失函數能在時空維度準確提取特征。在Avenue數據集檢測結果達到85.0%,在Ped2數據集檢測結果達到96.0%,適用在簡單場景中檢測小尺度行為特征。
UP3采用深度卷積和密集跳躍連接,關注更大范圍的感受野,能更好提取視頻幀復雜語義特征信息。在Avenue數據集檢測結果達到85.8%,在Ped2數據集檢測結果達到95.7%,適用于檢測更加復雜場景下的異常情況。
未來的視頻異常檢測研究主要從優化算法的時空特征提取能力、減少模型的參數量、關聯前后景的行為變化3個方面展開。