楊 帆 肖 斌 於志文
1(西北工業(yè)大學計算機學院 西安 710129) 2(香港理工大學工程學院 香港 999077)
隨著監(jiān)控攝像機的大量部署,視頻監(jiān)控在安防、態(tài)勢檢測、行為分析、刑偵等領域具有應用.室內(nèi)外監(jiān)控攝像機產(chǎn)生了大量監(jiān)控視頻,視頻分析和異常檢測成為研究熱點.如何在監(jiān)控視頻中有效找到感興趣的目標對象是其中的一個研究分支.基于視頻的異常檢測技術發(fā)展尤為迅猛,利用這項技術可以及時發(fā)現(xiàn)監(jiān)控區(qū)域中的異常事件,提高相關部門的干預和執(zhí)行效率,從而有效減少人身和財產(chǎn)損失.
視頻異常檢測的任務是在一個空間定位異常和在視頻中確定異常時間,異常是不同于正常模式的活動.異常也被稱為新奇、離群和其他類似的術語.視頻異常具體可以是機場無人看管的行李,一個在大樓外徘徊的男人或者一個摔倒的老人.
視頻異常可以被認為是不尋常的外觀或運動屬性的出現(xiàn),或在不尋常的位置或時間出現(xiàn)尋常的外觀或運動屬性.這個定義隱含的意思是視頻異常是依賴于場景的.一個事件在一個場景是異常,在另一個場景可能就不是,完全取決于在特定場景中所約定的異常含義.由于在現(xiàn)實場景中,異常是相對稀少的,并且異常的范圍和樣本是無法預知的,所以,視頻異常檢測算法以無監(jiān)督算法為主.異常標注數(shù)據(jù)稀少難以訓練一個深度卷積神經(jīng)網(wǎng)絡去分離正常類和異常類.模型訓練通常需要正常的視頻(即不包含任何異常的視頻)來表達在特定場景中可能發(fā)生的各種正常活動.在訓練過程中設計或學習一個正常的模型,測試監(jiān)控視頻數(shù)據(jù)時,和正常模式有明顯偏差的就被認定為異常、比如異常的外觀、異常時間段、異常行為等.
監(jiān)控視頻異常檢測面臨的主要挑戰(zhàn):1)異常事件定義與特定場景的依賴性[1-2];2)異常事件的稀少性、多樣性、不可窮舉性[3];3)訓練樣本中包含噪聲[4],對訓練有干擾;4)數(shù)據(jù)的隱私性,目前可用的公開數(shù)據(jù)集較少[5].
圖1和圖2顯示了視頻異常檢測典型算法的訓練和測試過程.首先,在訓練階段,從不包含異常事件的一個或多個視頻中提取特征來學習正常活動的模型.然后在測試階段,給出來自同一場景的新視頻,并從中提取特征.利用特征和模型為輸入視頻的每個像素或者視頻塊給出異常分數(shù).最后對異常值進行閾值處理,得到異常結果.

Fig.1 Training stage of video anomaly detection

