基于层次独立成分编码的运动异常检测方法与流程

文档序号:11433427阅读:241来源:国知局
基于层次独立成分编码的运动异常检测方法与流程

本发明涉及异常检测方法领域,具体是一种基于层次独立成分编码的运动异常检测方法。



背景技术:

近年来,视频场景的分析与理解研究吸引了来自计算机视觉领域众多研究者的关注,其致力于研究新技术、新方法去更精确快速地分析、理解场景内容,从而更有效地协助监控人员获取准确信息和处理突发事件,并最大限度地降低误报漏报,起到监督管理的作用。视频场景中的异常事件检测是其中一项重要的研究内容,同时也是研究的热点和难点。

异常检测最经典的做法通常是基于手工设计特征来进行异常检测。hu等人在2006年发表的《asystemforlearningstatisticalmotionpatterns》采用多目标追踪算法提取正常运动轨迹特征,然后学习其统计分布,充分考虑时空信息用于异常检测。cong等人在2013年发表的《abnormaleventdetectionincrowdedscenesusingsparserepresentation》提出了基于多尺度光流直方图的稀疏编码模型也成功用于异常检测,该模型采用稀疏重构代价(sparsereconstructioncost,src)为判断准则。li等人在2014年发表的《anomalydetectionandlocalizationincrowdedscenes》采用混合动态纹理模型对外观、运动以及空间尺度特征进行建模,提出了时空异常的联合检测器。专利201510707784.6《一种视频异常行为检测方法》以正常运动下不同位置的时空块训练出不同的光流阈值,消除了目标距离摄像头远近对光流特征提取造成的影响。上述方法虽然能够实现异常检测,但是其采用的是手工设计特征,该类特征需要专业的先验知识,而这在复杂的视频场景下难以实现,也限制了检测性能的进一步提升。

利用手工设计特征无法消除先验知识带来的局限性,基于低概率密度的异常检测方法被踢出。专利201510710563.4《一种拥挤场景下视频异常事件检测方法》基于训练视频序列图像块的局部特征进行聚类构建码本,计算测试图像的局部特征与码本的特征距离相似度,并结合前一时刻的信息进行事件判定。该方法虽然可以建立正常模型,但是当异常集群发生时聚类技术会失效。

近年来,深度学习方法被成功应用于各项视觉任务,证明了其强大的编码表达能力。xu等人在2017年发表的《detectinganomalouseventsinvideosbylearningdeeprepresentationsofappearanceandmotion》提出了外观和运动深度网络、学习运动、外观以及联合信息的特征表达用于异常检测。蔡瑞初等人在2015年发表的《基于多尺度时间递归神经网络的人群异常检测》提出了一种基于多尺度时间递归神经网络的人群异常检测和定位方法。专利201410469780.4《三维卷积神经网络训练方法、视频异常事件检测方法及装置》利用三维卷积神经网络提取了更具有表达能力的特征。但上述异常检测深层学习框架仅仅是输入直接至输出的黑盒子模式的学习过程,在学习过程中易产生过度拟合现象,从而导致结果不准确。



技术实现要素:

本发明的目的是提供一种基于层次独立成分编码的运动异常检测方法,以解决现有技术异常表示方法对视觉感知层级关系描述能力不足的问题。

为了达到上述目的,本发明所采用的技术方案为:

基于层次独立成分编码的运动异常检测方法,其特征在于:包括以下步骤:

(1)、光流运动特征提取:

输入视频,对获取的视频帧序列进行图像归一化,依据连续两帧的亮度信息,计算两帧像素之间的运动关系,根据lucas–kanade光流算法,获取光流特征。

(2)、单层独立成分基元学习:

首先对训练图像块集合进行归一化操作,对归一化后的图像块集合进行行向量变换,获得归一化后的矩阵;对归一化后的矩阵进行pca特征值求解,选择求解获得的前m1个特征向量作为初始化s1层的基元;然后使用gram-schmidt算法对初始化s1层的基元进行正交化处理,计算双曲正切变换损失函数的梯度;最后对s1层正交化处理后的基元进行迭代更新,计算每次基元更新的变化量,将每次迭代过程中的基元更新量与阈值比较,当基元更新量小于阈值则记为收敛状态,同时停止迭代更新,记录收敛状态的s1层基元即为学习获得的s1层基元;

