王思齊,胡婧韜,余 廣,祝 恩,蔡志平
(國防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長沙 410073)
面對(duì)現(xiàn)實(shí)生活中不斷涌現(xiàn)的各類安全威脅和形形色色的突發(fā)情況,視頻監(jiān)控在公共安全、交通路況、市政管理等各個(gè)領(lǐng)域扮演著不可或缺的重要角色。隨著以“天網(wǎng)監(jiān)控系統(tǒng)”[1]為代表的各類視頻監(jiān)控系統(tǒng)建設(shè)的不斷完善,各類視頻監(jiān)控設(shè)備監(jiān)控也已經(jīng)全面深入到現(xiàn)代社會(huì)公共場所的各個(gè)角落。然而,快速增長的視頻監(jiān)控設(shè)備每時(shí)每刻產(chǎn)生的海量視頻數(shù)據(jù)對(duì)基于人工判讀的視頻異常事件發(fā)現(xiàn)帶來了巨大的挑戰(zhàn),使后者在成本、效率甚至準(zhǔn)確率上都已經(jīng)變得越來越難以為繼。因此,發(fā)展能夠不依賴于人工判讀、基于機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺方法來自動(dòng)從監(jiān)控視頻中發(fā)現(xiàn)異常情況的智能視頻異常事件檢測技術(shù),對(duì)于降低人力物力成本,提高監(jiān)測效率,增強(qiáng)監(jiān)控安全可靠性具有極其重要的意義和作用。在現(xiàn)代社會(huì)日益錯(cuò)綜復(fù)雜的安全形勢(shì)下,智能視頻異常事件檢測技術(shù)在許多現(xiàn)實(shí)生活場景中都具有迫切的需求,其應(yīng)用前景光明,且具備客觀的潛在商業(yè)價(jià)值,得到了來自學(xué)術(shù)界和工業(yè)界越來越高的重視。智能視頻異常檢測技術(shù)作為智能安防領(lǐng)域的核心任務(wù)之一,受到了來自商湯、格林深瞳等新興人工智能公司以及華為、???、大華等傳統(tǒng)巨頭的持續(xù)關(guān)注,也使其成為近年來興起的人工智能浪潮的重要落地方向之一。
智能視頻異常事件檢測旨在基于各類機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺方法自動(dòng)地檢測和定位監(jiān)控視頻中各類違反常規(guī)的事件或行為,比如人群不正常的奔跑或聚集,人行道上車輛的出現(xiàn)等。相較于計(jì)算機(jī)視覺領(lǐng)域中的一些經(jīng)典的目標(biāo)檢測任務(wù)(如行人檢測、文字檢測、人臉檢測等),視頻異常事件檢測任務(wù)具有以下顯著的特殊性:
(1)異常事件的定義具有抽象性,其內(nèi)涵較為豐富,意義比較模糊(即“違反常規(guī)情況的事件”),這使得異常事件檢測并不像經(jīng)典的目標(biāo)檢測任務(wù)一樣具有語義清晰且無二義性的檢測對(duì)象,其待檢測的異常事件往往并不特指某一種或者幾種對(duì)象。例如,人行道上行駛的汽車和長時(shí)間徘徊逗留的行人都是需要注意的異常事件。
(2)異常事件往往具有很強(qiáng)的不可預(yù)測性。視頻異常事件檢測通常需要遵循一個(gè)“開放世界”假設(shè)(即所有不符合訓(xùn)練數(shù)據(jù)中出現(xiàn)的正常事件的情況都視為待檢測的異常事件),而不能像一般的經(jīng)典目標(biāo)檢測任務(wù)一樣采用“閉合世界”假設(shè)(把檢測的異常對(duì)象局限于訓(xùn)練數(shù)據(jù)給定的特定種類對(duì)象)。
(3)異常事件的稀疏性。由于異常事件本身被定義為是反常的,這就從本質(zhì)上決定了視頻中的異常事件發(fā)生的頻率要遠(yuǎn)小于正常事件發(fā)生的頻率,因而使得收集異常事件的數(shù)據(jù)要遠(yuǎn)遠(yuǎn)難于收集正常事件數(shù)據(jù),甚至在一些情況下根本不可能預(yù)先收集到異常事件的數(shù)據(jù)。
(4)異常事件的定義具有相對(duì)性。在視頻中,不同的對(duì)象和事件根據(jù)其所處的時(shí)空上下文環(huán)境的不同,往往具有不同的異常程度判定。例如,高速公路上行駛的汽車是正常事件,而在人行道上穿行的汽車則是需要注意的異常事件。
以上這些特殊性都使得視頻異常事件檢測相較于經(jīng)典的目標(biāo)檢測任務(wù)更加困難。此外,相對(duì)于其他領(lǐng)域的異常檢測任務(wù)(如網(wǎng)絡(luò)流量異常檢測),視頻異常事件檢測是一個(gè)面向自然圖像/視頻的計(jì)算機(jī)視覺任務(wù),這使得它和其他計(jì)算機(jī)視覺任務(wù)一樣需要面對(duì)真實(shí)場景下的各類復(fù)雜因素的挑戰(zhàn),比如光照變化、模糊、形變、擁擠場景、鏡頭抖動(dòng)等。同時(shí),從圖像或者視頻幀低層次的像素中提取出具備人類能夠理解的語義信息的高層次特征來表示各類視頻事件也是一個(gè)十分具有挑戰(zhàn)性的任務(wù)。以上因素使得視頻異常事件檢測一直是計(jì)算機(jī)視覺中的一個(gè)十分具有挑戰(zhàn)性的任務(wù),至今仍有待進(jìn)一步的探索。
由于視頻異常事件檢測相較于經(jīng)典的目標(biāo)檢測任務(wù)的特殊性,使得收集數(shù)量充分、種類齊全的異常事件數(shù)據(jù)集在現(xiàn)實(shí)中通常不具有可操作性,因此視頻異常事件檢測往往不能采用最常見的、效果最好的監(jiān)督式分類技術(shù)作為解決方案(監(jiān)督式分類技術(shù)要求使用同時(shí)包含標(biāo)注好的正常和異常事件的數(shù)據(jù)進(jìn)行訓(xùn)練)。根據(jù)使用的實(shí)驗(yàn)設(shè)定不同,現(xiàn)有的視頻異常事件檢測技術(shù)一般分為以下3種類型:
(1)半監(jiān)督視頻異常事件檢測。半監(jiān)督視頻異常事件檢測使用僅包含正常事件的視頻作為訓(xùn)練視頻來構(gòu)建一個(gè)正常事件模型,而在測試環(huán)節(jié)則將所有偏離該正常事件模型的事件判定為異常事件。半監(jiān)督視頻異常事件檢測技術(shù)假設(shè)完全沒有任何異常事件作為先驗(yàn)信息,最符合異常檢測中的“開放世界”假設(shè)。因此,目前文獻(xiàn)中的大部分方法都屬于這種類型,其中比較有代表性的工作可參見文獻(xiàn)[2-6]。
(2)無監(jiān)督視頻異常事件檢測。無監(jiān)督視頻異常事件檢測完全不使用任何人為標(biāo)注的數(shù)據(jù)(無論是正常事件還是異常事件),僅根據(jù)這些視頻事件數(shù)據(jù)自身所展示出的性質(zhì)和分布特點(diǎn)來找出其中最與眾不同的異常事件。無監(jiān)督視頻異常事件檢測的設(shè)定比半監(jiān)督視頻異常事件檢測更加貼近現(xiàn)實(shí)需求,對(duì)訓(xùn)練數(shù)據(jù)的要求遠(yuǎn)低于后者,但是其難度也要高于后者,屬于近年來視頻異常事件檢測中新興的研究方向。其中比較有代表性的工作可參見文獻(xiàn)[7-9]。
(3)弱監(jiān)督視頻異常事件檢測。弱監(jiān)督視頻異常事件檢測使用少量或者具有弱標(biāo)注的包含異常事件的視頻(弱標(biāo)注即不精確標(biāo)注出異常行為的像素或者視頻幀位置,僅在粗粒度層面標(biāo)注出某一個(gè)視頻是否包含異常行為,例如標(biāo)注一整個(gè)視頻是否包含異常而不具體到某一幀)來作為訓(xùn)練數(shù)據(jù),旨在克服半監(jiān)督視頻異常事件檢測完全忽視已知異常事件的先驗(yàn)信息的問題,更加貼近于現(xiàn)實(shí)生活中異常檢測的設(shè)定。弱監(jiān)督視頻異常事件檢測也是視頻異常事件檢測中新出現(xiàn)的研究方向,目前此類型的方法較少,其具有代表性的工作可參見文獻(xiàn)[10]。
現(xiàn)有視頻異常事件檢測技術(shù)通常都包含3個(gè)共同的技術(shù)環(huán)節(jié):
(1)視頻事件提取:由于監(jiān)控視頻攝像頭絕大部分情況下處于靜止?fàn)顟B(tài),視頻事件提取環(huán)節(jié)旨在剔除監(jiān)控視頻中每一幀里始終靜止不變的背景部分,提取出其中需要關(guān)注的正在運(yùn)動(dòng)或者具有運(yùn)動(dòng)可能的前景對(duì)象,并將這些前景組織為待分析的基本視頻事件單元。
(2)視頻事件表示:在提取出視頻中的前景部分并將其構(gòu)建的基本單元作為待分析的視頻事件后,需要進(jìn)一步從這些視頻事件中提取出有判別性的特征來作為這些視頻事件的表示,從而方便利用這些特征來進(jìn)一步判別出哪些事件屬于異常事件。
(3)視頻事件建模:根據(jù)從視頻事件中提取出的特征表示構(gòu)建出一個(gè)視頻事件的模型,該模型能夠?qū)σ曨l事件的特點(diǎn)(紋理、速度、分布等)進(jìn)行描述,最終利用構(gòu)建好的模型發(fā)現(xiàn)視頻中包含的異常事件。
本節(jié)將從上面3個(gè)技術(shù)環(huán)節(jié)出發(fā),對(duì)現(xiàn)有視頻異常事件檢測解決方案進(jìn)行介紹。
監(jiān)控視頻中的視頻幀通常含有大量重復(fù)的、始終靜止的背景。通常情況下,這些背景部分是不需要關(guān)注的,因?yàn)楫惓J录w現(xiàn)在發(fā)生運(yùn)動(dòng)或者有潛在發(fā)生運(yùn)動(dòng)可能的前景對(duì)象上。因此,針對(duì)背景部分進(jìn)行運(yùn)算開銷龐大且沒有必要。此外,背景部分也可能引入大量噪聲和冗余信息,干擾視頻事件的建模并降低異常檢測的效率和質(zhì)量。因此,現(xiàn)有許多方法的常用做法是先提取出前景,再按照一定的形式將提取出的前景組織成一定的結(jié)構(gòu)作為視頻異常事件檢測任務(wù)中最基本的視頻事件單元。其中,視頻事件提取包含2個(gè)關(guān)鍵的技術(shù)要點(diǎn)。
3.1.1 前景區(qū)分
提取視頻事件的基礎(chǔ)在于區(qū)分視頻幀上哪些像素屬于前景,哪些像素屬于背景,比較典型的方法包括:
(1)梯度法(又稱幀間差分法)。
該類方法是實(shí)現(xiàn)前景區(qū)分最簡單的方法,旨在通過判斷每一個(gè)像素位置上是否發(fā)生了運(yùn)動(dòng),即相鄰兩幀之間相同像素位置上的灰度值是否發(fā)生劇烈變化,來確定該像素是否屬于前景所在的區(qū)域。文獻(xiàn)[4]利用相鄰兩幀相減計(jì)算每一個(gè)視頻幀在時(shí)間方向上的梯度的模值來作為該像素位置的運(yùn)動(dòng)強(qiáng)度的表示,并以此作為區(qū)分前景和背景像素的依據(jù)。文獻(xiàn)[11]將相鄰幀相減得到的梯度進(jìn)行二值化,并進(jìn)一步通過形態(tài)學(xué)濾波和連通性分析實(shí)現(xiàn)更加完整的前景區(qū)分。此類方法雖然簡單且容易實(shí)現(xiàn),但是容易受到噪聲的影響,且不能區(qū)分出短暫靜止的前景。
(2)背景減除法。
該類方法先通過對(duì)輸入若干視頻幀中的背景進(jìn)行建模得到背景模型,再將每幀圖像和背景模型圖像進(jìn)行相減提取出其中明顯與背景模型不同的部分作為前景。例如,文獻(xiàn)[12,13]將視頻中的背景和前景部分分別視為矩陣中的低秩和高秩部分,利用魯棒主成分分析法[14]求解出其中的低秩部分作為背景模型,但需要輸入較多的視頻幀用于保證建模效果,且魯棒主成分分析計(jì)算開銷較高,而文獻(xiàn)[5,15]則利用了經(jīng)典的ViBe(Visual Backgroud extractor)方法[16]來對(duì)背景進(jìn)行建模,能夠在保持一定計(jì)算效率的前提下得到比簡單的梯度法更加準(zhǔn)確的前景區(qū)分效果。
(3)基于深度神經(jīng)網(wǎng)絡(luò)的方法。
近年來,深度神經(jīng)網(wǎng)絡(luò)[17]得到了迅猛的發(fā)展,其在目標(biāo)檢測、語義分割等一系列計(jì)算機(jī)視覺任務(wù)上都取得了巨大的突破。深度神經(jīng)網(wǎng)絡(luò)的優(yōu)異表現(xiàn)自然啟發(fā)了研究者將其應(yīng)用在前景區(qū)分上。例如,文獻(xiàn)[18,19]使用在大規(guī)模數(shù)據(jù)集上預(yù)訓(xùn)練出來的全連接卷積網(wǎng)絡(luò)來從視頻幀上找出具有顯著特征相應(yīng)的像素位置作為前景,而文獻(xiàn)[20]則直接使用在大規(guī)模目標(biāo)檢測數(shù)據(jù)集上預(yù)訓(xùn)練好的深度目標(biāo)檢測網(wǎng)絡(luò)來給出包含前景物體的約束框,將約束框內(nèi)的像素作為待提取的前景。此類在大規(guī)模數(shù)據(jù)集上預(yù)訓(xùn)練好的深度神經(jīng)網(wǎng)絡(luò)能夠取得較好的前景區(qū)分效果,并且能夠通過GPU等硬件的輔助實(shí)現(xiàn)非常高效的前景區(qū)分。然而,這種策略顯著的缺點(diǎn)在于這些預(yù)訓(xùn)練的深度模型往往都受限于“閉合世界”的假設(shè)——它們只能夠檢測出在訓(xùn)練時(shí)學(xué)習(xí)過的類別的物體;一旦出現(xiàn)訓(xùn)練數(shù)據(jù)之外的新類別的前景物體,它們就無法將其成功區(qū)分出來。
3.1.2 前景提取
前景提取的目的是在區(qū)分每一個(gè)像素是否屬于前景之后,根據(jù)這些前景像素的位置將其按照一定的形式提取出來并構(gòu)建成為基本的視頻事件單元。目前較為常見的前景提取方法主要有以下幾種:
(1)滑動(dòng)窗口法。
滑動(dòng)窗口法是最簡單高效的前景提取方法,其通常使用一個(gè)滑動(dòng)窗口按照一定步長在視頻幀上進(jìn)行從左至右、從上到下的掃描,并將其中符合一定條件的窗口內(nèi)提取出來的前景塊作為一個(gè)視頻事件。例如,文獻(xiàn)[4]將窗口內(nèi)像素時(shí)間方向上梯度模值之和大于一定閾值的窗口中的前景塊提取出來作為視頻事件基本單元,而文獻(xiàn)[5]則將前景像素所占比例超過40%的窗口視作視頻事件的基本單元。除此之外,滑動(dòng)窗口法一般會(huì)將視頻幀縮放到多個(gè)不同尺度,從而提取到包含不同尺度大小前景的前景塊,使得能夠更加全面地提取出所有可能的視頻事件的基本單元。另外,在一些文獻(xiàn)中(如文獻(xiàn)[3])還會(huì)將與當(dāng)前提取出的前景塊在時(shí)間或者空間位置上相鄰的前景塊一并提取出來,組合在一起成為時(shí)空立方體,并以此作為視頻事件基本單元,從而更好地捕捉視頻中的時(shí)空上下文信息。
圖1展示了文獻(xiàn)[5]利用滑動(dòng)窗口法提取視頻事件基本單元的全過程。雖然此種策略簡單高效,但是滑動(dòng)窗口法的主要缺陷在于對(duì)前景中的對(duì)象往往是非常粗略的提取,會(huì)將一個(gè)獨(dú)立完整的前景(例如行人、車輛)劃分在幾個(gè)不同的前景塊里,這阻礙了對(duì)于前景物體的精確建模,在一定程度上影響了異常事件檢測效果。同時(shí),多個(gè)尺度前景的提取往往會(huì)產(chǎn)生過多的前景塊,造成較大的計(jì)算開銷。
Figure 1 Sliding window method for video event extraction [5]圖1 滑動(dòng)窗口法提取視頻事件[5]
(2)目標(biāo)檢測法。
基于深度神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測[21]近年來取得了長足的進(jìn)步,其不僅能夠識(shí)別出圖像中包含的不同對(duì)象所屬的種類,還能同時(shí)給出一系列邊界框用于精確地定位出這些前景物體的位置,這使得其能夠直接同時(shí)實(shí)現(xiàn)前景區(qū)分與前景提取的功能。自然而然,預(yù)訓(xùn)練好的目標(biāo)檢測器能夠作為優(yōu)良的前景提取工具。目前,許多在大規(guī)模數(shù)據(jù)目標(biāo)檢測數(shù)據(jù)集(例如Microsoft COCO)上預(yù)訓(xùn)練的目標(biāo)檢測器(例如Faster R-CNN[22],YOLO[23],RetinaNet[24])均已經(jīng)能夠在保證接近實(shí)時(shí)的情況下以較高的準(zhǔn)確率魯棒地檢測出大部分日常生活中常見的物體,甚至在一些比較困難的場景(例如擁擠的場景)中也能夠較為準(zhǔn)確地定位各類不同尺度的前景對(duì)象。因此,近年來一些文獻(xiàn)[20,25]已經(jīng)開始將預(yù)訓(xùn)練好的目標(biāo)檢測器用到視頻異常事件檢測中進(jìn)行前景提取,并將使用邊界框提取出的前景塊歸一化為統(tǒng)一的大小,作為視頻事件的基本單元。如前所述,目標(biāo)檢測法的優(yōu)點(diǎn)雖然能較為完整準(zhǔn)確地得到前景目標(biāo),但其無法檢測視頻幀中出現(xiàn)的預(yù)訓(xùn)練數(shù)據(jù)集中沒有的目標(biāo),這也是其最為致命的缺陷。圖2展示了使用目標(biāo)檢測法在視頻幀上進(jìn)行前景提取的結(jié)果。
Figure 2 Foreground bounding box obtained by object detection圖2 使用目標(biāo)檢測法得到的前景邊界框
在進(jìn)行前景區(qū)分和前景提取后,視頻前景往往會(huì)以縮放到同一尺度大小的前景圖像塊或者時(shí)空立方體的形式被提取出來,作為視頻事件的基本單元,方便后續(xù)視頻事件的表示和建模,也會(huì)有助于對(duì)檢測出的異常事件進(jìn)行定位。值得一提的是,隨著具有較強(qiáng)建模能力的深度神經(jīng)網(wǎng)絡(luò)的提出和發(fā)展,近年來一些視頻異常事件檢測方法省略了視頻事件提取的步驟,直接對(duì)原始視頻幀進(jìn)行處理。例如,文獻(xiàn)[6]引入了醫(yī)療圖像分割領(lǐng)域的U-Net用于直接預(yù)測整幅視頻幀中的異常事件,文獻(xiàn)[26]設(shè)計(jì)了深度自編碼器來直接重建整幅視頻幀。
視頻事件提取環(huán)節(jié)得到的視頻事件基本單元數(shù)據(jù)往往具有很高的數(shù)據(jù)維度。例如,一個(gè)較小的、邊長為32的彩色視頻前景塊就總共包含3 072個(gè)數(shù)據(jù),這會(huì)帶來很大的計(jì)算開銷,且其中含有大量對(duì)于視頻異常事件檢測沒有幫助的冗余信息。因此,我們需要從這些原始的視頻事件基本單元中找出維度較低且具有判別性的特征,用其更好地表示得到的視頻事件并服務(wù)于隨后的視頻異常事件檢測。目前已有的視頻異常事件檢測技術(shù)所使用的視頻事件表示方法一般可以分為2類。
3.2.1 基于特征工程的視頻事件表示
基于特征工程的視頻事件表示方法一般是從人類專家對(duì)于視頻事件表示的一些領(lǐng)域知識(shí)出發(fā),設(shè)計(jì)相應(yīng)的特征算子,再利用這些特征算子從提取出的視頻事件基本單元計(jì)算出其特征表示。早期的視頻異常事件檢測方法一般都采用這種方法進(jìn)行視頻事件表示,其提取的特征可以分為高層次特征和低層次特征。
對(duì)于高層次特征而言,首先基于目標(biāo)檢測或跟蹤等方法得到較高語義層次上的前景目標(biāo)對(duì)象(例如行人、車輛等),隨后對(duì)這些檢測或者跟蹤得到的目標(biāo)對(duì)象中包含的一些含有明顯高層次語義的信息(例如運(yùn)動(dòng)速度、軌跡長度、方向、形狀)設(shè)計(jì)相應(yīng)的特征來表示視頻事件[27 - 30]。高層次特征的優(yōu)點(diǎn)是在場景簡單、目標(biāo)清晰、分辨率較高的視頻中效果較好,可解釋性較強(qiáng);但其缺點(diǎn)是在有較多擁擠的真實(shí)場景下會(huì)失效,這是因?yàn)槟繕?biāo)間的相互遮擋、光照變化等因素,會(huì)導(dǎo)致目標(biāo)檢測與跟蹤器難以對(duì)目標(biāo)進(jìn)行連續(xù)準(zhǔn)確的捕捉。
基于提取高層次特征所遇到的困難,研究人員提出了更加魯棒、計(jì)算更加簡便的低層次特征,即不再首先獲取高層次對(duì)象,而是直接在視頻幀像素層面上設(shè)計(jì)基于各類統(tǒng)計(jì)信息的特征算子對(duì)視頻進(jìn)行表示。文獻(xiàn)中常用的低層次特征有三維方向梯度[31]、方向梯度直方圖[32]、光流直方圖[33]及其變種(如多尺度光流直方圖[3]和空間局部化光流直方圖SL-HOF(Spatially Localized Histogram of Optical Flow)[34])、局部二值化模式[35]以及局部梯度模式[36]等。低層次特征往往具有一些高層次特征所不具備的優(yōu)點(diǎn),例如光照變化下的不變性。圖3展示了一個(gè)低層次特征算子的計(jì)算流程。
Figure 3 Process of spatially localized histogram of optical flow圖3 空間局部化光流直方圖特征算子的計(jì)算流程
基于特征工程的視頻事件表示具有較好的可解釋性,但是其特征需要根據(jù)不同的場景由領(lǐng)域?qū)<疫M(jìn)行設(shè)計(jì),門檻較高;同時(shí),與諸如圖像分類、目標(biāo)檢測等經(jīng)典的計(jì)算機(jī)視覺任務(wù)一樣,這些基于人類認(rèn)知進(jìn)行手工特征工程設(shè)計(jì)的視頻表示方法往往并不能得到視頻事件的最優(yōu)表示,判別性較弱。
3.2.2 基于深度表示學(xué)習(xí)的視頻事件表示
隨著近年來深度學(xué)習(xí)的快速興起,使用深度神經(jīng)網(wǎng)絡(luò)從輸入的原始數(shù)據(jù)中直接學(xué)習(xí)出對(duì)于特定任務(wù)最優(yōu)的特征表示的深度表示學(xué)習(xí)方法已經(jīng)成為計(jì)算機(jī)視覺領(lǐng)域中最明顯的發(fā)展趨勢(shì)。這也使得近年來許多的視頻異常事件檢測方法開始逐步將深度學(xué)習(xí)作為視頻事件表示的新選擇[37]。文獻(xiàn)[5]作為這個(gè)方面的開創(chuàng)性工作,首次用深度堆疊去噪自編碼器網(wǎng)絡(luò)學(xué)習(xí)重建像素和光流時(shí)空立方體,并將自編碼器的中心隱層或末尾全連接層的輸出作為學(xué)習(xí)到的視頻事件表示。文獻(xiàn)[20,38]則分別使用了卷積深度自編碼器和贏家通吃卷積深度自編碼器(Convolutional Winner-take-all AUtoencoder)來替代由全連接層組成的深度堆疊去噪自編碼器(如圖4所示),因?yàn)榫矸e操作能夠更好地捕捉二維圖像上的空間結(jié)構(gòu),得到更好的視頻特征。文獻(xiàn)[39]利用多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)提取行人面部區(qū)域的特征。文獻(xiàn)[40]利用預(yù)訓(xùn)練的AlexNet模型提取圖像特征。值得一提的是,最近更多基于深度神經(jīng)網(wǎng)絡(luò)的視頻異常事件檢測方法已經(jīng)不再將深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的視頻事件表示單獨(dú)提取出來,而是直接利用深度神經(jīng)網(wǎng)絡(luò)端到端得到視頻事件的檢測結(jié)果。
Figure 4 Schematic diagram of deep autoencoder圖4 深度自編碼器網(wǎng)絡(luò)的結(jié)構(gòu)示意圖
視頻事件建模和檢測是視頻異常事件檢測的核心技術(shù)環(huán)節(jié),旨在根據(jù)訓(xùn)練數(shù)據(jù)中的視頻事件建立相應(yīng)的數(shù)學(xué)模型,從而實(shí)現(xiàn)在測試時(shí)對(duì)視頻事件的異常程度進(jìn)行打分,找出其中的異常事件。文獻(xiàn)中提出了豐富的視頻事件建模方法,其主要可以分為以下幾類:
3.3.1 基于經(jīng)典機(jī)器學(xué)習(xí)技術(shù)的方法
此類視頻事件建模方法使用前面提取出的視頻事件的特征表示(通常以特征向量的形式進(jìn)行表示)作為輸入,利用經(jīng)典機(jī)器學(xué)習(xí)算法進(jìn)行建模,包括經(jīng)典的稀疏編碼、分類、聚類和離群點(diǎn)檢測算法等。例如,基于稀疏編碼技術(shù),文獻(xiàn)[3]將字典學(xué)習(xí)的方法引入視頻異常檢測任務(wù)中,作為視頻異常事件的建模方法,其從給定的訓(xùn)練數(shù)據(jù)中學(xué)習(xí)出一組能夠最優(yōu)表示正常事件的字典,而無法用學(xué)習(xí)到的字典良好表示的事件被判定為異常。該方法隨后衍生出一系列同樣基于稀疏編碼的變種[4,41 - 45]?;趩晤悇e分類技術(shù),文獻(xiàn)[5]則將表示視頻事件的特征向量輸入單類別支持向量機(jī)建立異常檢測模型。同時(shí),單類別自編碼器以及類似的判別式單分類分類器(例如單類別極限學(xué)習(xí)機(jī)[36]等)也是文獻(xiàn)中廣泛使用的用于視頻異常事件檢測的經(jīng)典機(jī)器學(xué)習(xí)技術(shù)之一。除此之外,二分類或者多分類分類器也常用于對(duì)正常事件建模。例如,文獻(xiàn)[20]將視頻事件特征向量利用k均值聚類算法進(jìn)行聚類,并為聚類得到的不同簇打上不同的偽標(biāo)簽,然后利用偽標(biāo)簽將一類作為正樣本、其他類作為負(fù)樣本循環(huán)訓(xùn)練k個(gè)支持向量機(jī)二分類器,支持向量機(jī)的輸出作為檢測異常的指標(biāo)。類似地,文獻(xiàn)[46]對(duì)所有局部活動(dòng)的圖袋進(jìn)行k中值聚類處理后,使用標(biāo)準(zhǔn)的二分類支持向量機(jī)進(jìn)行分類。基于聚類技術(shù)[47],文獻(xiàn)[48]利用k均值聚類對(duì)視頻事件特征進(jìn)行聚類,并將少數(shù)集群作為異常結(jié)果。文獻(xiàn)[49]利用近鄰傳播聚類進(jìn)行字典學(xué)習(xí)?;陔x群點(diǎn)檢測技術(shù),文獻(xiàn)[25]用核密度估計(jì)對(duì)分類分?jǐn)?shù)建立密度分布,并將密度的倒數(shù)作為異常值得分。
除了這幾種最直觀的建模方法外,文獻(xiàn)中還涌現(xiàn)了非常豐富的視頻事件建模方法。例如,文獻(xiàn)[2]使用條件隨機(jī)場來建模視頻事件;文獻(xiàn)[50]以社會(huì)力模型(Social Attribute-aware Force Model)來描述視頻事件中前景對(duì)象中的相互作用;文獻(xiàn)[51]使用層次化高斯混合模型來構(gòu)建正常的視頻事件概率模型;文獻(xiàn)[12]使用概率圖模型來解釋正常視頻事件中出現(xiàn)的前景對(duì)象;文獻(xiàn)[7,8]將局部變化檢測技術(shù)應(yīng)用于無監(jiān)督視頻異常事件檢測。
基于經(jīng)典機(jī)器學(xué)習(xí)技術(shù)的視頻異常事件檢測方法往往具有較堅(jiān)實(shí)的理論基礎(chǔ)以及良好的可解釋性,但是其要求必須根據(jù)不同的數(shù)據(jù)集和不同的場景進(jìn)行視頻事件的提取與表示。另外,部分經(jīng)典的機(jī)器學(xué)習(xí)方法的計(jì)算復(fù)雜度較高、可擴(kuò)展性較差,不利于處理較大規(guī)模的視頻數(shù)據(jù)。
3.3.2 基于深度神經(jīng)網(wǎng)絡(luò)的方法
此類方法利用深度神經(jīng)網(wǎng)絡(luò)對(duì)視頻事件進(jìn)行建模和預(yù)測,也是近年來視頻異常事件檢測領(lǐng)域重要的發(fā)展趨勢(shì)。深度神經(jīng)網(wǎng)絡(luò)一般具有從諸如圖像和視頻的復(fù)雜數(shù)據(jù)之中自動(dòng)學(xué)習(xí)到優(yōu)良特征表示的能力,使其可以端到端地同時(shí)實(shí)現(xiàn)視頻事件表示和視頻事件建模與預(yù)測2個(gè)環(huán)節(jié),避免了2個(gè)環(huán)節(jié)的銜接性問題,增加了實(shí)現(xiàn)的緊湊型和便利性。同時(shí),深度神經(jīng)網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)特征表示的能力也增強(qiáng)了相應(yīng)視頻異常事件檢測解決方案在不同數(shù)據(jù)集、不同場景之間的通用性。此類方法目前主要分為2種:
(1)基于重構(gòu)的方法。
此類方法的核心思想是深度生成式神經(jīng)網(wǎng)絡(luò)(如自編碼器網(wǎng)絡(luò)、對(duì)抗生成網(wǎng)絡(luò)),通過訓(xùn)練使其學(xué)習(xí)到自動(dòng)重構(gòu)輸入數(shù)據(jù)的能力。在視頻異常事件檢測任務(wù)中,最普遍的做法是在給定的正常視頻事件數(shù)據(jù)上訓(xùn)練生成式深度神經(jīng)網(wǎng)絡(luò),使其能夠在測試階段輸入正常視頻事件數(shù)據(jù)時(shí)得到良好的、具有較低重構(gòu)誤差的重構(gòu)數(shù)據(jù),而在輸入沒有訓(xùn)練過的異常事件數(shù)據(jù)時(shí)將得到較差的重構(gòu)數(shù)據(jù)、較大的重構(gòu)誤差,通過區(qū)分性的重構(gòu)誤差實(shí)現(xiàn)對(duì)正常事件的建模和對(duì)異常事件的檢測。目前,有許多利用或基于自編碼器重構(gòu)的視頻異常檢測方法[52]。文獻(xiàn)[26]是此類方法的先驅(qū)者,實(shí)現(xiàn)了2種深度自編碼器,其中一種利用傳統(tǒng)特征算子(梯度方向直方圖和光流方向直方圖)表示的視頻事件輸入到全連接深度神經(jīng)網(wǎng)絡(luò),另一種深度卷積自編碼器直接以整個(gè)原始視頻幀作為輸入,并發(fā)現(xiàn)直接將原始視頻幀作為輸入的深度卷積自編碼器能夠獲得優(yōu)良的異常檢測性能。文獻(xiàn)[53]把只能處理二維圖像的自編碼器拓展為三維時(shí)空自編碼器,可以更好地建立視頻幀與視頻幀之間的聯(lián)系。文獻(xiàn)[18]將提取出的視頻事件輸入到深度變分自編碼器進(jìn)行重構(gòu),這種更加魯棒和強(qiáng)大的生成式神經(jīng)網(wǎng)絡(luò)保證了其效果。文獻(xiàn)[54]設(shè)計(jì)了一種兩路輸出的自編碼器網(wǎng)絡(luò),將重構(gòu)單個(gè)視頻幀和重構(gòu)其對(duì)應(yīng)的光流結(jié)合起來,并使重構(gòu)網(wǎng)絡(luò)和預(yù)測網(wǎng)絡(luò)共享一個(gè)編碼網(wǎng)絡(luò)。文獻(xiàn)[55]則結(jié)合自編碼器網(wǎng)絡(luò)和記憶增強(qiáng)網(wǎng)絡(luò)使得模型對(duì)正常和異常視頻幀的重構(gòu)誤差更具有區(qū)分性。
(2)基于預(yù)測的方法。
此類方法的出發(fā)點(diǎn)是將預(yù)料之外、無法準(zhǔn)確預(yù)測的事件作為異常,符合人類對(duì)于異常的認(rèn)知。其實(shí)現(xiàn)的核心思想是,將若干時(shí)間上相鄰的視頻幀作為歷史信息輸入到一個(gè)深度生成網(wǎng)絡(luò)來預(yù)測這些視頻幀的下一幀(即未來幀),并將預(yù)測值和實(shí)際值之間的差異作為判定異常的要素。一般而言,用正常數(shù)據(jù)訓(xùn)練的預(yù)測網(wǎng)絡(luò)能準(zhǔn)確地預(yù)測正常數(shù)據(jù),而對(duì)于預(yù)測異常數(shù)據(jù)的表現(xiàn)較差。文獻(xiàn)[53]首次在使用時(shí)空自編碼器對(duì)視頻幀進(jìn)行重建時(shí),引入了額外的預(yù)測未來分支,以改善異常檢測的性能。
除了最常見的用自編碼器網(wǎng)絡(luò)生成未來幀的做法之外,在視頻異常檢測領(lǐng)域,另一種應(yīng)用較廣的預(yù)測網(wǎng)絡(luò)是U-Net[56]。文獻(xiàn)[6]首次引入U(xiǎn)-Net作為生成未來幀的深度神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。其中,U-Net通過降采樣網(wǎng)絡(luò)和上采樣網(wǎng)絡(luò)的跳層連接,融合了低層次特征和高層次特征,解決了梯度消失和每層信息不平衡等問題。文獻(xiàn)[6]將前t幀輸入到U-Net中以預(yù)測第t+1幀,同時(shí)在訓(xùn)練時(shí)加入最小化預(yù)測幀和實(shí)際幀的光流和梯度差異的目標(biāo)函數(shù)作為運(yùn)動(dòng)約束,以及鼓勵(lì)預(yù)測幀盡可能接近真實(shí)視頻幀的對(duì)抗損失函數(shù)。在此基礎(chǔ)上文獻(xiàn)[57]則通過使用U-Net對(duì)重構(gòu)歷史幀的任務(wù)做出了改進(jìn)。另外,除了直觀地用歷史幀預(yù)測未來幀的做法,文獻(xiàn)中還出現(xiàn)了跨模態(tài)的預(yù)測方法,即使用一個(gè)模態(tài)的視頻數(shù)據(jù)預(yù)測另一個(gè)模態(tài)的視頻數(shù)據(jù)。文獻(xiàn)[58]使用對(duì)抗生成網(wǎng)絡(luò)[59]作為生成模型,在原始視頻幀和其對(duì)應(yīng)的光流場之間進(jìn)行相互預(yù)測。文獻(xiàn)[60]則將U-Net作為生成網(wǎng)絡(luò)來從原始視頻幀預(yù)測光流。
Figure 5 Schematic diagram of U-Net圖5 用于預(yù)測未來的U-Net網(wǎng)絡(luò)結(jié)構(gòu)
UCSD行人數(shù)據(jù)集[2]是視頻異常事件檢測研究中使用最廣泛的主流數(shù)據(jù)集之一,它分為UCSD Pedestrian 1(Ped1)和UCSD Pedestrian 2(Ped2)2個(gè)數(shù)據(jù)集,是從加州大學(xué)圣地亞哥分校UCSD(University of California,San Diego) 2個(gè)不同地點(diǎn)的人行道的視頻監(jiān)控中收集而來。在UCSD Ped1和UCSD Ped2數(shù)據(jù)集中,走路的行人被視為正常事件,而在人行道中出現(xiàn)的其他移動(dòng)物體則被視為異常事件,例如在人行道上騎自行車、滑滑板、推手推車、駕駛汽車等。行人在非人行道區(qū)域(例如草坪)行走也被視作異常事件。此外,這2個(gè)數(shù)據(jù)集包含大量視頻前景物體相互遮擋的擁擠場景,尤其是行人的遮擋,增加了檢測異常事件的難度。測試集均提供了像素級(jí)別的標(biāo)注,即在每個(gè)視頻幀上標(biāo)注出了異常像素。
UCSD Ped1數(shù)據(jù)集包含34個(gè)訓(xùn)練視頻樣本和36個(gè)測試視頻樣本,總共包含14 000幀,每幀分辨率為158×238像素。UCSD Ped2 數(shù)據(jù)集也是一個(gè)廣泛使用的數(shù)據(jù)集,包含16個(gè)訓(xùn)練視頻序列和12個(gè)測試視頻序列,其視頻幀的分辨率為240×360像素,總共包含4 560幀。與UCSD Ped1數(shù)據(jù)集相比,Ped2數(shù)據(jù)集具有更少的視頻幀和更大的幀分辨率,這使得它相較于Ped1更為常用。在實(shí)際實(shí)驗(yàn)中,通常的做法是把2個(gè)數(shù)據(jù)集分開測試。圖6展示了UCSD Ped1和Ped2數(shù)據(jù)集上具有代表性的正常事件(圖6a和圖6c)和異常事件(圖6b和圖6d)的視頻幀。
Figure 6 Representative frames on UCSD Ped1 and Ped2 Datasets圖6 UCSD Ped1和Ped2數(shù)據(jù)集上具有代表性的視頻幀
Avenue數(shù)據(jù)集[4]采集自香港中文大學(xué)CUHK(The Chinese University of Hong Kong)校內(nèi)一個(gè)走廊的監(jiān)控?cái)z像機(jī)。在此視頻數(shù)據(jù)集中,行人在走廊上按正常方向行走是正常事件,而在走廊上扔書包、灑紙片、奔跑、推自行車等各種類型的行為被當(dāng)成異常事件。為了接近現(xiàn)實(shí)世界中的實(shí)際情況,Avenue數(shù)據(jù)集的測試視頻中會(huì)發(fā)生一些輕微的相機(jī)抖動(dòng),從而使我們更加聚焦于異常的移動(dòng)對(duì)象上。
Avenue數(shù)據(jù)集包含共15 328幀的16個(gè)訓(xùn)練視頻和共15 324幀的21個(gè)測試視頻,其中一共有47個(gè)異常事件。視頻幀的分辨率為360×640像素。同時(shí),訓(xùn)練集包含少量的異常,測試集提供了像素級(jí)別的標(biāo)注。
圖7展示了Avenue數(shù)據(jù)集上具有代表性的正常事件(圖7a)和異常事件(圖7b~圖7d)的視頻幀。
Figure 7 Representative frames on Avenue dataset圖7 Avenue數(shù)據(jù)集上具有代表性的視頻幀
ShanghaiTech數(shù)據(jù)集[41]是目前為止最大的視頻異常檢測數(shù)據(jù)集,與其他數(shù)據(jù)集只包含一個(gè)場景不同(即一個(gè)固定的攝像頭采集所有視頻),ShanghaiTech數(shù)據(jù)集一共包含了13個(gè)有不同光照條件和攝像頭角度的場景,這使其成為文獻(xiàn)中最具挑戰(zhàn)性的數(shù)據(jù)集之一。訓(xùn)練集包含共274 515幀的330個(gè)視頻,測試集包含共42 883幀的107個(gè)視頻,包含130個(gè)異常事件。視頻幀的分辨率為480×856像素。同時(shí),測試集提供了像素級(jí)別的標(biāo)注。
圖8展示了ShanghaiTech數(shù)據(jù)集上具有代表性的正常事件(圖8a)和異常事件(圖8b~圖8d)的視頻幀。
Figure 8 Representative frames on ShanghaiTech dataset圖8 ShanghaiTech數(shù)據(jù)集上具有代表性的視頻幀
異常檢測的任務(wù)中,最常用的評(píng)估指標(biāo)分為幀層次標(biāo)準(zhǔn)和像素層次標(biāo)準(zhǔn)[2]。對(duì)于幀層次標(biāo)準(zhǔn),如果算法檢測到視頻幀中存在至少一個(gè)像素點(diǎn)為異常,則將視頻幀視為異常;像素層次標(biāo)準(zhǔn)規(guī)定,一次對(duì)異常事件成功的檢測被認(rèn)定為至少超過40%的像素被檢測為異常且真實(shí)標(biāo)簽也為異常。
在視頻異常檢測領(lǐng)域,為了進(jìn)行定量比較,實(shí)驗(yàn)中通常計(jì)算相應(yīng)受試者工作特征曲線ROC(Receiver Operating Characteristic)下的面積AUC(Area Under the corresponding ROC Curve)和等錯(cuò)誤率EER(Equal Error Rate)以評(píng)估性能。具體而言,首先,根據(jù)分類器的預(yù)測結(jié)果對(duì)數(shù)據(jù)進(jìn)行排序。然后,通過逐步改變判定異常的閾值(相當(dāng)于“截?cái)帱c(diǎn)”),將樣本分為2部分,可計(jì)算得到一系列真陽率TPR(True Positive Rate)和假陽率FPR(False Positive Rate)。真陽率表示分類器預(yù)測是正樣本且正確的(預(yù)測值等于真實(shí)值)占總正樣本的比率。假陽率表示分類器預(yù)測是正樣本但錯(cuò)誤的(當(dāng)前被錯(cuò)誤分到正樣本中實(shí)際是負(fù)樣本)占總正樣本的比率。
如圖9所示,把得到的一組FPR設(shè)為橫坐標(biāo)的值,TPR設(shè)為縱坐標(biāo)的值,可以繪制出ROC曲線。
ROC曲線下的面積(圖9)的值代表正樣本排在負(fù)樣本之前的概率,取值在0 ~1,值越大表示異常樣本越有可能排在負(fù)樣本之前,即分類性能越好。
等錯(cuò)誤率是當(dāng)分類器的真陽率和假陽率滿足FPR= 1-TPR時(shí),被錯(cuò)分的視頻幀數(shù)量占所有的視頻幀數(shù)量的比例,其數(shù)值越小表明方法的性能越好。具體來講,EER是ROC曲線與ROC空間中對(duì)角線的交點(diǎn),即圖9中虛線與曲線的交點(diǎn)。
Figure 9 Schematic of ROC curve and EER圖9 ROC曲線和EER的示意圖
表1展示了主流方法在UCSD Ped1數(shù)據(jù)集上的實(shí)驗(yàn)效果,并按照實(shí)驗(yàn)設(shè)定的不同將方法分為半監(jiān)督和無監(jiān)督2類。其中,效果最佳的結(jié)果在表中加粗表示。
Table 1 Frame-level and pixel-level EER and AUC evaluation on UCSD Ped1 dataset表1 UCSD Ped1數(shù)據(jù)集上幀層次和像素層次標(biāo)準(zhǔn)的EER和AUC結(jié)果對(duì)比表
表2展示了主流方法在UCSD Ped2數(shù)據(jù)集上的實(shí)驗(yàn)效果,并按照實(shí)驗(yàn)設(shè)定的不同將方法分為半監(jiān)督和無監(jiān)督2類。其中,效果最佳的結(jié)果在表中加粗表示。
Table 2 Frame-level and pixel-level EER and AUC evaluation on UCSD Ped2 dataset表2 UCSD Ped2數(shù)據(jù)集上幀層次和像素層次標(biāo)準(zhǔn)的EER和AUC結(jié)果對(duì)比表
表3展示了主流方法在Avenue數(shù)據(jù)集上的實(shí)驗(yàn)效果,并按照實(shí)驗(yàn)設(shè)定的不同將方法分為半監(jiān)督和無監(jiān)督2類。其中,效果最佳的結(jié)果在表中加粗表示。
Table 3 Frame-level and pixel-level EER and AUC evaluation on avenue dataset表3 Avenue數(shù)據(jù)集上幀層次和像素層次標(biāo)準(zhǔn)的EER和AUC結(jié)果對(duì)比表
表4展示了主流方法在ShanghaiTech數(shù)據(jù)集上的實(shí)驗(yàn)效果,并按照實(shí)驗(yàn)設(shè)定的不同將方法分為半監(jiān)督和弱監(jiān)督2類。其中,效果最佳的結(jié)果在表中加粗表示。由于ShanghaiTech數(shù)據(jù)集比前3個(gè)數(shù)據(jù)集更具有挑戰(zhàn)性,可以看到不同方法的實(shí)驗(yàn)效果在此數(shù)據(jù)集上還存在提升空間。
Table 4 Frame-level AUC evaluation on ShanghaiTech dataset表4 ShanghaiTech數(shù)據(jù)集上幀層次標(biāo)準(zhǔn)的AUC結(jié)果對(duì)比表
本文主要從3個(gè)模塊對(duì)視頻異常檢測進(jìn)行了介紹和分析:視頻事件前景提取、視頻事件表示和視頻事件建模與檢測。同時(shí)介紹了3個(gè)常用的公開數(shù)據(jù)集。隨著深度學(xué)習(xí)的發(fā)展和興起,現(xiàn)有視頻異常檢測技術(shù)越來越貼近于深度學(xué)習(xí),借助于深度神經(jīng)網(wǎng)絡(luò)強(qiáng)大的建模能力,視頻異常檢測取得了突破性的進(jìn)展。然而實(shí)驗(yàn)表明,在許多真實(shí)復(fù)雜的場景下,視頻異常檢測的性能還有待提升,并且現(xiàn)有建模方法更多地采用了基于重構(gòu)的自編器,而許多深度學(xué)習(xí)相關(guān)的成果并沒有遷移到這個(gè)領(lǐng)域。因此,結(jié)合更多前沿的深度學(xué)習(xí)技術(shù)實(shí)現(xiàn)更高效準(zhǔn)確的檢測,是視頻異常檢測領(lǐng)域一個(gè)非常有前景和巨大需求的研究方向。