害,最近做了挺多机器学习的东西,但是那些不是弯路,我估计之后还是要学习机器学习的相关内容。
今天是周四(2020年11月12日),但是由于网络老师有事,所以没有上网络课,于是就用这个空闲的时间看了一篇综述。
注:‘【】’这个括号内容表示我自己的思考,或者是画外音。
1.【深度学习】数据降维方法总结
《监控视频异常检测: 综述》王志国, 章毓晋 (清华大学 电子工程系,图像工程实验室,北京 100084)
下面将本次学习的内容进行整理,以供以后复习。
异常检测的任务是用一个仅包含正常样本的训练集 X = x 1 , x 2 , . . . . , x n X={x_1,x_2,....,x_n} X=x1,x2,....,xn,训练一个正常的模型,然后将测试集中不符合正常模型的样本判断为异常。【当前的猜测,也就是将视频划分为帧,然后对每一帧提取特征,根据已有的标签,学习出一套模型。然后再将测试帧进行测试根据分值,判断是否异常】
挑战,就是方向。监控视频异常检测主要面临着以下问题:
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. 就是我们现在看的这一篇。
【还有更多的细节,以后再补充,否则是一个无底洞】
异常检测的过程可分为3个步骤:特征提取,模型训练,异常判断。【和机器学习的步骤也差不多】
点模型:聚类判别,并发判别,重构判别,联合判别,与其他判别。
序列模型:生成概率判别,生成概率判别
图模型:图推断判别,图结构判别
此外在不同的发展阶段,也可以表现出不同的特性,比如在传统的机器学习算法阶段的点模型中,并没有使用重构方法【什么,为什么没有使用? 我以后在补充。】
点模型
聚类判别:算法根据特征空间的分布判断异常,将远离聚类中心的点、属于小聚类的点或分布概率密度低的点判断为异常.【就和我几天前做的dbscan聚类似的模型会选择出噪声点,将其作为异常事件】
共发判别:.算法根据测试样本与正常样本共同出现的概率(共发概率)判断异常,将共发概率低的样本判断为异常.该判别主要在传统机器学习方法阶段使用【并发概率,我现在的理解是,比如:训练集中人在走路,是正常的,那么测试集中走路的样本也是正常的,所谓的并发,是指同时发生】
重构判别:算法用低维子空间/流形拟合正常样本特征空间的分布,通过将测试样本向正常样本子空间/流形投影计算重构误差,进而根据重构误差的大小判断测试样本是否服从正常样本的分布并判断异常。该判别在各个发展阶段均有应用。
【这句话,直接看困了,这也太多术语了,开始逐个击破。简而言之,就是将数据降维,然后学习降维后的数据。为什么要进行降维呢?在原始的高维空间中,包含有冗余信息以及噪音信息,在实际应用例如图像识别中造成了误差,降低了准确率;而通过降维,我们希望减少冗余信息所造成的误差,提高识别(或其他应用)的精度。常用的降维模型,如下所示。】
联合判别 :以上三种判别联合使用。
其他判别:其他判别主要包括假设检验判别与语义分析判别等,该判别主要出现在传统的机器学习和混合方法中,【也就是说现在的深度学习中不用了】
序列模型。序列模型中主要有两种异常的判断准则:生成概率判别和预测概率判别。
生成概率判别:算法根据输入序列生成一个概率值,描述该输入序列服从正常序列转移规律的程度。算法将生成概率值低的样本判断为异常。该判别主要在传统机器学习方法中使用。【根据算法生成一个概率值,然后概率值低的判断为异常样本】
预测误差判别:模型根据输入序列预测序列在下一时刻的特征,根据预测误差判断该输入序列服从正常转移规律的程度。算法将预测误差大的样本判断为异常。该判别主要在深度学习方法阶段使用。【因为之前,听师姐讲过,所以比较容易理解:根据现有的帧,预测下一帧是什么,比如一个走路的视频前几帧是抬腿,那么下一帧只可能是继续抬腿或者是放下腿。但是如果是躺地上,和预测差距很大,那肯定就是发生意外了,也就是异常事件】
图模型。图模型有两种异常判断方式;图推断判别和图结构判别。【这两个判别方式描述的比较抽象,反正我没有搞懂,以后填坑】
图推断判别:依据图上的特征点之间的断关系判断异常,将不符合正常推断关系的特征点判断为异常。
图结构判别:根据图的拓扑结构检测异常,将不常见的拓扑结构判断为异常。
【这也是原始的视频异常检测,也是以后写论文的源头,所以这些传统的方式十分重要,是我们推成出新的源头】
在传统机器学习方法阶段,常用的手工特征提取方式有:方向梯度直方图(histogram of oriented gradients,HOG)光流直方图(histogram of optical flow ,HOF)3D梯度、局部二值模式(local binary pattern,LBP)
【在对图像进行表示时,最初完备正交基由于表示简单唯一而被广泛使用,但是正交基的要求一般比较严格,所以导致它对图像的表示不够稀疏。基于过完备字典下的信号稀疏分解的思想:
相对完备正交基而言,过完备基的基底一般是冗余的,也就是基元素的个数比维数要大。图像在过完备基下的表示比完备正交基更加稀疏,图像中的干净部分可以利用少量的非零稀疏表示系数进行线性表示,而噪声一般认为不具有稀疏性,因此可以根据它们之间的区别实现去除噪声的目的。
作者:卡布奇诺耳思维奇
链接:https://www.zhihu.com/question/22205661/answer/152655757 来源:知乎。】
与PCA法相比。SC法获得了更多的关注,由以下几篇论文进行了SC算法的相关优化:
ZHUXB,LIUJ,WANGJQ,etal.Sparse representation for robust abnormality
detectionin crowded scenes [J].-Pattern Recognition
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
YUAN Y,FENG Y C,LU X Q.Structured dictionary learning for abnormal
event detection in crowded scenes[J].-PatternRecognition
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
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
),包含一组结点,每个结点都对应着一个变量或一组变量。链接是无向的,即不含有箭头。与贝叶斯网一样,马尔可夫网可以视为定义了一系列由图结构确定的独立性假设。】
图结构判别:图结构判别将图的拓扑结构作为一种新的特征检测异常。
如
将时空近邻的特征点相连接构建图结构,然后将图的拓扑结构映射到低维流形中,在低维流形中检测异常。【如何理解时空近邻的特征点?是不是相近的几帧或者是相同的视频画面?】
将时空近邻的兴趣点构建图结构,以图的拓扑结构作为新的特征,通过构建图结构的相似性算子实现图结构的聚类从而检测异常。
【时空近邻的兴趣点】
【相似性算子】
在传统机器学习算法中的符合模型主要是将点模型与序列模型结合,使算法既能检测样本的分布异常,又能检测样本的转移规律异常。
【写到这里,突然感觉几种模型的关系】
【
点模型:检测样本的异常分布
序列模型:检测样本间的转移规律
图模型 : 检测样本间的相互关系
】
深度特征比手工特征有更强的描述能力,在混合方法阶段,算法使用深度特征代替手工特征,然后用传统机器学习方法检测异常。在该发展阶段,得到发展的模型主要是点模型,应用的判别方法主要是聚类判别,重构判别和其他判别。
聚类判别。在使用聚类判别中,常用的提取深度特征的神经网路主要有:自编码器(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)去除可分性最好的特征分量。如果随着可分性最好的特征分量的去除,二者的分类准确率一直维持着较高水平,说明二者的可分性高,证明假设成立。
或者:基于对目标状态的分析检测异常,主要应用于高速公路的监控场景。算法首先用预训练的目标检测神经网络检测道路上的车辆目标,然后根据目标的动静状态及运动轨迹分析 目标是否存在特定类型的异常,如车辆停止,加速等。
———————2020年 11月14 日————————————
【自组织映射 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】
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的每一时刻有两个输出,其中一个输出是对当前时刻输入的重构,另一个输出是对下一个时刻或者对上一个时刻输入的重构。最后,基于对当前输入的构造误差判断异常。
对于聚类判别的缺点OC-NN是一种有效的解决方案。
在重构判别中,由于训练的子空间/流形存在冗余,因此如何在子空间/流行上进一步约束正常样本分布是一个需要解决的问题。
为了提升异常检测的效果,许多算法结合相关知识提出了模型约束假设,本小节主要将主要的模型约束汇总如下:
UCSD异常检测数据集
相关介绍来自原文地址
包含Ped1、Ped2两个子数据集.数据集中的异常事件包括:汽车、骑自行车、滑滑板、踩踏草坪等。
数据集下载:http://www.svcl.ucsd.edu/projects/anomaly/UCSD_Anomaly_Dataset.tar.gz
CUHK Avenue 数据集
这个数据集包含16个训练和21个测试视频片段。视频总共包含30652帧。训练视频包含正常情况下的视频。测试视频包含标准和异常事件视频。
数据集下载链接:http://www.cse.cuhk.edu.hk/leojia/projects/detectabnormal/Avenue_Dataset.zip
Subway 数据集
Subway 数 据 集[94] 包 含 地 铁 站 入 口(Subwayentrance)和地铁站出口(Subwayexit)两个视 频,异 常 事 件 主 要 包 括:错 误 的 方 向、逃票、徘徊等.
数据集下载地址:null
UMN数据集
数据集共包含3个场景,每个场景的异常事件之前都有一个短暂的正常事件。
数据集下载地址: http://mha.cs.umn.edu/Movies/Crowd-Activity-All.avi
UCF101
UCF101拥有来自101个动作类别的13320个视频,在动作方面具有最大的多样性,并且在摄像机运动,物体外观和姿势,物体比例,视点,杂乱的背景,照明条件等方面存在很大的差异。迄今具有挑战性的数据集。
101个动作类别的视频分为25组,每组可以包含4-7个动作的视频。来自同一组的视频可能具有一些共同的特征,例如相似的背景,相似的视角等。
数据集下载地址:https://www.crcv.ucf.edu/data/UCF101/UCF101.rar
Anomalous Behavior Data Set
该数据集包含8个图像序列,描绘了广泛的具有挑战性的场景,包括:照明效果,场景杂波,可变目标外观,快速运动和相机抖动。
数据集下载地址:http://vision.eecs.yorku.ca/research/anomalous-behaviour-data/
异常检测的评估标准主要有两种: