一种基于深度学习的轻量型的人体动作识别方法与流程

文档序号:18108047发布日期:2019-07-06 11:48阅读:432来源:国知局
一种基于深度学习的轻量型的人体动作识别方法与流程

本发明涉及图形图像处理技术领域,具体涉及一种有监督的基于深度学习的轻量型的人体动作识别模型方法。



背景技术:

人体动作识别要解决的主要问题是如何将摄像机或传感器采集到的视频序列通过分析和处理,使得计算机能够“理解”视频中的人类的动作和行为,对安全监控、娱乐方式等方面都有重要的研究意义,而基于视频的人体动作识别在人机交互、虚拟现实、智能家居设备等领域也都有着广泛应用。对于许多人工智能系统来说,人体动作识别或人类行为理解是必不可少的。例如,在视频监控系统中包含着数百小时的监控视频,如果手动的去遍历监控视频,不仅工作乏味冗长,效率也是十分低下。通过利用人体动作识别技术,就可以对监控视频中的人体的动作进行识别和理解,从而有效地自动检测恶意行为和异常行为。

基于视频的人体动作识别任务本身存在巨大的挑战性。形成巨大挑战的原因主要有两个方面,一方面是视频环境因素,另一方面是动作类别本身的复杂度。视频光照的变化、摄像机的抖动、视角的变化等都是属于视频环境因素。视频中的运动场景总是多种多样的,即使在室内这样视频背景相对固定的环境内,光照的变化、对行为人的遮挡,都会对人体动作识别任务造成一定的影响。而对于动作类别本身的复杂度,主要是动作类间和类内差异及多样性问题。比如“慢跑”、“散步”和“跑步”这三个不同类别,由于动作速度等原因,会造成不同类别间差异较小的问题;而对于相同的动作,由于视角等原因也会造成相同类别的动作有较大的不同差异问题。

自深度学习网络模型lenet网络的提出,并在手写数字识别任务上取得可观的成果后,国内外学者相继提出各种基于深度学习的网络模型并应用于人体动作识别,比如alexnet、vggnet、googlenet、resnet、densenet等等。alexnet和vggnet均是通过加深网络深度的方式来提高网络性能,googlenet和resnet采用增加网络模型的宽度或深度的方式来提高网络性能,这些网络在图片识别和分类以及人体动作识别等领域均取得了非常可观的成绩。尽管通过对网络模型增加三层权重层的实验证明浅层学习网络对复杂函数的表示以及模型的泛化能力均具有一定的局限性,但是随着网络层数的不断叠加和宽度的不断扩展,也会带来一些问题:比如参数量巨大、网络的计算复杂度较大、网络越深越容易出现梯度消失等问题。而且盲目增加网络深度会出现准确率包含或者下降的情况,从而带来网络模型的退化问题。

基于视频的人体动作识别任务与基于静态图像的图片识别任务的主要区别在于视频序列不仅包含图像的外观信息还包含时间序列上的运动信息,而单图像的分析识别不需要去考虑时间上的信息,因此,为了弥补二维卷积神经网络模型不能有效结合视频序列中的运动信息,逐渐利用三维卷积神经网络模型或者双流卷积神经网络模型对视频中的人体动作进行识别。这些模型在一定程度上考虑了视频序列具有运动信息的特性,但是仍然存在关注提高识别准确率的精度时网络结构仍然变得越来越深的问题。

综上所述,本申请发明人在实现本申请发明技术方案的过程中,发现目前基于深度学习的人体动作识别模型或方法至少存在如下技术问题:

一、通过加深网络深度和拓宽网络宽度来提高网络模型的识别性能,大幅度增加了网络模型的计算量,且由于参数量过多,容易出现梯度消失、识别率不升反降的问题。

二、目前的轻量型深度学习网络模型,尽管在一定程度上压缩了模型规模,减少了参数量,但是在基于视频的人体动作识别问题上,难以应对有效提取包含复杂关联关系的时空特征问题。



