論文發表年限:CVPR,2020
作者:Hyunjong Park、Jongyoun Noh、Bumsub Ham
論文下載下傳位址:Learning Memory-guided Normality for Anomaly Detection
github位址:https://github.com/cvlab-yonsei/MNAD
摘要:異常檢測、無監督
Motivation
現有的方法沒有考慮到正常行為(normal)的多樣性。同時強大的CNN網絡能夠重構異常行為(abnormal),導緻不能檢測出異常行為。
Contribution
- 引入一個存儲子產品(memory module)來記錄正常資料的模式。
- 提出了Feature compactness loss和Feature separateness loss兩個損失函數來确定記憶體項的多樣性和判别能力。
- 模型的效果在相關資料集上達到了很好的效果。
模型介紹(MNAD)
該模型的結構如下所示:
從圖中可以看出,該模型由Encoder、Decoder和一個Memory Module構成。
關于Encoder和Decoder子產品,文中選擇U-Net模型,并在其基礎上進行修改,具體修改參考原文。Encoder子產品輸入為視訊幀,輸出為H x W x C的query map,其中包含H x W個query,每個query的大小為1 x 1 x C。
關于Memory module子產品,該子產品包含M個項(item),用來記錄正常資料的原型模式(prototypical patterns),這M個項可以了解為概括正常行為的特征(個人了解)。該子產品通過read和update來更新這些M個項。其read和update子產品的結構如下圖所示。
在Read階段,将每個query和M個item計算其餘弦相似度,得到一個M x K大小的二維相關圖,然後在垂直方向上應用softmax函數,通過以下公式獲得比對機率 w t k , m w_{t}^{k,m} wtk,m。
通過計算比對機率 w t k , m w_{t}^{k,m} wtk,m和M個item項來擷取特征p_{t}^{k},如下。
在update階段,主要是更新memory中的M個item。對于每個query選擇比對機率最大一個項進行更新。與read階段相似,通過相關操作計算出 v t k , m v_{t}^{k,m} vtk,m,并通過公式5出 v t ′ k , m v_{t}^{'k,m} vt′k,m。最後由公式7計算出權重 W i j W_{ij} Wij,并更新 p m p_{m} pm。
文中說,在訓練和測試階段都可以更新memory item,但是會使用權重分數來預防異常幀去更新item。
關于training loss,由Reconstruction loss、Feature compactness loss以及Feature separateness loss構成。其公式如下所示。
其中,Reconstruction loss為計算解碼器重構的視訊幀與執行個體之間的損失。Feature compactness loss是為了鼓勵查詢memory中最相似的item,進而減少相同正常行為類的差異。Feature separateness loss是為了将相似的query配置設定到相同的item中,以減少item的數量和大小而設計的損失函數。
關于異常分數(Abnormality score),被定義為如下:
公式中的P、g、D函數公式參考原文。
效果
在Ped2、CUHK以及ShanghaiTech資料集上的效果如下:
消融實驗結果如下:
該文為部落客自己的思考與了解,如有錯誤還請指出。