视频异常检测 综述(二)_视频异常检测综述-程序员宅基地

技术标签: 机器学习  音视频  视频异常检测  深度学习  

视频异常检测 综述(二)


特征提取的常用手段

大体上,视频异常检测方法使用两类表示:手工制作的特征和来自CNN的深度特征。

手工制作的特征包括时空梯度、动态纹理、梯度直方图、流直方图、流场、密集轨迹和前景掩码。

深度特征可以直接从预训练网络中提取,或者在优化与异常检测相关的特定任务时学习,例如使用自动编码器去优化低重构误差。

模型处理的原子单元

算法处理的原子单元包括:图像块、视频块,到单个完整帧、视频片段(完整帧的短序列)

在处理图像或视频块时,算法可以以单个固定大小块、多尺度固定大小块、任意大小区域的块为单位进行操作。

模型建模的常用手段

建模中的常用方法包括:one-class SVM、最近邻(knn)方法、隐马尔可夫模型以及更普遍的概率图形模型。最近,深度学习方法开始使用对抗性训练策略。

一些工作仅关注帧级(时间)定位,这意味着帧级内容会被构建到模型中,但这种情况下模型无法执行适当的空间定位。例如,使用完整帧或视频片段作为其原子处理单元的方法,它们都无法区分异常到底是有人在大使馆大楼外游荡,还是在在大使馆旁边的公园游荡。

其他方法以如下两种方式之一解释异常的空间位置性:(1)根据其在帧中的位置对像素进行评分,(2)根据相邻像素所提供额外的上下文信息以进行评分。

视频异常检测方法的分类

从宏观上看,过去的视频异常检测工作可以分为基于距离、概率和基于重构的方法。这些方法之间并不相互排斥,因为以基于距离的方式运行的方法很容易产生概率解释,分类仅仅是为了方便。

基于距离的视频异常检测方法

基于距离的方法通过使用训练数据创建“正态”模型,并通过测量测试数据与该模型的偏差以确定异常分数。通常,这些模型本身非常简单,但巧妙的特征提取和公式化会带来良好的性能。基于距离的方法可以被视为概率和基于重建的方法的更一般形式。

在过去基于距离的方法中使用了许多不同类型的特征提取方法,以及测量到正常特征距离的许多不同方法。一种常见方法是使用one-class SVM来计算来自正常训练视频的特征向量周围的决策边界。但这种方法的缺点是在给定新的正常训练数据的情况下更新模型是昂贵的,因为SVM学习算法必须在所有旧数据和新数据上重新运行。另一种方法是使用高斯混合来建模法线特征向量,然后使用马氏距离来测量到法线的距离。

传统的特征提取方法不建议继续使用,一方面是由于提取较为困难,另一方面是提取出来的特征精度较低

较新的方法侧重于深度网络学习的特征,这些特征通常具有较高的精度,这些基于深度网络的方法包括学习深度特征的多种方法,以及在不同的正态模型中使用深度特征的各种方法。

下面简单描述2篇2020年的基于距离的视频异常检测方法的论文方法:

第一篇

B. Ramachandra and M. Jones, “Street scene: A new dataset and evaluation protocol for video anomaly detection,” in Proc. IEEE Winter Conf. Appl. Comput. Vis., 2020, pp. 2558–2567
作者在最近发布的数据集Street Scene上提出了两种baseline算法,用于未来工作的比较。他们使用简单的最近邻位置(nearest neighbor location)异常检测方案,使用手工制作的视频特征表示(流场或模糊前景掩码)以及手工制作的距离测量方法(分别为L1或L2归一化的像素级距离)。通过从训练数据构建出简洁的代表性样本模型,大大减少了距离计算的数量。
有趣的是,他们表明,这些简单的方法能够在其他数据集上优于一些先前的最先进方法,这可能表明算法已经产生了特定于某些数据集的偏差。

第二篇

B. Ramachandra, M. Jones, and R. Vatsavai, “Learning a distance function with a siamese network to localize anomalies in videos,” in Proc. IEEE Winter Conf. Appl. Comput. Vis., 2020, pp. 2587–2596.
作者在一个很简单的最邻近位置模式上建模,训练一个孪生神经网络,将原模式中的手工特征提取方式与距离函数替换掉。这个孪生神经网络被训练为判断视频之间是相似的还是不同的,用于判断测试视频是否与其余的训练视频都不相同,以此将其归类为异常。
从数据集的训练数据学习正态模型,使用训练好的模型在测试视频和样本视频进行最邻近评分,并且为每个测试视频分配异常分数。

基于概率的视频异常检测方法