技术实现要素:

为解决现有基于深度学习的人体动作识别模型参数量大、网络过深过重等问题,本发明提供了一种基于深度学习的轻量型的人体动作识别方法。该方法包含了一种浅层和深层网络相结合的轻量型的深度学习网络,利用网络中浅层多尺度模块对视频序列中的局部特征进行不同尺度的描述,利用网络中深度网络模块对提取到的多尺度特征进行有效融合和表征,最后形成基于深度学习的轻量型的人体动作识别模型,有效实现减少模型的参数量而不损失精度。

一方面,本发明通过下述技术方案实现:

一种基于深度学习的轻量型的人体动作识别方法,其具体步骤如下:

步骤1:将包含人体动作的视频数据进行处理,得到rgb数据帧序列和光流数据帧序列;

步骤2:构建一种浅层和深层网络相结合的轻量型的深度学习网络(alightweightdeeplearningnetworkmodelcombiningshallowanddeepnetworks,sdnet),该网络包含浅层多尺度模块和深层网络模块;

步骤3:利用步骤2中构建的sdnet网络构建基于深度学习的轻量型的人体动作识别模型,模型为双流模型,即包含时间流和空间流;

步骤4:利用步骤3中构建的基于深度学习的轻量型的人体动作识别模型对视频序列的rgb数据和光流数据进行处理,得到人体动作分类结果。

另一方面,本发明提出了一种浅层和深层网络相结合的轻量型的深度学习网络(alightweightdeeplearningnetworkmodelcombiningshallowanddeepnetworks,sdnet),该网络包含浅层多尺度模块(shallowmulti-scalemodule,smsm)和深层网络模块(deepnetworksmodule,dnm):

所述浅层多尺度模块用于获取原始rgb数据帧序列和光流数据帧序列的人体动作局部特征;

所述深层网络模块用于融合浅层多尺度模块提取的人体动作局部特征,并生成高层特征。

进一步,所述一种浅层和深层网络相结合的轻量型的深度学习网络的网络结构设计如下:

(a)卷积层c1:取卷积核大小为,步长为1,卷积层的过滤器数目为32,以relu函数作为该层的激活函数,relu函数的公式如下:

relu(x)=max(0,x)

(b)池化层s1:利用最大池化层(maxpooling)对c1层获得的特征图进行重采样,池化的核大小为,步长为2;

(c1)浅层多尺度模块smsm-1:该模块包含三个分支,每个分支包含三层不同卷积核的卷积层,模块内所有卷积层的过滤器数目为64;

(c2)浅层多尺度模块smsm-2:该模块包含三个分支,每个分支包含三层不同卷积核的卷积层,模块内所有卷积层的过滤器数目为128;

(c3)浅层多尺度模块smsm-3:该模块包含三个分支,每个分支包含三层不同卷积核的卷积层,模块内所有卷积层的过滤器数目为256;

(d)卷积层c2:该层包含两个部分,第一个部分的主要作用是对密集连接的浅层多尺度模块进行连接(concatenation),经过concatenation函数对特征图进行合并连接;第二个部分是卷积层,其卷积核大小为,步长为1,过滤器数目为256,该层不包含非线性激活函数;

(e)深层网络模块dnm。

进一步,所述一种浅层和深层网络相结合的轻量型的深度学习网络的网络结构中(c1)层的浅层多尺度模块smsm-1的网络结构设计为:

1)分支1:

(a)卷积层c1:取卷积核大小为,步长为1,卷积层的过滤器数目为64,以relu函数作为该层的激活函数;

(b)卷积层c2:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为1,以relu函数作为该层的激活函数。膨胀后的卷积核尺寸计算方式如下:

卷积膨胀后卷积核大小=卷积核系数(卷积膨胀前卷积核大小-1)+1

(c)卷积层c3:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为1,以relu函数作为该层的激活函数;

2)分支2:

(a)卷积层c1:取卷积核大小为,步长为1,卷积层的过滤器数目为64,以relu函数作为该层的激活函数;

