《监控视频异常检测: 综述》王志国, 章毓晋笔记

害,最近做了挺多机器学习的东西,但是那些不是弯路,我估计之后还是要学习机器学习的相关内容。
今天是周四(2020年11月12日),但是由于网络老师有事,所以没有上网络课,于是就用这个空闲的时间看了一篇综述。
注:‘【】’这个括号内容表示我自己的思考,或者是画外音。

参考资料

1.【深度学习】数据降维方法总结

正文

《监控视频异常检测: 综述》王志国, 章毓晋 (清华大学 电子工程系,图像工程实验室,北京 100084)
《监控视频异常检测: 综述》王志国, 章毓晋笔记_第1张图片

下面将本次学习的内容进行整理,以供以后复习。

1.异常检测的任务定义

异常检测的任务是用一个仅包含正常样本的训练集 X = x 1 , x 2 , . . . . , x n X={x_1,x_2,....,x_n} X=x1,x2,....,xn,训练一个正常的模型,然后将测试集中不符合正常模型的样本判断为异常。【当前的猜测,也就是将视频划分为帧,然后对每一帧提取特征,根据已有的标签,学习出一套模型。然后再将测试帧进行测试根据分值,判断是否异常】

2.监控视频异常检测所面临的挑战

挑战,就是方向。监控视频异常检测主要面临着以下问题:

  1. 异常事件定义的模糊性:正常样本和异常事件并没有明确的划分边界。【这样的话,提取关键特征就比较困难,很难找到高效划分的特征。】
  2. 异常事件的定义有场景依赖性:【就是说,在考虑人物动作的同时,也要考虑任务所处的场景,不过由于监控视频相机位置是固定的,可以根据相机的编号,设置其所在场景才的异常约束。】
  3. 异常事件的稀少性,多样性,和不可穷举性:【这个很容易理解,异常时间之所以称其为异常,肯定是因为它出现的少啊,因此,在上面的任务中,训练的时候,只用正确的样本进行训练。但是这样会暴露一个问题,如果有一个系统没有见过的正常事件,如何判断,是否判断为异常,比如我在路边跳街舞,系统是否会认为 跌倒呢?】
  4. 训练数据包含噪声:【比如天气问题:雨雪雾,沙尘,逆光。相机硬件:镜头的损坏,抖动,传输过程中的干扰】
  5. 由于数据的隐私性,目前可以公开的数据集很少,目前公开的数据集比较少。

3. 目前,监控视频异常检测领域主要有以下综述

1.《[2012 IEEE Trans. Cybernetics ] Video-based abnormal human behavior recognition:Areview 》
介绍了针对人类行为的异常检测算法,覆盖了2011年以前的相关算法,将算法划分为聚类法、动态Bayes法和主题模型法3类。
2. 《[2015 TCSVT] Crowded Scene Analysis-A Survey》
综述了2013年以前的视频异常检测算法,将算法粗分为基于视觉的算法和基于物理模型的算法。
3. 就是我们现在看的这一篇。
【还有更多的细节,以后再补充,否则是一个无底洞】

4. 算法的步骤和发展:

异常检测的过程可分为3个步骤:特征提取,模型训练,异常判断。【和机器学习的步骤也差不多】

4.1按照算法的发展顺序,可以将算法分为三大类:

  1. 传统的机器学习的方法(traditional machine learning ,T)
    使用手工特征构建特征空间,然后用传统的机器学习方法检测异常。
  2. 传统机器学习与深度学习混合的方法(hybrid[混合的],H)
    使用深度特征代替手工特征构建特征空间。
  3. 深度学习的方法(deep learning )
    使用端到端的神经网络模型检测异常。

4.2 按照算法的输入类型,可以将算法分为四大类:

  1. 点模型(point model ,P)
    点模型的基本输入单元是单个时空块.
    -【问题来了,怎么理解 单个时空块? 百度了下,并没有结果,我猜测应该就是一个帧序列,比如2秒钟的视频,但是不懂知道对不对。】
    -【13日补充,和你理解的差不多,不过你只说了时间块并并没有说空间块,可以将视频页面切割为不同区域,然后取这个区域的几帧,作为一个时空块 (既有时间,又有空间)】
  2. 序列模型(sequence model ,S)
    序列模型的基本输入单元是一个连续的时空块序列.【根据上面的理解,序列模型就是多个点模型的集合】
  3. 图模型(graph model, G)
    图模型的基本输入是一组相互关联的时空块 【问题又来了 ,什么叫相互关联的时空块?】
  4. 复合模型(composite model ,C)
    复合模型是以上 3 种模型的复合。

