近年来, 随着模式识别和机器视觉技术的飞速发展, 准确、快速地识别视频中的人体行为已经成为一个重要的研究方向, 在智能监控、人机交互、医疗看护等众多领域都有着广泛的应用前景[1]。人体行为识别的过程就是通过分析视频序列中人体图像的相关性, 提取变化特征, 从而确定人体的行为模式, 因此特征提取是其中最关键的一个环节。现有的行为特征提取方法分为人工设计特征的提取方法[2-4]和基于深度学习模型的特征提取方法[7]。基于人工设计特征的行为识别方法主要提取视频的浅层特征, 存在不完整性的缺陷, 对复杂的人体行为识别效果较差;而近年提出的基于深度学习模型的人体行为识别方法可以无监督地通过训练从视频中获得局部特征, 从而提高了复杂人体行为的识别能力, 目前已成为人体行为识别的研究热点。
深度学习概念由Hinton等[5]提出, 作为机器学习领域的一次革命, 目前已在图像处理、语音识别等问题上成功应用。特别是以微软、谷歌、百度为代表的互联网公司, 利用大数据为训练样本, 在文本翻译、图像识别等方面实现了跨越式发展[6]。
Hinton等[7]将深度学习应用于人体行为识别, 提出了GRBM(gate restricted boltzmann machine)模型, 在原有深度学习RBM模型[5]的可见层引入了一个Gate变量, 将视频中相邻帧之间的关系作为二阶统计特性, 相较于只有一阶统计特性的原来模型来说, 它具有更好的特征提取能力, 提高了人体行为识别率。但是, GRBM模型模型参数较多, 模型训练过程的计算复杂度较高, 所以只能应用于较为简单的人体行为数据库, 无法满足复杂动作及背景下的人体行为识别需求。
针对GRBM模型上述缺陷, 结合视频转化为图像后具有平稳性的特点, 本文拟将卷积神经网络[8](convolutional neural network, CNN)中的卷积策略引入GRBM模型, 建立一种带有卷积层和池化层的GRBM模型, 可提高人体行为局部特征的提取能力;同时利用池化层操作降低参数复杂度, 进而提高人体行为识别的整体性能。
1 深度学习模型 1.1 GRBM模型GRBM模型的主要思路是通过已知的可见层单元分布捕捉更多关联条件, 增加一个代表可见层与隐含层关、系的关联层变量x′i, 进而推测出下一时刻的变量值。为了更接近实际情况, 在能量函数的定义过程中会在变量中又增加了Gate偏移量, 依条件转换变量单元, 包含有标准偏移量以及Gate偏移量的GRBM的能量函数表示为
$ \begin{array}{*{20}{c}} {E\left( {h,x\left| {x'} \right.} \right) = - \sum {{\mathit{\boldsymbol{W}}_{ijk}}{x_i}{h_j}{{x'}_k}} - }\\ {\sum\limits_{jk} {\mathit{\boldsymbol{W}}_{jk}^{hx'}{h_j}{{x'}_k}} - \sum\limits_j {\mathit{\boldsymbol{W}}_j^h{h_j}} - \sum\limits_k {\mathit{\boldsymbol{W}}_k^{x'}{{x'}_k}} } \end{array} $ | (1) |
式中:Wijk是一个与三个变量相关的关联矩阵, 用来表示各个参数之前连接概率的权重;xi和hj分别表示可见层与隐含层的分布。以此定义的能量函数的负数就代表可见层与二项分布的关联层以及隐含层的关系。
$ p\left( {h,x\left| {x'} \right.} \right) = \frac{1}{{z\left( x \right)}}{{\rm{e}}^{ - E\left( {h,x';x} \right)}} $ | (2) |
其中
$ Z\left( x \right) = \sum\limits_{x',h} {{{\rm{e}}^{ - E\left( {h,x';x} \right)}}} $ | (3) |
是一个关于可见层变量xi的标准化函数。
根据联合概率分布的公式以及能量函数的定义, 可以推论出x′k和hj的边缘概率分布:
$ P\left( {{{x'}_k} = 1\left| {x,h} \right.} \right) = \frac{1}{{1 + \exp \left( { - \sum\limits_{ij} {{\mathit{\boldsymbol{W}}_{ijk}}{x_i}{h_j}} } \right)}} $ | (4) |
$ P\left( {{h_j} = 1\left| {x,x'} \right.} \right) = \frac{1}{{1 + \exp \left( { - \sum\limits_{ik} {{\mathit{\boldsymbol{W}}_{ijk}}{x_i}{{x'}_k}} } \right)}} $ | (5) |
卷积神经网络(CNN)的基本结构包括两层, 分别是卷积层和池化层。其中, 每一个卷积层都紧跟着一个池化层用来求局部平均, 并完成二次特征提取, 网络连接中的权值共享机制也减少了网络自由参数的个数。
如图 1所示, 以28*28大小的输入图像为例, 定义第一层卷积层卷积核大小为5*5, 可以理解为随机生成的5*5的权重矩阵与输入数据进行卷积, 提取输入图像在整个数据库上局部区域的共同特性, 特征图谱个数为2代表提取两类特征。
![]() |
图 1 CNN的模型示意图 Fig.1 Schematic diagram of CNN model |
第一层池化层卷积核大小为13*13, 通过不重叠的卷积方式, 对特征图谱池化区域不同位置上的特征进行聚合统计, 降低第一层提取特征的输出维度, 同时保证从卷积层输入的特征具有不变性。第二层操作原理与前一层相同, 卷积层卷积核大小为5*5, 特征图谱个数为2, 池化层卷积核大小为5*5。整个过程采用权值共享机制, 进而网络中参数的数量级也会有所降低。
卷积神经网络是一种特殊的深层神经网络模型, 它的特殊性体现在:1) 卷积计算突出局部计算结果;2) 网络神经元间的连接是非全连接的, 网络中同一层中某些神经元之间的连接权重是共享的。上述特性可提高模型局部特征提取能力, 同时减少了权值的数量, 降低了计算复杂度, 进而提高网络模型整体性能。
2 基于C-GRBM模型的人体行为识别对于人体行为识别问题, 通常可转化为连续帧图像之间的特征提取问题。GRBM模型在RBM模型基础上引入Gate变量, 将相邻帧之间的关系作为二阶统计特性, 提高模型特征提取能力。然而在模型训练过程中, 可见层与隐含层之间的连接一般都是全连接, 运算难度会随着维数的增加而急剧增加。
由于视频中相邻两帧之间的统计特性具有平稳性, 所以可见层和卷积层之间可以通过卷积运算进行特征提取, 从而降低了参数维度。而对于每一帧图像, 同样具有平稳性, 其某部分的统计特性也可以用在图像的其他位置, 所以卷积层与池化层可以在连接单元之间增加限制条件, 使每一帧图像的局部区域连接相同的权重值, 进一步减少模型参数数量, 降低参数复杂度。
综上, 将CNN中的卷积层与池化层引入到GRBM模型中, 得到C-GRBM深度学习模型, 利用CNN的特点以及GRBM模型本身的特性可更好地提取人体行为的局部特征, 从而提高识别率, 同时降低了计算复杂度。
2.1 C-GRBM模型的建立C-GRBM模型示意图如图 2所示, 模型由当前时刻可见层、前一时刻可见层、卷积层以及池化层组成, 分别用V、V′、Hc和Hp表示。与GRBM模型类似, 当两个可见层大小相同时, 两层的神经元数量相同, 且均为NV×NV, 所有的可见层共享偏移量为ci。
![]() |
图 2 C-GRBM的模型示意图 Fig.2 Schematic diagram of C-GRBM model |
与GRBM模型不同的是, 本文将CNN中的卷积层引入模型以后, 卷积层由k组神经元组成, 每组神经元数量为NC×NC, 即卷积层共有k×Nc2个神经元。每一组的卷积层对应着一个卷积核, 所有的卷积层共享偏移量bij。Wck和W′ck分别代表可见层与卷积层之间的卷积核以及前一时刻可见层与卷积层之间的卷积核。从可见层到卷积层的操作相当于有一个滑动窗口来过滤图像的各个小区域, 从数学角度解释即是用卷积核与可见层图像卷积然后求和, 从而得到这些小区域的特征值。通常卷积核有多个, 每个卷积核代表了一种图像特征, 而卷积核的值是在训练过程中确定的。
由于图像具有平稳分布的特性, 且各个位置上的特征具有相似性, 也就是一个图像区域有用的特征在另一个区域同样适用, 所以为了对卷积层输出的特征向量进行降维处理, 同时改善结果, 避免出现过拟合现象, 在卷积操作之后对不同位置的特征进行聚合统计, 也就是将CNN中的池化层引入模型。Wp代表卷积层与池化层之间的卷积核, 池化层的神经元个数与卷积层相同。
如图 3所示, 以8*8的图像进行说明。选取4*4的卷积核(通常池化层所采用的卷积核为一个2~4常数), 卷积核采用不重复的策略与图像进行卷积, 本文选取的平均池化策略就是通过计算图像卷积区域的平均值作为该区域池化后的值。
![]() |
图 3 平均池化操作示意图 Fig.3 Schematic diagram of the mean pooling operation |
在GRBM模型中添加卷积层与池化层以后, 根据统计力学中的能量模型原理[9], 在式(1) 的基础上结合卷积运算, 可推导出改进后的C-GRBM模型能量函数:
$ \begin{array}{*{20}{c}} {E\left( {V,V',{H_C}} \right) = \frac{1}{2}\sum {{{\left( {{V_i} - {c_i}} \right)}^2}} - }\\ {\sum\limits_{f = 1}^{{N_f}} {\sum\limits_{i,j = 1}^{{N_c}} {\left( {H_{ci,j}^f\left( {{\mathit{\boldsymbol{W}}_{ck}} * {V_i}} \right) \cdot \left( {{{\mathit{\boldsymbol{W'}}}_{ck}} * {{V'}_i}} \right)} \right)} } - }\\ {\sum\limits_{f = 1}^{{N_f}} {\sum\limits_{i,j = 1}^{{N_c}} {{b_f}H_{ci,j}^f} } } \end{array} $ | (6) |
在式(6) 的能量函数中, 等号之后的第一项表示当前状态可见层的能量, 第二项表示卷积隐含层的能量, 第三项表示可见层与卷积隐含层之间的能量。
根据改进模型的能量函数式(6), 可以推导出可见层与隐藏层之间的联合概率:
$ \begin{array}{*{20}{c}} {P\left( {V',V,{H_C}} \right) = \frac{{\exp \left( { - E\left( {v,v',{h_c}} \right)} \right)}}{{Z\left( x \right)}} = }\\ {\frac{{\exp \left( { - E\left( {v,v',{h_c}} \right)} \right)}}{{\int\limits_v {\sum\limits_{{h_c}} {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right){\rm{d}}v} } }}} \end{array} $ | (7) |
这个联合概率分布又称作Gibbs分布, 当模型的Gibbs分布最大可能拟合输入数据时, 模型与输入数据更加接近, 变量之间的相关性捕捉更加准确[10]。理想情况下, 当模型的Gibbs分布与输入数据完全拟合时表示模型可以完成特征提取。
本文使用输入数据概率分布与模型边缘概率分布的KL距离表示上述拟合度。定义Ω表示样本空间, q(x)表示输入数据x的概率分布;p(x)表示C-GRBM网络的Gibbs分布的边缘概率分布, 两者之间的KL距离可以定义:
$ \begin{array}{*{20}{c}} {{\rm{KL}}\left( {q\left\| p \right.} \right) = \sum\limits_{x \in \mathit{\Omega }} {q\left( x \right)\ln \frac{{q\left( x \right)}}{{p\left( x \right)}}} = }\\ {\sum\limits_{x \in \mathit{\Omega }} {q\left( x \right)\ln q\left( x \right)} - \sum\limits_{x \in \mathit{\Omega }} {q\left( x \right)\ln p\left( x \right)} } \end{array} $ | (8) |
式(8) 中的第一项仅与q(x)有关, 因而当输入数据确定时, 式(8) 的结果取决于第二项的取值。所以, 当第二项取最大值时, KL距离才能取最小值, 才可以实现与输入数据的最大拟合。这一项的最大值可以通过对输入数据取最大似然估计求得。
在求解最大似然概率时, 定义模型参数集合为θ={Wck, W′ck, ci, bij}。
则其似然函数表达式:
$ L\left( {\theta \left| v \right.} \right) = \prod\limits_v {p\left( v \right)} $ | (9) |
对上述似然函数取对数, 整理后进行求导运算, 求导结果:
$ L\left( {\theta \left| v \right.} \right) = \frac{{\partial \ln L\left( {\theta \left| v \right.} \right)}}{{\partial \theta }}\sum {\frac{{\partial \ln p\left( v \right)}}{{\partial \theta }}} $ | (10) |
将式(7) 代入式(10) 中, 可以得到似然函数的梯度表达式:
$ \begin{array}{*{20}{c}} {\frac{{\partial \ln p\left( v \right)}}{{\partial \theta }} = \frac{{\partial \ln \int\limits_{v'} {\sum\limits_{{h_c}} {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right){\rm{d}}v'} } }}{{\partial \theta }} = }\\ {\frac{{\partial \ln \int\limits_{v'} {\int\limits_v {\sum\limits_{{h_c}} {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right){\rm{d}}v{\rm{d}}v'} } } }}{{\partial \theta }}} \end{array} $ | (11) |
式(11) 的第一项在输入数据给定的情况下是可求的, 而第二项的求解过程却需要对输入数据进行遍历取值, 无法直接计算结果。
针对这个问题, 本文利用参考文献[11]所提出的方法, 将符合Gibbs分布的p(x)进行采样, 并根据采样得到p(x)对模型的四个参数的偏导进行估算, 再通过这些估算得到的偏导值近似表达式(11) 的第二项, 经过若干迭代后最终确定参数θ的取值。模型的四个参数的偏导:
$ \begin{array}{*{20}{c}} {\Delta {\omega ^k} = \eta \cdot \frac{1}{{{n_v}}} \cdot }\\ {\sum\limits_i^m {\left( {p\left( {h\left| {{v^{\left( 0 \right)}},{{v'}^{\left( 0 \right)}}} \right.} \right)\left( {\left( {{{w'}^{\left( 0 \right)}} * {{v'}^{\left( 0 \right)}}} \right) * {{\bar v}^{\left( 0 \right)}}_{{\rm{full}}} - } \right.} \right.} }\\ {p\left( {h\left| {{v^{\left( n \right)}},{{v'}^{\left( n \right)}}} \right.} \right)\left( {\left( {{{w'}^{\left( n \right)}} * {{v'}^{\left( n \right)}}} \right) * {{\bar v}^{\left( n \right)}}_{{\rm{full}}}} \right)} \end{array} $ | (12) |
$ \begin{array}{*{20}{c}} {\Delta {{\omega '}^k} = \eta \cdot \frac{1}{{{n_v}}} \cdot }\\ {\sum\limits_i^m {\left( {p\left( {h\left| {{v^{\left( 0 \right)}},{{v'}^{\left( 0 \right)}}} \right.} \right)\left( {\left( {{w^{\left( 0 \right)}} * {v^{\left( 0 \right)}}} \right) * {{\bar v'}^{\left( 0 \right)}}_{{\rm{full}}} - } \right.} \right.} }\\ {p\left( {h\left| {{v^{\left( n \right)}},{{v'}^{\left( n \right)}}} \right.} \right)\left( {\left( {{w^{\left( n \right)}} * {v^{\left( n \right)}}} \right) * {{\bar v'}^{\left( n \right)}}_{{\rm{full}}}} \right)} \end{array} $ | (13) |
$ \Delta {c_n} = \eta \cdot \frac{1}{{{n_v}}} \cdot \sum\limits_i^m {\left( {{v^{\left( 0 \right)}} - {v^{\left( n \right)}}} \right.} $ | (14) |
$ \Delta {b_n} = \eta \cdot \frac{1}{{{n_h}}} \cdot \sum\limits_i^m {\left( {p\left( {h\left| {{v^{\left( 0 \right)}}} \right.} \right) - p\left( {h\left| {{v^{\left( k \right)}}} \right.} \right)} \right)} $ | (15) |
式中:m表示训练步长, η表示学习率, 通常为0~1的常数, 再通过训练过程进一步调整, nh和nv表示可见层和隐藏层的神经元数量。v(n), v(0) , v′(n)和V′(0) 表示此卷积过程在进行卷积之前会先对各个矩阵进行0扩展。假设卷积核为k*k大小矩阵, 待卷积矩阵为n*n大小矩阵, 需要以n*n大小的原矩阵为中心扩展到(n+2(k-1))*(n-2(k-1));同时对卷积矩阵进行180°旋转, 确保卷积结果与原来位置相对应[12]。
对p(x)进行采样时所使用的采样方法则是CD-k的采样方法[11]。CD-k采样法是Hinton提出的RBM的一个快速学习算法[12], 当使用训练数据初始化v0时, 仅需要使用k(通常k=1) 步Gibbs采样就可以得到足够好的近似。
2.2 概率推论在2.1节模型参数求解的过程中需要简化梯度表达式, 求解各个状态的概率推论, 进而代入式(12) ~(15) 中完成参数迭代以及模型训练, 本节将具体给出推导过程并给出最终结果。
根据联合概率分布式(7), 可推导出模型的边缘概率分布, 如式(16)、(17) 所示。
$ {P_{{H_c}}}\left( h \right) = \frac{{\iint\limits_{vv'} {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right){\rm{d}}v{\rm{d}}v'}}}{{\int\limits_v {\int\limits_{v'} {\sum\limits_{{h_c}} {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right){\rm{d}}v{\rm{d}}v'} } } }} $ | (16) |
$ {P_V}\left( v \right) = \frac{{\int\limits_{v'} {\sum\limits_{{h_c}} {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right){\rm{d}}v'} } }}{{\int\limits_v {\int\limits_{v'} {\sum\limits_{{h_c}} {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right){\rm{d}}v{\rm{d}}v'} } } }} $ | (17) |
C-GRBM在给定能量函数, 某一时刻可见层单元分布以及前一时刻可见层单元分布已知时, 卷积层单元的概率分布求解表达式及最终推导结果可表示为
$ P\left( {H_{cij}^f = 1\left| {V,V'} \right.} \right) = \frac{{\exp \left( { - E\left( {v,v',{h_c}} \right)} \right)}}{{\sum\limits_{{h_c}} {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right)} }} $ | (18) |
$ \begin{array}{*{20}{c}} {P\left( {H_{cij}^f = 1\left| {V,V'} \right.} \right) = {\rm{sigmoid}}\left( {\mathit{\boldsymbol{W}}_c^f * {V_{i,j}}} \right) \cdot }\\ {\left. {\left. {\left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_{i,j}}} \right) + {B_F}} \right)} \right)} \end{array} $ | (19) |
在卷积层已知的情况下, 重建可见层分布的过程是相似的。在给定某一时刻的卷积层单元分布, 以及前一时刻的可见层单元分布时, 重建的该时刻下可见层概率求解表达式及最终推导结果可表示为
$ \begin{array}{*{20}{c}} {P\left( {{V_{ij}} = 1\left| {H_c^f,V'} \right.} \right) = \frac{{P\left( {V,{H_c}\left| {V',\theta } \right.} \right)}}{{{P_{{H_c}}}\left( h \right)}} = }\\ {\frac{{\exp \left( { - E\left( {v,v',{h_c}} \right)} \right)}}{{\int\limits_v {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right){\rm{d}}v} }}} \end{array} $ | (20) |
$ \begin{gathered} P\left( {{V_{ij}} = 1\left| {H_c^f,V'} \right.} \right) = \hfill \\ \prod\limits_i^N {\frac{{\left. {\exp \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W}}_c^f * {V_i}} \right) \cdot \left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right)} \right) - \frac{{{{\left( {{V_i} - {c_i}} \right)}^2}}}{2}} \right)}}{{\int\limits_v {\left. {\exp \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W}}_c^f * {V_i}} \right) \cdot \left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right)} \right) - \frac{{{{\left( {{V_i} - {c_i}} \right)}^2}}}{2}} \right){\rm{d}}v} }}} = \hfill \\ \prod\limits_i^N {\frac{{\exp \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right) \cdot \left( {\mathit{\boldsymbol{W}}_c^f * {V_i}} \right) - \frac{{{{\left( {{V_i} - {c_i}} \right)}^2}}}{2}} \right)}}{{\int\limits_v {\exp \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right) \cdot \left( {\mathit{\boldsymbol{W}}_c^f * {V_i}} \right) - \frac{{{{\left( {{V_i} - {c_i}} \right)}^2}}}{2}} \right){\rm{d}}v} }}} = \hfill \\ \prod\limits_i^N {\frac{{\exp \left( {{V_i} \cdot \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right) * \overline {\mathit{\boldsymbol{W}}_c^f} } \right) - \frac{{{{\left( {{V_i} - {c_i}} \right)}^2}}}{2}} \right)}}{{\int\limits_v {\exp \left( {{V_i} \cdot \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right) * \overline {\mathit{\boldsymbol{W}}_c^f} } \right) - \frac{{{{\left( {{V_i} - {c_i}} \right)}^2}}}{2}} \right){\rm{d}}v} }}} = \hfill \\ \prod\limits_i^N {\frac{{\exp \left( { - \frac{{{{\left( {{V_i} - \left( {{c_i} + H_{ci,j}^f\left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right) * \overline {\mathit{\boldsymbol{W}}_c^f} } \right)} \right)}^2}}}{2}} \right)}}{{\int\limits_v {\exp \left( { - \frac{{{{\left( {{V_i} - \left( {{c_i} + H_{ci,j}^f\left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right) * \overline {\mathit{\boldsymbol{W}}_c^f} } \right)} \right)}^2}}}{2}} \right){\rm{d}}v} }}} = \hfill \\ \mathbb{N}\left( {V;{c_i} + {H_c} \cdot \left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right) \cdot \overline {\mathit{\boldsymbol{W}}_c^f} ,1} \right) \hfill \\ \end{gathered} $ | (21) |
式中N(x)代表高斯分布。
在卷积隐含层、当前时刻可见层已知的情况下, 重建的前一时刻可见层概率表达式的过程是相似的, 概率分布表达式可表示为
$ \begin{array}{*{20}{c}} {P\left( {{{V'}_{ij}} = 1\left| {H_c^f,V} \right.} \right) = \frac{{\exp \left( { - E\left( {v,v',{h_c}} \right)} \right)}}{{\sum\limits_{v'} {\exp \left( { - E\left( {v,v',{h_c}} \right)} \right)} }} = }\\ {\frac{{\exp \left( { - \frac{1}{2}\sum\limits_i {{{\left( {{V_i} - {c_i}} \right)}^2}} } \right)\prod\limits_i^N {\exp \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W}}_c^f * {V_i}} \right) \cdot \left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right)} \right)} }}{{\sum\limits_{v'} {\left( {\exp \left( { - \frac{1}{2}\sum\limits_i {{{\left( {{V_i} - {c_i}} \right)}^2}} } \right)\prod\limits_i^N {\exp \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W}}_c^f * {V_i}} \right) \cdot \left( {\mathit{\boldsymbol{W'}}_c^f * {{V'}_i}} \right)} \right)} } \right)} }} = }\\ {\prod\limits_i^N {\frac{{\exp \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W}}_c^f * {V_i}} \right) * \overline {\mathit{\boldsymbol{W'}}_c^f} \cdot {{V'}_i}} \right)}}{{\sum\limits_{v'} {\exp \left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W}}_c^f * {V_i}} \right) * \overline {\mathit{\boldsymbol{W'}}_c^f} \cdot {{V'}_i}} \right)} }}} = {\rm{sigmoid}}\left( {H_{ci,j}^f\left( {\mathit{\boldsymbol{W}}_c^f * {V_i}} \right) * \overline {\mathit{\boldsymbol{W'}}_c^f} } \right)} \end{array} $ | (22) |
图 4为基于C-GRBM模型的人体行为识别的整体流程图。
![]() |
图 4 基于C-GRBM的人体行为识别整体流程图 Fig.4 Human behavior recognition flow chart based on C-GRBM |
首先, 将视频数据输入模型, 并进行预处理, 为模型的训练过程做准备。对视频数据的预处理步骤包括将视频数据转化为以帧模式存储的数据并对其进行去噪、分辨率降采样等操作。
其次, 利用训练数据对模型进行参数训练, 并以最终确定的参数建立C-GRBM模型进行特征提取。
最终, 行为分类采用的是目前在深度学习分类问题中应用最为成功的支持向量机[13], 核函数选用径向基核函数, 根据提取的特征信息在特定训练样本的学习精度和学习能力之间寻求最佳折衷, 以获得最好的分类结果。
3 仿真实验与结果分析 3.1 实验参数设置为了验证本文提出的C-GRBM模型在人体行为识别上的性能, 这里在Hollywood2人体行为库[14]上进行实验验证。Hollywood2人体行为库包含从69部电影中节选出的包含接电话, 开车, 接吻等12类人类的行动以及房间、街道、车辆等10个场景变换的视频片段, 总计约20.1 h, 包含大约150样本。此数据库的背景复杂度更高, 在空间尺度、画面变焦以及压缩失真方面也更加真实, 是目前用于较复杂人体行为识别最有效的测试库。
SVM核函数的相关参数是通过在训练集上验证获得。
所有实验在硬件配置为Intel© CoreTM2 Duo CPU P7570 3.60 GHz、16G内存、64位处理器的计算机上进行, 开发环境为Matlab2014.b。
3.2 C-GRBM模型的训练深度学习的流程一般都分为两部分, 一部分是模型训练过程, 一部分是数据测试过程。C-GRBM模型特征提取之前也需要利用训练数据对模型进行训练, 从而确定模型参数。
模型的训练步骤:
输入:C-GRBM模型所有的训练数据(v1, v2, …, vn), 分批处理大小:m
输出:更新梯度值ΔWck, ΔW′ck, Δci, Δbij
初始化:
θ={Wck, W′ck, ci, bij}
设置:学习率
for all v∈m
v(0)←v
for t=0, …, k-1
for i=1…n,
hi(t)~p(hi|v, v′) sample, end
for j=1…n,
sample vj(t+1~p(vj|h, v′), end
end
for i=1…n,
根据参数更新公式, 更新梯度值
ΔWck, ΔW′ck, Δci, Δbij,
end
首先根据可见层的输入计算得到隐藏层的分布, 然后通过隐藏层的分布来重构可见层分布, 再根据此分布生成新的隐藏层分布。重构的可见层分布和隐藏层分布就是对输入的一次采样, 多次采样得到的分布就可以看成是输入数据分布的一种近似, 根据这些样本概率值就可以对参数进行更新, 并最终求解出参数值。
其中, 卷积层的所有卷积核大小设置为17*17, 卷积核个数为32;池化层的卷积核大小为4*4, 池化层卷积核个数与卷积层相同, 也是32个;训练步长设置为20, 迭代次数设置为30次, 学习率初始化值为0.5, 在训练过程中根据结果逐步调整, 并最终在训练到第20次时, 学习率改为0.035。
3.3 人体行为识别仿真实验为验证本文提出的C-GRBM模型对复杂视频的特征识别率, 本节在背景复杂度较高, 空间尺度、画面变焦以及压缩失真方面也较为真实的Hollywood2人体行为库上进行了人体行为识别仿真实验。
实验中采用的测试库选择参照文献[15]给出的标准划分训练集和测试集以及时间长度设定, 在空间分辨率上采样取80*80。实验评价指标为所有动作的平均识别率(average precision, AP), 作为目前该数据库统一采用的评价指标, AP越高说明模型识别率越高, 识别效果越好。为了验证本文提出的改进模型的有效性和先进性, 本文选取3个目前在该数据库上效果最好的人工设计特征提取模型[15]以及目前效果较好的深度学习特征提取模型GRBM作为对比算法, 具体的实验结果如表 1所示。
![]() |
表 1 Hollywood2人体行为库上实验结果 Tab.1 Experimental results on Hollywood2 human behavior database |
从实验结果可以看出, 本文提出的C-GRBM模型在Hollywood2人体行为库上的平均识别率高于其他四种对比模型。结合本文模型特点, 人体行为识别率提高的原因是:1) 本文模型充分考虑图像平稳性特点, 在模型中加入卷积操作进行特征提取;2) 本文模型在卷积层之后连接池化层, 进行二次特征提取。所以, 本文提出的C-GRBM模型在人体行为识别中能出色完成特征提取, 并取得目前最好的效果。
3.4 模型复杂度分析由于GRBM模型训练时间较长, 故无法使用时间作为模型复杂度比较标准, 所以本节将通过理论分析说明C-GRBM模型在复杂度上的改进效果。与GRBM模型相比, C-GRBM模型引入了CNN中的卷积层与池化层, 在提高模型特征提取能力的同时也降低了模型的复杂度。
首先从模型的训练过程进行分析, 由于卷积操作本身具有降维的功能, 因此可以通过C-GRBM模型将参数从三维降低到二维。分析式(1) 和式(6) 可以看出, 式(1) 中的xi、x′i和hj三者相乘对应到式(6) 中为两项卷积之后相乘, 因此卷积核Wck和W′ck的连接关系从GRBM模型中三维连接降低到C-GRBM模型中的二维卷积连接, 进而将训练过程的参数数量级从o(n3)降低到了, 从而降低了模型训练过程的复杂度。
其次从模型的参数数量进行分析, 由于网络中同一层中神经元之间的连接权重、偏移量都可以实现共享, 所以C-GRBM模型中偏移量数量不再与各层神经元数量有关, 以本文所采用的80*80像素图像为例, 这张图像拥有6 400个神经元。如果以GRBM模型全连接方式则有212*104个连接, 即有642*104个权值参数;而C-GRBM模型采用32个大小为17*17的卷积核去卷积图像, 每个卷积核所需要的连接为62个, 所以连接参数减少为了32*62, 即64*31个。比较两个模型所需要学习的偏移量, 后者有效减少了模型参数数量。
综上, 本文提出的C-GRBM模型与GRBM模型相比, 模型参数维度降低, 数量减少, 所以模型复杂度较低。
4 结论1) 对可见层进行卷积操作, 通过不同的卷积核提取不同的可见层特征, 可以极大的提高模型局部特征提取能力, 进而得到更好的人体行为识别率。
2) 通过池化操作的过程, 对卷积层输出的不同位置上的特征进行聚合统计, 有效的降低了特征量维度, 进而降低人体行为识别复杂度。
3) 在Hollywood2人体行为库中进行人体行为的特征学习, 完成人体行为识别测试, 进而验证本文模型在人体行为识别上的良好性能。
理论分析和实验结果都可以表明, 本文提出的C-GRBM模型在较为复杂的人体行为识别中表现出优于目前最好人工设计特征提取模型的特征提取能力, 同时在识别率和参数复杂度方面均优于目前已有的GRBM模型。
[1] |
POPPE R. A survey on vision-based human action recognition.[J]. Image & vision computing, 2010, 28(6): 976-990. ( ![]() |
[2] |
ZHANG J, LIN H, NIE W, et al. Human action recognition bases on local action attributes[J]. Journal of electrical engineering & technology, 2015, 10(3): 301-310. ( ![]() |
[3] |
SCOVANNER P, ALI S, SHAH M. A 3-dimensional sift descriptor and its application to action recognition[C]//Proceedines of the 15th International Conference on Multimedia. 2007:357-360.
( ![]() |
[4] |
HINTON G E, SALAKHUTDINOV R R. Reducing the dimensionality of data with neural networks[J]. Science, 2006, 313(5786): 504. DOI:10.1126/science.1127647 ( ![]() |
[5] |
SCHMIDHUBER J. Deep learning in neural networks:An overview[J]. Neural networks, 2015, 61: 85-117. DOI:10.1016/j.neunet.2014.09.003 ( ![]() |
[6] |
MEMISEVIC R, HINTON G. Unsupervised learning of image transformations[C]//IEEE Conference on Computer Vision and Pattern Recognition. 2007:1-8.
( ![]() |
[7] |
JI S, XU W, YANG M, et al. 3D convolutional neural networks for human action recognition[C]//International Conference on Machine Learning. 2010:495-502.
( ![]() |
[8] |
HINTON G E, OSINDERO S, TEH Y W. A fast learning algorithm for deep belief nets[M]. Boston: MIT Press, 2006.
( ![]() |
[9] |
FISCHER A, IGEL C. An Introduction to restricted boltzmann machines[C]//Iberoamerican Congress on Pattern Recognition. Berlin:Springer, 2012:14-36.
( ![]() |
[10] |
HINTON G E. A practical guide to training restricted boltzmann machines[J]. Neural networks, 2012, 58: 599-619. ( ![]() |
[11] |
BOUVRIE J. Notes on convolutional neural networks[Z]. Boston:MIT, 2006.
( ![]() |
[12] |
SCHULDT C, LAPTEV I, CAPUTO B. Recognizing human actions:a local SVM approach[C]//International Conference on Pattern Recognition. IEEE, 2004, 3:32-36.
( ![]() |
[13] |
MARSZALEK M, LAPTEV I, SCHMID C. Actions in context[C]//CVPR 2009. Miami, FL, USA, 2009:10836118.
( ![]() |
[14] |
CHEN B. Deep learning of invariant spatio-temporal features from video A[R]. University of British Columbia, 2010.
( ![]() |
[15] |
ZHAO W, GUO Z, YUE J, et al. On combining multiscale deep learning features for the classification of hyperspectral remote sensing imagery[J]. International journal of remote sensing, 2015, 36(13): 3368-3379. DOI:10.1080/2150704X.2015.1062157 ( ![]() |
[16] |
YAO A, GALL J, VAN GOOL L. A Hough transform-based voting framework for action recognition[C]//Computer Vision and Pattern Recognition. 2010:2061-2068.
( ![]() |
[17] |
QIU Q, JIANG Z, CHELLAPPA R. Sparse dictionary-based representation and recognition of action attributes[C]//IEEE International Conference on Computer Vision.[S.l.], 2011:707-714.
( ![]() |
[18] |
HE K, ZHANG X, REN S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition.[J]. IEEE transactions on pattern analysis & machine intelligence, 2015, 37(9): 1904-1916. ( ![]() |
[19] |
MA X, GENG J, WANG H. Hyperspectral image classification via contextual deep learning[J]. Eurasip journal on image & video processing, 2015, 2015(1): 20. ( ![]() |