随着计算机视觉和人工智能领域的不断发展,越来越多的先进设备投入到人们的生产生活当中,给人们带来了巨大的便利。人体行为识别是计算机视觉领域的重要分支,该技术在视频监控、医学健康、智能家居、体育运动以及虚拟现实等领域应用极其广泛。传统的行为识别方法采用时空兴趣点[1](space-time interest points,STIP)表示人体局部时空特征进行姿态识别。Wang等[2]将加速健壮特征(speeded-up robust features,SURF)与光流特征结合,提出改进密集轨迹算法进行人体姿态识别。由于传统的识别方法大部分需要人工提取特征,所以较为耗时耗力。随着2012年Hinton等[3]提出深度卷积神经网络,不少研究人员把目光转向了卷积神经网络。Ji等[4]首次提出基于3D卷积网络结构的人体姿态识别方法。Tran等[5]提出了C3D网络,通过系统化地研究找到了3D卷积最合适的时序卷积核长度。丁红等[6]提出基于DBN深度信念网络的人体行为检测系统。韩雪平等[7]则将人体局部信息与全局信息相结合提升整体识别率。黄潇逸[8]提出一种骨骼关节点投影特征并采用支持向量机进行分类识别。叶青等[9]采用3D卷积层搭建DenseNet来提高网络中的特征利用率。M.Kocabas等[10]提出一种3D人体姿态估计的自我监督学习方法。Li等[11]提出动态尺度图神经网络(dynamic multiscale graph neural networks,DMGNN)来预测基于3D骨骼的人体运动。Zhang[12]提出了一种上下文感知图卷积网络(CA-GCN)用于骨骼的人体姿态识别。由于C3D网络能直接提取时空特征,并且结构由3D卷积层和3D池化以及全连接层简单堆叠而成,所以结构比较简单,广泛用于视频的人体行为识别研究[5]。但是原始C3D网络的参数较为巨大,不利于模型迁移,并且识别率还有待提高。所以本文提出基于改进型C3D网络的人体行为识别算法,该算法从卷积核以及网络结构入手,对模型尺寸进行压缩并且进一步提高在视频数据集中的识别率。
1 C3D神经网络 1.1 C3D网络结构原始C3D网络采用3D卷积和3D池化,并且由8个通道分别为64、128、256、256、512、512、512、512的3D卷积层、5个3D最大池化层、2个神经元为4 096的全连接层以及softmax分类器构成。Tran等[5]经过大量实验证明3D卷积核尺寸为(
Download:
|
|
该原始网络的输入尺寸为(
以往的优化算法常采用SGD,虽然该优化算法在计算梯度时随机选取一个样本更新梯度使得训练速度增快,但是SGD会引入更多的随机噪声,使得准确度下降,在某些情况下还会陷入鞍点容易收敛到局部最优,并对学习率的选择较为敏感。考虑以上问题,本文采用另外一种改进型的梯度下降算法,即Adam算法。该算法结合了动量和RMSProp算法的特点,能够为不同的参数计算不同的自适应学习率,并且能够快速跳出鞍点以及快速收敛,同时还能够解决梯度稀疏和噪音大的问题。目前最常用的激活函数为ReLU,由于该激活函数计算简单,并且计算过程中部分神经元为0,使得网络具有稀疏性,缓解过拟合现象,在反向传播过程还会解决梯度消失的问题,所以被广泛应用在各种网络结构中。但是该激活函数会造成神经元“坏死”,最终导致相应参数永远不会更新,而且ReLU还缺乏概率解释,一些随机正则化能够让网络更好地提升精度,所以本文采用与随机正则化有关的新一类激活函数,即高斯误差线性单元[14](gaussian error linear unit,GELU),如图2所示,其中该激活函数的输入x为输入信号加权及偏置总和,y为x经过GELU激活函数的激活值,并且文献[14]中已经证明在多个任务实验里GELU的激活效果要优于ReLU的激活效果。
Download:
|
|
在传统卷积神经网络中,全连接层往往处于整个网络结构的末尾,如图3所示。用于将经过最后一层卷积层输出的特征图转换为一维向量,并且该层的每一个神经元都与上一层的每个神经元连接,即把前一层的所有输出特征全部综合起来,达到输出特征高度提纯的目的,有助于更好地识别有效特征。但是对输出特征综合的同时,该层的权重参数数量也是最多的,并且由于巨大的参数量则容易造成训练速度降低和过拟合现象发生。所以本文采用全局平均池化(global average pooling,GAP)来代替全连接层,如图4所示。该方法在NIN网络[15]中被提出,由于它不需要神经元而是直接对输入特征做下采样,得到的图像输出尺寸为(
Download:
|
|
Download:
|
|
在输入特征经过全局平均池化层后,需要将其输入到最后的分类全连接层中,并经过softmax分类器以输出类别得分。但考虑到全连接层会破坏视频帧图像的空间结构信息,所以在本文结构中引入三维点卷积层,即用(
由于在网络结构中增加了卷积层和BN层,则在提高网络识别能力的同时参数的数量也有所增加,所以本文采用了卷积核合并的方式减少网络参数数量。在Inception-v3网络[18]文献中提到2种卷积核分解方式:1)分解为较小卷积,例如将1个(
Download:
|
|
Download:
|
|
Download:
|
|
本文人体行为识别改进算法研究实验所采用的实验设备是Intel Core i7-8700 CPU,主频为3.2 GHz,内存为16 GB,硬盘为1 T,GPU为Nvidia Tesla T4,GPU显存为16 GB。操作系统为Ubuntu16.04,编程语言选择Python3.7,深度学习框架采用PyTorch1.6.0,主要依赖库为Cuda10.1、Cudnn7.6、OpenCV4.4、Pillow7.2、NumPy1.19.2、Matplotlib3.3.2。
3.2 视频行为识别数据集本文使用的人体行为识别数据集为UCF101和HMDB51,这两类数据集是目前被广泛使用并公认的人体行为识别算法基准数据集。UCF101数据集包含101个类别,13 320个视频剪辑,每个类别的剪辑视频数量都不小于101个视频,并且每个视频的长度大多在2~10 s之间,每个视频的空间分辨率为
首先,将视频数据集按照每隔4帧截取1帧的形式将视频转换为帧图像,但部分短视频无法按照此间隔数让网络架构的输入时序长度达到16帧,则针对这部分较短视频可自动降低采样步长直到满足最少16帧的要求,这样均匀采样后的视频帧序列能够比较好地代表整个视频的行为变化情况。在转换为帧图像的同时,将整个数据集按照比例为6∶2∶2的形式分为训练集、验证集以及测试集,并将帧图像转换为
本实验中网络的迭代周期(epoch)为50次,学习率(learning rate)初始设置为0.000 01,并且每迭代10次学习率将以0.1进行衰减,每次训练采用的批量大小(Batch_size)为8。
3.5 UCF101实验结果分析本实验通过在UCF101数据集进行训练,总训练时长大约为18.5 h,训练的epoch为50,准确率变化曲线以及损失变化曲线分别如图8、图9所示,最终识别准确率可达到86.4%,原始C3D网络模型在本实验中达到的准确率为77.5%。可见本文改进方法可以有效改进准确率,并且本文改进后的模型参数量为25.82×106,原始C3D网络模型参数量为78.41×106,所以本文方法也可以有效地压缩模型参数量。
Download:
|
|
Download:
|
|
本文还与Res3D[19]、Spatial Stream-Resnet[20]、LSTM Composite Model[21]等当前流行的3种方法进行准确率以及模型参数量的结果比较,证明本文方法在提高准确率以及模型压缩方面有很好的效果,如表1所示。
本实验在HMDB51数据集上同样进行相应的训练,该训练时长大约为9 h,准确率变化曲线以及损失变化曲线分别如图10、图11所示。准确率由图10可知为54.3%,原始C3D网络在本实验中准确率结果为46.4%,可见本文方法对于该数据集的准确率也有一定的提高。
Download:
|
|
Download:
|
|
本文对于该数据集同样进行本文方法与多种其他方法的准确率以及模型参数量的结果比较,证明了本文方法确实在改善识别率和模型压缩方面有很好的效果,如表2所示。
本文针对C3D神经网络进行改进,并通过进一步分析实验研究结果得出以下结论:
1)本文提出的基于改进型C3D网络的人体行为识别算法经过UCF101和HMDB51数据集的验证,在识别准确率和模型压缩方面均优于原始C3D网络以及其他流行算法;
2)虽然本文方法在识别精度和模型压缩方面都有一定的改善,但是改进后的整体模型结构却比较复杂,容易产生过拟合,并且增加了模型的整体计算时间;
3)在之后的研究中考虑引入注意力机制以及对网络进行残差形式的连接,来进一步增强对于有效特征的关注,并且防止由于模型过于复杂导致的过拟合现象发生;
4)本文引入的三维点卷积、卷积核合并形式以及构建的全卷积网络结构可以为之后改善模型识别效果提供很好的改进思路,并且本文的模型压缩方法可以让人体行为识别系统更方便地嵌入到移动设备中,对于实际应用具有很好的价值。
[1] | LAPTEV I, LINDEBERG T. Space-time interest points[C]//Proceedings of the 9th IEEE International Conference on Computer Vision. Nice, France, 2003: 432–439. (0) |
[2] | WANG Heng, SCHMID C. Action recognition with improved trajectories[C]//Proceedings of 2013 IEEE International Conference on Computer Vision. Sydney, Australia, 2013: 3551–3558. (0) |
[3] | KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C]//Proceedings of the 25th International Conference on Neural Information Processing Systems. Lake Tahoe, Nevada, 2012: 1097–1105. (0) |
[4] | JI Shuiwang, XU Wei, YANG Ming, et al. 3D convolutional neural networks for human action recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2013, 35(1): 221-231. DOI:10.1109/TPAMI.2012.59 (0) |
[5] | TRAN D, BOURDEV L, FERGUS R, et al. Learning spatiotemporal features with 3D convolutional networks[C]//Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago, Chile, 2015: 4489–4497. (0) |
[6] | 丁红, 饶万贤. 基于深度学习的人体行为检测系统设计[J]. 电子技术与软件工程, 2019(9): 79-80. (0) |
[7] | 韩雪平, 吴甜甜. 基于深度学习的人体行为识别算法[J]. 数学的实践与认识, 2019, 49(24): 133-139. (0) |
[8] | 黄潇逸. 基于骨骼关节点投影特征的人体行为识别方法[J]. 现代计算机, 2019(36): 3-7. DOI:10.3969/j.issn.1007-1423.2019.36.001 (0) |
[9] | 叶青, 杨航. 基于深度学习的人体行为识别网络设计[J]. 中国科技信息, 2020(10): 91-94. (0) |
[10] | KOCABAS M, KARAGOZ S, AKBAS E. Self-supervised learning of 3D human pose using multi-view geometry[C]//Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, USA, 2019: 1077–1086. (0) |
[11] | LI Maosen, CHEN Siheng, ZHAO Yangheng, et al. Dynamic multiscale graph neural networks for 3D skeleton based human motion prediction[C]//Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Seattle, USA, 2020: 214–223. (0) |
[12] | ZHANG Xikun, XU Chang, TAO Dacheng. Context aware graph convolution for skeleton-based action recognition[C]//Proceedings of 2020 IEEE/CVF Computer Vision and Pattern Recognition. Seattle, USA, 2020: 14321–14330. (0) |
[13] | NAIR V, HINTON G E. Rectified linear units improve restricted Boltzmann machines[C]//Proceedings of the 27th International Conference on Machine Learning. Haifa, Israel, 2010: 807–814. (0) |
[14] | HENDRYCKS D, GIMPEL K. Bridging nonlinearities and stochastic Regularizers with Gaussian error linear units[EB/OL]. (2016–07–27)[2021–02–25].https://arxiv.org/pdf/1606.08415v1. (0) |
[15] | LIN Min, CHEN Qiang, YAN Shuicheng. Network in network[EB/OL]. (2014–03–04)[2021–02–25]. https://arxiv.org/pdf/1312.4400v3. (0) |
[16] | SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[EB/OL]. (2015–04–10)[2021–02–25]. https://arxiv.org/pdf/1409.1556v6. (0) |
[17] | 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. Lille, France: JMLR. org, 2015: 448–456. (0) |
[18] | SZEGEDY C, VANHOUCKE V, IOFFE S, et al. Rethinking the inception architecture for computer vision[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, USA, 2016: 2818–2826. (0) |
[19] | TRAN D, RAY J, SHOU Zheng, et al. ConvNet architecture search for spatiotemporal feature learning[EB/OL]. (2017–08–16)[2021–02–27]. https://arxiv.org/pdf/1708.05038v1. (0) |
[20] | FEICHTENHOFER C, PINZ A, WILDES R P. Spatiotemporal residual networks for video action recognition[C]//Proceedings of the 30th International Conference on Neural Information Processing Systems. Barcelona, Spain, 2016: 3476–3484. (0) |
[21] | SRIVASTAVA N, MANSIMOV E, SALAKHUTDINOV R. Unsupervised learning of video representations using LSTMs[C]//Proceedings of the 32nd International Conference on Machine Learning. Lille, France, 2015: 843–852. (0) |