概率方法在一定概率空间中计算模型下的距离。这些方法通常将模型建模到一个概率框架中,如概率图模型(PGMs)或高维概率分布的混合模型。大多数概率方法在深度学习方法浪潮之前出现,并且依赖于时空梯度、光流场等特征,以及STIP特征与传统的马尔可夫随机场和混合高斯模型等。最近的一些方法使用了深度神经网络,也显示出了更高的准确性。

这些方法的一个优点是具有高度原则性,并且能够很好地模拟异常的连续性质,但是它们在测试时通常很慢。

下面简单描述2篇通过深度神经网络实现的基于概率视频异常检测的论文方法:

第一篇

R. Hinami, T. Mei, and S. Satoh, “Joint detection and recounting of abnormal events by learning deep generic knowledge,” in Proc. IEEE Int. Conf. Comput. Vis., 2017, pp. 3639–3647.
这篇论文中,作者提出了一种在检测到异常事件时重新计数的方法,他们首先训练了一个Fast-RCNN模型去在大规模的数据集如COCO、Visual Genome去预测物体、行为、种类等属性。之后对于每一帧,他们通过倒数第二个全连接层去提取每一个感兴趣对象区域(region of interest RoI)的特征,再使用最邻近距离、RBF核的one-class SVM、RBF核核密度估计下的似然来进行异常检测。
重新计算是通过简单的查看对对象、行为、属性类的最大预测来实现的。

第二篇

Y. Feng, Y. Yuan, and X. Lu, “Learning deep event models for crowd anomaly detection,” Neurocomputing, vol. 219, pp. 548–556, Jan. 2017
这篇论文中,作者使用PCANet,通过正常的图像patch的3D梯度来提取深度表征,然后使用 Deep GMMs来对正常模式的生成过程进行建模,使得log likelihood的下限最大化。deep GMM模型可以对测试的数据进行相似度评分生成,这个得分通常被用作异常得分。

基于重构的视频异常检测方法

基于重构的方法是通过从正常视频中学习到的特征来重新表示输入的图像或视频片段。这种方法基于的假设是,与分布内的正常数据相比,使用从正常视频中学习到的特征去重构分布外的输入(如异常输入)在本质上是更困难的,这也证明了使用重构误差来代表异常分数是合理的。几乎所有基于重构的方法都使用了现代的深度学习方法,尤其是大多数基于卷积自编码器(auto-encoders)或生成式对抗网络(GANs)的方法。

通常,基于重构的方法有一个缺点,当使用或添加了新的训练视频后,它们使用的模型(例如,自编码器或GAN)需要重新训练,以适应新的正常训练视频。 许多这些方法不评估异常的空间定位,据推测,这是因为它们的空间定位精度较低。其中使用自编码器模型重构方法的另一个缺点是,帧的重构误差与帧中前景对象的数量成正比,这也是大多数这类方法必须对每个视频进行归一化的后处理步骤的原因。

下面简单描述2篇2020年的基于重构的视频异常检测方法的论文方法:

第一篇

Y. Tang, L. Zhao, S. Zhang, C. Gong, G. Li, and J. Yang, “Integrating prediction and reconstruction for anomaly detection,” Pattern Recognit. Lett., vol. 129, pp. 123–130, Jan. 2020
作者认为,预测与重构可以结合起来,去利用两者的优点、平衡两者的缺点。他们通过构建一个生成器来实现这一目标,这个生成器由两个连续的U-net结构组成,用来处理视频片段,第一个U-net去预测一个过渡时刻的帧,接着第二个U-net通过这个帧去预测未来时刻的帧,通过强度值与梯度值去最小化重构误差。他们还在未来时刻的Ground Truth与预测的未来帧使用对抗性的损失函数来训练。

第二篇

H. Park, J. Noh, and B. Ham, “Learning memory-guided normality for anomaly detection,” in Proc. IEEE/CVF Conf. Comput. Vis. Pattern Recognit., 2020, pp. 14 372–14 381
作者认为,基于CNN的重构方法由于CNN的高表示容量(模型的最大容量)而很难重构异常事件,他们提出使用已经通过训练的、存储了重要的正常模式特征的记忆模块来增强U-net风格的编码器-解码器,即用于未来帧预测、重构的网络模型。这个经过训练的记忆模块使用帧与其重构帧的PSNR,以及编码的内容与其最近的记忆单元的距离来计算异常分数。最后也要对每个视频的异常得分进行归一化处理。

稀疏重构方法

稀疏重构方法是重构方法的一个子集,它对重构施加了额外的约束条件,即重构必须仅使用稀疏特征集来执行。几乎所有稀疏重建方法都优化了某种稀疏组合学习公式。

这类方法通常具有快速(其目标就是稀疏性)和易于更新正态模型的一些有利特性。

这类方法的一个缺点是,它们通常过于依赖去记忆显著的正常特征,这给用于穷举的正常训练集带来了很大负担。也正因于此,这类方法无法很好的去建模异常的本质,即得分较低的异常行为通常不对应与人类直觉中的异常活动。

