基于时空自动编码器的异常行为检测方法与流程

文档序号:17374669发布日期:2019-04-12 23:10阅读:1291来源:国知局
基于时空自动编码器的异常行为检测方法与流程

本发明属图像处理和模式识别技术领域,具体涉及一种基于时空自动编码器的异常行为检测方法。



背景技术:

近年来,我国手段不一的侵犯银行金融业等公共重要场所的行为时有发生,给国家财产以及人民生命安全造成了不同程度的损失和伤害。由此出发,公共场所的异常行为检测已成为当前安全防控系统的一个研究热点问题,越来越多的专家学者投身于此领域。

为解决这一问题,科研人员已经提出过多种异常行为监测的方法,根据方法不同,大致可分为:传统方法、有监督学习方法和无监督学习方法。传统方法:例如轨迹信息等,首先对视频中的目标进行跟踪,然后提取目标移动轨迹,根据轨迹判断时候存在异常行为,但这种方法在具有多个遮挡和阴影的复杂或拥挤场景下表现不够稳健,从而影响结果,有较大的局限性。有监督学习方法:例如cnn,rnn等,虽然方法较多,但在异常检查的情况下,带正常和异常标签的数据的数量是不平衡的,获得精确的有代表性的标签很困难,特别对于异常数据来说,因此训练不方便。无监督学习:例如自动编码器,聚类等,这种方法不需要正常和异常数据的标签信息,对于训练数据更好获得。

在无监督学习中,仅通过图像rgb信息来估计人体运动信息,这种方法受光照和阴影的影响较大,在人群密集场所精度有限,当有障碍物或人群重叠时,检测效果不佳。

由于已有算法的种种缺陷,在实际应用中效果不够理想,需要改进算法。



技术实现要素:

本发明的目的在于提供一种基于融合多模态输入数据的时空自编码器的异常行为检测算法,最大程度上提高异常行为检测的准确率。

本发明解决其问题所采用的技术方案是:

基于时空自动编码器的异常行为检测方法,是提前构建训练样本视频库和测试样本视频库,所述训练样本视频库仅包含正样本,即正常行为样本,所诉测试样本视频库包含正样本和负样本,即正常行为视频和异常行为视频。所述异常行为检测方法包括下列步骤:

1.制作监控视频数据集,并对视频进行预处理,具体包括下列步骤:

1.1将全部视频分为训练集和测试集,其中训练集占80%,测试集占20%,训练集中仅包含正样本视频,测试集中包含正样本和负样本视频;

1.2预处理:将训练集和测试集中的视频流分别转化成大小为224*224的帧图像,并对数据集进行扩充,即对帧图像进行亮度转变、高斯噪声处理以得到更多的训练集;

2.提取多模态特征信息,选择图像的rgb信息和光流信息作为特征信息,具体包括下列步骤:

2.1计算每10帧间的光流信息,利用gunnarfarneback算法对图像进行稠密光流计算;

2.2计算每10帧图像的rgb信息,转化为灰度信息;

2.3对得到的光流信息和灰度信息进行零均值的归一化处理,并存储在.npy文件中;

3.将处理过的光流信息输入时空自动编码器中,利用时空自动编码器中的卷积和反卷积操作,输出重构信息,具体包括下列步骤:

3.1将光流信息和灰度信息分别作为输入,输入层的尺寸为224*224*10*1;

3.2设计时空自动编码器,共11层网络,由3d卷积层、最大池化层、lstm、上采样层和反卷积层组成,具体结构如下:

3.2.1第1、3层为3d卷积层,卷积层深度分别为128、64,卷积核分别为5*5*1、3*3*1,步长分别为2*2*1、2*2*1,激活函数均为relu函数;

3.2.2第2、4层为最大池化层,池大小为2*2*1;

3.2.3第5、6、7层为lstm层、反卷积层中卷积层深度分别为64、32、64,卷积核均为3*3*1:

3.2.4第8、10层为上采样层,尺寸为2*2*1;

3.2.5第9、11层为反卷积层,反卷积层中卷积层深度分别为64、128,卷积核分别为3*3*1、5*5*1,步长分别为2*2*1、2*2*1,激活函数均为relu函数;