4.3 根据算法在异常判断阶段的判断准则,将每类模型的算法进一步细分

点模型:聚类判别,并发判别,重构判别,联合判别,与其他判别。
序列模型:生成概率判别,生成概率判别
图模型:图推断判别,图结构判别
此外在不同的发展阶段,也可以表现出不同的特性,比如在传统的机器学习算法阶段的点模型中,并没有使用重构方法【什么,为什么没有使用? 我以后在补充。】

  1. 点模型
    聚类判别:算法根据特征空间的分布判断异常,将远离聚类中心的点、属于小聚类的点或分布概率密度低的点判断为异常.【就和我几天前做的dbscan聚类似的模型会选择出噪声点,将其作为异常事件】
    共发判别:.算法根据测试样本与正常样本共同出现的概率(共发概率)判断异常,将共发概率低的样本判断为异常.该判别主要在传统机器学习方法阶段使用【并发概率,我现在的理解是,比如:训练集中人在走路,是正常的,那么测试集中走路的样本也是正常的,所谓的并发,是指同时发生】
    重构判别:算法用低维子空间/流形拟合正常样本特征空间的分布,通过将测试样本向正常样本子空间/流形投影计算重构误差,进而根据重构误差的大小判断测试样本是否服从正常样本的分布并判断异常。该判别在各个发展阶段均有应用。
    【这句话,直接看困了,这也太多术语了,开始逐个击破。简而言之,就是将数据降维,然后学习降维后的数据。为什么要进行降维呢?在原始的高维空间中,包含有冗余信息以及噪音信息,在实际应用例如图像识别中造成了误差,降低了准确率;而通过降维,我们希望减少冗余信息所造成的误差,提高识别(或其他应用)的精度。常用的降维模型,如下所示。】

    《监控视频异常检测: 综述》王志国, 章毓晋笔记_第2张图片 联合判别 :以上三种判别联合使用。
    其他判别:其他判别主要包括假设检验判别与语义分析判别等,该判别主要出现在传统的机器学习和混合方法中,【也就是说现在的深度学习中不用了】

  2. 序列模型。序列模型中主要有两种异常的判断准则:生成概率判别和预测概率判别。
    生成概率判别:算法根据输入序列生成一个概率值,描述该输入序列服从正常序列转移规律的程度。算法将生成概率值低的样本判断为异常。该判别主要在传统机器学习方法中使用。【根据算法生成一个概率值,然后概率值低的判断为异常样本】
    预测误差判别:模型根据输入序列预测序列在下一时刻的特征,根据预测误差判断该输入序列服从正常转移规律的程度。算法将预测误差大的样本判断为异常。该判别主要在深度学习方法阶段使用。【因为之前,听师姐讲过,所以比较容易理解:根据现有的帧,预测下一帧是什么,比如一个走路的视频前几帧是抬腿,那么下一帧只可能是继续抬腿或者是放下腿。但是如果是躺地上,和预测差距很大,那肯定就是发生意外了,也就是异常事件】

  3. 图模型。图模型有两种异常判断方式;图推断判别和图结构判别。【这两个判别方式描述的比较抽象,反正我没有搞懂,以后填坑】
    图推断判别:依据图上的特征点之间的断关系判断异常,将不符合正常推断关系的特征点判断为异常。
    图结构判别:根据图的拓扑结构检测异常,将不常见的拓扑结构判断为异常。

    • 对于这两种方式的理解。

4.4 传统的机器学习方法

【这也是原始的视频异常检测,也是以后写论文的源头,所以这些传统的方式十分重要,是我们推成出新的源头】

4.4.1手工特征提取方式

在传统机器学习方法阶段,常用的手工特征提取方式有:方向梯度直方图(histogram of oriented gradients,HOG)光流直方图(histogram of optical flow ,HOF)3D梯度、局部二值模式(local binary pattern,LBP)

点模型

