基于深度学习的人体行为识别算法

0 引言 人体行为识别是计算机视觉领域的一个重要的课题。其在行为检测、视频监控等领域都有着广泛的应用价值。与单纯的图片识别不同,人体行为识别会受到诸多因素的干扰,例如光照、背景等。传统方法中,通常通过手动设计某些特定的特征,对数据集中特定的动作进行识别,典型的有HOG/HOF[1]等。文献[2]提出一种基于稠密光流轨迹与稀疏编码算法的行为识别方法,将融合框架提取出的行为特征进行处理后,送入支持向量机中得到模型进行分类;文献[3]利用显著性检测获取到动作主体位置并提取稠密轨迹,采用Fisher Vector去增强特征,再利用SVM进行识别;文献[4]利用序列化的思想提取骨骼特征矢量,利用SVM训练并识别静态特征。然而,传统方法在面对诸多与现实场景接近的情况时,往往很难取得好的识别效果[5]。 近些年,随着人工智能技术的崛起,深度学习模型也被应用到了人体行为识别任务中去。利用深度学习模型去自动提取特征,良好地避免了人工设计特征过程中的盲目性和差异性。深度学习模型的一种——卷积神经网络,通过对输入数据的卷积操作,逐层提取特征,从而对图像进行识别分类,其在图像识别领域已经取得了优异的成果。2012年的AlexNet网络[6],将ImageNet数据集上的top-5错误率降低到了16.4%;2015年的Inception v2网络[7],提出了批量归一化的方法;2017年的SeNet网络[8],再次取得了ILSVRC比赛的冠军。 而针对视频人体行为识别问题,由于帧与帧之间具有着时间相关性,因此,单纯将提取到的RGB数据输入卷积神经网络进行分类并不能得到一个很好的结果。文献[9]将视频数据的稠密光流与RGB数据分别送入CNN进行训练,使网络良好处理了时空信息,再将双流网络各自得到的结果进行融合;文献[10]将数据通过一组硬连接内核进行处理后,利用3D卷积网络训练提取信息进行人体行为识别。 算法 人体 深度学习 模型 神经网络 除此之外,递归神经网络(RNN)也经常被采用来处理此类问题。RNN是一个具有循环的网络,可以被看作对同一神经网络的多次赋值,其允许了信息的持久化。然而,RNN有着梯度消失的问题,为此HOCHREITER S等人提出了一个新的RNN单元,长短期记忆递归神经网络单元[11],通过刻意的设计避免了长期依赖问题的出现。文献[12]首次将CNN与LSTM进行结合运用在了视频识别与视频描述领域;文献[13]用3D卷积提取数据特征,再送入LSTM网络中,用于行为识别。 本文设计了一种采用批归一化方法的CNN与LSTM结合的网络,将批归一化处理运用到了设计的CNN中,通过全连接层,送入LSTM单元对得到的特征序列进行处理,采用Softmax层映射类别。算法提取视频数据的RGB图像作为空间流输入,光流场图像作为时间流输入,再将各自得出的分类结果进行加权融合,得出最终的分类结果,用于人体行为识别。该算法在KTH视频数据集上的识别率达到了95.8%,可有效地运用在人体行为识别任务上。 1 模型结构 1.1 双流模型框架 视频数据具有时间和空间两部分的特性。空间部分RGB图像包含了物体的外观信息,时间部分光流场图像包含了物体的运动信息。因此,分别提取出视频的光流场图像与RGB图像作为输入数据,得出各自分类结果后进行加权融合,网络结构如图1所示。

1.2 卷积神经网络 卷积神经网络通常由卷积层、池化层、全连接层堆叠而成。卷积层利用多个不同的卷积核,提取目标的特征,生成特征图;池化层用来进行下采样,将相邻特征图的特征进行合并,减小维度;全连接层起到将学到的分布式特征映射到样本标记空间的作用。 然而深度神经网络在训练时,各层网络的输入分布会受到上一层的影响,随着网络的不断加深,网络层的微小变动产生的影响会被放大,从而导致梯度消失、梯度爆炸、网络收敛到一个局部最优值等问题。为此,本文将批归一化思想[7]从图像分类领域引入到了行为识别领域,对网络输入的样本进行小批量归一化处理。 传统的批归一化操作公式如下:

