人体动作识别方法、装置、终端设备及存储介质转让专利

申请号 : CN201811509445.7

文献号 : CN109522874B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 程俊姬晓鹏赵青松

申请人 : 中国科学院深圳先进技术研究院

摘要 :

本申请实施例适用于模式识别技术领域,公开了一种人体动作识别方法、装置、终端设备及计算机可读存储介质,其中,方法包括:获取人体动作的深度图像序列;将深度图像序列等间隔划分为预设数量个图像序列片段;对每个图像序列片段进行时序稀疏采样,得到对应的目标图像序列;提取每个目标图像序列的梯度方向向量;根据梯度方向向量和预训练的三维卷积神经网络模型,进行人体动作识别。本申请实施例的时空信息描述能力较强,识别性能较高,计算较简便。

权利要求 :

1.一种人体动作识别方法,其特征在于,包括:获取人体动作的深度图像序列;

将所述深度图像序列等间隔划分为预设数量个图像序列片段;

对每个所述图像序列片段进行时序稀疏采样,得到对应的目标图像序列;

提取每个所述目标图像序列的梯度方向向量;

根据所述梯度方向向量和预训练的三维卷积神经网络模型,进行人体动作识别;

其中,所述提取每个所述目标图像序列的梯度方向向量,包括:分别计算每个所述目标图像序列的梯度分量;

将每个所述目标图像序列的所述梯度分量进行L2范数归一化,得到每个所述目标图像序列的所述梯度方向向量。

2.根据权利要求1所述的人体动作识别方法,其特征在于,所述对每个所述图像序列片段进行时序稀疏采样,得到对应的目标图像序列,包括:从每个所述图像序列片段中抽取第一目标深度图像、第二目标深度图像以及第三目标深度图像,其中,所述第一目标深度图像、所述第二目标深度图像以及所述第三目标深度图像在所述深度图像序列中的时序相对位置呈等差数列;

基于每个所述图像序列片段的所述第一目标深度图像、所述第二目标深度图像以及所述第三目标深度图像,得到对应的所述目标图像序列。

3.根据权利要求1所述的人体动作识别方法,其特征在于,在所述提取每个所述目标图像序列的梯度方向向量之前,还包括:对每个所述目标图像序列进行数据增强操作。

4.根据权利要求3所述的人体动作识别方法,其特征在于,所述对每个所述目标图像序列进行数据增强操作,包括:对各个深度图像的预设区域进行裁剪,得到相应的第一预设尺寸的第一目标区域;

从预设备选尺寸中随机选取目标尺寸;

根据所述目标尺寸,对各个所述第一目标区域进行随机裁剪,得到相应的第二目标区域;

将各个所述第二目标区域的缩放至第二预设尺寸。

5.根据权利要求1至4任一项所述的人体动作识别方法,其特征在于,在所述获取人体动作的深度图像序列之前,还包括:获取训练深度图像序列;

将所述训练深度图像序列划分为所述预设数量个训练图像序列片段;

通过第一预设时序稀疏采样方式对每个所述训练图像序列片段进行采样,得到对应的目标训练图像序列;

根据各个所述目标训练图像序列,对预建立的三维卷积神经网络模型进行训练。

6.根据权利要求5所述的人体动作识别方法,其特征在于,在所述根据所述目标训练图像序列,对预建立的三维卷积神经网络模型进行训练之后,还包括:获取测试深度图像序列;

将所述测试深度图像序列划分为所述预设数量个测试图像序列片段;

通过第二预设时序稀疏采样方式对每个所述测试图像序列片段进行采样,得到相应的目标测试图像序列;

根据各个所述目标测试图像序列,对训练后的三维卷积神经网络进行测试。

7.一种人体动作识别装置,其特征在于,包括:深度图像序列获取模块,用于获取人体动作的深度图像序列;

第一划分模块,用于将所述深度图像序列等间隔划分为预设数量个图像序列片段;

第一时序稀疏采样模块,用于对每个所述图像序列片段进行时序稀疏采样,得到对应的目标图像序列;

提取模块,用于提取每个所述目标图像序列的梯度方向向量;

识别模块,用于根据所述梯度方向向量和预训练的三维卷积神经网络模型,进行人体动作识别;

其中,所述提取模块具体用于:分别计算每个所述目标图像序列的梯度分量;将每个所述目标图像序列的所述梯度分量进行L2范数归一化,得到每个所述目标图像序列的所述梯度方向向量。

8.一种终端设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述方法的步骤。

9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述方法的步骤。

说明书 :

人体动作识别方法、装置、终端设备及存储介质

技术领域

[0001] 本申请属于模式识别技术领域,尤其涉及一种人体动作识别方法、装置、终端设备及计算机可读存储介质。