判别方式
  1. 聚类判别法:首先将正常的样本聚类,然后测试集中远离聚类中心的点,属于小聚类的点判断为异常。常用的聚类方法有:k-means,k-medoids,模糊c-means,Gauss 混合模型(Gaussian mixed model,GMM)。常用的判断异常的方法有:测试样本到聚类中心的距离,一类支持向量机(one class support vector machine ,OC-SVM),k-最近邻(k-nearest neighbors,KNN)与核密度估计(kernel density estimation ,KDE)。【这些都是传统的机器学习算法,以后还是要把这些算法的流程过一遍】
  2. 并发判别。
    并发判别算法主要是基于主题模型检测异常。算法首先将正常样本划分为若干主题,然后将不属于任何正常主题判断为异常。常用的主题模型算法是隐Dirichlet分配(latent Dirichler allocation ,LDA)与层次Dirichlet 过程(hierarchical Dirichler processes,HDP)。HDP常与其它模型复合使用。
  3. 重构判别
    在传统机器学习方法中,基于重构判别的算法主要有两种:主成分分析法(principal components analysis,PCA)和SC法。他们的思路是:正常样本存在公共因子,使得正常的样本可以使用这些公共因子重构,而异常样本则不能。 从样本空间的角度看,他们都是由低维子空间来拟合正常样本在特征空间的分布。不同的是PCA是用一个单一的低维子空间描述和正常样本的分布,
    【 ————————2020 年 11月 13 日——————————— 】
    而SC法通过一个过完备字典与稀疏约束,用多个低维子空间的并集描述正常样本的分布。
    【问题来了? 什么叫过完备字典,我都怀疑作者打错字了,原来英文原文是(Overcomplete dictionary),还有什么叫稀疏约束?】

【在对图像进行表示时,最初完备正交基由于表示简单唯一而被广泛使用,但是正交基的要求一般比较严格,所以导致它对图像的表示不够稀疏。基于过完备字典下的信号稀疏分解的思想:
相对完备正交基而言,过完备基的基底一般是冗余的,也就是基元素的个数比维数要大图像在过完备基下的表示比完备正交基更加稀疏,图像中的干净部分可以利用少量的非零稀疏表示系数进行线性表示,而噪声一般认为不具有稀疏性,因此可以根据它们之间的区别实现去除噪声的目的。
作者:卡布奇诺耳思维奇
链接:https://www.zhihu.com/question/22205661/answer/152655757 来源:知乎。】
《监控视频异常检测: 综述》王志国, 章毓晋笔记_第3张图片

  • 稀疏约束是什么?应该是对过完备矩阵的约束?

与PCA法相比。SC法获得了更多的关注,由以下几篇论文进行了SC算法的相关优化:

  1. 通过对编码系数的非负约束提高了算法对噪声的鲁棒性。

ZHUXB,LIUJ,WANGJQ,etal.Sparse representation for robust abnormality
detectionin crowded scenes [J].-Pattern Recognition

  1. 对 SC 添加了时域平滑性约束,令时域近邻的时空块具有相似的编码系数,使SC法结合更多的时域信息。

LUO W X,LIU W,GAOS H.Arevisit of sparse coding based anomaly detection
instacked PNN framework [C] -Proceedings of 2017 IEEE International Conference on Computer Vision.

ZHAOB,LIFF,XING EP.Online detection of
unusual events in videos via dynamic sparse coding[C] -Proceedings of
CVPR2011

  1. 通过构建时空近邻特征的关联矩阵,使 SC 法结合更多的时空信息。

YUAN Y,FENG Y C,LU X Q.Structured dictionary learning for abnormal
event detection in crowded scenes[J].-PatternRecognition

  1. 根据字典中单词参与正常样本重构的频次对单词进行加权。

CONGY,YUANJS,LIUJ.Abnormal event detection in crowded scenes using
sparse representation [J].- Pattern Recognition,

CONG Y,YUANJS,LIUJ.Sparse reconstruction cost for abnormal event
detection [C] -Proceedings of CVPR

  1. 通过将字典划分为多个子字典来提升算法的运算速度。

LU CW,SHIJP,JIAJY.Abnormal event detectionat 150 FPS in MATLAB [C]
-Proceedings of 2013 IEEE International Conference on Computer Vision.

REN H M,LIU W F,OLSEN SI,etal.Unsupervised behavior G specific
dictionary learning for abnormal event detection[C]- Proceedings of
2015 British Machine Vision Conference.