Fig.2 Testing stage of video anomaly detection
異常檢測和相應的場景是相關的,對應不同的場景,應該有異常的約定.例如,每一個正常的視頻可能只顯示人們走路.測試視頻中的任何其他活動(比如人們打架、騎自行車或開小汽車)都應該被檢測為異常.跨多個場景構建單一模型可能沒有意義,除非場景在某種意義上是一致的.一種情況是,一個場景中的異常在另一個場景中也是異常.例如,在一個大型超市的不同位置的幾個主要監(jiān)控偷竊的攝相機是“一致的”[6].
另一種情況是,考慮2個攝像機的情況,其中第1個攝像機的場景包含一個不允許人通過的保護草地區(qū)域(因此在該區(qū)域行走是不正常的),而第2個攝像機的草地區(qū)域不是受限區(qū)域.在2個場景中檢測異常的單一模型將無法檢測在第1個場景中是異常的走草地活動,因為它將從第2個場景中學到在草地上行走是正常的.這個例子說明了位置相關異常與單場景視頻異常檢測兼容,而與多場景視頻異常檢測不兼容.依賴所在異常(如亂穿馬路、人行道行人騎自行車、開車在錯誤的方向等),包括正常活動發(fā)生在不尋常的地方,隨處可見的單場景視頻異常檢測,由于缺乏在不同場景的對應位置,所以不兼容多場景方法.與多場景數(shù)據(jù)集相比,以位置依賴方式執(zhí)行的方法在單場景數(shù)據(jù)集上表現(xiàn)的更好.
現(xiàn)有的許多研究論文并沒有明確說明他們使用的是哪種場景模式.這導致了關于應該測試哪些數(shù)據(jù)集以及應該比較哪些方法顯得含糊和混亂;它還會導致對不同方法性能的不同理解.我們認為明確在視頻異常檢測中使用的問題構建是很重要的.在本文中,我們面向單一場景的視頻異常檢測,因為它包含一些常見的場景,并且有許多實際應用.
已有的綜述文獻存在3方面不足:1)文獻覆蓋不全面,每篇綜述僅覆蓋了一個發(fā)展階段的文獻;2)不同綜述采用不同的算法分類策略,沒有對算法進行表示形式的關聯(lián)分析;3)沒有匯總已有算法的異常檢測效果,對檢測模型沒有總結歸納.
針對這3方面不足,本文對監(jiān)控視頻異常檢測領域的算法進行全面綜述,注重將不同算法的特征表示和建模進行對比分析:
1)全面綜述該領域的算法,并依據(jù)算法的特征表示、算法的模型進行分類;
2)將不同類別的算法進行關聯(lián),分析了不同算法的特征表示以及每種模型的特性;
3)提煉了該領域常用的模型假設與相關知識,匯總分析了不同算法的異常檢測效果.
本文首先按照視頻異常檢測的特征表示和模型構建對算法分類;然后逐類概述相關算法,通過對比分析不同算法模型、不同算法的特點;最后介紹該領域的常用公共數(shù)據(jù)集、評估標準,并匯總不同算法的檢測效果,對未來的研究趨勢進行探討.
根據(jù)一些公開的視頻數(shù)據(jù)集和對監(jiān)控視頻的特點分析,把視頻異常分成5種類型:
1)外觀異常
這些異常可以被認為是場景中不尋常的物體出現(xiàn).例如人行道上的騎自行車者,或馬路上的紙箱.檢測這些異常只需要檢查1幀視頻的局部區(qū)域.
2)短期運動異常
這些異常可以被認為是場景中不尋常的物體運動.例如一個人在圖書館跑步,或在軍事基地附近閑逛.檢測這些異常通常只需要在短時間內(nèi)檢查視頻的局部區(qū)域.外觀異常和短期運動異常可以進一步稱為局部異常,因為它們具有額外的屬性.
3)長期軌跡異常
這些異常可以被認為是場景中不尋常的物體軌跡.例如在人行道上拐來拐去的人,或在車流中不斷加塞的汽車.檢測軌跡異常需要檢查較長時間的視頻片段.
4)群體異常
群體異常可以被認為是場景中不尋常的物體相互作用.比如一群人突然向四周跑動.檢測群體異常需要分析視頻中2個或多個區(qū)域之間的關系.
5)時間異常
這種異常與所有其他類型的異常是正交的.使這些活動異常的是它們發(fā)生的時間.這些異常在本質上與前面討論的位置相關異常非常相似,只是相關的上下文是時間而不是空間.舉個例子,人們在黎明時分進入游樂場.通常,檢測這些異常只需要在一天的不同時間使用不同的正常狀態(tài)模型.
對于一個應用來說,并不是所有這些不同類型的異常都需要檢測.因此,視頻異常檢測進一步依賴于所處環(huán)境.事實上,在我們所描述的用于檢測視頻異常的公開數(shù)據(jù)集中,主要只有外觀異常和短期運動異常.我們還應該注意到,不同類型的反常現(xiàn)象并不相互排斥.實際上,很難找到上面列出的某些類型的示例.對于異常人們通常認為是一個二分類場景,但實際上視頻中的異常是有連續(xù)性的,它要維持一定的時間.當2個活動相似時,找到與我們的直覺概念相對應的特征是創(chuàng)建較好的視頻異常檢測算法的關鍵.
Wang等人[5]的工作把視頻異常檢測分為不同發(fā)展階段,以及每個階段分為一些具有共性的模型類型.Ramachandra等人[6]的工作從表示主題和方法評估給出了總結.Sodemann等人[7]的綜述文獻是在深度學習興起的2012年之前寫的,所以沒有把一些近幾年的重要工作包含進去.2篇只關注基于深度學習的視頻異常檢測綜述[8-9],但是大量的過去的工作沒有利用深度學習,都是用特征描述子去提取視頻特征.本文對過去一些經(jīng)典的工作和最近幾年的相關工作做了一個總結.從視頻異常檢測的特征表示和模型構建進行分類和評估比較.
從視頻的高級語義層面看,以往的視頻異常檢測工作可以分為基于距離的、基于概率的和基于重構的3種方法[6].了解這些方法的工作原理以及它們之間細微的相似性和差異.我們回顧了在一些視頻異常檢測數(shù)據(jù)集上評估性能的代表性工作,同時也對該領域的重要成果進行了一些分析.這些方法并不是相互排斥的,似乎以距離為基礎的方法很容易用概率解釋.基于圖1和圖2所示的視頻異常檢測背后的本質,我們進一步根據(jù)它們所采用的特征表示和建模策略對方法進行分類.
總體來說,視頻異常檢測方法使用了2類表示,手工制作的特征和以CNN為基礎的深度特征.手工特征包括時空梯度[10]、動態(tài)紋理[11-12]、梯度直方圖(histogram of gradient, HOG)[13-14]、光流直方圖(histogram of optical flow, HOF)[15-16]、前景掩膜(foreground masks)[17-18].深度學習的特征表示方法是從一個預訓練網(wǎng)絡[19-23]提取特征,或者是優(yōu)化特定任務相關的異常檢測,例如自編碼器(auto-encoder, AE)優(yōu)化重構誤差[24-29].
特征表示中的另一個考慮是異常檢測處理的原子單位.算法處理的原子單元從圖像塊(image patch)[15,17,27]到視頻塊(video patch)[2,9-11,13,15,21,25,27,29-36]再到單一完整的視頻幀[19,20,37-39]到多尺度固定大小的塊[17,27,40]再到任意大小的候選區(qū)域[41].
視頻異常檢測方法有一些不同的建模方法,有使用one-class支持向量機(one-class support vector machine, OC SVM)[2,19,27,29].一些研究工作只關注視頻幀級異常定位,在大多數(shù)情況下,這意味著該目標[15]已內(nèi)置于模型中,因此模型無法執(zhí)行足夠的空間定位[1,13,42-44].有些研究沒有特別說明異常的位置依賴性[15,22,25,37].例如,使用完整幀或視頻片段作為原子處理單元的方法往往忽略了這一特性.這些方法無法區(qū)分在學校外閑逛和在學校旁邊的公園閑逛[1,13,44].另一些人用2種方式之一來解釋異常的位置特殊性:1)根據(jù)體素在視頻幀中的位置來給出異常得分[14,30-31,36];2)以來自鄰近體素的信息形式提供額外的上下文進行評分[12,35,40].
基于距離的方法是使用訓練數(shù)據(jù)來構建一個正常模型,并從這個模型中測量偏差來確定異常的分數(shù).通常,這些模型本身非常簡單,但是巧妙地表示會帶來良好的性能.以距離為基礎的方法可以被視為概率和基于重建的方法的一種更一般的形式.
文獻[14]中作者以異常具有局部時空特征為前提,使其在局部正常數(shù)據(jù)的聯(lián)合概率分布下具有較低的可能性.他們提取交疊的固定大小的視頻塊,并用低級運動描述符表示它們.他們使用時空濾波器對這些表示進行統(tǒng)計,并計算每個訓練和測試視頻中每個位置的視頻塊的K近鄰(K-nearest neighbor,K-NN)距離.然后,他們通過聚合加權的K-NN距離來計算一個綜合得分.對訓練和測試視頻的所有視頻塊的綜合分數(shù)進行排序,進而完成最終的檢測.
文獻[38]中作者從視頻片段中提取了一組社會力[45],HOG[46],HOF[47]和密集軌跡[48-49],使用線性徑向基函數(shù)(radial basis function, RBF)或多項式核來執(zhí)行異常檢測.在文獻[27]中,Xu等人提出了使用學習表示與深度網(wǎng)絡進行視頻異常檢測的首創(chuàng)方法.他們利用堆疊去噪自編碼器(denoising auto-encoders, DAE)的2種流(RGB和光流)在多尺度固定大小的重疊視頻塊上學習低維表示.然后,利用帶有RBF核的OC SVM[50]中DAE的潛在編碼,對異常檢測進行分類.他們進一步提出了2種方式來實現(xiàn)融合,分別是在特征表示階段和后面的異常得分階段.
文獻[19]提出了利用預先訓練好的卷積神經(jīng)網(wǎng)絡(convolutional neural network, CNN)進行視頻異常檢測.這是使用單幀作為原子處理單元的方法之一,在每一幀上訓練一個OC SVM,線性核是在VGG-f網(wǎng)絡中提取的深度特征上得到的[51].他們利用時空濾波器平滑評分圖,并通過將視頻分割成固定大小的視頻塊,簡單地將異常分數(shù)聚合到補丁區(qū)域來進行定位.在文獻[26]中,作者首先將視頻分割成固定大小的小視頻塊.在級聯(lián)方案的第1階段,使用一個簡單的2層稀疏自編碼器和嵌入弱高斯分類器拒絕正常塊.在第2階段,他們將剩下的小塊作為時空興趣點,從其鄰域中提取較大的視頻塊,由一個更深層次的4層稀疏自編碼器組成,該自編碼器按照分層方式訓練,并在潛在層中嵌入類似的弱高斯分類器.對于未分類成正常類的視頻塊,使用每個中間表示接收到的馬氏距離進行打分,如果4個馬氏距離都大于一個閾值,則認為是異常.
文獻[28]中作者從訓練視頻訓練了一個簡單的2層稀疏自編碼器重構非重疊的固定尺寸視頻塊.他們認為稀疏表示層是一個全局描述符.對于局部描述符,它們用一個結構相似度度量向量[52]來表示每個patch對其時空鄰居的關系.通過計算馬氏距離來檢測異常,訓練高斯估計函數(shù),并且只有特征表示和指定異常時的高斯分布有較大的馬氏距離時才確定異常.
文獻[53]中提出了一種使用卷積贏者通吃自動編碼器的方法[54],從固定尺寸的視頻塊的光流場中學習運動特征表示.然后,他們使用學習到的運動特征表示來構建依賴位置的OC SVM來進行異常評分.
文獻[55]中作者提出了一種獨特的幾何方法來檢測異常.他們使用來自訓練幀的密集軌跡來創(chuàng)建一個擴展凸包的集合[56],在測試時使用多曲面包含測試來識別異常,推測使用它們到凸殼的距離來為單個軌跡打分.他們還聚類潛在的異常軌跡,以檢測異常區(qū)域和過濾出小的假陽性檢測.
文獻[57]中作者使用生長的Neural Gas[58]算法對從視頻片段或視頻塊中提取的STIP特征[59]建立了正常模型.他們認為,過去的方法沒有充分處理不斷變化的場景,并提出以插入、刪除、學習率自適應和停止標準的方式在線更新GNG模型.在GNG模型中,通過研究距離的分布,簡單地判斷新模式是否與最近鄰存在顯著差異,就可以進行檢測.
文獻[23]也使用了預先訓練好的深度網(wǎng)絡的特征,但采用了2步級聯(lián)異常檢測方法.首先,作者從一個預先訓練好的CNN中提取一個視頻片段的特征圖(feature map),并對訓練數(shù)據(jù)上的特征圖進行高斯估計,評估其馬氏距離.在這個階段,他們通過簡單地回滾特征圖中像素的接受域來生成分數(shù)圖.對于那些馬氏距離在中間范圍的進一步通過位置無關的裁剪特征映射到一個稀疏自編碼器,訓練裁剪產(chǎn)生更多不同的特性,并使用一個近似高斯分布的假設區(qū)分異常.
文獻[21]中作者提出了另一種預訓練卷積神經(jīng)網(wǎng)絡AlexNet,并從中提取圖像特征的方法[60].作者還提出了一種雙流模型,在外觀特征和光流場上運行.利用CNN提取的特征,作者通過一個預先訓練好的二分類全卷積網(wǎng)絡并使用迭代量化Hash[61]來為每一幀生成二進制映射.然后作者開發(fā)了一個時間CNN模式(temporal CNN pattern, TCP)度量,一個隨著時間變化的外觀特征的統(tǒng)計數(shù)量測量,2個流的融合產(chǎn)生了最終的異常分數(shù)圖.
文獻[29]提出了一種使用對抗性訓練來檢測視頻異常的方法.他們使用一個判別器(discriminator, D)網(wǎng)絡來區(qū)分原始的圖像塊和由去噪自編碼器網(wǎng)絡(R)得到有噪聲的圖像塊的重構.由于R只在訓練數(shù)據(jù)的圖像塊上進行訓練,所以它可以去除異常值,使得D可以很容易地從重構的圖像塊中辨別出異常值.
文獻[2]中作者提出了一種2階段異常檢測算法.他們從訓練視頻中提取固定大小的視頻塊并添加位置、外觀(從預訓練的CNN中提取特征圖)和運動信息(以3D梯度的形式).對于第1階段的檢測,他們執(zhí)行k-means聚類和消除小聚類對應的噪聲/異常值,以創(chuàng)建一個魯棒的表示.第2階段檢測是建立K個OC SVM(每簇一個),建立一個縮小的正常聚類模型,在測試時將這K個OC SVM下的一個測試塊的最大得分作為異常得分.
文獻[24]中作者在文獻[2]工作的基礎上,將異常檢測問題轉化為K個多類one-rest分類問題.他們利用特征金字塔網(wǎng)絡[62]對作物進行提取,對這些裁剪框的外觀和梯度特征進行卷積自動編碼器的訓練,以學習潛在表示,然后進行k-means聚類,訓練K個OC SVM進行二值單對剩余分類.在測試時,他們簡單地使用K個分類分數(shù)最大值的倒數(shù)作為異常分數(shù).它們不報告空間定位性能.
文獻[18]中作者提出了2種基準算法,以便將來在他們新發(fā)布的數(shù)據(jù)集Street Scene上進行比較.他們使用簡單的最近鄰位置相關的異常檢測方案,使用手工制作的視頻塊表示(光流場或模糊的前景掩模)和手工制作的距離測量(分別為L1或L2歸一化體素方向的距離).通過從訓練數(shù)據(jù)中構建一個簡潔的代表性范例模型,極大地減少了距離計算的次數(shù).有趣的是,這些簡單的方法能夠在其他數(shù)據(jù)集上勝過以前的一些先進的方法,這可能表明算法已經(jīng)發(fā)展出了針對特定數(shù)據(jù)集的傾向.
文獻[30]中作者通過訓練一個Siamese神經(jīng)網(wǎng)絡[63],將手工制作的表示和距離函數(shù)替換為學習的表示和距離函數(shù),建立了簡單的最近鄰方案.Siamese網(wǎng)絡通過訓練將視頻塊對分類為相似或不同,并用來找到與所有訓練視頻塊不同的測試視頻塊,因此判定是異常的.從目標數(shù)據(jù)集的訓練數(shù)據(jù)中學習一個樣本模型(包含所有唯一的正常視頻塊).最后,使用經(jīng)過訓練的Siamese網(wǎng)絡中的測試視頻塊和樣本之間的最近鄰居評分來為每個測試視頻塊分配異常評分.
概率方法是在一定的概率空間中計算模型下的估計值.這些方法通常旨在承認建模到一個概率框架,如概率圖模型(probabilistic graphical models, PGMs)或概率分布的高維混合.
文獻[36]中作者在攝像機框架上使用固定位置的監(jiān)視器,該監(jiān)控器有一個固定大小的存儲緩沖區(qū)用來存儲光流場.當給定相應的監(jiān)視器緩沖,那些測試光流以低可能性呈現(xiàn),他們把模型作為一個柱狀圖觀測或使用核密度估計進而認定為異常.文獻[64]中作者介紹了首次利用社會力模型[45]的建模方法.他們在視頻上放置一個粒子網(wǎng)格,并用來自視頻的光流來引導它們,估計社會力的相互作用,這大致是一個像素的光流和其附近的平均光流之間的差異.它的理念是,一個像素與其相鄰像素不同的原因是由于粒子之間的相互作用.這些社會力的相互作用被映射到成像平面上,從而產(chǎn)生一個稱為力流的映射.然后,他們在每個視頻片段的隨機訓練視頻塊上創(chuàng)建一個潛在的狄里克雷分配(latent Dirichlet allocation, LDA)[65]詞袋模型(其中單詞是力流的時空區(qū)域),并在模型下將檢測低似然幀作為異常,通過簡單地檢測高力流區(qū)域來實現(xiàn)定位.
文獻[43]中作者通過簡單的背景減除計算每個像素的二值運動標簽.利用每個像素點周圍的時空鄰域計算正常數(shù)據(jù)的運動標簽表示的共現(xiàn)統(tǒng)計量,并利用共現(xiàn)矩陣作為Markov隨機場的勢函數(shù),通過似然比測試進行異常檢測.文獻[34]中作者用時空梯度表示視頻.他們使用多元高斯函數(shù)來建模視頻塊的分布,并用混合高斯函數(shù)來表示視頻幀中給定位置的視頻塊的分布.最后,他們使用一個耦合的隱Markov模型來合并視頻塊之間的時空相關性的影響[66].
文獻[35]的混合物,將每個視頻片段表示為圖中的1個節(jié)點.作者通過計算測試時正常的最大后驗估計來檢測異常,還展示了模型是如何不斷更新以適應環(huán)境變化和概念漂移的.文獻[11]中作者提出通過訓練視頻塊學習混合動態(tài)紋理(mixture of dynamic textures, MDT)[67-68],并在更大的區(qū)域共享混合紋理.作者檢測異常的方式,就像鑒別顯著性標準所給出的那些具有高中心-環(huán)繞顯著性的區(qū)域[69]一樣.文獻[12]中作者建立在MDT表示的基礎上,使用條件隨機場[70]框架從多個尺度整合時空異常分數(shù).
文獻[17]的作者使用了一個相當獨特的前提,通過使用從訓練數(shù)據(jù)中獲得的信息來解釋測試數(shù)據(jù)中的正常模式,間接地進行異常檢測.他們尋求一種視頻分析方法,同時發(fā)現(xiàn)前景目標假說,共同解釋前景在一個框架和那些匹配的正常樣本假說.那些在測試時需要解釋前景但與正常訓練數(shù)據(jù)中的樣本假設不匹配的對象假設是不正常的.文獻[40]中作者通過考慮靈活的視頻管道而不僅僅是圖像塊樣式的對象假設進一步建立了這個想法.文獻[16]用k-means聚類形成碼本,檢測到距離第k個最近鄰居距離大的局部異常.對于全局異常,作者考慮STIP特征的集合來構建交互模板的高級碼本,并用RBF核為每個模型構建高斯過程回歸(Gaussian process regression, GPR)模型[71].然后,作者將第k個最鄰近的GPR模型下的低似然測試集指定為異常.
文獻[20]中作者提出了一種獨特的方法來敘述被檢測到的異常事件.作者首先訓練一個Fast-RCNN[72]模型來預測大規(guī)模分類數(shù)據(jù)集COCO[73]和視覺基因組[74]圖像數(shù)據(jù)集中的對象、動作和屬性類.然后對每一幀從倒數(shù)第2層全連接層提取感興趣區(qū)域的特征,并利用與訓練樣本的最近鄰距離、基于RBF核的OC SVM或基于RBF核密度估計的似然值進行異常檢測.通過簡單地觀察對象、動作和屬性類的最大預測來進行.
文獻[75]從正常圖像塊的3維梯度中提取深層特征表示.然后,作者使用深層GMM[76-77]來建模正常模式的生成過程,最大化對數(shù)似然的下限.深度GMM模型簡單地產(chǎn)生測試模式的似然分數(shù),用作異常分數(shù).
視頻異常檢測領域,重構方法的目的是將輸入視頻幀進行特征提取和分解,然后將它們重新組合起來以重構輸入.原理是基于這樣一個前提:與分布內(nèi)的正常數(shù)據(jù)相比,分布外的輸入(如異常)在本質上更難重建,因此證明使用重構誤差作為異常分數(shù)的判別是合理的.
文獻[13]中作者訓練了一個卷積自編碼器以像素級L2損失重構訓練視頻片段.在測試視頻片段重構誤差,標準化每個視頻序列,作為視頻序列的異常分數(shù),視頻序列不執(zhí)行空間定位,關注的是時間定位.通過幾個數(shù)據(jù)集的訓練數(shù)據(jù)作者還訓練了一個通用的自編碼器,并顯示出良好的泛化性能.
文獻[25]中作者在文獻[13]中卷積自編碼器架構之上,通過卷積保持幀的時序順序,并在瓶頸層使用專門的convolutional LSTM[78]層對時序信息建模,得到了時空特征信息.文獻[37]中作者嘗試首次使用生成對抗網(wǎng)絡(GANs)[79]進行視頻異常檢測.作者訓練了2種條件GANs,將其(x,z)幀和噪聲向量對作為輸入,并生成一個不同模態(tài)的對應幀y(在2個GANs上,作者使用原始幀到光流,反之亦然).判別器對(x,y)幀的真實或虛假給出表示.假設異常不能很好地重構,則融合2種模式的重構誤差,將光流誤差加權設為原始視頻幀的2倍,并對每個視頻進行歸一化,實現(xiàn)異常的檢測評分和像素級定位.
文獻[80]中作者使用限制玻爾茲曼機(restricted Boltzmann machines, RBMs)[81]對固定大小的原始視頻塊進行特征學習和重構,在測試階段,結合從不同金字塔層級和重疊視頻塊的重構誤差,得到一個異常分數(shù).文獻[3]中作者認為對于異常活動,預測視頻片段的未來幀要比預測正常的幀更難,因此設計了一個未來幀預測框架.作者訓練了一個U-net樣式的網(wǎng)絡[82],網(wǎng)絡以長度為t的訓練視頻片段為輸入,并預測時間為t+1的未來幀.此外,作者使用Flow Net[83]估計時刻t的幀與時刻t+1的真實幀或重構幀之間的光流映射對.重構的光流圖、像素強度梯度和方向梯度之間的L1損失,以及在時刻t+1區(qū)分真實幀和重構幀的對抗損失,然后對每個視頻的誤差進行歸一化,形成它們的異常分數(shù).
文獻[84]中作者通過在一個雙流模型中學習共同對象的外觀及其相關運動的對應關系來解決這個問題.使用單一幀作為輸入,使用一個與預測運動的U-net解碼器以及由重構誤差損失項控制的重構輸入幀的反卷積解碼器耦合,構成單一編碼器.作者認為整個網(wǎng)絡是條件型GAN中的生成器,其中判別器是另一個小網(wǎng)絡,用于區(qū)分輸入幀和相應的由二值分類損失控制的真實/估計流場.作者以交替的方式優(yōu)化這個cGAN框架.對于測試幀,作者計算塊級上的損失分數(shù),并使用每個視頻的歸一化分數(shù)作為最終幀級異常得分.文獻[85]中作者認為過去的基于重構的方法在很大程度上是在底層特征上操作的.作者試圖通過僅對抽象特征執(zhí)行異常檢測來解決這個問題.首先,作者在原始視頻片段和相應的光流場訓練去噪自編碼器.然后,作者在多個層提取特征表示,并訓練類似于文獻[37]中的條件GANs.最后,作者將來自多個層次的重構誤差映射合并在一起,得到每一幀的一致性得分圖.在文獻[86]中,作者認為預測和重構可以結合起來,利用兩者的優(yōu)勢,平衡兩者的劣勢.作者試圖通過創(chuàng)建一個生成器,操作視頻片段組成的2個連續(xù)U-net架構,第1個預測一個生成的中間幀,用第2個預測不久的將來幀,通過在強度和梯度模式最小化重構誤差訓練端到端網(wǎng)絡.作者還在ground truth future和predicted future幀對上或在一個類似Patch GAN[78]的更精細的網(wǎng)絡上使用了對抗損失.
通過以上3種方法的分類和比較,本文把一些經(jīng)典的方法的特點進行了提煉,并對使用的特征表示或所用模型給出了分析.以表格形式把3種方法和其所使用的建模方法進行了匯總.在表1中對某一個方法從特征表示和建模2個維度進行劃分,在每一個分類中,又包含了具體的方法,屬于基于距離、概率和重構3種之中的某一種.方便研究者根據(jù)具體的研究問題,從中選擇合適的特征表示和建模策略.