背景技术

[0002] 随着深度卷积神经网络技术的不断发展,使得利用深度神经网络来解决基于图像序列的动作识别和行为建模问题得以实现。
[0003] 目前,结合深度图像序列和卷积神经网络的人体动作识别方法可以分为基于二维卷积神经网络和基于三维卷积神经网络两种。在基于二维卷积神经网络的识别方法中,首先对深度图像序列的时序信息进行压缩,然后采用二维卷积神经网络对运动轨迹图像进行特征学习和分类,得到识别结果。但是,该方法中对深度图像序列中人体的表观信息和运动信息的时空能力描述并不强,并很大程度上依赖于网络数据输入前精心的时序处理工作,使得该方法的识别效率和准确率较低。在基于三维卷积神经网络的识别方法中,采用原始深度数据作为网络输入,虽然可以在一定程度上加强时空信息的描述能力,但是,对局部时空的运动线索描述能力有限。
[0004] 也就是说,现有的基于图像序列和卷积神经网络的人体动作识别方法存在时空信息描述能力不强,识别性能较低等问题。

发明内容

[0005] 有鉴于此,本申请实施例提供一种人体动作识别方法、装置、终端设备及计算机可读存储介质,以解决现有人体动作识别方法的时空信息描述能力不强,识别性能较低的问题。
[0006] 本申请实施例的第一方面提供一种人体动作识别方法,包括:
[0007] 获取人体动作的深度图像序列;
[0008] 将所述深度图像序列等间隔划分为预设数量个图像序列片段;
[0009] 对每个所述图像序列片段进行时序稀疏采样,得到对应的目标图像序列;
[0010] 提取每个所述目标图像序列的梯度方向向量;
[0011] 根据所述梯度方向向量和预训练的三维卷积神经网络模型,进行人体动作识别。
[0012] 结合第一方面,在一种可行的实现方式中,所述对每个所述图像序列片段进行时序稀疏采样,得到对应的目标图像序列,包括:
[0013] 从每个所述图像序列片段中抽取第一目标深度图像、第二目标深度图像以及第三目标深度图像,其中,所述第一目标深度图像、所述第二目标深度图像以及所述第三目标深度图像在所述深度图像序列中的时序相对位置呈等差数列;
[0014] 基于每个所述图像序列片段的所述第一目标深度图像、所述第二目标深度图像以及所述第三目标深度图像,得到对应的所述目标图像序列。
[0015] 结合第一方面,在一种可行的实现方式中,所述提取每个所述目标图像序列的梯度方向向量,包括:
[0016] 分别计算每个所述目标图像序列的梯度分量;
[0017] 将每个所述目标图像序列的所述梯度分量进行L2范数归一化,得到每个所述目标图像序列的所述梯度方向向量。
[0018] 结合第一方面,在一种可行的实现方式中,在所述提取每个所述目标图像序列的梯度方向向量之前,还包括:
[0019] 对每个所述目标图像序列进行数据增强操作。
[0020] 结合第一方面,在一种可行的实现方式中,所述对每个所述目标图像序列进行数据增强操作,包括:
[0021] 对各个深度图像的预设区域进行裁剪,得到相应的第一预设尺寸的第一目标区域;
[0022] 从预设备选尺寸中随机选取目标尺寸;
[0023] 根据所述目标尺寸,对各个所述第一目标区域进行随机裁剪,得到相应的第二目标区域;
[0024] 将各个所述第二目标区域的缩放至第二预设尺寸。
[0025] 结合第一方面,在一种可行的实现方式中,在所述获取人体动作的深度图像序列之前,还包括:
[0026] 获取训练深度图像序列;
[0027] 将所述训练深度图像序列划分为所述预设数量个训练图像序列片段;
[0028] 通过第一预设时序稀疏采样方式对每个所述训练图像序列片段进行采样,得到对应的目标训练图像序列;
[0029] 根据各个所述目标训练图像序列,对预建立的三维卷积神经网络模型进行训练。
[0030] 结合第一方面,在一种可行的实现方式中,在所述根据所述目标训练图像序列,对预建立的三维卷积神经网络模型进行训练之后,还包括:
[0031] 获取测试深度图像序列;
[0032] 将所述测试深度图像序列划分为所述预设数量个测试图像序列片段;
[0033] 通过第二预设时序稀疏采样方式对每个所述测试图像序列片段进行采样,得到相应的目标测试图像序列;
[0034] 根据各个所述目标测试图像序列,对训练后的三维卷积神经网络进行测试。
[0035] 本申请实施例的第二方面提供一种人体动作识别装置,包括:
[0036] 深度图像序列获取模块,用于获取人体动作的深度图像序列;
[0037] 第一划分模块,用于将所述深度图像序列等间隔划分为预设数量个图像序列片段;
[0038] 第一时序稀疏采样模块,用于对每个所述图像序列片段进行时序稀疏采样,得到对应的目标图像序列;
[0039] 提取模块,用于提取每个所述目标图像序列的梯度方向向量;
[0040] 识别模块,用于根据所述梯度方向向量和预训练的三维卷积神经网络模型,进行人体动作识别。
[0041] 结合第二方面,在一种可行的实现方式中,所述第一时序稀疏采样模块包括:
[0042] 抽取单元,用于从每个所述图像序列片段中抽取第一目标深度图像、第二目标深度图像以及第三目标深度图像,其中,所述第一目标深度图像、所述第二目标深度图像以及所述第三目标深度图像在所述深度图像序列中的时序相对位置呈等差数列;
[0043] 形成单元,用于基于每个所述图像序列片段的所述第一目标深度图像、所述第二目标深度图像以及所述第三目标深度图像,得到对应的所述目标图像序列。
[0044] 结合第二方面,在一种可行的实现方式中,所述提取模块包括:
[0045] 分量计算单元,用于分别计算每个所述目标图像序列的梯度分量;
[0046] 归一化单元,用于将每个所述目标图像序列的所述梯度分量进行L2范数归一化,得到每个所述目标图像序列的所述梯度方向向量。
[0047] 结合第二方面,在一种可行的实现方式中,还包括:
[0048] 数据增强模块,用于对每个所述目标图像序列进行数据增强操作。
[0049] 结合第二方面,在一种可行的实现方式中,所述数据增强模块包括:
[0050] 裁剪单元,用于对各个深度图像的预设区域进行裁剪,得到相应的第一预设尺寸的第一目标区域;
[0051] 目标尺寸选取单元,用于从预设备选尺寸中随机选取目标尺寸;
[0052] 随机裁剪单元,用于根据所述目标尺寸,对各个所述第一目标区域进行随机裁剪,得到相应的第二目标区域;
[0053] 缩放单元,用于将各个所述第二目标区域的缩放至第二预设尺寸。
[0054] 结合第二方面,还包括:
[0055] 训练深度图像序列获取模块,用于获取训练深度图像序列;
[0056] 第二划分模块,用于将所述训练深度图像序列划分为所述预设数量个训练图像序列片段;
[0057] 第二时序稀疏采样模块,用于通过第一预设时序稀疏采样方式对每个所述训练图像序列片段进行采样,得到对应的目标训练图像序列;
[0058] 训练模块,用于根据各个所述目标训练图像序列,对预建立的三维卷积神经网络模型进行训练。
[0059] 结合第二方面,在一种可行的实现方式中,还包括:
[0060] 测试深度图像序列获取模块,用于获取测试深度图像序列;
[0061] 第三划分模块,用于将所述测试深度图像序列划分为所述预设数量个测试图像序列片段;
[0062] 第三时序稀疏采样模块,用于通过第二预设时序稀疏采样方式对每个所述测试图像序列片段进行采样,得到相应的目标测试图像序列;
[0063] 测试模块,用于根据各个所述目标测试图像序列,对训练后的三维卷积神经网络进行测试。
[0064] 本申请实施例的第三方面提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面任一项所述方法的步骤。
[0065] 本申请实施例的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一项所述方法的步骤。
[0066] 本申请实施例与现有技术相比存在的有益效果是:
[0067] 本申请实施例通过采集深度图像的梯度方向向量,根据梯度方向向量和三维卷积神经网络模块进行人体动作识别,即将梯度方向向量作为三维卷积神经网络模型的输入,计算较简便,提高了识别效率;通过梯度方向向量和三维卷积神经网络可以较好地完成对图像序列的时空信息建模,提高了时空信息描述能力,此外,通过时序稀疏采样和三维卷积的有机结合,也提高了时空信息描述能力,从而提高了识别准确率。

