readnetfromtensorflow调用ssd模型发生异常_【CVPR 2019】物体为中心的自编码器与伪异常的视频异常检测...

85f6eea04db36944c3157de3dc3457cb.gif

论文题目:

Object-centric Auto-encoders and Dummy Anomalies for Abnormal Event Detection in Video

论文地址:

https://arxiv.org/pdf/1812.04960.pdf

论文代码:

https://github.com/fjchange/object_centric_VAD

36e1914a242c3671addc66804adab85d.png

Abstract

视频中的异常事件检测是一个具有挑战性的视觉问题。由于训练期间缺乏异常数据,大多数现有方法将异常事件检测公式化为异常检测任务。由于缺乏有关异常事件的先验信息,因此这些设备无法完全区分正常事件和异常事件。在这项工作中,我们将异常事件检测形式化为一个一休止的二元分类问题。我们的贡献是双重的。首先,我们引入了一个基于对象为中心的卷积自动编码器的无监督特征学习框架来对运动和运动进行编码其次,我们提出了一种基于训练样本聚类为正态性聚类的监督分类方法。然后,使用一个与休息之间的异常事件分类器将每个正常聚类与休息区分开。为了训练分类器,其他群集充当伪异常。在推论过程中,如果一个静态分类器分配的最高分类得分为负,则将对象标记为异常。在四个基准上进行了全面的实验:Avenue,ShanghaiTech,UCSD和UMN。我们的方法在所有四个数据集上均提供了优异的结果。与最新方法相比,在大规模的ShanghaiTech数据集上,我们的方法在帧级AUC方面的绝对增益为8.4%。

1. Introduction

一直以来,深度学习的视频异常检测大多局限于做帧级别的模型。但是如果仔细想想,在当前所有的数据集下,异常都是前景产生的,而前景是稀疏可分的,那么基于前景对象进行异常检测应当能起到一定的作用。

文中作者认为,可以利用分类的方法用于异常检测,构造一种类似监督的方法应该能够提高模型的表现能力。所以借鉴了图片无监督分类,利用聚类产生伪类标,以伪类标进行类似有监督的训练方法。

c5a8bdd003b6f8c5d0aa88ac4813c4d8.png

模型整体框架如上图所示,利用SSD(single shot detection)逐帧检测前景物体。利用检测的boundary box 截t,t-3,t+3的帧中的该对象,t只取灰度图,然后对于 t-3 与 t+3 时间下进行计算与 t 梯度变化,然后这三个图像分别进行AE获取隐特征,然后对三个特征concat形成视频帧t的特征向量。获取特征向量后进行k-mean聚类,能够获得K个聚类,产生K个1-vs-rest的二分类器,最大分类分数即为异常分值,以此发现异常。

Pineline 可以概括如下:

  • object-detection

  • object based feature extraction

  • K-Mean cluster

  • Train 1-vs-rest SVM

  • Inference -> Anomaly Score

2. Model Design

2.1 SSD

选择SSD,因其快速且准确,能够有达到13fps,由于FPN能够检测到小物体。但我对于采用SSD这种有监督的模型进行object proposal 持保留意见,这是否就是暗含了异常前景物体就是已知类的假设呢?(如果采用结合运动与纹理的物体提出是否会更合理?当然可能效果上比不上SSD。)

2.2 AEs

模型里训练了3个 AutoEncoder(其实第一个和第三个保留一个就行了吧,当然分开能够相对串行要快一些),通过 逐像素的MSE 的重构 loss进行自监督的特征提取。大概是为了做到实时的效果,AE的结构也很简单,encode 3个卷积层,decode也是,尽力去减少计算时间。另外采用了灰度图而不是RGB,采用gradient而不是optical flow,都是为了减少计算时间,同时对于异常检测而言,色彩并不是很重要,光流计算麻烦,而梯度变化能够表示一定程度的运动,更重要的是在运动幅度不大的时候,可以剔除背景。

2.3 1-vs-rest SVM

采用了K个1-v-rest 的二分类SVM,对于每一个cluster来说,其他cluster就是伪异常,那么对于每一个聚类可以训练一个二分类器,将自身与其他聚类分开。经过训练之后,就可以得到的决策边界,负样本会比真正的异常样本要离中心更近。

e368f74193092aa3c5dc529f3ad48c76.png

7afa12ce4587590f2499fa66ce952ba0.png

s(x)就被认为是异常分数。

2.4 Details

  1. 对于两个物体bbox重叠的情况,取交集,异常分值给交集。

  2. 对于一帧内有多个异常物体,异常分值取最高的物体的。

  3. 对于输出的分数进行了时序高斯平滑。(这个能够去掉过多的分数波动,会一定程度上提高异常初期和后期的检测,但是这会导致模型比较时的不公平)

3. Experiments

5650863fa62640a946f76dfcddcf2bb7.png

c53712d23d0a65238f75e2067ca9d680.png

本文最能拿出来说的,就是这个AUC比较,在Avenue和ShanghaiTech上都刷出了新高。

对此,我认为的是,Avenue数据集是平视拍摄的,存在着前景物体的尺度变化,而ShanghaiTech是多场景的数据集。尺度变化和跨场景对于传统帧级别的算法都是困难的,但是对于物体级别的方法而言,这两个问题已经影响不大,采用固定的物体尺寸就无视了尺寸变化问题,截取物体就剔除了绝大部分背景,同时本文使用了gradient作为运动特征,进一步削减了背景的影响。

ff257d8570ba81effa0e6786698ae58a.png

观察异常分值,峰谷明显,一定程度上能够直接采用时序的异常检测或者简单给定阈值检出异常。

6d55bf5c0e36e60f8d7e86131f6948fd.png

在消融验证中,我们可以看到通过K个的1-vs-rest的SVM能够明显提高异常的检测能力.

4. Discussion

1、这篇文章是当前基于局部的异常检测的STOA,把异常检测与无监督图片分类联系在了一起大幅度提高了模型的表现能力,但是也好像同时宣布了这些数据集要到头了。

2、还是需要延迟3帧才能检测异常

3、忽略了物体的位置/场景,忽略了全局信息,忽略了物体间的关系。

申明:论文原文来源网络,由《计算机视觉社区》公众号整理分享大家,仅供参考学习使用,不得用于商用,引用或转载请注明出处!如有侵权请联系删除!3d0e702fa8f6b714a6375a8d2d7f547d.png

点一下  在看  会更好看哦

c9ba522c991e065295eef7008217dcfb.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值