Table 1 Approaches Grouping by Representation and Modeling Strategies Taken
基準數(shù)據(jù)集對計算機視覺中任何問題的研究都起著重要的作用.基準數(shù)據(jù)集有助于定義問題的范圍,并提供了一種方法來公平地比較不同算法的特征.對于視頻異常檢測,有一些公共可用的常用基準數(shù)據(jù)集.根據(jù)ground truth標注的風格、大小和數(shù)據(jù)集的總體效用提供建議.表2提供了這些數(shù)據(jù)集的特征信息.

Table 2 Characteristics of Video Anomaly Detection Datasets
監(jiān)控視頻常用檢測數(shù)據(jù)集有5個:
1)Subway數(shù)據(jù)集[36].包含地鐵站的入口(Subway entrance)和地鐵站出口(Subway exit)兩個視頻文件,異常事件主要有逃票、錯誤的方向、徘徊等.
2)UCSD數(shù)據(jù)集[11].包含Ped1和Ped2兩個子數(shù)據(jù)集.數(shù)據(jù)集中的異常事件有騎自行車的人、滑板、手推車、汽車等.
3)CUHK Avenue數(shù)據(jù)集[10].有21個視頻序列,異常事件包括跑、扔書包、扔文件、徘徊等.
4)UMN數(shù)據(jù)集[86].共有3個場景,在每個場景中,是以正常的狀態(tài)開始,人突然向四周跑動為異常事件.
5)Street Scene數(shù)據(jù)集[18].是一個較新的數(shù)據(jù)集,包含46個訓練片段和35個測試片段,分辨率為1 280×720,是采集自包含自行車道和人行道的雙行道場景.數(shù)據(jù)集很有挑戰(zhàn)性,因為發(fā)生了各種各樣的活動,例如汽車駕駛、轉彎、停車、步行、慢跑和推嬰兒車的行人,還有騎自行車的人.此外,視頻還包括變化的陰影、移動的背景,如旗幟和在風中飄揚的樹木以及樹木和大型車輛造成的遮擋.異常包括橫穿馬路和非法掉頭以及在訓練集中不會發(fā)生的事情,例如遛寵物和1名交警給1輛汽車開罰單.
一般而言,異常是與場景相關的,是否是異常完全由測試時發(fā)生的活動決定的,但是在訓練集(定義正常活動的樣本集)中缺失了這些活動.此外,雖然異常是一個流動的概念,但真實標注在本質上是二元的.確定訓練視頻中缺少哪些活動通常會導致歧義.例如,訓練視頻中可能會出現(xiàn)2個人并排走在人行道上,四五個人手牽手走在路上的情況.后者應該被標記為異常嗎?異常從哪一幀開始?應該把包括2名行人在內(nèi)的整個區(qū)域標記為不正常,還是只在牽手區(qū)域周圍標示一個緊密區(qū)域?這個任務的每個數(shù)據(jù)集和標注都是不完美的,并且會存在類似這樣的歧義.在理想的情況下,對于比較細微的一些姿態(tài)和動作變化,評估措施將嘗試在實踐中不可避免的模糊性的標簽給出一個現(xiàn)實的定性算法.
6.2.1 傳統(tǒng)標準
從大量先前的工作來看,這一領域的研究使用幀級和像素級曲線下面積(area under the curve, AUC)標準來評估性能,文獻[11]首次描述了這一標準,同時也提出了UCSD行人數(shù)據(jù)集.在文獻[11]中,作者沒有充分描述評價措施.具體地說,作者將幀中檢測到的真正異常像素至少為40%的幀定義為真陽性,否則定義為假陽性.在文獻[12]中,作者澄清了假陽性只能被計算在不包含任何異常注釋的幀中,也就是說,在有異常的幀中檢測到的像素少于40%時,不應該計算為假陽性.這一澄清大大減少了誤報的數(shù)量.我們認為一些早期的工作可能在對這個評估指標的錯誤解讀下給出了結果,導致被報告的像素級AUC值較低.
幀級標準.檢測到的幀指定為得分大于給定異常分數(shù)閾值的幀中至少有一個像素的幀.如果檢測到的幀根據(jù)ground truth判別為異常,則視為真陽性,反之視為假陽性.陽性和陰性的總數(shù)由幀級標注決定,并用于計算真陽性和假陽性率.幀級標準不能評估是否已經(jīng)實現(xiàn)了足夠的空間定位,只是對某一時段提供了是否有異常.
像素級標準.檢測值為得到的異常分數(shù)大于給定異常分數(shù)閾值的幀內(nèi)所有像素.如果在1幀中檢測到超過40%為異常標注像素,那么就會計算為異常.如果1幀沒有異常標注,即使檢測到1個像素,也算假陽性.在這個標準下,即使考慮了空間定位,真陽性和假陽性的計數(shù)仍然在幀級別上.陽性和陰性的總數(shù)與幀級標準一樣.這會產(chǎn)生4方面的影響:
1)即使1個幀中存在多個異常,有可能計算了1個異常,40%的閾值適用于1幀中所有帶標注的像素;
2)1個包含異常標注的幀不被認為是假陽性,無論該幀中是否出現(xiàn)錯誤檢測;
3)即使幀中有多個不同的檢測區(qū)域,沒有異常標注的幀只能判斷為1個假陽性;
4)該準則不懲罰松散的檢測.也就是說,只要檢測到40%的標注像素,將檢測掩膜更改為整個幀并不會影響性能.
通過改變異常值的臨界值,可以得到假陽性率與真陽性率的ROC曲線.ROC曲線下面積(AUC)或等錯誤率(equal error rate, EER)用于刻畫ROC曲線.
一個方法的幀級AUC在像素級AUC上施加了一個上限.文獻[30]的作者觀察,上面的2)和3)點承認一個簡單的后處理步驟,使得進行像素級AUC完全達到上限:擴張檢測掩膜與相同大小的一個過濾器框架(即如果在1幀里1個像素檢測到異常,使得該幀所有像素異常).這只能提高檢測率,而不改變根據(jù)像素級準則的假陽性率.雖然這些標準可以用于對不同的視頻異常檢測算法進行排序,但它們現(xiàn)在已經(jīng)飽和于較小的數(shù)據(jù)集(在過去幾年幀級AUC在UMN數(shù)據(jù)集上多次大于99%),顯然存在嚴重的缺陷.
6.2.2 一些新標準
隨著對數(shù)據(jù)評估準確性和全面性的考慮,一些研究人員已經(jīng)認識到幀級和像素級標準的缺陷,一些研究人員試圖提出新的標準來解決這些問題.文獻[26]的作者提出了雙像素級判據(jù),該判據(jù)為像素級判據(jù)增加了額外的約束.除了所述檢測像素需要覆蓋至少40%的標注的異常像素外,所述檢測像素的至少10%需要被標注為異常的像素覆蓋.換句話說,檢測到的像素不能包含太多的正常像素(從而阻止了上述后處理濾波的幫助).雖然這是一種改進,但在多個異常、真陽性和假陽性檢測以及多個假陽性檢測的幀中,仍然不能正確計算真陽性和假陽性.文獻[87]的作者也意識到像素級準則是有缺陷的,并使用目標檢測風格的交并比(intersection over union, IOU)來懲罰對CUHK Avenue數(shù)據(jù)集的檢測的變化.這并沒有解決真陽性或假陽性多次計數(shù)的問題.此外,由于標注格式的差異,他們不能在其他數(shù)據(jù)集上使用這個基于IOU的標準.
文獻[30]的作者提出了2個新的標準,基于區(qū)域的和基于軌跡的,以取代以前的標準.新的標準為算法在實踐中的表現(xiàn)提供了更為現(xiàn)實的情形.他們提出觀點,評估方案應該設計成這樣一種方式,以考慮到任何異常檢測數(shù)據(jù)集中可能出現(xiàn)的歧義、偏差和不一致.為了修復舊標準的問題,他們基本上采取了2個步驟.
1)通過提出一種松散目標檢測風格的IOU標準來判斷空間定位,解釋了異常事件標注和檢測中固有的模糊性.另外,基于軌跡的準則只要求在異常軌跡中檢測到固定百分比幀的異常.
2)把原子檢測的真陽性和假陽性計算在內(nèi),而不是按照原子來計算幀.這意味著在他們的標準下,一幀可以有不止一個真陽性或假陽性結果,這符合基本直覺.
基于區(qū)域的標準.檢測值為所有大于給定異常分數(shù)閾值的像素.被檢測區(qū)域是被檢測像素的連接部分.如果檢測區(qū)域具有IOU至少為β的ground truth邊界框,則為真陽性.對于每一個檢測到的不滿足任意ground truth邊界框的IOU為β的區(qū)域,是一個假陽性.此外,通過跨越多個ground truth邊界框,一個被檢測區(qū)域可能占到多個真陽性計數(shù),但一個ground truth邊界框可能只占一個真陽性計數(shù).為了解釋空間標注的歧義,以及單個檢測區(qū)域可能跨越多個邊界框標注的事實,文獻[30]作者建議將β設置為較低值0.1,這似乎在現(xiàn)有數(shù)據(jù)集的實踐中表現(xiàn)得很好.檢測率的計算方法為真陽性的數(shù)量除以ground truth標注的邊界框的數(shù)量.每幀的假陽性率計算為總假陽性率除以測試幀數(shù).
基于軌跡的標準.對于基于區(qū)域的判斷,檢測區(qū)域定義為異常分數(shù)超過閾值的像素的連通分量.如果所述異常軌跡中的大于α%的異常標注與高維空間IOU為至少β的檢測區(qū)域重疊,則檢測出異常標注的軌跡.假陽性與基于區(qū)域的標準一樣,即檢測到的區(qū)域與任何ground truth邊界框不重疊.基于軌跡標準的檢測率為成功檢測到標注的異常軌跡的比例.與基于區(qū)域的標準一樣,每一幀都會計算誤報.作者建議在最初設置α=10來解釋時間標注中的歧義.這個標準是目前最能反映真實世界異常檢測性能的準則.另一個不錯的特性是,當這項措施開始飽和于現(xiàn)有的數(shù)據(jù)集和研究轉移到更嚴格的數(shù)據(jù)集時,用于報告結果的數(shù)據(jù)分析可以增加.由于假陽性是按幀計算的,所以這2種標準的最大可能假陽性率都可能超過1.0.文獻[30]建議通過計算每幀假陽性率(從0~1.0)來總結ROC曲線.使用這些新標準的結果是,作者為UCSD Ped1,UCSD Ped2,CUHK Avenue,Street Scene數(shù)據(jù)集提供了具有獨特異常IDs的邊界框標注和軌跡IDs.
最后,人們還應該考慮到AUC這樣的度量方法只提供了對性能的一個狹隘觀點的總結,并且有很多缺點.鑒于這些原因,研究人員應對檢測結果提供定性分析和可視化.特別重要的是用不同方法預測的假陽性的質量,如果沒有視覺檢查是無法捕捉的.一種在測試數(shù)據(jù)中產(chǎn)生假陽性結果的方法與另一種產(chǎn)生貌似隨機的假陽性結果的方法(訓練數(shù)據(jù)中不存在這種情況)相對應,當其他數(shù)值測量比如AUC在它們之間具有可比性時.在3個常用數(shù)據(jù)集上的傳統(tǒng)評估標準如表3所示,基于軌跡和基于區(qū)域的新評估標準如表4和表5所示.