(b)卷积层c2:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为2,以relu函数作为该层的激活函数;

(c)卷积层c3:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为2,以relu函数作为该层的激活函数;

3)分支3:

(a)卷积层c1:取卷积核大小为,步长为1,卷积层的过滤器数目为64,以relu函数作为该层的激活函数;

(b)卷积层c2:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为3,以relu函数作为该层的激活函数;

(c)卷积层c3:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为3,以relu函数作为该层的激活函数;

4)连接层concatenation:该层利用concatenation函数对三个分支的特征图进行连接;

5)池化层s1:利用最大池化层(maxpooling)对c1层获得的特征图进行重采样,池化的核大小为,步长为2。

进一步,所述一种浅层和深层网络相结合的轻量型的深度学习网络的网络结构中(c2)层的浅层多尺度模块smsm-2的网络结构设计除卷积层的过滤器数目为128,其余同smsm-1结构。

进一步,所述一种浅层和深层网络相结合的轻量型的深度学习网络的网络结构中(c3)层的浅层多尺度模块smsm-3的网络结构设计除卷积层的过滤器数目为256,其余同smsm-1结构。

优选地,所述一种浅层和深层网络相结合的轻量型的深度学习网络的网络结构中(c1)(c2)(c3)三个浅层多尺度模块smsm采用密集连接的方式,即(c1)smsm-1连接(c2)smsm-2和(d)卷积层c2,smsm-2连接(c3)smsm-3和(d)卷积层c2。

进一步,所述一种浅层和深层网络相结合的轻量型的深度学习网络的网络结构中(e)层的深层网络模块dnm网络结构设计为:

(a)卷积层c1:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为2,以relu函数作为该层的激活函数;

(b)mlp卷积层c2:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为2,以relu函数作为该层的激活函数;

(c)卷积层c3:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为2,以relu函数作为该层的激活函数;

(d)池化层s1:利用最大池化层(maxpooling)对c3层获得的特征图进行重采样,池化的核大小为,步长为2;

(e)卷积层c4:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为1,以relu函数作为该层的激活函数;

(f)mlp卷积层c5:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为1,以relu函数作为该层的激活函数;

(g)卷积层c6:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为1,以relu函数作为该层的激活函数;

(h)池化层s2:利用全局平均池化层(globalaveragepooling)对c6的特征图进行全局平均池化操作,以该层代替全连接层,以减少参数量。

又一方面,本发明构建了基于深度学习的轻量型的人体动作识别模型,该模型为双流模型,即包含时间流和空间流,模型具体结构如下:

(a)输入层:时间流输入数据为视频序列的光流数据,帧尺寸为;空间流输入数据为视频序列的rgb数据,帧尺寸仍为;

(b)sdnet:该部分时间流网络和空间流网络均由sdnet组成,以sdnet提取视频序列的时空特征;

(c)池化层s1:利用时间金字塔池化层(tpp)将时间流网络和空间流网络的视频帧级的特征聚合成视频级表示。时间金字塔池化水平设置为,即时间金字塔采用3层金字塔形式;

(d)全连接层fc:包含1024组滤波器。即设置1024个神经元与s1相连接,以relu作为激活函数;

(e)softmax层:利用softmax分析器对fc层得到的特征值计算不同类别的相对概率,得到classscore。softmax函数定义如下:

其中,vi是分类器softmax前级即fc层输出单元的输出。i表示类别索引,总类别数为c。pi表示当前元素的指数与所有元素指数和的比值,max(pi)为其类别分数classscore;

(f)融合层:该层利用决策融合规则融合时间流和空间流的classscore,得到动作分类结果。融合时的时间流和空间流的识别置信度设置为1∶1。

本发明相较于现有技术具有如下的优点和有益效果:

1、本发明采用浅层和深层网络相结合的轻量型的深度学习网络对视频序列中的时空特征进行提取,利用密集连接的浅层多尺度模块和深度网络模块实现了模型参数量的大幅减少,避免了网络过深的问题。