(3)、层次独立成分基元学习:

首先根据步骤(2)学习获得的s1层基元,利用学习获得的s1层基元对光流图像进行卷积,获得s1层基元响应,对s1层基元响应进行截断线性校正,分析基元响应的多通道,进行全局归一化,获得校正后并全局归一化的s1层基元响应;然后对校正后并全局归一化的s1层基元响应校正后并全局归一化的s1层基元响应进行局部最大值汇聚,形成c1层基元响应;最后由c1层基元响应依次获得s2层基元,c2层基元响应和s3层基元;

(4)、建立基于高斯核密度估计的运动异常模型:

首先计算层次独立成分编码的运动模式的c3层基元响应,对视频序列多帧c3层基元响应,进行滑动窗口采样,对获得的正常运动特征集合聚类,获得k个正常聚类中心,根据各聚类中心中包含的样本数,作为聚类的先验概率;然后对测试视频帧的c3层基元局部采样响应,计算高斯核密度,计算测试视频帧采样响应,以及所有正常模式的后验概率;最后从k个正常中心聚类的后验概率中,选取最大后验概率值对应的运动模式作为当前测试匹配的运动模式。

所述的基于层次独立成分编码的运动异常检测方法,其特征在于:所述步骤(2)单层独立成分基元学习的过程如下:

(2.1)、对训练图像块集合进行归一化操作:

(2.1.1)、计算图像块集合的均值;

(2.1.2)、计算图像块集合的方差;

(2.1.3)、对图像块集合进行归一化操作,即对每个样本x,减去均值,除以方差,获得归一化后的图像块集合x1,norm={x1,norm};

(2.2)、初始化s1层的基元:

(2.2.1)、设置s1层基元的数量m1;

(2.2.2)、对归一化后的图像块集合x1,norm进行行向量变换,对每个图像块样本x1,norm变形为行向量z1,获得归一化后的矩阵z1;

(2.2.3)、对归一化后的矩阵z1进行pca特征值求解,获得特征值向量v1和对应的特征值a1;

(2.2.4)、对特征值a1降序排序,选择前m1个特征向量作为初始化s1层的基元v1,0;

(2.3)、学习s1层的基元:

(2.3.1)、初始化s1层的基元v1,0进行正交化处理,使用gram-schmidt算法,获得正交化后的s1层基元w1,0={w1,0};

(2.3.2)、计算独立成分的重构系数,其计算方式如下:

y1=w1,t·z1,

(2.3.3)、计算重构系数y1的双曲正切变换,作为损失函数ly1=tanh(y1);

(2.3.4)、计算双曲正切变换损失函数的梯度,其计算方式如下:

(2.3.5)、根据重构系数的负梯度方向,对s1层基元进行更新,即:

(2.3.6)、使用gram-schmidt算法,对更新后的基元v1,t+1正交化处理,获得正交化后的s1层基元w1,t+1;

(2.3.7)、计算基元更新的变化量,其计算方式如下:

upt=w1,t+1·w1,t-e,

其中e为单位矩阵;

(2.3.8)、如果变化量upt大于阈值,则步骤(1.3.2)到步骤(1.3.7);如果变化量upt小于阈值,则停止迭代;

(2.3.9)、记录收敛时刻的s1层基元,为学习获得的s1层基元b1。

所述的基于层次独立成分编码的运动异常检测方法,其特征在于:所述步骤(3)层次独立成分基元学习过程如下:

(3.1)、计算s1层响应:

(3.1.1)、计算s1层响应,其计算方式如下:

r1=b1*of,

其中b1*of表示s1层基元与光流图像的卷积操作;

(3.1.2)、对s1层响应进行截断线性校正,对r1={r1}中的各像素响应r1,进行截断处理r1,trun=max(0,r1);

(3.1.3)、对截断响应r1,trun={r1,trun},分析基元响应的多通道,进行全局归一化,即:

其中表示第j个基元的卷积响应;