Table 3 Traditional Evaluation Criteria on the UCSD Ped1,USD Ped2 and CUHK Avenue Datasets

Table 4 Track Region-Based Area Under the ROC Curve for False Positive Rate up to 1.0 on 3 Datasets

Table 5 Track-Based, Region-Based, Pixel-Level, and Frame-Level AUC on Street Scene
本文對基于監(jiān)控視頻的異常檢測及建模研究進行了綜述.我們建立了一個直觀的分類,并將過去的研究工作相互關聯(lián).同時,本文也希望能夠理清不同問題方案、數(shù)據(jù)集使用、評估標準之間的一些誤解以及如何比較使用相容問題方案和評估標準的假設方法.為以后的研究做一些參考,我們提供了一份該領域經(jīng)典工作在各種數(shù)據(jù)集的評價標準上的表現(xiàn),如表3~5中的匯總.我們現(xiàn)在提供了一些好的實踐,并闡述了該領域在表示和建模方面的總體趨勢的一些觀察結果,因為它們與數(shù)據(jù)集規(guī)模的增加和設備計算能力的增強有關.
視頻異常檢測算法的輸入表示主要以原始的、固定大小的圖像塊為主.一些異常需要分析時間信息,因此研究人員轉向使用視頻塊,這需要更多的計算能力.最近,研究人員已經(jīng)開始使用視頻塊的多模態(tài)表示,使用原始幀以及估計光流場到現(xiàn)在的端到端深度學習方法自動提取特征.有些方法甚至試圖利用GPU的先進計算能力來使用整個幀和視頻片段作為輸入.我們預計,隨著在原始視頻上使用3D和膨脹的3D卷積(放棄昂貴的光流場計算),輸入表示的復雜性增加趨勢將會逆轉,這在視頻動作識別中已經(jīng)很流行[90].
隨著技術的發(fā)展,建模的趨勢有所不同.首先,研究人員使用非常簡單的手工制作的特征,這些特征的分布可以通過簡單的假設很好地建模.不久,研究人員通過更復雜的模型、更復雜的假設和許多巧妙的工程設計,取得了更好的結果.最近,這一趨勢發(fā)生了逆轉,人們更多地依賴于從數(shù)據(jù)中學習內(nèi)在表示,從而更直接地優(yōu)化一種巧妙設置的優(yōu)化方案和優(yōu)雅的建模方法.我們預計這種數(shù)據(jù)主導的趨勢將繼續(xù)下去,特別是當更大、更復雜的數(shù)據(jù)集變的可用時.
一方面,視頻異常檢測的研究已經(jīng)取得了長足的進展;另一方面,以往的研究也忽視了視頻異常檢測中一些更具有挑戰(zhàn)性的問題.在現(xiàn)有的數(shù)據(jù)集中,徘徊類型的異常并沒有在具體的建模中被解決.事實上,大多數(shù)過去的方法都無法檢測到這類異常,因為它們嚴重依賴于運動軌跡而忽略了視頻的處理部分.研究一種算法,以保留任何最新技術的優(yōu)點,同時也能夠檢測徘徊異常,這是一個成熟的貢獻領域.視頻異常檢測方法的另一個挑戰(zhàn)是處理罕見但正常活動的能力.這種活動在正常的訓練視頻中可能很少出現(xiàn),經(jīng)常導致假陽性異常檢測.這類活動的一個例子是一個行人停下來系鞋帶.這種情況可能不會經(jīng)常發(fā)生,而且當異常檢測器發(fā)出警報時,保安可能不希望它發(fā)出警報.所以從正常視頻中學到的模型應該不僅包括最常見的正常活動,也包括罕見的正常活動.
在異常的類型方面,異常的群組、軌跡和時間在很大程度上還沒有被處理,因為包含這些異常的數(shù)據(jù)集還不存在.我們期待其他研究人員在不久的將來貢獻具有這些特性的數(shù)據(jù)集.隨著研究人員從注重規(guī)模較小、不那么復雜數(shù)據(jù)集的精度變得飽和到更大、更復雜的數(shù)據(jù)集和更多種類的異常類型,他們將被推到發(fā)明新的視頻表示,新模型可以實現(xiàn)高檢測率低誤判率為實際應用服務.
為了提高視頻異常檢測的效率,多種方式的檢測方法可能會出現(xiàn),其中一種新型的檢測方法是人機協(xié)作模式,人參與少量的反饋,使得檢測模型更新,并且對于一些復雜場景(遮擋情況),人可以很好地辨識而不需要算法去迭代更新.