附图说明

[0068] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0069] 图1为本申请实施例提供的一种人体动作识别方法的流程示意框图;
[0070] 图2为本申请实施例提供的数据增强操作的流程示意框图;
[0071] 图3为本申请实施例提供的训练过程的流程示意框图;
[0072] 图4为本申请实施例提供的测试过程的流程示意框图;
[0073] 图5为本申请实施例提供的一种人体动作识别装置的结构示意框图;
[0074] 图6是本申请实施例提供的终端设备的示意图。

具体实施方式

[0075] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0076] 为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
[0077] 实施例一
[0078] 请参见图1,为本申请实施例提供的一种人体动作识别方法的流程示意框图,该方法可以包括以下步骤:
[0079] 步骤S101、获取人体动作的深度图像序列。
[0080] 步骤S102、将深度图像序列等间隔划分为预设数量个图像序列片段。
[0081] 可以理解的是,上述预设数量的数值可以根据实际应用需要进行确定。具体,序列长度为N的深度图像序列{D(t)|1≤t≤N},N为大于0的正整数,将该深度图像序列等间隔划分为K个图像序列片段,S(k)|1≤k≤K,K为大于0的正整数,S(k)表示划分后的第k个图像序列片段。每个图像序列片段内包括有一定数量的深度图像。
[0082] 步骤S103、对每个图像序列片段进行时序稀疏采样,得到对应的目标图像序列。
[0083] 可以理解的是,时序稀疏采样是指从一个数据集中抽取出若干个数据,即从每个图像序列片段中抽取出若干张深度图像。采样之后,得到每个图像序列片段的目标图像序列,即每一个图像序列片段对应一个目标图像序列。该目标图像序列是由所抽取出的若干张深度图像组成的序列。
[0084] 一般来说,从每个图像序列片段中所抽取的图像数量是一样的,所抽取的图像数量可以是2张,也可以是3张。即从每个图像序列片段中可以抽取2张深度图像,也可以抽取3张深度图像。人体动作识别需要时序上连续的多帧图像,故所抽取的多张图像在时序上符合一定的规律。
[0085] 在一些实施例中,上述对每个图像序列片段进行时序稀疏采样,得到对应的目标图像序列的具体过程可以包括:从每个图像序列片段中抽取第一目标深度图像、第二目标深度图像以及第三目标深度图像,其中,第一目标深度图像、第二目标深度图像以及第三目标深度图像在深度图像序列中的时序相对位置呈等差数列;基于每个图像序列片段的第一目标深度图像、第二目标深度图像以及第三目标深度图像,得到对应的目标图像序列。
[0086] 需要说明的是,为了方便表述,将上述第一目标深度图像、第二目标深度图像以及第三目标深度图像分别用D(mk-d)、D(mk)、D(mk+d)表示,mk是指所抽取的第k个片段内的深度图像在长度为N的深度图像序列中的相对位置,d为大于零的正整数。1<mk<N。mk-d、mk、mk+d是所抽取的三种深度图像的时序相对位置,其呈等差数列分布。
[0087] 为了保证人体动作图像的连贯性,两张目标深度图像的间隔不能过大,应当处以一个合理的范围内,即d的取值不能过大。优选地,d的取值可以为1或2,即,抽取D(mk-1)、D(mk)、D(mk+1)连续三张目标深度图像,以组成相应片段的目标图像序列{D(mk-1),D(mk),D(mk+1)}。也可以抽取D(mk-2)、D(mk)、D(mk+2)三张目标深度图像,以组成相应片段的目标图像序列{D(mk-2),D(mk),D(mk+2)}。
[0088] 在另一些实施例中,也可以从每个图像序列片段中抽取连续或连贯的2张深度图像组成片段的目标图像序列。当然,从每个片段中所抽取的图像数量可以根据实际需要进行选择。
[0089] 步骤S104、提取每个目标图像序列的梯度方向向量。
[0090] 需要说明的是,抽取出每个图像序列片段的目标图像序列之后,可以基于各个目标图像序列,分别计算各个片段的梯度方向向量。
[0091] 在一些实施例中,为了进一步提高人体动作识别的准确率和效率,可以在时序稀疏采样之后,提取梯度方向向量之前,对目标图像序列进行数据增强操作。其中,数据增强操作包括图像缩放、裁剪等操作。
[0092] 可选地,在提取每个目标图像序列的梯度方向向量之前,上述方法还可以包括:对每个目标图像序列进行数据增强操作。
[0093] 具体应用中,可以将各个目标图像序列组成一个图像序列之后,再对这个图像序列中的每一帧图像进行数据增强操作,例如,当分K个片段,每个片段抽取3张深度图像,则组成包括3K张图像的深度图像序列;也可以直接对每个目标图像序列中的每一张图像进行相应数据增强操作。
[0094] 更进一步地,参见图2示出的数据增强操作的流程示意框图,上述对每个目标图像序列进行数据增强操作的过程具体可以包括:
[0095] 步骤S201、对各个深度图像的预设区域进行裁剪,得到相应的第一预设尺寸的第一目标区域。
[0096] 需要说明的是,上述预设区域可以是预先选择的区域,对各张图像中的相同位置进行裁剪,且裁剪的尺寸为第一预设尺寸。该第一预设尺寸可以根据实际需要进行设定。例如,在512×424像素的原始深度图像中,分别选取x方向90~410、y方向90~410的像素点,得到第一预设尺寸为320×320像素。
[0097] 步骤S202、从预设备选尺寸中随机选取目标尺寸。
[0098] 需要说明的是,上述预设备选尺寸可以包括多个备选尺寸,从这多个备选尺寸中随机选取一个尺寸作为目标尺寸。例如,备选尺寸可以包括320×320、288×288、256×256、224×224,随机选取的一个尺寸256×256作为目标尺寸。
[0099] 步骤S203、根据目标尺寸,对各个第一目标区域进行随机裁剪,得到相应的第二目标区域。
[0100] 随机选取出一个目标尺寸之后,利用该目标尺寸对第一目标区域进行随机裁剪,得到第二目标区域。即在第一目标区域中随机裁剪出目标尺寸大小的区域作为第二目标区域。
[0101] 例如,第一目标区域的大小为320×320,目标尺寸为256×256,则对320×320像素大小的区域随机选取一个256×256像素大小的区域。
[0102] 步骤S204、将各个第二目标区域的缩放至第二预设尺寸。
[0103] 需要说明的是,上述第二预设尺寸可以是根据实际需要进行设定,例如为224×224,此时,可以将对320×320像素大小的区域随机选取得到一个256×256像素大小的区域缩放至224×224。
[0104] 当然,数据增强的具体操作不限于上文所提及的方式。
[0105] 时序稀疏采样的具体表现形式不同,梯度方向向量的提取过程也会有相应的不同。当目标图像序列中的深度图像为3张时,可以采用中心差分法和L2范数归一化计算梯度方向向量;当为2张时,可以采用前后差分法和L2范数归一化计算梯度方向向量。
[0106] 在一些实施例中,当每个目标图像序列中的深度图像为3张时,上述提取每个目标图像序列的梯度方向向量的具体过程可以包括:分别计算每个目标图像序列的梯度分量;将每个目标图像序列的梯度分量进行L2范数归一化,得到每个目标图像序列的梯度方向向量。
[0107] 其中,基于每个目标图像序列分别计算三个方向上的梯度分量,然后再利用L2范数归一化计算对应片段的梯度方向向量。
[0108] 具体地,当目标图像序列具体为{D(mk-1),D(mk),D(mk+1)}时,对于三维图像序列D(x,y,t),在不考虑边界点的情况下,其在x,y,t三个方向上的梯度分量为Dx、Dy、Dt可以近似表示为:
[0109]
[0110]
[0111]
[0112] 然后再对梯度分量Dx、Dy、Dt进行L2归一化,将其表示为由x,y,t坐标表示的欧式空间下单位矢量形式,即:
[0113]
[0114] 这里eps表示无穷小量,在本方法中,取eps=1×10-6。G为梯度方向向量。
[0115] 需要说明的是,当目标图像序列为{D(mk-2),D(mk),D(mk+2)}或者其它时,其计算过程类似,在此不再赘述。
[0116] 步骤S105、根据梯度方向向量和预训练的三维卷积神经网络模型,进行人体动作识别。
[0117] 在经过时序稀疏采样和梯度方向向量提取之后,可以得到整个深度图像序列的梯度方向向量{G(k)|1≤k≤K}。将梯度方向向量输入至已训练的三维卷积神经网络模型,进行人体动作识别,得到识别结果。
[0118] 需要说明的是,上述三维卷积神经网络模型可以具体为三维残差卷积神经网络模型,也可以为其它网络形式的三维卷积神经网络模型,在此不作限定。该模型是预先利用训练样本数据训练好的。
[0119] 例如,当梯度方向向量的维度为C×K×H×W,C=3,表示三个方向的梯度分量,H、W表示深度图像的高度和宽度,K表示时序稀疏采样中所采用的分段数目。具体选取H=W=224,K=8,则输入网络前的梯度方向向量的数据维度为3×8×224×224。
[0120] 具体可以选取34层残差网络作为基础网络,将原始的二维卷积核替换为三维卷积核,并对网络结构进行调整,得到改进后的三维残差卷积神经网络。该改进后的三维残差卷积神经网络的各层组描述如下:
[0121] Conv1:使用64个7×7×7的三维卷积核,在H、W维度上设置步进为2,在K维度上设置步进为1。具体地,在输入数据维度为3×8×224×224时,经Conv1操作得到维度为64×8×112×112的特征图。
[0122] Conv2_x:首先使用3×3×3大小的过滤器窗口进行最大值池化,在H、W维度上设置步进为2,在K维度上设置步进为1。具体地,在输入特征图维度为64×8×112×112时,经最大值池化操作后得到维度为64×8×56×56的特征图;然后再依次使用3组2层,每层为64个3×3×3的三维卷积核对上述特征图进行卷积操作,在H、W、K的维度上设置步进为1。具体地,输入维度为64×8×56×56的特征图,经卷积操作后得到维度仍然为64×8×56×56的特征图。
[0123] Conv3_x:使用4组2层、每层为128个3×3×3的三维卷积核对上述特征图进行卷积操作,并在第一层卷积操作时设置H、W、K的维度上设置步进均为2;其余层卷积操作均设置H、W、K的维度上设置步进均为1。具体地,在输入特征图维度为64×8×56×56时,首先经第一层卷积操作得到维度为128×4×28×28的特征图;再经过剩余层的卷积操作,得到维度依旧为128×4×28×28的特征图。
[0124] Conv4_x:使用6组2层、每层为256个3×3×3的三维卷积核对上述特征图进行卷积操作,并在第一层卷积操作时设置H、W、K的维度上设置步进均为2;其余层卷积操作均设置H、W、K的维度上设置步进均为1。具体地,在输入特征图维度为128×4×28×28时,首先经第一层卷积操作得到维度为256×2×14×14的特征图;再经过剩余层的卷积操作,得到维度依旧为256×2×14×14的特征图。
[0125] Conv5_x:使用3组2层、每层为512个3×3×3的三维卷积核对上述特征图进行卷积操作,并在第一层卷积操作时设置H、W、K的维度上设置步进均为2;其余层卷积操作均设置H、W、K的维度上设置步进均为1。具体地,在输入特征图维度为256×2×14×14时,首先经第一层卷积操作得到维度为512×1×7×7的特征图;再经过剩余层的卷积操作,得到维度依旧为512×1×7×7的特征图。
[0126] Fc:首先对H、W、K维度分别进行均值池化,选用的过滤器窗口大小为然后使用512×Nc全连接层输出到对应的动作类别数。具体地,在输入维度为512×1×7×7的特征图,使用1×7×7大小的过滤器窗口进行均值池化,得到512×1×1×1维度的特征向量。然后以60类人体动作为例,使用权重系数维度为512×60全连接,得到1×60的特征向量。
[0127] 改进后的三维残差卷积神经网络相较于二维卷积残差神经网络,其在Conv1和Conv2_x上不对时间维度进行缩减,在Conv3_x到Conv5_x之间同步进行空间和时间尺寸的缩减。最后采用均值池化输出512维的特征向量,采用全连接至输出的类别数Nc。从输入到输出在时间维度上进行1/8的尺度缩减,空间维度上和二维残差神经网络保持一致进行1/32的尺度缩减。
[0128] 可以理解的是,上文所示出的三维残差卷积神经网络仅仅是一种示例性结构,三维神经网络的具体网络结构、层数等可以根据计算资源消耗、识别性能等需要进行设置,在此不作限定。
[0129] 可以看出,本实施例基于深度图像序列进行时序稀疏采样,然后提取梯度方向向量作为局部时空运动信息输入,再基于三维神经网络对得到的局部时空运动信息输入进行全局表观信息和运动信息的特征学习,得到动作类别标签,其只需计算梯度方向向量,计算十分简便,且时空描述能力强,识别性能高。
[0130] 为了验证本实施例提供的人体动作识别方法的效果,在目标数据规模最大的NTU RGB+D数据集上进行实验验证。具体采用交叉志愿者(Cross subjects)验证和交叉视角(Cross views)验证两个测试协议进行了实验,同时对使用原始深度数据和使用梯度方向向量两种方法进行了比较。本实施例提供的方法同其他公开的方法的识别率对比情况如表1所示。
[0131] 表1在NTU RGB+D数据集上同其他方法的识别率对比
[0132]
[0133] 注:C表示可见光图像,D表示深度图像,S表示骨架关节点。
[0134] 从表1中可以看出,目前性能较好的方法均采用骨架关节点或可见光数据作为数据输入。在多种模态数据融合时,效果提升更为明显。而本方法在只采用深度图像数据的情况下,可以在两个测试协议上均达到目前最好的水平,并且已经领先于多种模态融合的方法。
[0135] 本实施例中,通过采集深度图像的梯度方向向量,根据梯度方向向量和三维卷积神经网络模块进行人体动作识别,即将梯度方向向量作为三维卷积神经网络模型的输入,计算较简便,提高了识别效率;通过梯度方向向量和三维卷积神经网络可以较好地完成对图像序列的时空信息建模,提高了时空信息描述能力,此外,通过时序稀疏采样和三维卷积的有机结合,也提高了时空信息描述能力,从而提高了识别准确率。
[0136] 实施例二
[0137] 基于上述实施例一,本实施例将对三维卷积神经网络模型的训练过程和测试过程进行介绍说明。
[0138] 参见图3示出的训练过程的流程示意框图,基于上述实施例一,在上述获取人体动作的深度图像序列之前,还可以包括:
[0139] 步骤S301、获取训练深度图像序列。
[0140] 步骤S302、将训练深度图像序列划分为预设数量个训练图像序列片段。
[0141] 步骤S303、通过第一预设时序稀疏采样方式对每个训练图像序列片段进行采样,得到对应的目标训练图像序列。
[0142] 需要说明的是,上述第一预设时序稀疏方式可以具体为:在每个训练图像序列片段中采用随机抽取的方式,抽取相应数量的深度图像,组成对应的目标训练图像序列。每个片段对应一个目标训练图像序列。例如,每个训练图像序列片段中需要抽取3张深度图像时,则从每个片段中随机抽取3张深度图像,将这3张深度图像组成相应片段的目标训练图像序列。
[0143] 在得到每个片段的目标训练图像序列之后,可以进行数据增强操作,该数据增强操作可以包括裁剪、缩放等操作,其过程可以与上文提及的数据增强过程类似,在此不再赘述。
[0144] 步骤S304、根据各个目标训练图像序列,对预建立的三维卷积神经网络模型进行训练。
[0145] 可以理解的是,三维卷积神经网络模型的具体介绍可以参见上文相应内容,在此不再赘述。
[0146] 具体训练过程中,可以采用交叉熵损失最为准则函数,使用小批次随机梯度下降法进行模型训练。且在模型初始化过程中不使用预训练参数,而是采用Kaiming初始化方法对卷积参数进行初始化。
[0147] 在超参数设置方法,所使用的缺省配置可以具体为:批大小为64,初始学习率为0.01,动量为0.9,权重衰减为1×10-5,一共进行100代迭代,设置学习率每20代衰减为之前的0.1。
[0148] 在训练完成之后,需要对训练得到的网络模型进行测试,以确定该模型是否符合使用标准。
[0149] 故在一些实施例中,参见图4示出的测试过程的流程示意框图,在上述根据目标训练图像序列,对预建立的三维卷积神经网络模型进行训练之后,还可以包括:
[0150] 步骤S401、获取测试深度图像序列。
[0151] 步骤S402、将测试深度图像序列划分为预设数量个测试图像序列片段。
[0152] 步骤S403、通过第二预设时序稀疏采样方式对每个测试图像序列片段进行采样,得到相应的目标测试图像序列。
[0153] 需要说明的是,上述第二预设时序稀疏采样方式可以具体为:从每个片段中抽取片段中间位置的深度图像。例如,当片段序列数目为11时,且每个片段需要抽取3张图像时,则抽取该片段内第6帧图像以及相邻的两帧深度图像。
[0154] 可以看出,该时序稀疏采样方式与训练过程中的时序稀疏采样方式不同,训练过程和测试过程中的时序稀疏采样方式的不同,可以使得网络学习的特征更具有泛化能力。
[0155] 当然,训练过程和测试过程的时序稀疏采样方式也可以相同,也能实现本申请实施例的目的。
[0156] 在得到每个片段的目标测试图像序列之后,可以进行数据增强操作,该数据增强操作可以包括裁剪、缩放等操作。在测试阶段,裁剪出各个深度图像的固定区域之后,可以直接缩放至一定尺寸。例如,在512×424像素的原始深度图像中,分别选取x方向90~410、y方向90~410的像素点,得到尺寸为320×320像素,然后直接缩放至224×224像素。
[0157] 可以看出,测试阶段的数据增强操作与训练过程的数据增强操作不一致,这样可以使得网络学习的特征更具有泛化能力。
[0158] 步骤S404、根据各个目标测试图像序列,对训练后的三维卷积神经网络进行测试。
[0159] 需要说明的是,训练过程、测试过程中与上述实施例一的识别过程中相似过程可以相互参见,在此不再赘述。
[0160] 本实施例中,训练过程和测试过程中的时序稀疏采样方式的不同,可以使得网络学习的特征更具有泛化能力。
[0161] 实施例三
[0162] 请参见图5,为本申请实施例提供的一种人体动作识别装置的结构示意框图,该装置可以包括:
[0163] 深度图像序列获取模块51,用于获取人体动作的深度图像序列;
[0164] 第一划分模块52,用于将深度图像序列等间隔划分为预设数量个图像序列片段;
[0165] 第一时序稀疏采样模块53,用于对每个图像序列片段进行时序稀疏采样,得到对应的目标图像序列;
[0166] 提取模块54,用于提取每个目标图像序列的梯度方向向量;
[0167] 识别模块55,用于根据梯度方向向量和预训练的三维卷积神经网络模型,进行人体动作识别。
[0168] 在一种可行的实现方式中,上述第一时序稀疏采样模块包括:
[0169] 抽取单元,用于从每个图像序列片段中抽取第一目标深度图像、第二目标深度图像以及第三目标深度图像,其中,第一目标深度图像、第二目标深度图像以及第三目标深度图像在深度图像序列中的时序相对位置呈等差数列;
[0170] 形成单元,用于基于每个图像序列片段的第一目标深度图像、第二目标深度图像以及第三目标深度图像,得到对应的目标图像序列。
[0171] 在一种可行的实现方式中,上述提取模块包括:
[0172] 分量计算单元,用于分别计算每个目标图像序列的梯度分量;
[0173] 归一化单元,用于将每个目标图像序列的梯度分量进行L2范数归一化,得到每个目标图像序列的梯度方向向量。
[0174] 在一种可行的实现方式中,上述装置还包括:
[0175] 数据增强模块,用于对每个目标图像序列进行数据增强操作。
[0176] 在一种可行的实现方式中,上述数据增强模块包括:
[0177] 裁剪单元,用于对各个深度图像的预设区域进行裁剪,得到相应的第一预设尺寸的第一目标区域;
[0178] 目标尺寸选取单元,用于从预设备选尺寸中随机选取目标尺寸;
[0179] 随机裁剪单元,用于根据目标尺寸,对各个第一目标区域进行随机裁剪,得到相应的第二目标区域;
[0180] 缩放单元,用于将各个第二目标区域的缩放至第二预设尺寸。
[0181] 在一种可行的实现方式中,上述装置还包括:
[0182] 训练深度图像序列获取模块,用于获取训练深度图像序列;
[0183] 第二划分模块,用于将训练深度图像序列划分为预设数量个训练图像序列片段;
[0184] 第二时序稀疏采样模块,用于通过第一预设时序稀疏采样方式对每个训练图像序列片段进行采样,得到对应的目标训练图像序列;
[0185] 训练模块,用于根据各个目标训练图像序列,对预建立的三维卷积神经网络模型进行训练。
[0186] 在一种可行的实现方式中,上述装置还包括:
[0187] 测试深度图像序列获取模块,用于获取测试深度图像序列;
[0188] 第三划分模块,用于将测试深度图像序列划分为预设数量个测试图像序列片段;
[0189] 第三时序稀疏采样模块,用于通过第二预设时序稀疏采样方式对每个测试图像序列片段进行采样,得到相应的目标测试图像序列;
[0190] 测试模块,用于根据各个目标测试图像序列,对训练后的三维卷积神经网络进行测试。
[0191] 本实施例中,通过采集深度图像的梯度方向向量,根据梯度方向向量和三维卷积神经网络模块进行人体动作识别,即将梯度方向向量作为三维卷积神经网络模型的输入,计算较简便,提高了识别效率;通过梯度方向向量和三维卷积神经网络可以较好地完成对图像序列的时空信息建模,提高了时空信息描述能力,此外,通过时序稀疏采样和三维卷积的有机结合,也提高了时空信息描述能力,从而提高了识别准确率。
[0192] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0193] 实施例四
[0194] 图6是本申请一实施例提供的终端设备的示意图。如图6所示,该实施例的终端设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62。所述处理器60执行所述计算机程序62时实现上述各个人体动作识别方法实施例中的步骤,例如图1所示的步骤S101至S105。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块或单元的功能,例如图5所示模块51至55的功能。
[0195] 示例性的,所述计算机程序62可以被分割成一个或多个模块或单元,所述一个或者多个模块或单元被存储在所述存储器61中,并由所述处理器60执行,以完成本申请。所述一个或多个模块或单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述终端设备6中的执行过程。例如,所述计算机程序62可以被分割成深度图像序列获取模块、第一划分模块、第一时序稀疏采样模块、提取模块以及识别模块,各模块具体功能如下:
[0196] 深度图像序列获取模块,用于获取人体动作的深度图像序列;第一划分模块,用于将深度图像序列等间隔划分为预设数量个图像序列片段;第一时序稀疏采样模块,用于对每个图像序列片段进行时序稀疏采样,得到对应的目标图像序列;提取模块,用于提取每个目标图像序列的梯度方向向量;识别模块,用于根据梯度方向向量和预训练的三维卷积神经网络模型,进行人体动作识别。
[0197] 所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
[0198] 所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0199] 所述存储器61可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
[0200] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0201] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0202] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0203] 在本申请所提供的实施例中,应该理解到,所揭露的装置、终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置、终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0204] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0205] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0206] 所述集成的模块或单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0207] 以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。