當前位置:
首頁 > 新聞 > [CVPR 2018論文筆記] 真實監控場景中的異常事件檢測

[CVPR 2018論文筆記] 真實監控場景中的異常事件檢測

雷鋒網 AI 科技評論按:本文為上海交通大學林天威為 AI 科技評論撰寫的獨家稿件,未經雷鋒網許可不得轉載。

安防作為近年最熱門的計算機視覺研究落地方向,與視頻分析研究有著很緊密的關係。在真實的監控視頻中,一個常見的需求就是要自動識別視頻流中的異常事件,也就是異常事件檢測任務(Anomaly detection)。

這個任務有許多的難點,比如:

1.異常事件發生的頻率很低,導致數據的收集和標註比較困難;

2.異常事件的稀少導致訓練中的正樣本遠少於負樣本;

在監控場景中,不管是通常(normaly)還是異常(anomaly)事件都是很多樣且複雜的,即類別內的多樣性很高,variance很嚴重。

最近UCF的CV研究中心就在CVPR18上發表了一篇關於監控視頻異常事件檢測的論文(Real-world Anomaly Detection in Surveillance Videos, arxiv 1801.04264),提出了一種基於深度多實例排序的弱監督演算法框架,同時提出了一個新的大規模異常事件檢測數據集。這篇筆記主要對這篇文章進行介紹,也算是幫助自己理解,若有錯誤煩請指正。

本文提出的異常檢測演算法

很多先前的方法都先學習一個通常的模式,並假定任何違背這個通常模式的 模式應該是異常的。但事實上,一個方法很難也幾乎不可能去定義一個所謂的通常模式,因為通常模式裡面可能包含太多不同的事件和行為了。同樣,也很難去定義異常事件,因為異常事件同樣也可能包含太多類型的情況了。所以,這篇文章主要提出了兩點motivations。

異常事件檢測任務應該要在弱監督框架下進行學習。此處弱監督指在訓練時,只知道一段視頻中有或沒有異常事件,而異常事件的種類以及具體的發生時間是未知的。

異常事件檢測任務應該採取兩階段的框架,即不管異常事件的種類,生成異常事件的proposal,之後再對proposal中包含的異常事件進行分類。這樣有助於提高異常事件檢測的召回率(應該是因為這樣可以找到一些不在現有類別中的異常)。這樣的框架和目標檢測中的RCNN類方法十分相似。這篇文章則主要針對異常proposal階段進行研究。

基於這樣的想法,該文採用了多示例學習(Multiple instance learning, MIL)方法來構建演算法框架,並提出了包含 稀疏和平滑約束的MIL 排序損失來訓練模型。演算法框架如下圖所示,主要使用MIL的思路構建訓練集合,使用C3D+FC 的網路來獲取異常評分,最後採用提出的MIL排序損失來訓練模型。

[CVPR 2018論文筆記] 真實監控場景中的異常事件檢測

多示例學習(Multiple Instance Learning)

首先簡單的介紹一下多示例學習,這是在20世紀90年代在機器學習領域中提出的方法。在MIL中,「包」被定義為多個示例的集合,其中」正包「中至少包含一個正示例,而「負包」中則只有負示例(此處示例的概念與樣本相同,以下不區分)。MIL的目的是得到一個分類器,使得對於待測試的示例,可以得到其正負標籤。可以看出,在異常檢測任務中,弱監督實際上就是MIL的另外一種表達形式,所以MIL的求解演算法很適合用於該弱監督任務中。多示例學習的更多介紹可以參考這篇博客 多示例學習(Multiple Instance Learning)。

深度MIL排序模型

接下來介紹該文提出的演算法。文中將異常檢測定義為一個回歸任務,即異常樣本(anormal)的異常值要高於通常樣本(normal)。直觀的考慮可以將排序損失定義為:

此處Va和Vn分別為異常和通常樣本,f則為模型預測函數。由於在MIL中,並不知道正包中每個樣本的真實標籤,所以採用以下的形式:

此處即指,在訓練中對於正包和負包都只使用分數最大的樣本來訓練。具體而言,正包中分數最大的樣本最可能是正樣本,而負包中分數最大的樣本則被認為是hard negative,即難例。基於此式,為了讓正負樣本之間的距離儘可能遠,作者採用了hinge-loss的形式。