而对于此式,由于需要对全部的训练样本集合进行操作,计算其协方差矩阵,计算量极其庞大。对此,文献[7]提出了两点改进措施: (1)输入数据的每一维进行独立的批归一化处理; (2)采用小批量(mini-batch)。 对于有d维输入x=(x(1)…x(d))的神经网络层,利用式(3)去归一化每一维: 式(3)的期望与方差在每个mini-batch上对每层进行运算得出。该归一化操作能加速收敛,即使特征之间不具有相关性。并且通过mini-batch的方式,批归一化所需的信息能被运用在了反向传播之中。 同时,对每一个输入参数x(k)都引入一对参数λ(k)和β(k),如式(4)所示:

1.3 长短期记忆神经网络 算法 人体 深度学习 模型 神经网络 人体动作识别的数据是一组连续的数据,相邻帧之间有着极大的相关性,因此递归神经网络被用来处理这种问题。传统的递归神经网络包含输入序列X,隐藏序列H,输出序列Y。其隐藏层中包含着时间序列的历史信息,前向公式可表述为:

1.4 融合模型 本文的CNN结构由卷积层、池化层、全连接层堆叠而成,并在每个卷积层之后加入batchnorm操作进行小批量归一化。 实验数据采用25 f/s的图像序列,对提取的每帧图片,将尺寸扩充为227×227。输入数据的维度为25×227×227×3。25为视频数据帧数,227×227为图片尺寸,3为RGB图片的3个通道。融合模型的CNN部分如图2所示。 图2中上方的是特征图的维度大小,下方的是神经网络的操作层。人体行为识别CNN部分的模型一共有5个卷积层,每个卷积层后都有一个非线性激活函数ReLU去增加非线性,同时,每个卷积层之后也都有一个batchnorm层与scale层组合共同完成小批量归一化操作。CNN的最后是一个全连接层,将输入的数据进行矢量化操作后,再送入LSTM网络中。 数据输入LSTM中后,在长短期递归神经网络中按时序做递归运算,每次递归运算的结果是之前所有特征和当前特征的总和。本文采用一层的LSTM模型,结构如图3所示。

融合后的模型如图4所示,将视频数据的光流场与RGB形式分别作为时间与空间两种数据流输入设计的网络中进行分别的训练,再将各自得到的分类结果进行加权融合,最终用于人体行为识别任务。

2 实验过程 算法 人体 深度学习 模型 神经网络 2.1 数据集 本文使用公开的KTH视频数据集作为实验数据来检验算法的效果,部分动作的示意图如图5所示。数据集包含由固定摄像机拍摄的600个动作视频。视频的帧数为25 f/s,视频每帧图片的分辨率都为160像素×120像素。共有25名不同的实验对象,4个不同的实验场景:室外、室内、室外尺度变化、室外着装变化,6种不同的人体行为:散步、慢跑、奔跑、挥手、拍手、拳击。

2.2 实验结果与分析 本文在Linux系统下搭建的平台上用单核GTX 1070 GPU进行训练。将KTH数据集以动作类别进行划分,每个动作的前80%作为训练集,后20%作为测试集。视频数据的光流场图像与RGB图像被预先提取出来,提取出的每张图片被扩充为227×227,在保证特征不损失的情况下,为加载该训练网络的CNN部分在ImageNet数据集下训练30万次的预训练模型参数做准备,用以增强模型的鲁棒性,防止过拟合,并加速收敛。 图6显示了训练过程中,光流场时间网络和RGB空间网络随着训练次数的增加,对训练数据识别准确率的变化情况。从图中可以看出,在空间流上,当迭代次数接近10 000次时,准确率达到86%,趋于稳定,随着迭代的进行,准确率缓慢上升;在时间流上,当迭代次数接近16 000次时,准确率达到90%以上,随着迭代的进行,准确率增长趋于平缓,收敛近乎饱和。

在得到时空网络各自训练出的模型后,将双流的分类结果进行加权融合。图7中, RGB空间网络分类结果的权重以0.05的步长进行增加,逐步提高占比。

可以看出,当纯粹以空间流网络或者时间流网络进行人体行为识别时,时间流网络提取出的运动信息比空间流网络提取出的外观与背景信息具有更高的识别率,这也说明了在行为识别任务中,光流数据所包含的运动信息比RGB数据包含的外观信息更为有效。当识别的权重比为RGB:光流场=0.35:0.65时,本文设计的模型达到最好的识别效果,以一定权重比融合的时空双流神经网络能有效改善单独的网络在识别上的准确率。 算法 人体 深度学习 模型 神经网络 在表1中,本文选取了融合的时空双流网络在KTH数据集上得到的最好的识别结果与已有的一些算法模型进行了对比。