其他判别
使用假设检测的策略检测异常,不需要在正常样本上训练,而直接在测试集上训练并检测异常。该算法首先打乱视频帧的顺序,并假设打乱后的帧序列的前半段视频帧是正常帧,后半段视频帧是异常帧,然后在此基础上训练一个逻辑回归分类器,为每一个视频帧计算一个异常分值。通过多次打乱,多次训练LR分类器,多次为视频打分,每一帧都可以得到多个异常分值,最后取同一视频帧的多个异常分值的均值作为该帧的最终异常分值。
【打乱视频帧顺序,假设前半部分为正常帧,后半部分为异常帧,可是测试集怎么选择呢?我的意思是说,你把视频帧前半部分为正常,后半部分为异常,然后进行训练,然后训练完成过后,用什么测试呢?还是说,选取一部分训练,用另一部分进行测试打分。就跟交叉验证似的?】

序列模型

在传统机器学习方法中,用于异常检测的序列模型主要是MDT与HMM ,他们的判别都是生成概率判别。主要相关文献和算法如下:
MDT算法,由K个线性动态系统(linear dynamic system,LDS)组成,用于捕捉正常样本中的K种特征转移规律,当测试样本不符合其中任何一个特征转移规律时,将其判断为异常。
【MDT算法的全称是什么呢?百度还没有查到】
【线性动态系统,我现在的理解是:从一个状态转移到另一个状态,迈左腿->迈右腿 ,如果不符合这个规律,就是异常事件。】
HMM算法(隐马尔可夫模型(Hidden Markov Model,HMM))但是很少有文章用原生的HMM,
主要是通过,无限HMM(infinite HMM,IHMM),结合Maekov链Monte Carlo (Markov chain Monte Carlo,MCMC)采样或者变分Bayes 公式来检测异常。
【这里面有好多复杂的东西啊,什么无限HMM,什么变分Bayes公式 …晕 】
【无限HMM 百度没有发现,终于知道什么叫做高深学问了,哈哈】
【变分Bayes公式】
或者是通过将多个时空近邻的 HMM 进行耦合,构建耦合HMM(coupled HMM,CHMM),使算法结合了更多的时空关联信息。
或者将多个 HMM 集成检测异常。

图模型

图模型利用时空块之间的关联关系检测异常。
图推断判别:图推断判别算法主要利用Markov 随机场(Markovr random field,MRF)检测异常。如提取视频时空块的混合概率 PCA (mixture of probabilistic PCA,MPPCA)特征构建MRF模型,然后基于节点与节点之间的推断关系检测异常。

【马尔科夫网是使用无向图描述的图模型,是刻画X上联合分布的一种方法,表示一个分解方式,也表示一组条件独立关系。马尔科夫随机场( Markov
random field , MRF),也被称为马尔科夫网络( Markov network )或者无向图模型( undirected
graphical model )( Kindermann and Snell, 1980
),包含一组结点,每个结点都对应着一个变量或一组变量。链接是无向的,即不含有箭头。与贝叶斯网一样,马尔可夫网可以视为定义了一系列由图结构确定的独立性假设。】

图结构判别:图结构判别将图的拓扑结构作为一种新的特征检测异常。

将时空近邻的特征点相连接构建图结构,然后将图的拓扑结构映射到低维流形中,在低维流形中检测异常。【如何理解时空近邻的特征点?是不是相近的几帧或者是相同的视频画面?】

将时空近邻的兴趣点构建图结构,以图的拓扑结构作为新的特征,通过构建图结构的相似性算子实现图结构的聚类从而检测异常。
【时空近邻的兴趣点】
【相似性算子】

复合模型

在传统机器学习算法中的符合模型主要是将点模型与序列模型结合,使算法既能检测样本的分布异常,又能检测样本的转移规律异常。
【写到这里,突然感觉几种模型的关系】

点模型:检测样本的异常分布
序列模型:检测样本间的转移规律
图模型 : 检测样本间的相互关系

4.5混合方法