3.3数据经过时空自动编码器后,其特征图大小变化情况为:

3.3.1卷积层输入特征图大小为224*224*1*10,经过第1层特征图变为112*112*128*10,经过第2层特征图变为56*56*64*10,经过第3层特征图变为28*28*64*10,经过第4层特征图变为14*14*64*10;

3.3.2lstm层的输入为上一层卷积层的输出,经过3层lstm层,特征图大小仍为14*14*64*10;

3.3.3上采样层的输入为上一层lstm层的输出,经过第7层特征图变为28*28*64*10,经过第9层反卷积层特征图变为56*56*128*10,经过第10层特征图还原为112*112*128*10,经过第11层反卷积层特征图变为224*224*1*10;

3.4在训练过程中,随机抽取训练集中15%数据作为验证集,训练50轮;采用随机梯度下降算法;初始学习率为0.03;权重衰减参数为0.000001;momentum设置为0.9;将训练好的模型保存成.h5模型,以用作测试模型;

4.完成步骤1和2的操作,得到.npy文件,将.npy文件输入步骤3.4中保存的.h5模型中,得到重构的光流信息和灰度信息,将重构信息与原始输入信息进行对比,分别得出异常评分,再对异常评分进行信息融合,建立异常检测评估模型,具体包括下列步骤:

4.1计算重建误差:计算输入图像序列和重建的图像序列的所有像素值,计算两者间的欧式距离:

e(t)=||x(t)-fw(x(t))||2

其中:e(t)为重建误差,x(t)为输入序列像素,fw(x(t))为输出序列像素;

4.2计算异常评分和正常评分,包括下列步骤:

4.2.1计算异常评分:根据重建误差,计算图像序列的异常评分,异常评分限制在[0,1]:

其中:sa(t)为异常评分,e(t)为重建误差,e(t)min为重建误差序列中的最小项,e(t)max为重建误差序列中的最大顶;

4.2.2计算正常评分:

sr(t)=1-sa(t)

其中:sr(t)为正常评分,sa(t)为异常评分;

4.3对分别得出的异常评分进行信息融合:

sz(t)=(sa1(t)+sa2(t))/2

其中,sa1(t)是光流信息异常评分,sa2(t)是灰度信息异常评分,sz(t)是光流和灰度信息融合之后的综合异常评分;

5.设定阈值:设定合适的阈值,当图像序列的综合异常评分高于阈值,说明视频中出现异常行为,将发送警报提醒安保人员,防止重大异常事故发生。

本发明基于自动编码器的重构网络,能实现对视频片段的异常行为检测:提出一种融合多模态输入数据的时空自动编码器检测异常行为的算法。由于仅仅是rgb信息不能够完全的将目标的运动情况表达出来,当目标发生重叠或遮挡时容易丢失目标,故提出将光流信息和rgb信息结合,可以很好地表达目标的特征信息。由于自动编码器无法对时域信息进行编码,故提出时空自动编码器,该编码器将时域信息加入到编码器中,可以对时域信息进行重建,再根据重建信息计算重建误差,进而计算视频的异常评分,综合两种特征信息的异常评分得到最终的评分,再根据阈值判定是否发出警报提示安保人员及时进行安全防护,以防止公共财产及人身安全的损害。

附图说明

图1为基于时空自动编码器的异常行为检测流程图

图2为时空自动编码器网络结构图

图3为视频图像预处理流程图

图4为时空自动编码器输入输出示意图

图5为光流信息和rgb信息融合评分示意图

图6为异常评分示意图

具体实施方式

下面结合附图进一步说明本发明的实施流程,以便本领域的技术人员更好地理解本发明。

一种融合多模态特征信息的时空自动编码器异常行为检测方法,包括提前构建训练样本图像库,如图1所示,该方法包括下列步骤:

1.制作监控视频数据集,并对视频进行预处理,如图3所示,具体包括下列步骤:

1.1将全部视频分为训练集和测试集,其中训练集占80%,测试集占20%,训练集中仅包含正样本视频,测试集中包含正样本和负样本视频;