D. Gong, L. Liu, V. Le, B. Saha, M. R. Mansour, and S. Venkatesh, “Memorizing normality to detect anomaly: Memory-augmented deep autoencoder for unsupervised anomaly detection,” in Proc. IEEE/CVF Int. Conf. Comput. Vis., 2019, pp. 1705–1714
作者提出使用存储模块去扩充3D卷积自动编码器,他们认为这种方法有助于克服现有的一些自编码器方法在测试数据时出现的漏检问题。在bottleneck层,他们加入了存储模块,这个模块使用固定大小的内存,通过基于注意力的编码方式,以及硬阈值的方法来促进对输入的视频片段进行稀疏重构。这种方法最后也要对每个视频的异常得分进行归一化处理,但对空间定位方面的性能不加以考虑。

总结与展望

该领域的研究人员应尽量使用推荐的可靠数据集,新的评估方案,并参与可复用性研究。随着该领域逐渐成熟,产生了在实践中可行的方法,研究人员在提出相应方法时也应该提供使用这些方法的运行对比分析。

对假阳性数据质量的定性评估很重要,尤其对发现建模中的偏差有很大帮助。

对多个数据集进行评估也是必不可少的,例如:一些只在UCSD Ped1、UCSD Ped2或UMN数据集上进行异常评估的工作成果很有可能固有地偏向于这些数据集中的异常,这些数据集主要由运动幅度较大的物体组成。

过去视频异常检测算法的输入主要由原始、固定大小的图像块组成;由于有些异常需要分析时间信息,因此研究人员转向使用视频patch,这也需要更多的计算能力。最近,研究人员开始使用视频的多模态输入,包括原始帧和光流场,现在这种模式已经成为常态模式。尤其现在I3D在视频动作识别领域的流行趋势,GPU计算能力的进步,输入表示的日益复杂的趋势将逆转。

与此同时,建模遵循了一种不同的趋势。最开始时,研究人员使用了非常简单的手工特征,这些特征的分布可以通过简单的假设来进行建模。很快,研究人员通过更复杂的模型、更复杂的假设和许多巧妙的工程设计,取得了更好的结果。

最近,这种趋势发生了逆转,人们更依赖从数据中学习表示来更直接地优化方案和建模方法。预计这种数据主导的趋势将继续下去,特别是当更大、更复杂的数据集变得可用时。

一方面,视频异常检测的研究已经取得了长足的进步,但另一方面,以往的研究也忽视了视频异常检测中一些更具挑战性的问题。在现有的数据集中,徘徊异常还没有被建模来解决。事实上,过去的大多数方法都无法检测到这类异常,因为它们严重依赖于动作线索,而忽略了视频的处理部分。

就异常类型而言,组异常、轨迹异常和时间异常在很大程度上还没有得到解决,因为包含这些异常的baseline数据集还不存在。随着研究内容专注于精度趋于饱和的更小、更不复杂的数据集转移到更大、更复杂、有更多种异常类型的数据集,新的视频表示和新的建模策略会被迫切需要,以在低假阳性率(误报率)下实现高检测率,从而使算法在实际应用中具有实用性。

禁止搬运、转载

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44636382/article/details/126626153

智能推荐

874计算机科学基础综合,2018年四川大学874计算机科学专业基础综合之计算机操作系统考研仿真模拟五套题...-程序员宅基地

文章浏览阅读1.1k次。一、选择题1. 串行接口是指( )。A. 接口与系统总线之间串行传送,接口与I/0设备之间串行传送B. 接口与系统总线之间串行传送,接口与1/0设备之间并行传送C. 接口与系统总线之间并行传送,接口与I/0设备之间串行传送D. 接口与系统总线之间并行传送,接口与I/0设备之间并行传送【答案】C2. 最容易造成很多小碎片的可变分区分配算法是( )。A. 首次适应算法B. 最佳适应算法..._874 计算机科学专业基础综合题型

XShell连接失败:Could not connect to '192.168.191.128' (port 22): Connection failed._could not connect to '192.168.17.128' (port 22): c-程序员宅基地

文章浏览阅读9.7k次,点赞5次,收藏15次。连接xshell失败,报错如下图,怎么解决呢。1、通过ps -e|grep ssh命令判断是否安装ssh服务2、如果只有客户端安装了,服务器没有安装,则需要安装ssh服务器,命令:apt-get install openssh-server3、安装成功之后,启动ssh服务,命令:/etc/init.d/ssh start4、通过ps -e|grep ssh命令再次判断是否正确启动..._could not connect to '192.168.17.128' (port 22): connection failed.

杰理之KeyPage【篇】_杰理 空白芯片 烧入key文件-程序员宅基地

