基于神经网络的交互式异常行为识别研究
2018-10-24关百胜卞春江冯水春
关百胜 ,卞春江 ,冯水春 ,陈 实
(1.中国科学院国家空间科学中心北京100190;2.中国科学院大学北京100094)
人的行为识别一直是计算机视觉领域的一个重要研究方向。近年来随着深度学习技术的不断发展,行为识别已经成为了计算机视觉方向的一个研究热点[1]。在智能安防领域中,人的行为识别研究范围主要包括越界检测、遗留物力检测、徘徊检测和打架斗殴等异常行为。
目前,行为识别研究方面的一些综述性文章[2-7]对最近几年行为识别的发展现状进行了分析和总结。行为识别特征提取的方法分为传统的特征提取方法和基于深度学习的特征提取方法。针对人的行为分析主要包括人的姿态分析[8]、单人行为分析[9]、交互式行为分析[10]和人群行为分析[11]。
交互式行为识别的研究工作主要开始于2010[12]年。在2014年的Computer Vision and Pattern Recognition(CVPR)会议上,相关专家对交互式行为识别的研究现状以及存在的问题进行了讨论分析。之前的研究方法主要是通过传统的图像特征提取方法和分类算法等手段进行交互式行为的识别,因此无法对复杂的交互式异常行为进行识别,算法的鲁棒性较差。考虑到目前深度学习在行为识别上已经取得初步的成果,故本文提出基于神经网络的交互式异常行为识别方法,对异常行为进行识别。神经网络技术能够自动提取视频中的交互式行为特征,避免了设计复杂的行为特征提取算法,减化了算法的设计流程,同时也提高了系统的鲁棒性。
1 交互式异常行为识别概述
交互式异常行为识别的主要目的是自动识别出监控视频中的异常行为,保障公共安全,减轻人力资源。文献[14]提出了基于Hough-Voting的行为识别方法,文献[15]提出了基于Spatio-Temporal的行为识别方法,文献[16]提出了基于Poselet Key-framing的行为识别方法。以上研究都是通过图像处理技术提取行为特征,而本文通过深度学习技术对两个人的交互式行为进行识别,研究的交互式行为种类有握手、拥抱、踢腿、挑逗、推动和出拳6种,其中握手和拥抱属于正常行为,踢腿,挑逗,推动和出拳属于异常行为。交互式行为示例如图1所示。
图1 6种交互式行为
交互式异常行为识别分为视频数据预处理、特征提取和行为特征判断3步,整体框架如图2所示。首先需要对视频数据进行预处理,例如滤波去噪、图像增强和图像背景减除等处理;其次需要提取视频中的交互式行为特征,例如通过提取Hog特征、轮廓模板特征和神经网络自提取特征等方法提取行为特征;然后通过已经训练好的分类器对交互式异常行为进行判断,区分正常行为和异常行为。
2 系统方案设计
交互式异常行为识别系统方案设计如图3所示。系统方案中包括3部分,分别是背景减除、AlexNet网络和双隐层网络。
图2 交互式异常行为识别框架
图3 系统方案设计
背景减除的作用是去除视频图像背景,保留前景目标图像,并将前景图像作为ALexNet网络的输入;ALexNet网络的作用是根据输入的目标图像提取人体行为特征,作为特征分类的依据;双隐层网络的作用是根据已标注的标签数据和ALexNet网络已提取的行为特征训练分类模型,并根据训练后的模型判断异常行为。
2.1 视频图像背景减除
背景减除是对视频图像进行预处理,提取运动目标,为AlexNet网络提供输入。基于运动的目标检测算法是指从图像序列中将运动的目标区域检测出来。目前常用的基于运动的目标检测方法有帧差法、光流法和背景差(背景减除)法[17]。考虑到基于高斯混合模型(Gaussian mixture model)的背景差法可以在线更新背景模型,很好地解决了光照变化、背景混乱变化的干扰,并且可以检测视频中停止运动的物体,因此本文选择基于高斯混合模型的背景差法来检测视频中运动的人体,去除图像背景并保存提取到的前景人体行为图像。高斯混合模型是指具有如下形式的概率分布模型[19]:
称为第k个分模型。
2.2 ALexNet网络模型
ALexNet是一个经典的卷积神经网络(ConvolutionalNeural Networks,CNN),包含5个卷积层和3个全连接层,最后一个全连接层的输出被送到softmax层中。文中通过ALexNet提取视频中的交互式行为特征,并生成概率模型。AlexNet网络的结构如图4所示[20],输入图像大小为224×224×3(RGB),输出为1000个float类型的值,即提取出的行为特征概率值。
2.3 双隐层网络模型
文中设计的双隐层网络是对已标注的行为和ALexNet网络生成的概率模型进行训练,最终生成一个行为分类器,对异常行为进行判断。双隐层网络包含一个输入层,一个输出层和两个隐藏层。双隐层网络的结构如图5所示。
图4 ALexNet网络结构图
图5 双隐层网络示例
图5中的双隐层网络有3个输入单元,一个输出单元,隐藏层1有3个输入单元,隐藏层2有两个输入单元,图中的“+1”表示偏置节点。
3 算法具体实现
3.1 实验平台搭建
本实验在Ubuntu16.04环境下搭建深度学习开发平台,系统开发环境如表1所示。
其中OpenCV3.3是一个开源的计算机视觉库,包含许多图像处理和计算机视觉的通用算法,用户可以通过OpenCV快速实现相关功能,不需要关注底层算法的具体实现过程;TensorFlow1.4是Google的第二代人工智能学习系统,可用于机器学习或图像识别等多项机器学习和深度学习领域,借助TensorFlow开发平台可以方便设计自己的神经网络。
表1 开发环境介绍
3.2 背景减除算法实现
在算法的具体实现中,考虑到OpenCV视觉库中已有基于混合高斯模型的背景减除算法,并通过BackgroundSubtrctorMOG2函数实现,因此本文对该函数进行研究分析并利用BackgroundSubtrctorMOG2函数实现视频图像的背景减除。该算法的一个重要特点是它为每个像素选择一个合适的高斯分布。原图与背景减除后的图像如图6所示。
3.3 ALexNet网络实现
图6 背景减除前后
利用TensorFlow深度学习平台实现ALexNet网络,并根据实际需求对相关参数进行重新设置。AlexNet网络实现中用到的函数主要有7个,分别是fully_connected()、tf.reshape()、local_response_nor⁃malization()、conv_2d()、max_pool_2d()、dropout()和regression()。其中conv_2d()用于神经网络卷积操作;local_response_normalization()用于数据标准化;tf.reshape()用于格式化输入数据;max_pool_2d()用于池化操作;dropout()用于防止数据过拟合;ful⁃ly_connected()用于全连接操作;regression()用于回归分析。AlexNet网络实现流程如图7所示。
图7 AlexNet网络实现流程
完成ALexNet网络的实现并通过AlexNet网络提取交互式行为特征,提取过程中损失函数的变化如图8所示,最终的损失值为0.127。
3.4 双隐层网络实现
利用TensorFlow深度学习平台设计并实现双隐层网络,其设计结构简图如图9所示。双隐层网络可以将交互式行为分为正常行为和异常行为,其中输入层有20个输入单元,隐藏层1有16个输入单元,隐藏层2有8个输入单元,输出层有1个单元。关于双隐层网络的详细设计请参考图5。
图8 AlexNet网络损失值
图9 双隐层网络结构简图
完成双隐层网络的实现并训练模型,训练过程中损失函数的变化如图10所示,最终的损失值为0.112。
图10 双隐层网络损失值
4 实验结果及分析
经过对6种交互式行为进行测试分析,计算出行为分类的准确率为85%,识别的准确率为73%;文献[21]对目前交互式行为识别的准确率进行了总结,分类准确率范围基本在70%~90%之间。
在行为识别的准确率上,本文提出的方法与当前的方法没有明显差异,主要原因是样本数据较少,无法进行大规模的深度学习。如果能够增加样本数量,进行大规模数据的学习,会再次提高识别的准确率。在行为识别的方法上,本文提出的基于深度学习的方法可以自学习行为特征,不需要人工进行特征标注并提取行为特征,简化了行为特征的提取过程,更有利于算法的工程化实现。
5 结论
文中通过神经网络方法提取行为特征进行交互式异常行为的识别,验证了神经网络技术可以用于交互式行为识别,并且取得了很好的效果,准确率也不低于传统的行为识别方法。但是本文目前只是针对单组的交互式行为进行研究,对于多组交互式行为的分类问题还在研究中,后续将在本文研究的基础上,对多组交互式行为进行分析研究,提高算法模型的适应性。