2、本发明构建的基于深度学习的轻量型的人体动作识别模型利用双流网络结构,能够有效捕捉时空线索,更好利用人体动作的时空信息,增强人体动作识别模型的识别能力和泛化能力。

3、本发明在保持精度水平和目前前沿方法的动作识别准确率大致一致的前提下,明显减少了模型参数量,压缩了模型规模。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1为本发明的浅层和深层网络相结合的轻量型的深度学习网络图示。

图2为本发明的浅层和深层网络相结合的轻量型的深度学习网络中浅层多尺度模块smsm-1示例图。

图3为本发明的基于深度学习的轻量型的人体动作识别模型图示。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

如图3所示,首先,本发明利用提出的浅层和深层网络相结合的轻量型的深度学习网络(sdnet)对时空双流进行特征提取和表示,然后利用时间金字塔池化层(tpp)将时间流和空间流的视频帧级的特征聚合成视频级表示,再通过全连接层和softmax层得到时空双流对输入序列的识别结果,最后,利用加权平均融合的方式对双流结果进行融合,从而得到最终的识别结果。该方法主要包括以下步骤:

步骤1:将包含人体动作的视频数据进行处理,得到rgb数据帧序列和光流数据帧序列;

步骤2:构建一种浅层和深层网络相结合的轻量型的深度学习网络(alightweightdeeplearningnetworkmodelcombiningshallowanddeepnetworks,sdnet),该网络包含浅层多尺度模块(shallowmulti-scalemodule,smsm)和深层网络模块(deepnetworksmodule,dnm)。其中,浅层多尺度模块用于获取原始rgb数据帧序列和光流数据帧序列的人体动作局部特征;深层网络模块用于融合浅层多尺度模块提取的人体动作局部特征,并生成高层特征。

浅层和深层网络相结合的轻量型的深度学习网络(sdnet)的网络结构如下:

(a)卷积层c1:取卷积核大小为,步长为1,卷积层的过滤器数目为32,以relu函数作为该层的激活函数,relu函数的公式如下:

relu(x)=max(0,x)

(b)池化层s1:利用最大池化层(maxpooling)对c1层获得的特征图进行重采样,池化的核大小为,步长为2;

(c1)浅层多尺度模块smsm-1:该模块包含三个分支,和一个连接层和一个池化层。如图2所示,具体结构如下:

(c1-1)分支1:

(c1-1-a)卷积层c1:取卷积核大小为,步长为1,卷积层的过滤器数目为64,以relu函数作为该层的激活函数;

(c1-1-b)卷积层c2:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为1,以relu函数作为该层的激活函数。膨胀后的卷积核尺寸计算方式如下:

卷积膨胀后卷积核大小=卷积核系数(卷积膨胀前卷积核大小-1)+1

(c1-1-c)卷积层c3:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为1,以relu函数作为该层的激活函数;

(c1-2)分支2:

(c1-2-a)卷积层c1:取卷积核大小为,步长为1,卷积层的过滤器数目为64,以relu函数作为该层的激活函数;

(c1-2-b)卷积层c2:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为2,以relu函数作为该层的激活函数;

(c1-2-c)卷积层c3:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为2,以relu函数作为该层的激活函数;

(c1-3)分支3:

(c1-3-a)卷积层c1:取卷积核大小为,步长为1,卷积层的过滤器数目为64,以relu函数作为该层的激活函数;

(c1-3-b)卷积层c2:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为3,以relu函数作为该层的激活函数;

(c1-3-c)卷积层c3:取卷积核大小为,步长为1,卷积层的过滤器数目为64,卷积膨胀系数为3,以relu函数作为该层的激活函数;

(c1-4)连接层concatenation:该层利用concatenation函数对三个分支的特征图进行连接;

(c1-5)池化层s1:利用最大池化层(maxpooling)对c1层获得的特征图进行重采样,池化的核大小为,步长为2。