但這樣的loss並沒有考慮視頻的時序結構,所以作者提出了兩點改進的motivation:

1.由於視頻片段是連續的,所以異常的分數也應該是相對平滑的。

2.由於正包中的正樣本(異常事件)比例是很低的,所以正包裡面的分數應該是稀疏的。

基於這兩點motivation,作者在loss function中添加了兩個約束項,分別為時序平滑約束以及稀疏約束。如下所示。

[CVPR 2018論文筆記] 真實監控場景中的異常事件檢測

最後,再添加上模型參數的l2正則,就得到了最後的損失函數。

實現細節

在具體實現中,本文採用了在其他數據集上預訓練好的C3D模型來提取視頻片段的特徵,此處不對C3D模型進行訓練。對提取好的特徵,再使用3層全連接層來獲得最後的預測異常值。以上提出的MIL排序損失也是用來對這幾層FC層訓練的。

在訓練數據處理方面,該文將每個視頻均勻分為32個片段,作為一個包。訓練時,隨機選取30個正包和30個負包作為mini-batch進行訓練。

本文提出的異常檢測數據集

本文的另外一個貢獻是提出了一個新的較大規模的異常事件檢測數據集UCF-Crime,參考下表,該數據集比起之前的數據集的優點主要是兩方面:一是視頻的數量和視頻的總時長要遠遠多於之前的數據集,二是其中包含的異常事件類型比較豐富。

[CVPR 2018論文筆記] 真實監控場景中的異常事件檢測

在數據集構成方面,該數據集共包含13種異常事件。共有1900個視頻,其中異常和通常視頻各佔950個。數據集劃分方面,訓練集包含1610個視頻(800個通常視頻,810個異常視頻),測試集包含290個視頻(150個通常,140個異常視頻)。

數據集網址及該論文項目頁見:Real-world Anomaly Detection in Surveillance Videos

實驗結果方法比較

本文主要以ROC曲線下的AUC來衡量異常檢測演算法的效果,其實驗結果如下圖和下表所示。可以看出,其演算法比起之前的方法還是有很大的提高的。此外,添加訓練中的約束項也帶來了一定的效果提升,不過不是很明顯。

[CVPR 2018論文筆記] 真實監控場景中的異常事件檢測

[CVPR 2018論文筆記] 真實監控場景中的異常事件檢測

下圖則是一些可視化的結果,可以看出在作者挑選的這些例子中,異常檢測的效果還是很不錯的,最右一列則為一些失敗案例。

[CVPR 2018論文筆記] 真實監控場景中的異常事件檢測

虛假預警率分析

在監控任務場景中,一個可靠的系統應該具備較高的召回率和較低的誤報率,作者比較了0.5閾值下的誤報率,也具備不錯的效果。

異常事件分類

該文的方法只是做異常事件proposal,但該文的數據集實際上還能做異常時間分類任務,所以此處作者還用C3D和TCNN兩種行為識別演算法跑了一個baseline,可以看出此處TCNN的效果還是比C3D要好很多。

[CVPR 2018論文筆記] 真實監控場景中的異常事件檢測

小結與討論

這篇文章主要針對異常事件檢測問題提出了一種新的弱監督演算法和一個新的數據集。演算法方面,主要就是將這個問題套用進了MIL的框架。這個數據集的提出應該對這個方向的發展會有比較大的幫助,此前異常檢測一直沒有比較大的數據集。

缺點方面,我認為對於異常檢測這種數據不平衡任務,用PRC曲線會比ROC曲線能更好得起到衡量演算法效果的作用。即應該用Average Precision 來衡量異常檢測效果。另外文中還著重衡量了虛報率,而在真實場景中對於異常事件的召回率要更重要一些,畢竟漏過幾個異常事件比起虛報幾個異常事件帶來的負面影響更大。

總的來說,異常事件檢測作為真實場景中一個非常重要的任務,目前針對性的研究還不是很多。基於這篇文章提出的演算法思路和數據集,後面應該也會有更多的工作跟進吧。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

ofo回應「籌備ICO」 稱這是空穴來風
Facebook、微軟、谷歌三大研究巨頭齊聚首,共同探討人工智慧發展現狀和趨勢

TAG:雷鋒網 |