深度特征比手工特征有更强的描述能力,在混合方法阶段,算法使用深度特征代替手工特征,然后用传统机器学习方法检测异常。在该发展阶段,得到发展的模型主要是点模型,应用的判别方法主要是聚类判别,重构判别和其他判别。
聚类判别。在使用聚类判别中,常用的提取深度特征的神经网路主要有:自编码器(auto encoder,AE),赢者通吃自编码器(winner-take-all AE,WTA-AE),堆叠降噪自编码器(stacked denoising AE,SDAE),目标检测神经网络以及其他预训练的卷积神经网络(convolutional neural network,CNN),在异常判断阶段常用的方法有:Gauss 分类器,KDE,OC-SVM,最近邻(nearest neighbor ,1-NN)等。
【自编码器AE】
【赢者通吃自编码器WTA-AE】
【堆叠降噪自编码器SDAE】
【高斯分类器】
【KDE】
【OC-SVM】
如:将深度特征与Gauss 分类器结合成一个弱分类器,然后通过将多个弱分类器串联来增强算法的异常检测能力。
将 表观信息与运动信息分离,分别使用SDAE提取特征,然后用OC-SVM检测异常,最后综合考虑多个通道的异常判断结果判断异常。
将 用预训练的多任务目标检测神经网络提取特征,然后用 OC-SVM 检测异常。在检测到异常后,算法根据特征中隐含的语义信息生成对异常的描述。
重构判别
混合方法中的重构算法,主要利用SC法。
如:使用变分AE(variational auto encoder,VAE)提取特征,然后用SC法检测异常。
将3D卷积(3D convolutional,C3D)网络与SC构成一个循环框架,通过不断地循环优化,使C3D网络提取更适合于SC异常检测的特征,然后结合近邻传播聚类(affinity propagation clustering ,AP)算法构建字典,最后基于SC的重构误差判断异常。
【变分AE】
【3D卷积】
【紧邻传播聚类】
其他判别
混合方法的其他判别主要有两种:假设检验策略和语义分析策略?
如:用假设检验策略检测异常,对应的算法被称为揭露法。算法令S1,S2代表两个相邻的时域滑动窗,并假设S1内的视频帧为正常,S2内的视频帧为异常,通过重复迭代以下过程获得分类准确率曲线:
(1)训练二分类器,计算分类准确率;
(2)去除可分性最好的特征分量。如果随着可分性最好的特征分量的去除,二者的分类准确率一直维持着较高水平,说明二者的可分性高,证明假设成立。
或者:基于对目标状态的分析检测异常,主要应用于高速公路的监控场景。算法首先用预训练的目标检测神经网络检测道路上的车辆目标,然后根据目标的动静状态及运动轨迹分析 目标是否存在特定类型的异常,如车辆停止,加速等。

4.6深度学习方法

———————2020年 11月14 日————————————

  1. 聚类判别
    深度学习方法中的聚类算法主要有:自组织映射(self-organizing map ,SOM),生长的神经气(growing neural gas ,GNG),Gauss 混合全卷积VAE(Gaussian mixture fully convolutional VAE,GMFC-VAE),一类神经网络(one -class neural network,OC-NN)。其中:SOM,GNG 通过训练将不同样本映射到不同的聚类实现端到端的聚类;GMFC-VAE、 通过变分的方式,用GMM拟合特征空间的分布。OC-NN是一种针对异常检测的神经网络,该算法将 正常样本映射到一个超球体内,异常样本映射到超球体外,通过不断收缩超球体来增强网络的异常能力。

【自组织映射 self-organizing map ,SOM】
自组织神经网络SOM是基于无监督学习方法的神经网络的一种重要类型。自组织映射网络理论最早是由芬兰赫尔辛基理工大学Kohen于1981年提出的。此后,伴随着神经网络在20世纪80年代中后期的迅速发展,自组织映射理论及其应用也有了长足的进步。
自组织映射是一种通过学习输入空间中的数据,生成一个低维映射,从某种程度上也可看成一种降维算法。它运用竞争学习策略,依靠神经元之间互相竞争逐步优化网络,且使用近邻关系函数来维持输入空间的拓扑结构。

【生长的神经气 GNG】这个定义百度没有给出,但是论文可追溯到1994年Frizke发表的论文。 1994 Bernd Fritzke: A
Growing Neural Gas Network Learns Topologies. NIPS 1994: 625-632

【Gauss 混合全卷积VAE】

  1. 重构判别
    深度学习方法中的重构判别算法认为正常样本在样本空间服从一个流形分布。并通过模型训练学习该流形分布,使服从该流形分布的样本能够很好的重构,从而判断重构误差大的样本不服从流形分布是异常样本。相关的重构判别算法主要有:AE,VAE,U-Net,生成对抗网络(generative adversarial network,GAN),受限Boltzmann机 (restricted Boltzmann machine,RBM),有以下解决方案:
    方案一:
    用卷积AE(convolutional AE ,CAE)的重构误差检测异常。
    方案二:
    对CAE 进行改进,提出了(robust CAE,RCAE ),增强了算法对噪声的鲁棒性。
    方案三:
    用稀疏AE检测异常,根据重构误差与编码的稀疏程度判断异常。
    方案四:
    通过让异常样本参与训练,用对抗AE(adversarial AE ,AAE)的重构误差检测异常。
    方案五:
    CAE只能捕捉空间结构信息,不能捕捉时域信息。针对这一个缺点,有人使用3D卷积AE(3D convolutional AE,C3D-AE)计算视频时空块的重构误差。
    方案六:
    在此基础上,用双解码分支用于重构当前输入的时空块,另一个分支用于预测下一个时刻的时空块。

U-Net 通过跳跃连接减少降维带来的信息损失,可以得到比AE更好的重构效果。
方案一:
可以用U-Net预测下一时刻的视频帧并根据重构误差判断异常。
方案二:
可以用U-Net 的网络结构,实现视频帧与光流图的跨模态重构,然后利用跨模态的重构算法检测异常。
方案三:
用预训练的SDAE提取视频帧与光流图的多层次的深度特征,然后再每个层次的特征上用跨模态重构算法检测异常。最后综合利用多个层次特征的生成误差检测异常。

GAN网络通过对抗训练,可以提升生成器的生成效果。已有方案:
方案一:
将CAE和GAN结合,利用GAN的判别器提升CAE的重构能力,在异常判断时综合考虑CAE的像素强度损失与GAN的判别器损失检测异常。
方案二:
设计了编码-重构-再编码的网络结构,并与GAN结合,综合考虑了视频帧的像素强度损失,GAN的判别器损失与再编码器损失来检测异常。
方案三:
训练一个GAN网络,通过固定GAN的网络参数,反向寻找测试样本在隐空间中对应的特征向量,然后以该特征向量作为GAN网络的输入,重构输入样本,根据重构图像 的像素强度损失判断异常。

联合判别

将聚类判别与重构判别联合使用可以获得更好的异常检测效果。
方案一:
将2个VAE串联的异常检测算法:算法首先将测试样本输入第1个VAE网络,基于聚类判别滤除明显正常的样本;然后将剩余的样本输入第2个VAE网络,基于重构误差检测异常。

序列模型

在深度学习中,常用的序列模型主要是循环神经网络(recurrent neural network ,RNN)和长短期记忆(long short-term memory ,LSTM)网络,常用的异常判断主要是预测误差判别。
方案一:
先用稀疏AE提取图像块的特征,然后用RNN模型预测下一时刻的特征,根据预测误差检测异常。
方案二:
利用监控视频的时间连贯性约束,设计一种堆叠RNN(stacked RNN,sRNN),基于sRNN的预测误差检测异常。
方案三:
将LSTM与AE结合的视频帧的预测方法,先将视频的表观信息和运动信息分离,然后用双分支的LSTM-AE的一个分支对运动信息建模、预测下一时刻的光流编码,另一个分支用AE对表观信息编码,最后将两个分支的编码串联,经过一个编码器来预测下一帧,从而实现视频帧的预测。
方案四:
提出一种时空对抗生成网络(spatio-temporal adversarial networw,STAN),该算法将LSTM-AE与C3D,GAN结合,用LSTM-AE预测视频帧序列的中间帧,然后基于像素强度损失和C3D的判断器损失判断异常。

复合模型

将点模型和序列模型复合,可以使算法同时捕获样本在样本空间的分布异常转移规律异常
方案一:
用LSTM-AE 重构输入序列,在用AE拟合样本和分布的同时,用LSTM捕捉样本的转移规律。
方案二:
使LSTM的每一时刻有两个输出,其中一个输出是对当前时刻输入的重构,另一个输出是对下一个时刻或者对上一个时刻输入的重构。最后,基于对当前输入的构造误差判断异常。

5 算法的对比分析

对于聚类判别的缺点OC-NN是一种有效的解决方案。
在重构判别中,由于训练的子空间/流形存在冗余,因此如何在子空间/流行上进一步约束正常样本分布是一个需要解决的问题。

5.1模型约束假设汇总