(3.1.4)、在s1层的每个基元获得的响应图上,自左上角至右下角进行局部领域为2×2的无重叠地最大值汇聚,形成c1层基元响应

(3.2)、对c1层基元响应根据规则网格对图像进行滑动窗口采样,每采样一次获得一个基元响应图像块x2,其采样尺寸为s2×s2,采样块数为n2,获得训练响应块集合x2={x2};

(3.3)、对训练响应块集合x2={x2},重复步骤步骤(2)单层独立成分基元学习的过程,学习s2层独立成分基元b2;

(3.4)、学习s3层独立成分基元,重复步骤(3.1)到(3.3),依次获得s2层响应,c2层响应和s3层基元b3。

所述的基于层次独立成分编码的运动异常检测方法,其特征在于:所述步骤(4)建立基于高斯核密度估计的运动异常模型过程如下:

(4.1)、计算层次独立成分编码的运动模式的c3层响应:

(4.1.1)、输入测试视频序列;

(4.1.2)、计算测试视频光流;

(4.1.3)、对测试视频光流,重复步骤(3.1),计算测试视频序列光流的s1层响应;

(4.1.4)、对测试视频s1层响应,重复步骤(3.2),计算c1层响应;

(4.1.5)、对测试视频c1层响应,重复步骤(4.1.3)和步骤(4.1.4),计算c2层响应;

(4.1.6)、对测试视频c2层响应,重复步骤(4.1.3)和步骤(4.1.4),计算c3层响应;

(4.2)、高斯核密度估计:

(4.2.1)、对视频序列多帧c3层响应,进行滑动窗口采样,获得正常运动特征集合;

(4.2.2)、对正常运动特征集合聚类xm={xm},获得k个正常聚类中心xmc={xmc};

(4.2.3)、根据各聚类中心中包含的样本数,作为聚类的先验概率p(xmci);

(4.2.4)、对测试视频帧的c3层局部采样响应xmtest,计算高斯核密度,其计算公式如下:

其中h为高斯核的带宽;

(4.3)、计算测试视频帧采样响应xmtest,对所有正常模式的后验概率,即:

(4.4)、从k个正常中心聚类的后验概率中,选取最大后验概率值对应的运动模式作为当前测试匹配的运动模式inorm,其计算公式如下:

inorm=argmaxip(xmci|xmtest)。

本发明提出来一种基于层次独立成分编码的运动异常检测方法,对现有的生物视觉层级编码框架,进行三级逐层学习拓展,提取层内视觉感知编码模式,实现层级信息传递;建立基于正常运动的多高斯核密度异常模型,计算正常模式的后验概率,最大后验概率的值作为测试匹配的运动模式,将匹配模式的后验概率的倒数作为异常概率,该概率大于采样阈值被认为是异常区域,并进行区域标记。

本发明克服了现有异常表示方法对视觉感知层级关系描述能力不足的问题,尤其是对运动高频模式的挖掘,提出了基于层次独立成分编码的运动异常检测。本发明通过对现有的生物视觉层级编码框架,进行三级逐层学习拓展,提取层内视觉感知编码模式,实现层级信息传递,能够体现运动模式尺度特征和结构化对应关系;进一步建立基于正常运动的多高斯核密度模型,实现对异常模式的检测。

与已有技术相比,本发明的有益效果体现在:

(1)使用独立成分编码能够挖掘出场景中的运动高频基元,这些基元蕴含了目标运动的特点,为后续统计方法提供判断目标运动合理性的依据,运动高频基元使提取的特征更具有代表性,相对于已有的手工特征能够提高检测的准确性。

(2)层次编码模型,能够体现人类视觉的结构化分析过程,体现目标运动的层次性,有利于分析不同目标的运动,分析目标在不同尺度下的运动,因此相对于单层运动高频基元来说,即体现了不同尺度下运动的位置约束关系,也有利于解释并发现微小运动对异常检测准确性的影响。

(3)异常检测的本质是低概率事件检测,但是由于运动异常的多样性,所以单模式难以兼顾模式查准率和模式查全率。多高斯核密度估计方法,即可以体现高斯模型对低概率事件的统计学判据,提高异常检测查准率,也可以覆盖多种可能的情况,提高异常检测查全率。

附图说明

图1为本发明提出的异常检测方法流程图;

图2为本发明实施例中正常异常光流运动模式,其中:

图2a为异常场景的亮度图像,图2b为异常场景的光流图像。

图3为本发明实施例中三层基元,其中:

图3a为s1层独立成分基元,图3b为s2层独立成分基元,图3c为s3层独立成分基元。

图4为本发明实施例中特征响应图,其中:

图4a为s1层的卷积后响应,图4b为s1层响应对应的光流图,图4c为s2层的卷积后响应,图4d为s2层响应对应的光流图,图4e为s3层的卷积后响应,图4f为s3层响应对应的光流图。

图5为本发明实施例中多高斯核密度估计示意图,其中:

图5a为多高斯核密度空间,图5b为测试样本在多高斯核密度空间的后验概率。

图6为本发明实施例中异常检测的概率和定位,其中:

图6a为示例帧1异常检测概率,图6b为示例帧1异常检测定位,图6c为示例帧2异常检测概率,图6d为示例帧2异常检测定位,图6e为示例帧3异常检测概率,图6f为示例帧3异常检测定位。

具体实施方式

下面结合附图及具体实施方式详细介绍本发明。本发明为一种基于层次独立成分编码的运动异常检测方法。具体流程如图1所示,本文发明主要包括三个步骤:光流运动特征提取,层次独立成分运动基元学习,运动异常检测。以下详细介绍这三个步骤:

步骤s1:光流运动特征提取。

步骤s1-1:输入视频,获取视频帧序列。

步骤s1-2:计算光流运动特征of。

步骤s1-2-1:对视频帧序列进行图像归一化。

步骤s1-2-2:依据连续两帧的亮度信息,如图2a所示,计算两帧像素之间的运动关系,根据lucas–kanade光流算法,获取光流特征,如图2b所示。图2中亮区域表示异常模式,暗区域表示正常模式。

步骤s2:层次独立成分运动基元学习。

步骤s2-1:图像块采样构建训练集合,根据规则网格对图像进行滑动窗口采样,采样尺寸为s1×s1,采样块数为n1,获得训练图像块集合x1={x1}。

步骤s2-2:单层独立成分基元学习。

步骤s2-2-1:对训练图像块集合进行归一化操作。

步骤s2-2-1-1:计算图像块集合的均值。

步骤s2-2-1-2:计算图像块集合的方差。

步骤s2-2-1-3:对图像块集合进行归一化操作,即对每个样本x,减去均值,除以方差,获得归一化后的图像块集合x1,norm={x1,norm}。

步骤s2-2-2:初始化s1层的基元。

步骤s2-2-2-1:设置s1层基元的数量m1。

步骤s2-2-2-2:对归一化后的图像块集合x1,norm进行行向量变换,对每个图像块样本x1,norm变形为行向量z1,获得归一化后的矩阵z1。

步骤s2-2-2-3:对归一化后的矩阵z1进行pca特征值求解,获得特征值向量v1和对应的特征值a1。

步骤s2-2-2-4:对特征值a1降序排序,选择前m1个特征向量作为初始化s1层的基元v1,0。

步骤s2-2-3:学习s1层的基元。

步骤s2-2-3-1:初始化s1层的基元v1,0进行正交化处理,使用gram-schmidt算法,获得正交化后的s1层基元w1,0={w1,0}。

步骤s2-2-3-2:计算独立成分的重构系数,其计算方式如下:

y1=w1,t·z1,

步骤s2-2-3-3:计算重构系数y1的双曲正切变换,作为损失函数ly1=tanh(y1)。

步骤s2-2-3-4:计算双曲正切变换损失函数的梯度,其计算方式如下:

步骤s2-2-3-5:根据重构系数的负梯度方向,对s1层基元进行更新,即:

步骤s2-2-3-6:使用gram-schmidt算法,对更新后的基元v1,t+1正交化处理,获得正交化后的s1层基元w1,t+1。

步骤s2-2-3-7:计算基元更新的变化量,其计算方式如下:

upt=w1,t+1·w1,t-e,