(c2)浅层多尺度模块smsm-2:该模块也包含三个分支,和一个连接层和一个池化层。每个分支的卷积层的过滤器数目为128,其余同smsm-1;

(c3)浅层多尺度模块smsm-3:该模块也包含三个分支,和一个连接层和一个池化层。每个分支的卷积层的过滤器数目为256,其余同smsm-1;

(d)卷积层c2:该层包含两个部分,第一个部分的主要作用是对密集连接的浅层多尺度模块进行连接(concatenation),经过concatenation函数对特征图进行合并连接;第二个部分是卷积层,其卷积核大小为,步长为1,过滤器数目为256,该层不包含非线性激活函数;

优选地,如图1所示,(c1)(c2)(c3)三个浅层多尺度模块smsm采用密集连接的方式,即(c1)smsm-1连接(c2)smsm-2和(d)卷积层c2,smsm-2连接(c3)smsm-3和(d)卷积层c2。

(e)深层网络模块dnm。该模块的网络结构为:

(e-a)卷积层c1:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为2,以relu函数作为该层的激活函数;

(e-b)mlp卷积层c2:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为2,以relu函数作为该层的激活函数;

(e-c)卷积层c3:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为2,以relu函数作为该层的激活函数;

(e-d)池化层s1:利用最大池化层(maxpooling)对c3层获得的特征图进行重采样,池化的核大小为,步长为2;

(e-e)卷积层c4:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为1,以relu函数作为该层的激活函数;

(e-f)mlp卷积层c5:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为1,以relu函数作为该层的激活函数;

(e-g)卷积层c6:卷积核大小为,步长为1,过滤器数目为512,卷积膨胀系数为1,以relu函数作为该层的激活函数;

(e-h)池化层s2:利用全局平均池化层(globalaveragepooling)对c6的特征图进行全局平均池化操作,以该层代替全连接层,以减少参数量。

步骤3:利用步骤2中构建的sdnet网络构建基于深度学习的轻量型的人体动作识别模型,该模型为双流模型,即包含时间流和空间流。该模型如图3所示,具体结构如下:

(a)输入层:时间流输入数据为视频序列的光流数据,帧尺寸为224×224;空间流输入数据为视频序列的rgb数据,帧尺寸仍为224×224;

(b)sdnet:该部分时间流网络和空间流网络均由sdnet组成,以sdnet提取视频序列的时空特征;

(c)池化层s1:利用时间金字塔池化层(tpp)将时间流网络和空间流网络的视频帧级的特征聚合成视频级表示。时间金字塔池化水平设置为{4×4×1,2×2×1,1×1×1},即时间金字塔采用3层金字塔形式;

(d)全连接层fc:包含1024组滤波器。即设置1024个神经元与s1相连接,以relu作为激活函数;

(e)softmax层:利用softmax分析器对fc层得到的特征值计算不同类别的相对概率,得到classscore,softmax函数定义如下:

其中,vi是分类器softmax前级即fc层输出单元的输出。i表示类别索引,总类别数为c,pi表示当前元素的指数与所有元素指数和的比值,max(pi)为其类别分数classscore;

(f)融合层:该层利用决策融合规则融合时间流和空间流的classscore,得到动作分类结果。融合时的时间流和空间流的识别置信度设置为1∶1。

步骤4:利用步骤3中构建的基于深度学习的轻量型的人体动作识别模型对视频序列的rgb数据和光流数据进行处理,得到人体动作分类结果。

先在imagenet数据集上进行了本发明模型的预训练和参数微调,然后对动作识别数据集ucf101和hmdb51进行了基于深度学习的轻量型的人体动作识别模型方法处理,最后在数据集ucf101和hmdb51上分别取得了94.0%和69.4%的动作识别准确率,而模型参数量仅为19m。由此可知,本文提出的基于深度学习的轻量型的人体动作识别模型不仅能够对视频中的人体动作进行有效识别,还相较于近年人体动作识别模型大幅减少了参数量,节省了计算成本。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1