可以看出,本文设计的基于批归一化的卷积神经网络与LSTM结合的网络结构在将其在RGB空间图像与光流场时间图像分别得到的分类结果以0.35:0.65的比例进行加权融合之后,可以得到优于文献[2]与文献[3]提出的两种传统算法的结果。在和同样是以深度学习为基础的算法进行对比时,本文设计的模型结构同样也优于文献[10]与文献[13]提出的两种算法。这充分说明本文提出的算法在人体行为识别任务上具有可行性。 表2所示的混淆矩阵对测试集中6种不同的动作行为的识别结果做了可视化,对角线元素表示正确识别率。可以看出,在KTH数据集中模型对“拳击”和“挥手”动作的识别率最高,由于“拍手”与“挥手”之间有部分的相似性,因此,有部分“拍手”被识别成了“挥手”。 “慢跑”和“散步”、“跑步”之间相似性较高,因此,这三者之间产生了一些误识别率。但就总体而言模型依旧具有良好的泛化能力和鲁棒性。

3 结论 本文提出了一种采用批归一化的卷积神经网络与LSTM网络结合的深度学习网络结构。采用视频数据的RGB图像与光流场图像分别作为空间流网络输入与时间流网络输入,再将时空双流网络分别得到的分类结果以一定的权重比例进行融合。本文模型在KTH数据集的测试集上的识别率达到了95.8%。相较于文中对比的两种传统方法与两种深度学习方法,本文模型能更好地提取视频中的时序特征与空间特征,识别率较好。整个模型基于深度神经网络,无需先验经验,具有良好的泛化性与实用性。 参考文献 [1] LAPTEV I,MARSZALEK M,SCHMID C,et al.Learning realistic human actions from movies[C].IEEE Conference on Computer Vision and Pattern Recognition,2008.CVPR 2008.IEEE,2008:1-8. 算法 人体 深度学习 模型 神经网络 [2] 赵晓健,曾晓勤.基于稠密光流轨迹和稀疏编码算法的行为识别方法[J].计算机应用,2016,36(1):181-187. [3] 鹿天然,于凤芹,杨慧中,等.基于显著性检测和稠密轨迹的人体行为识别[J].计算机工程与应用,2018,54(4):163-167. [4] 胡青松,张亮.人体行为序列化识别算法研究[J].电子技术应用,2018,44(4):122-125. [5] 罗海波,许凌云,惠斌,等.基于深度学习的目标跟踪方法研究现状与展望[J].红外与激光工程,2017(5):6-12. [6] KRIZHEVSKY A,SUTSKEVER I,HINTON G E.Imagenet classification with deep convolutional neural networks[C].Advances in Neural Information Processing Systems,2012:1097-1105. [7] IOFFE S,SZEGEDY C.Batch normalization: accelerating deep network training by reducing internal covariate shift[C].Proceedings of the 32nd International Conference on Machine Learning,2015:448-456. [8] HU J,SHEN L,SUN G.Squeeze-and-excitation networks[J].arXiv preprint arXiv:1709.01507,2017,7. [9] WANG L,XIONG Y,WANG Z,et al.Temporal segment networks:towards good practices for deep action recognition[C].European Conference on Computer Vision.Springer,Cham,2016:20-36. [10] JI S,XU W,YANG M,et al.3D convolutional neural networks for human action recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2013,35(1):221-231. [11] HOCHREITER S,SCHMIDHUBER J.Long short-term memory[J].Neural Computation,1997,9(8):1735-1780. [12] DONAHUE J,ANNE HENDRICKS L,GUADARRAMA S,et al.Long-term recurrent convolutional networks for visual recognition and description[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2015:2625-2634. [13] 秦阳,莫凌飞,郭文科,等.3D CNNs与LSTMs在行为识别中的组合及其应用[J].测控技术,2017(2):28-32. 作者信息: 黄友文,万超伦 (江西理工大学 信息工程学院,江西 赣州341000) 算法 人体 深度学习 模型 神经网络

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181018A0N39100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券