其中e为单位矩阵

步骤s2-2-3-8:如果变化量upt大于阈值,则步骤s2-2-3-2到步骤s2-2-3-7。如果变化量upt小于阈值,则停止迭代。

步骤s2-2-3-9:记录收敛时刻的s1层基元,为学习获得的s1层基元b1,如图3(a)所示。

步骤s2-3层次独立成分基元学习

步骤s2-3-1:计算s1层响应。

步骤s2-3-1-1:计算s1层响应,如图4a所示,其计算公式为:r1=b1*of

其中b1*of表示s1层基元与光流图像的卷积操作。

s1层响应对应的光流图,如图4b所示。

步骤s2-3-1-2:对s1层响应进行截断线性校正,对r1={r1}中的各像素响应r1,进行截断处理r1,trun=max(0,r1)。

步骤s2-3-1-3:对截断响应r1,trun={r1,trun},分析基元响应的多通道,进行全局归一化,即:

其中表示第j个基元的卷积响应。

步骤s2-3-1-4:在s1层的每个基元获得的响应图上,自左上角至右下角进行局部领域为2×2的无重叠地最大值汇聚,形成c1层基元响应

步骤s2-3-2:对c1层基元响应根据规则网格对图像进行滑动窗口采样,采样尺寸为s2×s2,采样块数为n2,获得训练响应块集合x2={x2}。

步骤s2-3-3:对训练响应块集合x2={x2}重复步骤s2-2,学习s2层独立成分基元b2,如图3b所示。

步骤s2-3-4:学习s3层独立成分基元,重复步骤s2-3-1到s2-3-3,依次获得s2层响应,c2层响应和s3层基元b3。

s3层基元图如图3c所示;s2层响应图,如图4(c)所示,s2层对应的光流如图4d所示;s3层响应图,如图4e所示,s3层对应的光流如图4f所示。

步骤s3:运动异常检测。

步骤s3-1:基于多高斯核密度估计的运动异常模型。

步骤s3-1-1:计算层次独立成分编码的运动模式的c3层响应。

步骤s3-1-1-1:输入测试视频序列。

步骤s3-1-1-2:计算测试视频光流。

步骤s3-1-1-3:对测试视频光流,重复步骤s2-3-1,计算测试视频序列光流的s1层响应。

步骤s3-1-1-4:对测试视频s1层响应,重复步骤s2-3-2,计算c1层响应。

步骤s3-1-1-5:对测试视频c1层响应,重复步骤s3-1-1-3和步骤s3-1-1-4,计算c2层响应。

步骤s3-1-1-6:对测试视频c2层响应,重复步骤s3-1-1-3和步骤s3-1-1-4,计算c3层响应。

步骤s3-1-2:高斯核密度估计。

步骤s3-1-2-1:对视频序列多帧c3层响应,进行滑动窗口采样,获得正常运动特征集合xm={xm}。

步骤s3-1-2-2:对正常运动特征集合聚类xm={xm},获得k个正常聚类中心xmc={xmc}。

步骤s3-1-2-3:根据各聚类中心中包含的样本数,作为聚类的先验概率p(xmci)。

步骤s3-1-2-4:对测试视频帧的c3层局部采样响应xmtest,计算高斯核密度,多高斯核密度空间如图5a所示,

其中h为高斯核的带宽。

步骤s3-1-3:计算测试视频帧采样响应xmtest,对所有正常模式的后验概率,测试样本在多高斯核密度空间的后验概率如图5b所示,其计算公式如下:

步骤s3-1-4:从k个正常中心聚类的后验概率中,选取最大后验概率值对应

的运动模式作为当前测试匹配的运动模式inorm,其计算公式如下:

inorm=argmaxip(xmci|xmtest),

步骤s3-2:运动异常检测。

步骤s3-2-1:将匹配模式inorm后验概率的倒数,作为异常概率,即:

步骤s3-2-2:设置异常阈值τab,记录异常概率大于阈值的采样ab(xmtest)>τab,为异常区域。

步骤s3-2-3:在测试帧中对异常区域进行位置标记,实现异常检测,异常检测的概率和定位如图6所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1