为了提升异常检测的效果,许多算法结合相关知识提出了模型约束假设,本小节主要将主要的模型约束汇总如下:

  1. 虚警假设:训练样本中存在一定比例的虚警
    【什么是虚警呢?没有信号来临的时候传递出有信号来临的错误信息,现在理解,就是有异常事件发生的前奏,但是实际上没有发生异常事件。】
  2. 噪声假设认为图像或者特征数据中存在噪声
    【噪声假设,这个比较好理解,样本数据中存在噪声,我们要清除】
  3. 时间连贯性假设:认为视频特征按时间轴是连续变化的,时域上相邻的两帧特征应该具有相似性,在异常属性上也应该具有连贯性。在SC法中,这种时间连贯性 体现为特征编码的稀疏一致性,非零系数分布的一致性。
  4. 编码系数非负约束:在重构判别中,样本应该能够有公共因子加权和重构,当编码系数约束为非负时,可以取得较好的效果。
    【什么是编码系数?没有查出来,先留在这里吧】
  5. 隐含信息约束:在重构判别中,仅基于像素强度损失描述重构误差不能完全反映重构效果,可以用图像的隐含信息对重构效果进行进一步约束,可以用图像的隐含信息对重构效果进行进一步约束,如对抗损失,梯度损失或者运动损失等。
  6. 跨模态重构:通过跨模态重构可以使网络学习更有用的信息。
    【讲真这些,就和抄完差不多,完全没有注入灵魂】

6.相关数据集整理

  1. UCSD异常检测数据集
    相关介绍来自原文地址
    包含Ped1、Ped2两个子数据集.数据集中的异常事件包括:汽车、骑自行车、滑滑板、踩踏草坪等。
    数据集下载:http://www.svcl.ucsd.edu/projects/anomaly/UCSD_Anomaly_Dataset.tar.gz

  2. CUHK Avenue 数据集
    这个数据集包含16个训练和21个测试视频片段。视频总共包含30652帧。训练视频包含正常情况下的视频。测试视频包含标准和异常事件视频。
    数据集下载链接:http://www.cse.cuhk.edu.hk/leojia/projects/detectabnormal/Avenue_Dataset.zip

  3. Subway 数据集
    Subway 数 据 集[94] 包 含 地 铁 站 入 口(Subwayentrance)和地铁站出口(Subwayexit)两个视 频,异 常 事 件 主 要 包 括:错 误 的 方 向、逃票、徘徊等.
    数据集下载地址:null

  4. UMN数据集
    数据集共包含3个场景,每个场景的异常事件之前都有一个短暂的正常事件。
    数据集下载地址: http://mha.cs.umn.edu/Movies/Crowd-Activity-All.avi

  5. UCF101
    UCF101拥有来自101个动作类别的13320个视频,在动作方面具有最大的多样性,并且在摄像机运动,物体外观和姿势,物体比例,视点,杂乱的背景,照明条件等方面存在很大的差异。迄今具有挑战性的数据集。
    101个动作类别的视频分为25组,每组可以包含4-7个动作的视频。来自同一组的视频可能具有一些共同的特征,例如相似的背景,相似的视角等。
    数据集下载地址:https://www.crcv.ucf.edu/data/UCF101/UCF101.rar

  6. Anomalous Behavior Data Set
    该数据集包含8个图像序列,描绘了广泛的具有挑战性的场景,包括:照明效果,场景杂波,可变目标外观,快速运动和相机抖动。
    数据集下载地址:http://vision.eecs.yorku.ca/research/anomalous-behaviour-data/

7.评估标准

异常检测的评估标准主要有两种:

  1. 接收器操作特性曲线(receiver operating characteristic ,ROC)及其对应的曲线下面积(area under the curve ,AUC)
    AUC的评估标准下有两个层次:帧级(pixel level )和像素级(frame level)帧级标准以帧为单位判断异常检测的正确性,只需要判断帧中是否包含异常,无需对异常空间的位置进行准确定位,像素级标准则需要对异常事件发生的空间和位置有准确的定位,当检测出的异常区域与真实区域有40%重合时,判断为检测成功。
  2. 等错误率(equal error rate,EER)。
    由于生活中异常事件非常稀少,正常时间和异常事件存在严重的样本不均衡,因此这种方式在实际应用中可能会产生误导。

8.总结和展望

  1. 深度学习方法得益于强大的学习能力,取得了当前最优检测效果,是未来的主要发展方向;
  2. 传统机器学习方法通过长时间的发展,探索了许多监控视频异常检测的相关知识,这些知识在领域内具有通用性,有待迁移应用到深度学习方法中取得更好的效果。
  3. 目前,该领域中可用的公共数据集较少,需要更多的数据集支撑研究的进展。

你可能感兴趣的:(视频异常检测,计算机视觉)