文章浏览阅读209次。00000000_杰理 空白芯片 烧入key文件

一文读懂ChatGPT,满足你对chatGPT的好奇心_引发对chatgpt兴趣的表述-程序员宅基地

文章浏览阅读475次。2023年初,“ChatGPT”一词在社交媒体上引起了热议,人们纷纷探讨它的本质和对社会的影响。就连央视新闻也对此进行了报道。作为新传专业的前沿人士,我们当然不能忽视这一热点。本文将全面解析ChatGPT,打开“技术黑箱”,探讨它对新闻与传播领域的影响。_引发对chatgpt兴趣的表述

中文字符频率统计python_用Python数据分析方法进行汉字声调频率统计分析-程序员宅基地

文章浏览阅读259次。用Python数据分析方法进行汉字声调频率统计分析木合塔尔·沙地克;布合力齐姑丽·瓦斯力【期刊名称】《电脑知识与技术》【年(卷),期】2017(013)035【摘要】该文首先用Python程序,自动获取基本汉字字符集中的所有汉字,然后用汉字拼音转换工具pypinyin把所有汉字转换成拼音,最后根据所有汉字的拼音声调,统计并可视化拼音声调的占比.【总页数】2页(13-14)【关键词】数据分析;数据可..._汉字声调频率统计

linux输出信息调试信息重定向-程序员宅基地

文章浏览阅读64次。最近在做一个android系统移植的项目,所使用的开发板com1是调试串口,就是说会有uboot和kernel的调试信息打印在com1上(ttySAC0)。因为后期要使用ttySAC0作为上层应用通信串口,所以要把所有的调试信息都给去掉。参考网上的几篇文章,自己做了如下修改,终于把调试信息重定向到ttySAC1上了,在这做下记录。参考文章有:http://blog.csdn.net/longt..._嵌入式rootfs 输出重定向到/dev/console

随便推点

uniapp 引入iconfont图标库彩色symbol教程_uniapp symbol图标-程序员宅基地

文章浏览阅读1.2k次,点赞4次,收藏12次。1,先去iconfont登录,然后选择图标加入购物车 2,点击又上角车车添加进入项目我的项目中就会出现选择的图标 3,点击下载至本地,然后解压文件夹,然后切换到uniapp打开终端运行注:要保证自己电脑有安装node(没有安装node可以去官网下载Node.js 中文网)npm i -g iconfont-tools(mac用户失败的话在前面加个sudo,password就是自己的开机密码吧)4,终端切换到上面解压的文件夹里面,运行iconfont-tools 这些可以默认也可以自己命名(我是自己命名的_uniapp symbol图标

C、C++ 对于char*和char[]的理解_c++ char*-程序员宅基地

文章浏览阅读1.2w次,点赞25次,收藏192次。char*和char[]都是指针,指向第一个字符所在的地址,但char*是常量的指针,char[]是指针的常量_c++ char*

Sublime Text2 使用教程-程序员宅基地

文章浏览阅读930次。代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大、灵活的编辑器,相信你和我一样,都不会例外。我用过的编辑器不少,真不少~ 但却没有哪款让我特别心仪的,直到我遇到了 Sublime Text 2 !如果说“神器”是我能给予一款软件最高的评价,那么我很乐意为它封上这么一个称号。它小巧绿色且速度非

对10个整数进行按照从小到大的顺序排序用选择法和冒泡排序_对十个数进行大小排序java-程序员宅基地

文章浏览阅读4.1k次。一、选择法这是每一个数出来跟后面所有的进行比较。2.冒泡排序法,是两个相邻的进行对比。_对十个数进行大小排序java

物联网开发笔记——使用网络调试助手连接阿里云物联网平台(基于MQTT协议)_网络调试助手连接阿里云连不上-程序员宅基地

文章浏览阅读2.9k次。物联网开发笔记——使用网络调试助手连接阿里云物联网平台(基于MQTT协议)其实作者本意是使用4G模块来实现与阿里云物联网平台的连接过程,但是由于自己用的4G模块自身的限制,使得阿里云连接总是无法建立,已经联系客服返厂检修了,于是我在此使用网络调试助手来演示如何与阿里云物联网平台建立连接。一.准备工作1.MQTT协议说明文档(3.1.1版本)2.网络调试助手(可使用域名与服务器建立连接)PS:与阿里云建立连解释,最好使用域名来完成连接过程,而不是使用IP号。这里我跟阿里云的售后工程师咨询过,表示对应_网络调试助手连接阿里云连不上

<<<零基础C++速成>>>_无c语言基础c++期末速成-程序员宅基地

文章浏览阅读544次,点赞5次,收藏6次。运算符与表达式任何高级程序设计语言中,表达式都是最基本的组成部分,可以说C++中的大部分语句都是由表达式构成的。_无c语言基础c++期末速成