文章信息
- 范晓杰, 宣士斌, 唐凤
- FAN Xiao-jie, XUAN Shi-bin, TANG Feng
- 基于Dropout卷积神经网络的行为识别
- Realistic Human Action Recognition based on Dropout Convolution Neural Network
- 广西民族大学学报 (自然科学版), 2017, 23(1): 76-82
- Journal of Guangxi University for Nationalities (Natural Science Edition), 2017, 23(1): 76-82
-
文章历史
- 收稿日期: 2016-12-02
实时的视频行为识别是一项很有挑战性的工作,近几年受到越来越多的关注,并取得了一定的成果.行为识别具有很大的现实意义和社会需求,如视频监控、人机交互等领域都得到了广泛的关注,但高准确率的性能仍然是人们探索的目标.在这方面研究的早期方法主要利用词袋模型或者是它的变体,[1]主要包括特征提取,特征编码以及分类等主要步骤.这些方法的性能高度依赖于手动提取特征的性能.Laptev[2]提出了时空兴趣点的行为识别方法.Wang等人[3]进一步利用了轨迹特征来模拟连续帧间的时间关系.Kviatkovsky[4]等人提出了协方差描述子来实现实时的行为识别.现在比较高效的用于描述图像特征的描述子主要包括HOG, [5] HOF, [2] MBH. [6]特征编码技术主要包括VLAD, [7] Fisher Vector. [8]最近深度神经网络的复兴加速图像分类的研究进展.卷积神经网络是一种典型的深度学习[9]方法.卷积神经网络 (CNN)[10]可以从较大的图像数据库中学习效果比较好的特征,大大减轻手动特征的设计难度.大量的实验证明,CNN在各种图像和视频分类任务中取得了很好的性能,如ImageNet对象分类,[11]人脸识别,[12]以及时间分类. [13]这些成果激励研究者们使CNN扩展到视频分类任务. [14-16]文献[17-18]通过设计3D滤波器对时间信息进行建模并直接从视频中学习特征.不像2D滤波器用于图像分类,3D滤波器可以学习连续RGB帧间的时间关系. Simonyan和Zisserman [18]提出了由RGB和光流组成的双流架构,分别用于捕捉外观信息和运动信息,这种方法在实践中实现了卓越的性能.吴杰[19]使用多层感知器设计出了全新网络框架,并使用时空金字塔进行下采样.
本文遵循文献[17]中3D CNN的神经网络框架,使用Gabor小波核对卷积核进行初始化,Gabor小波核能够模拟人类视觉系统对视觉刺激的响应,更准确地提取原始图像信息,提供更丰富的信息特征作为网络的输入;卷积神经网络模型在训练阶段受训练样本数量的影响较大,同时也会影响模型的泛化能力.因此在一定样本的前提下,防止模型过拟合很有必要.Dropout技术是一种很好地防止过拟合技术,因此,本文在网络的训练阶段加入Dropout技术来随机选择部分神经元并将其输入设置为0,从而随机变化网络的连接结构,提高了网络的泛化能力,使得网络具有更好的适应性.
1 3D CNN神经网络3D CNN[16]是一种深度网络模型,可以用于视频行为识别.该网络模型可以从视频序列中提取时间和空间维度的特征,然后进行3D卷积,从而可以获得视频序列的运动信息.
1.1 三维卷积在处理视频的过程中,需要从视频序列中提取运动信息,因此需要使用三维卷积核来对视频序列进行卷积.三维卷积是由连续的视频序列组成一个视频体,然后在视频体中使用3D卷积核来进行卷积运算.进行卷积运算时,卷积层中每一个特征图都会与上一层中的多个邻近的连续视频帧相连,因此可以提取连续帧的运动特征.如图 1所示,一个卷积特征图的某一位置的值是通过与上一层的三个连续的帧的同一个位置的局部感受进行卷积得到的.三维卷积的公式如下:
${\upsilon ^{xyz}} = \sum\limits_{p = 0}^{P - 1} {\sum\limits_{q = 0}^{Q - 1} {\sum\limits_{r = 0}^{R - 1} {{\omega ^{pqr}}{u^{\left( {x + p} \right)\left( {x + q} \right)\left( {x + r} \right)}}} } } $ | (1) |
![]() |
图 1 3D卷积示意图 Fig. 1 Schematic diagram of 3D convolution |
其中,w是卷积核,u代表输入,v代表输出,上标代表对应位置的元素值,P, Q, R分别代表三个维度的大小.
卷积核在时间维度上的大小是3,并且连接集合被颜色编码,使得共享权重具有相同的颜色.在3D卷积中,将相同的3D内核应用于输入视频中的重叠3D立方体以提取运动特征.
1.2 3D CNN的总体结构Ji等人[17]设计的3D CNN使用了三维的卷积,对于下采样层依然使用二维的下采样.3D CNN的总体结构如图 2所示.
3D CNN网络结构包括一个硬连线hardwired层、3个卷积层、2个下采样层和1个全连接层.每个3D卷积核卷积的视频立方体是连续7帧的视频序列,每帧patch的尺寸是60×40;下一层称为H1层,对于每一帧都提取5个通道的特征信息,分别为:灰度值、x和y方向的梯度值,x和y方向的光流值.这样就形成了33个二维的feature map (这种描述把每一帧作为一个feature map),其中,7个灰度feature map,14个梯度feature map和12个光流feature map.提取的5种特征在网络结构中形成了5个通道.
接下来我们使用一个7×7×3大小的3D卷积核 (空间维是7×7,时间维是3) 分别在5个通道中的每一个通道进行卷积.为了获得更多的特征map (也就是提取不同的特征),我们对于每一个位置都使用两种不同的卷积核,这样在C2层,每个特征maps组都包含23个特征maps.这样将会得到46个二维的feature map,每一个feature map的尺寸是54×34.
然后紧接着的下采样层S3 max pooling层,我们对于C2层的每个特征maps都使用2×2大小的窗口进行下采样,这样就会获得同样数量但是空间分辨率降低的46个尺寸为27×17的特征maps.
C4是在5个通道中分别采用7×6×3的3D卷积核.为了获得更多的特征maps,我们对于每一个位置都使用3种不同的卷积核进行卷积操作,这样就可以获得6组不同的特征maps,每组都包含13个特征maps.所以这一层,共有6×13个二维feature map,每个二维feature map的尺寸为21×12.
S5层采用的是3×3大小的下采样窗口,这样使得feature map的分辨率变成了7×4.
C6层共有128个特征map,每个特征map都与S5层中所有的特征maps进行全连接,这样就形成了128个1×1的feature map.
在上述多层卷积与下采样之后,输入帧就转化成了128维的特征向量,这个特征向量包含了输入序列的运动信息.在输出层,由一些输出单元组成,这些输出单元的个数和待分类的个数一致,每个单元全连接于上一层的128维的特征向量.
该模型中的所有神经元激活函数使用的是双曲线正切tanh函数.该网络在KTH数据库上的精确率达到90.2%.
2 基于Dropout的3D CNN本文设计的3D CNN网络模型要使用Gabor小波滤波器来进行初始化卷积核,以及Dropout技术,所以先简单介绍一下Gabor小波滤波器的特征和Dropout技术.然后再详细描述本文设计的3D CNN网络模型.
2.1 Gabor小波滤波器Gabor小波变换采用的卷积核 (Kernels) 与哺乳动物视觉皮层简单细胞2D感受视野剖面 (Profile) 很接近,具有很不错的空间局部性和方向选择性,可以捕捉图像局部区域内多方向多尺度和局部性结构特征.而且在特征提取的过程中,Gabor小波变换比其他方法更具优越性:Gabor小波变换处理的数据量较少,可以满足系统的实时性需求;另外,小波变换对光照的变化不敏感,还可以接受一定程度的图像旋转和变形,所以可以提高系统的鲁棒性.图像与Gabor小波核进行卷积后可以获得图像对于滤波器的响应,我们称之为Gabor小波特征.Gabor小波特征具有比较好的空间局部性和方向选择性,并且对光照、姿态变化具有一定的鲁棒性,这些特点使Gabor小波被广泛应用于视觉信息理解.因此在本文的网络输入中,采用Gabor小波核来初始化卷积层,获得更丰富的输入信息.二维Gabor函数的公式如下:
复数表达:
$\begin{array}{l} \quad \quad g\left( {x,y;\lambda ,\theta ,\sigma ,\gamma } \right) = \exp \left( { - \frac{{{x^{\prime 2}} + {\gamma ^2}{y^{\prime 2}}}}{{2{\sigma ^2}}}} \right)\\ \exp \left( {i\left( {2\pi \frac{{{x^\prime }}}{\lambda } + \phi } \right)} \right) \end{array}$ | (2) |
实部:
$\begin{array}{l} \quad \quad g\left( {x,y;\lambda ,\theta ,\sigma ,\gamma } \right) = \exp \left( { - \frac{{{x^{\prime 2}} + {\gamma ^2}{y^{\prime 2}}}}{{2{\sigma ^2}}}} \right)\\ \cos \left( {2\pi \frac{{{x^\prime }}}{\lambda } + \phi } \right) \end{array}$ | (3) |
虚部:
$\begin{array}{l} \quad \quad g\left( {x,y;\lambda ,\theta ,\sigma ,\gamma } \right) = \exp \left( { - \frac{{{x^{\prime 2}} + {\gamma ^2}{y^{\prime 2}}}}{{2{\sigma ^2}}}} \right)\\ \sin \left( {2\pi \frac{{{x^\prime }}}{\lambda } + \phi } \right) \end{array}$ | (4) |
其中,
${x^\prime }{\rm{ = }}x\cos \theta + y\sin \theta $ | (5) |
${y^\prime }{\rm{ = - }}x\sin \theta + y\cos \theta $ | (6) |
公式中:λ为正弦函数波长;θ为Gabor核函数的方向;ψ为相位偏移;σ为高斯函数的标准差;γ为空间的宽度比.使用小波对其进行一定的尺度变换和旋转变换,可以得到Gabor小波滤波器.使用Gabor小波核来对图像进行卷积,不仅可以得到不同方向的响应还能得到不同尺寸的响应.因此本文使用Gabor小波核来进行卷积核初始化并对图像进行卷积,得到不同方向和尺度的特征.
2.2 Dropout技术Dropout技术[20]可以有效地防止网络过拟合,是一种有效地提高网络泛化的方法.Dropout是指在深度学习网络的过程中,对于神经网络单元,以概率p将其暂时从网络中丢弃,同时将当前输出设置为0,在训练完成的时候,使用了Dropout的层的每一个单元的参数要乘以p.暂时是指这些被丢弃的神经元在下次训练的过程中又恢复其之前的值,再次随机选取部分神经元重复这个过程.由于神经元是随机丢弃的,故而对于每一次训练网络都在发生变化.这样的设计可以避免网络对于某一局部特征的过拟合.实验中设置Dropout率为0.5,即随机输出50%的神经元.图 3是加入Dropout的全连接层神经元的连接示意图,图中包括分类阶段的两层神经元和一层输出层神经元.两层神经元的Dropout率.
![]() |
图 3 加入Dropout技术的全连接层神经元连接示意图 (Dropout率为0.5) Fig. 3 Schematic diagram of all connected neuron connections with Dropout technique (Dropout = 0.5) |
2.3 改进的Dropout 3D CNN的网络结构
本文设计的3D CNN网络模型与原始的3D CNN有不同的初始化参数,而且在网络训练过程中加入了Dropout技术来提高网络的泛化能力.接下来将对改进后的3DCNN进行详细介绍.
首先,把一段连续的视频帧作为整个网络的输入,每帧patch大小是60×40.在H1层,手动选取一些视频特征生成多个信息通道,分别为:灰度、x方向且小尺度的Gabor小波特征,x方向且大尺度的Gabor小波特征,y方向且小尺度的Gabor小波特征,y方向且大尺度的Gabor小波特征,x和y方向的光流.这样就形成了7个通道的47个二维的featrue map (这种描述把每一帧作为一个feature map),其中,7个灰度feature map,28个Gabor小波feature map和12个光流feature map.这5种特征在网络中形成了7个通道.
接下来我们用一个尺寸为7×7×3的3D卷积核 (空间维是7×7,时间维是3) 在7个通道的每一个通道分别进行卷积操作.为了获得更多的特征map数量 (也就是提取不同的特征),我们对于每一个位置都使用两种不同的卷积核,这样在C2层,每个特征maps组都包含35个特征maps.这样将会得到70个二维的feature map,每一个feature map的尺寸是54×34.
然后紧接着的下采样层S3 max pooling层,我们对于C2层的每个特征maps都使用2×2窗口进行下采样,这样就会获得同样数量但是空间分辨率降低的70个尺寸为27×17的特征maps.
C4是在7个通道中分别采用7×6×3的3D卷积核.为了获得更多的特征maps,我们对于每一个位置都使用3种不同的卷积核进行卷积操作,这样就可以获得6组不同的特征maps,每组都包含19个特征maps.所以这一层,共有6×19个二维feature map,每个二维feature map的尺寸为21×12.
S5层采用的是3×3的下采样窗口,这样使得feature map的分辨率变成了7×4.
C6层共有128个特征map,每个特征map都与S5层中所有的特征maps进行全连接,这样就形成了128个1×1的feature map.
在上述多层卷积与下采样之后,输入帧就转化成了128维的特征向量,这个向量包含了输入序列的运动信息.在输出层,由一些输出单元组成,这些输出单元的个数和待分类的个数一致,每个单元全连接于上一层的128维的特征向量.
该网络模型的所有神经元中,都使用双曲正切tanh函数作为激活函数.
2.4 原3D CNN与改进的Dropout 3D CNN的对比1) 使用Gabor小波特征来代替梯度通道.
Gabor小波特征具有比梯度特征更强的表达能力,不仅可以在小尺度上提取梯度相似的信息,还可以在大尺度上提取类似纹理、边缘特征.使用Goabor小波特征作为3D CNN的输入,可以提高网络的准确率.
2) 改进的3D CNN比原3D CNN有更多的卷积核与feature map.
卷积核的多少关系到特征种类的多少,直接影响到网络的表达能力.原3D CNN中的第一个卷积层有10个卷积核,第二层有30个卷积核.而改进后的3D CNN中,第一个卷积层有14个卷积核,第二个卷积层有42个卷积核.这样提取的特征会更多,网络模型的表达会更强.
3) 在网络训练过程中加入Dropout技术,提高了网络的泛化能力,使得网络具有更好的适应性.
3 实验与分析 3.1 算法流程卷积神经网络的实现流程与传统的神经网络一样,包括前向和后向计算两个阶段.前向阶段从网络的输入开始,计算到网络的输出.后向阶段从网络的输出开始,逐层返回计算的误差,然后根据误差来更新网络模型的参数.
在训练网络阶段,使用随机梯度下降算法,每次从样本序列中随机选取一个样本进行梯度下降算法.算法步骤如下:
1) 设置迭代次数的上限为N,每迭代一次,迭代次数n加1,迭代次数大于上限N,退出程序.
2) 随机排列所有训练样本.
3) 从训练样本中读取一个样本输入网络,计算相应的输出值.当所有训练样本被遍历完毕,且所有样本的实际网络输出与标签的误差小于阈值T,则退出程序.如果存在训练样本的误差大于T,转到1).
4) 如果3) 步的实际输出值与样本标签的误差大于阈值T,则按极小误差进行后向误差传播,并调整权值矩阵,然后转到3).
在测试阶段,用训练好的网络对所有的测试样本进行前向操作.如softmax的实际输出值与理想输出值一致,则判定该测试样本的结果正确,否则错误.
3.2 网络的实现在3.0 GHz CPU、32位Windows 7操作系统、Matlab 2012a的实验环境下,在UCF-YouTube、KTH两个数据库上验证改进的3D CNN网络.
实验采用本文改进的3D CNN网络框架.使用一个连续9帧的视频块作为输入并提取前景特征.将每一帧都裁剪为80×60的灰度图像来减少计算量.使用第2.3节介绍的改进3D CNN网络结构,输入为80×60×9的视频块,三个卷积层使用的核的大小分别为9×7, 7×7,6×4,两个下采样层使用的核的大小为3×3.使用这样的网络结构,输入的80×60×9的视频块被转化为128维的特征向量.最后层由对应于6个类的6个单元组成.使用批量随机梯度下降算法迭代200次,输入样本达到50个进行一次权值调整.网络学习率设置为0.1,下采样层采用maxpooling采样.
3.2.1 基于KTH数据集的网络实现本文在KTH[21]数据上评估3D CNN模型,该数据库由25个受试者执行的6个动作类别组成.如在文献[17]中一样,对于每个动作类随机选择16个对象用来训练,其余9个动作对象用来测试.改进的3D CNN模型在KTH数据集上达到93.8%的识别精度,实验结果的混淆矩阵如图 4所示.
![]() |
图 4 改进的3D CNN在KTH数据集上的混淆矩阵 Fig. 4 The confusion matrix of the improved 3D CNN on the KTH dataset |
从图 4可以看出,改进后的3D CNN在识别精度上要优于原3D CNN.这也表明了本文的方法改进了以往的卷积神经网络在行为识别上的性能.表 1将本文的方法与当前最新水平的方法进行比较,结果显示本文的方法超过了大多数的方法.
3.2.2 基于UCF-YouTube数据集的网络实现
对于UCF-YouTube[25]体育活动数据集,该数据具有复杂的环境和场景变化,还有视角、尺度、光照等的变化,是一个极具挑战的行为识别数据库.该数据库包含11种行为,每种行为在25种不同的场景下完成.实验中,对于每个动作类随机选择16个对象用来训练,其余9个动作对象用来测试.改进的3D CNN模型在UCF-YouTube数据集上达到80.7%的识别精度,实验结果的混淆矩阵如图 5所示.
![]() |
图 5 改进的3D CNN在UCF-YouTube数据集上的混淆矩阵 Fig. 5 The confusion matrix of the improved3D CNN on the UCF-YouTube dataset |
从图 5可以看出,改进后的3D CNN在识别精度上达到80.7%.原方法没有在UCF-YouTube数据集上进行验证.表 2将本文的方法与当前最新水平的方法进行比较,结果显示本文的方法超过了大多数的方法.
4 结语
本文设计并实现了3D CNN在视频识别上应用.将Gabor小波滤波器用于初始化卷积操作,获得更丰富的输入信息.并在网络训练过程中加入Dropout技术,提高了网络的泛化能力,使得网络具有更好的适应性.在KTH和UCF-YT数据集上进行实验.实验表明:本文设计的3D CNN网络模型具有很好的识别效果.接下来的工作,将进一步优化网络模型,达到更好的行为识别效果.
[1] | X. Peng, L. Wang, X. Wang, and Y. Qiao. Bag of visual words and fusion methods for action recognition: Comprehensive study and good practice[J]. CoRR, 2014, abs/1405.4506. |
[2] | I. Laptev. On space-time interest points[C]. IJCV, 2005, 64(2-3):107-123. |
[3] | H. Wang and C. Schmid. Action recognition with improved trajectories[C]. In ICCV'13, 2013:3551-3558. |
[4] | Kviatkovsky I, Rivlin E. Shimshoni. Online action recognition using covariance of shape and motion[J]. CVIU, 2014, 129: 15–26 |
[5] | N. Dalal and B. Triggs. Histograms of oriented gradients for human detection[C]. In CVPR'05, 2005:886-893. |
[6] | N. Dalal, B. Triggs, and C. Schmid. Human detection using oriented histograms of flow and appearance[C]. In ECCV'06, 2006:428-441. |
[7] | H. J'egou, M. Douze, C. Schmid, and P. P'erez. Aggregating local descriptors into a compact image representation[C]. In CVPR'10, 2010:3304-3311. |
[8] | J. S'anchez, F. Perronnin, T. Mensink, and J. Verbeek. Image classification with the fisher vector: Theory and practice[C]. IJCV, 2013, 105(3):222-245. |
[9] | 刘建伟, 刘媛, 罗雄麟. 深度学习研究进展[J]. 计算机应用研究, 2014, 31(7): 1921–1942. |
[10] | LeCun Y, Bengio Y. Convolutional networks for images, speech, and time series[J]. The handbook of brain theory and neural networks, 1995, 3361(10) |
[11] | Krizhevsky A, Sutskever I, Hinton G. E. Imagenet classification with deep convolutional neural networks[J]. In NIPS'12, 2012: 1097–1102 |
[12] | Y. Taigman, M. Yang, M. Ranzato, and L. Wolf. Deepface: Closing the gap to human-level performance in face verification[C]. In CVPR'14, 2014: 1701-1708. |
[13] | C. Gan, N. Wang, Y. Yang, D.-Y. Yeung, and A. G. Hauptmann. Devnet: A deep event network for multimedia event detection and evidence recounting[C]. In CVPR'15, 2015: 2568-2577. |
[14] | A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. Fei-Fei. Large-scale video classification with convolutional neural networks[C]. In CVPR'14, 2014:1725-1732. |
[15] | K. Simonyan and A. Zisserman. Two-stream convolutional networks for action recognition in videos[C]. In NIPS'14, 2014:568-576. |
[16] | D. Tran, L. D. Bourdev, R. Fergus, L. Torresani, and M. Paluri. C3D: generic features for video analysis[J]. CoRR, 2014, abs/1412.0767. |
[17] | Ji S, Xu W, Yang M, Yu K. 3d convolutional neural networks for human action recognition[J]. PAMI, 2013, 35(1): 221–231 DOI:10.1109/TPAMI.2012.59. |
[18] | K. Simonyan and A. Zisserman. Two-stream convolutional networks for action recognition in videos[C]. In NIPS'14, 2014:568-576. |
[19] | 吴杰, 基于卷积神经网络的行为识别研究[D]. 成都: 电子科技大学, 2015. |
[20] | Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. ar Xiv preprint, 2012, ar Xiv:1207.0580. |
[21] | Schüldt C, Laptev I, Caputo B. Caputo.Recognizing Human Actions: A Local SVM Approach[J]. Proc. 17th Int'l Conf. Pattern Recognition, 2004: 32–36 |
[22] | Wang Y, Mori G. Max-margin hidden conditional random fieldsfor human action recognition[C]. In: Proc.CVPR, Miami, US, 2009:872-879. |
[23] | Yeffet L, Wolf L. Local trinary patterns for human action recognition[C]. In: Proc.ICCV, Kyoto, Japan, 2009:492-497. |
[24] | Zhang Y, Liu X, Chang MC, et al. Spatio-temporal phrasesfor activity recognition[C]. In: Proc. ECCV, Florence, Italy, 2012: 707-721. |
[25] | LIU J, LUO J, SHAN M.Recognizing realistic actions from videos "in the wild"[C].Proceedings of the Computer Vision and Pattern Recognition (CVPR), 2009. |
[26] | Liu J, Yang Y, Shah M. Learning semantic visual vocabulariesusing diffusion distance[C]. In: Proc.CVPR, Miami, US, 2009: 461-468. |
[27] | Matikainen P, Hebert M, Sukthankar R. Representing pairwisespatial and temporal relations for action recognition[C]. In: Proc.ECCV, Heraklion, Greece, 2010:508-521. |
[28] | Wang H, Klaser A, Schmid C, et al. Dense trajectories and motion boundary descriptorsfor action recognition[J]. International Journal of Computer Vision (IJCV), 2013, 103(1): 60–79 DOI:10.1007/s11263-012-0594-8. |