1.2预处理:将训练集和测试集中的视频流分别转化成大小为224*224的帧图像,并对数据集进行扩充,即对帧图像进行亮度转变、高斯噪声处理以得到更多的训练集;

2.提取多模态特征信息,选择图像的rgb信息和光流信息作为特征信息,具体包括下列步骤:

2.1计算每10帧间的光流信息,利用gunnarfarneback算法对图像进行稠密光流计算;

2.2计算每10帧图像的rgb信息,转化为灰度信息;

2.3对得到的光流信息和灰度信息进行零均值的归一化处理,并存储在.npy文件中;

3.将处理过的光流信息输入时空自动编码器中,如图2所示,利用时空自动编码器中的卷积和反卷积操作,输出重构信息,具体包括下列步骤:

3.1将光流信息和灰度信息分别作为输入,输入层的尺寸为224*224*10*1;

3.2设计时空自动编码器,共11层网络,由3d卷积层、最大池化层、lstm、上采样层和反卷积层组成,具体结构如下:

3.2.1第1、3层为3d卷积层,卷积层深度分别为128、64,卷积核分别为5*5*1、3*3*1,步长分别为2*2*1、2*2*1,激活函数均为relu函数;

3.2.2第2、4层为最大池化层,池大小为2*2*1;

3.2.3第5、6、7层为lstm层、反卷积层中卷积层深度分别为64、32、64,卷积核均为3*3*1;

3.2.4第8、10层为上采样层,尺寸为2*2*1;

3.2.5第9、11层为反卷积层,反卷积层中卷积层深度分别为64、128,卷积核分别为3*3*1、5*5*1,步长分别为2*2*1、2*2*1,激活函数均为relu函数;

3.3数据经过时空自动编码器后,其特征图大小变化情况为:

3.3.1卷积层输入特征图大小为224*224*1*10,经过第1层特征图变为112*112*128*10,经过第2层特征图变为56*56*64*10,经过第3层特征图变为28*28*64*10,经过第4层特征图变为14*14*64*10;

3.3.2lstm层的输入为上一层卷积层的输出,经过3层lstm层,特征图大小仍为14*14*64*10;

3.3.3上采样层的输入为上一层lstm层的输出,经过第7层特征图变为28*28*64*10,经过第9层反卷积层特征图变为56*56*128*10,经过第10层特征图还原为112*112*128*10,经过第11层反卷积层特征图变为224*224*1*10;

3.4在训练过程中,随机抽取训练集中15%数据作为验证集,训练50轮;采用随机梯度下降算法;初始学习率为0.03;权重衰减参数为0.000001;momentum设置为0.9;将训练好的模型保存成.h5模型,以用作测试模型;

4.完成步骤1和2的操作,得到.npy文件,将.npy文件输入步骤3.4中保存的.h5模型中,得到重构的光流信息和灰度信息,将重构信息与原始输入信息进行对比,分别得出异常评分,再对异常评分进行信息融合,建立异常检测评估模型,具体包括下列步骤:

4.1计算重建误差:计算输入图像序列和重建的图像序列的所有像素值,计算两者间的欧式距离:

e(t)=||x(t)-fw(x(t))||2

其中:e(t)为重建误差,x(t)为输入序列像素,fw(x(t))为输出序列像素;

4.2计算异常评分和正常评分,包括下列步骤:

4.2.1计算异常评分:根据重建误差,计算图像序列的异常评分,异常评分限制在[0,1]:

其中:sa(t)为异常评分,e(t)为重建误差,e(t)min为重建误差序列中的最小项,e(t)max为重建误差序列中的最大项;

4.2.2计算正常评分:

sr(t)=1-sa(t)

其中:sr(t)为正常评分,sa(t)为异常评分;

4.3对分别得出的异常评分进行信息融合:

sz(t)=(sa1(t)+sa2(t))/2

其中,sa1(t)是光流信息异常评分,sa2(t)是灰度信息异常评分,sz(t)是光流和灰度信息融合之后的综合异常评分;

5.设定阈值:设定合适的阈值,当图像序列的综合异常评分高于阈值,说明视频中出现异常行为,将发送警报提醒安保人员,防止重大异常事故发生。

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