基于骨骼时序散度特征的人体行为识别算法

2021-07-02 00:36田志强邓春华张俊雯
计算机应用 2021年5期
关键词:时序骨架骨骼

田志强,邓春华*,张俊雯

(1.武汉科技大学计算机科学与技术学院,武汉 430065;2.武汉科技大学大数据科学与工程研究院,武汉 430065;3.智能信息处理与实时工业系统湖北省重点实验室(武汉科技大学),武汉 430065)

(*通信作者电子邮箱dchzx@wust.edu.cn)

0 引言

视频序列中人体行为识别是计算机视觉中一个重要的任务,也是机器视觉、模式识别、人工智能等多个学科领域的交叉研究课题,在视频监控、人机交互、智能机器人、虚拟现实等领域被广泛应用[1]。基于视频流的人体行为识别的算法很多:有些算法采用RGB(Red,Green,Blue)图像序列[2-3],有些算法采用深度图像序列[4-5],还有些算法采用双流融合的模态(例如RGB+光流)[6]和人体骨架序列[7]等。人体骨架数据是人体关节和骨头的一种拓扑表示方式,在面对复杂背景以及人体尺度变化、视角变化和运动速度变化时具有先天优势,相比其他模态具有更小的运算消耗[8]。此外,随着深度传感器和人体姿态估计技术不断成熟,可以轻松获得准确的人体骨架数据,因此,许多研究人员和实际项目都使用人体骨架数据来做行为检测和识别[9-13]。

传统的基于骨架的算法通常利用手工特征从特定的骨架序列中提取运动模式[14]。然而,这些手工特征只在一些特定的数据集上表现良好,可能无法迁移到其他数据集,不具有普适性[15]。随着深度学习算法在其他计算机视觉任务上的发展和优异表现,骨架数据的卷积神经网络(Convolutional Neural Network,CNN)[16-17]、循环神经网络(Recurrent Neural Network,RNN)[18]、图卷积网络(Graph Convolutional Network,GCN)[9]开始涌现。人体行为的骨架序列是关节点的自然时间序列,而RNN 比较适合处理时间序列数据,因此基于RNN及其变种(例如长短时记忆(Long Short-Term Memory,LSTM)网络、门控循环单元(Gated Recurrent Unit,GRU))的骨架行为识别算法比较多。CNN模型通常将一个切片上的骨骼数据转换成伪图像的形式,然后再利用CNN 在伪图像上提取相应的深度学习特征。当CNN 处理骨架数据序列时,通常需要结合RNN 模型。RNN 的时序上下文信息和CNN 丰富的空间信息相结合往往可以取得比单一的结构模型更好的效果。最近两年,很多学者开始将GCN 应用于骨架的行为识别。GCN 是图论与卷积神经网络的融合,其本质是用来提取拓扑图的关系特征。人体骨架序列本身就是一个自然的拓扑图结构,GCN 模型更适合描述骨骼关键点之间的空间和时序拓扑信息。因此,GCN处理骨架数据任务时,比RNN更具优势。

由于图论比较复杂,难以构造有效的深层GCN。文献[13]利用切比雪夫多项式逼近算法提出了一种近似的图卷积结构,使得图卷积操作变成了双线性模型,从而能够构造深层有效的GCN结构。ST-GCN(Spatial Temporal Graph Convolutional Network)[9]首次利用文献[13]的理论对人体骨架数据进行建模,性能明显优于同时期的RNN 算法[1]。该算法根据人体的拓扑结构建邻接矩阵,用以描述人体骨架的空间结构,并提出了一种基于距离采样的函数作用于GCN 的卷积层,使神经网络更好地学习到人体骨骼数据之间的空间和时序上下文信息。许多研究者在ST-GCN 的基础上,通过改进,提出了一系列的基于人体骨架的行为识别算法[10-12]。对于种类繁多的行为动作,固定的骨架图结构往往不是最佳的选 择,2s-AGCN(Two-stream Adaptive Graph Convolutional Network)[10]提出自适应图卷积层,根据不同的动作,生成相对有效的图模型,并利用双流模型,实现数据之间的信息互补,用以提升识别效果;AS-GCN(Actional-Structural Graph Convolutional Network)[11]引入一种解码-编码结构用于获取骨架点之间的依赖信息,并结合结构链接图,提出一种双流GCN的行为识别算法;RA-GCN(Richly Activated Graph Convolutional Network)[12]在前人的基础上,直接发展成多流人体骨架数据,构建一种分支结构的GCN,最后再使用softmax分类器对多个分支进行融合。这些算法都在ST-GCN 的基础之上提出了特有的双流或者多流算法。

然而,目前的GCN 算法在数据提取上仍然存在不足:输入的人体骨架数据切片仅仅包含人体骨骼点的空间信息,骨架的时序上下文信息需要通过GCN 模型获取;人体骨架数据是由人体骨架的三维坐标数据组成,缺乏外观细节和运动细节信息,极大限制了骨架数据在行为识别上的性能;外观细节无法通过关节坐标点表征,然而运动细节信息却可以通过关节坐标点展现;虽然时序上下文信息可以通过大量样本训练得到,但是基于数据驱动的特征具有更强的一般化运动信息而缺乏运动细节描述。针对上述问题,本文提出了一种基于骨骼点时序散度的特征模型,用来描述骨骼点在时间维度上的位移及运动信息。本研究发现同一种骨骼点在不同行为的时序骨架数据的分散度可能不同。在物理学中,表征空间点矢量场发散的强弱程度一般使用散度场理论来描述,其意义在于描述场的有源性。受此启发,本文将物理中的散度场理论引入到骨骼点的运动细节信息的描述,提出一种散度场的时序特征模型。考虑到骨架关键点的坐标误差对运动细节影响较大,本文提出了一种散度特征注意力机制,用以增强散度模型的有效性。时序散度特征和原始的骨骼数据有很强的互补性,分别从运动和静态的角度对骨骼数据进行了描述。在此基础之上,本文构建了一种新的双流GCN模型。

为了验证散度模型和本文的双流模型的有效性,本文在目前权威的人体行为数据集NTU-60[19]和NTU-120[20]上做了充分的验证,性能均超过了上述所提算法。本文主要工作有:

1)提出了一种骨骼数据的散度模型,描述骨骼点的运动细节信息;

2)提出了一种骨骼数据的注意力机制,增强散度模型的有效性;

3)根据原始骨架的空间数据特征和时序散度特征的互补性构建了双流融合模型。

1 图卷积神经网络

面对深度神经网络难以学习复杂数据之间依赖关系的问题,使用图卷积神经网络(Graph Convolutional Neural Network,GCNN)往往是不错的选择。目前图卷积的方法主要分为空域卷积[21-22]和频域卷积[23-24]两种:空域卷积是利用卷积核直接对图的顶点及其邻居节点进行卷积操作,并手动设计规则进行相应的特征提取和归一化;频域卷积则利用图的邻接矩阵导出其频域上的拉普拉斯算子,利用傅里叶变换[25],将图映射到频域上的欧氏空间中进行卷积。本文采用空域卷积的方法。

图卷积神经网络中,需要通过数据间的依赖关系构建相应的图模型。为了描述人体骨骼点之间的依赖关系,本文将参照文献[9]中的方法,根据人体的拓扑结构构建图模型。文献[9]将邻接矩阵划分为3 个子集:1)根节点本身;2)向心集,比根节点更靠近骨架中心点的相邻节点;3)离心集,比根节点更远离骨架中心点的相邻节点。表达式如式(1)所示:

式(1)中:Aij表示i节点到j节点的相对距离,ri和rj分别表示i、j两个骨骼点到人体重心点的相对距离,在NTU-RGB+D 数据集[19-20]中取人体胸口为重心点。

在确定图模型之后,需要构建图卷积神经网络来对数据提取相应特征。基于图的卷积网络实现起来比2D 或3D 卷积复杂许多。本文按照文献[9]中的方法构建图卷积网络模型,其定义如下:其中:fin和fout分别表示数据的输入和输出,M为权重矩阵,I表示单位矩阵,Λ1/2(Ak+I)Λ1/2表示第k个样本邻接矩阵和关联矩阵的拉普拉斯归一化。输入特征fin为C×T×N,C表示特征维度,T表示帧数,N表示单个骨骼的骨骼点个数。

2 时序散度特征模型及其双流网络

本章主要介绍本文方法的原理,流程如图1 所示。首先探究人体骨骼点在不同行为中的运动差异性,并引出骨骼点时序散度的基本概念,由此构建骨骼点时序散度特征模型;然后为骨骼点散度特征模型添加注意力机制,进一步增大类间方差;接着为了探究不同数据流之间的互补关系,将骨骼点散度特征流与空间特征流相融合,训练分类器预测结果;最后给出详细的实施步骤以及伪代码。

图1 本文方法流程Fig.1 Flowchart of the proposed method

2.1 构建骨骼点的时序散度特征流

对于行为识别任务,人们往往能通过某些骨骼点的运动差异性来分辨某些人体行为。例如,当人们主观去辨别“挥手”和“踢腿”这两个行为时,可以通过手臂和腿部骨骼的运动差异性来对这两种行为做出辨别。在此,本文做了一个简单的实验来论证上述观点。

本文提取NTU-RGB+D60 数据集[17]中类别为“挥手”和“踢腿”的两个视频,计算视频序列中所有时刻手腕和脚踝在x、y、z三个方向上的平均位移矢量Δx、Δy、Δz,并将其标记在三维坐标系上。

图2 中,(a)和(b)分别表示“挥手”和“踢腿”两个人体行为类别中人物骨骼点位移矢量的分布图;(c)和(d)分别表示“挥手”行为及“踢腿”行为的骨骼点的可视化。(a)和(b)中的红点与蓝叉分别表示视频中所有时刻手腕和脚踝在x、y、z三个方向上的位移矢量。从图中可以明显地看出,对于“挥手”这个类别,其手腕的位移矢量分布的离散程度要大于脚踝;而对于“踢腿”这一类,脚踝的位移矢量分布的离散程度则要大于手腕。依靠骨骼点位移矢量分布的离散程度,人们就能很容易地区分“鼓掌”和“踢腿”这两种行为。

图2 不同人体行为间的运动差异Fig.2 Movement differences between different human behaviors

为了更好地描述上述实验中提出的骨骼点位移矢量的分布状态,本文给出骨骼点时序散度的概念:骨骼点的时序散度可以用来描述人体骨骼点在时间维度的运动状态。例如,在某一时刻,骨骼点时序散度的大小可以表示骨骼点在该时刻的运动幅度;而在宏观上,在某一时间段内,每个时刻散度分布的离散程度可以反映骨骼点的运动幅度。后文会围绕上述概念对骨骼点的时序散度给出公式及定义,在此之前,本文将率先介绍笛卡尔坐标系中向量场的散度定义。

在三维笛卡尔坐标系中,一个连续可微向量场的散度场可以用来描述该向量场的强弱,其表达示如下:

人体骨骼点在某一时间段内的运动轨迹恰好构成了向量场。则对于任意时间段[t,t+Δt],骨骼点的轨迹向量场可表示如下:

其中:C表示骨骼点的点源坐标集合,Ct表示视频t时刻骨骼点的坐标特征。

轨迹向量场可以放大不同行为之间的类间方差。式(3)中所描述的是物理力学中向量场在空间坐标系下的变化状态。而本文所研究的是骨骼点轨迹向量场在时间维度上的变化状态。参照式(3),可以衍生出骨骼点时序散度的定义。

在任意时间段[t,t+Δt](Δt趋近于0),人体骨骼点的位移矢量与时间变化量的比值即为骨骼点在时刻t时刻的时序散度。在空间坐标系中,骨骼点的位移矢量可分解为x、y、z三个方向上位移分量,骨骼点的时序散度的定义式如下:

其中:i、j、k分别表示x、y、z轴方向上的单位向量。如式(5)所示,对于任意时刻,每一个体的骨骼点都可以提取3 维时序散度。其物理意义是描述骨骼点在时间维度上的运动幅度。

在某一完整的人体行为视频序列中,融合每一帧所有骨骼点的时序散度则可得到该视频的时序散度特征:

其中K表示骨骼点集合,在NTU-RGB+D 数据集中,人体的骨骼点个数为25。时序散度特征即为骨骼点每一时刻时序散度的集合。宏观上可以看作是人体骨骼连续的运动轨迹及瞬时的运动幅度。

2.2 骨骼点时序散度特征的注意力机制

在行为识别任务中,人们往往只需要通过“手”“足”这些具有代表特征的骨骼点就能判别某些行为。这些骨骼点都有一个共同特点:它们距离人体重心点的距离较远,运动半径更大,灵活性更强。相较于人体上灵活性相对较弱的骨骼点(例如肩膀、跨部),手腕与脚踝这些骨骼点往往对人体行为识别任务起到更为关键的作用。

为了突显这些骨骼点的特征,本文将为这些骨骼点添加注意力机制。具体算法如下文。

选取人体重心点为基准,用重心点到其他各个骨骼点的连线l表示各个骨骼点到人体重心的相对距离,则在相邻时刻[t,t+Δt],骨骼点jk的到重心点的平均距离L可表示如下:

令x=L,将原始区间[0,1]以及欲生成的新区间[a,b]代入式(8),可解p=1/(eb-a-1),q=b-ln(eb-a/(eb-a-1))。

在实验过程中,a、b的默认取值分别为0.8 和1。对于任意时刻t,骨骼点jk重心散度特征的定义式如式(9)所示:

注意力机制可以增强距离人体重心点较远以及运动幅度较大的骨骼点的表征能力,进一步增加不同人体行为的类间方差,使神经网络更容易辨别到不同人体行为。

2.3 时序散度特征与空间特征相融合

在ST-GCN[9]以及AGCN[10]中,研究者都是将人体骨架以点源坐标的形式输入到神经网络中,点源坐标属于人体骨骼点的空间特征,而本文所提出时序散度特征流为骨骼点的时序特征。本文认为空间特征与时间特征有良好的互补关系。为了验证上述观点,本文将构建双流网络,将时序散度特征分别与点源流特征相结合,训练分类器并预测最终结果。其表达式如下:

其中:σ(·)表示激活函数,在本文实验中σ(x)=softmax(x),res表示预期结果;xt表示时序散度特征,xs表示点源特征。Js(·)和Ts(·)分别表示骨骼点的时序散度特征流以及点源流特征的图卷积网络模型,⊕表示矩阵拼接。

2.4 算法的实现

上文中介绍了本文中所提方法及原理。整体流程如下:首先,获取视频中骨骼点的坐标数据矩阵Data,该矩阵维度为[N,T,C,V],这些参数分别表示所有视频中的总人数、视频帧数、特征维度以及骨骼点个数,在NTU-RGB+D 数据集[17-18]中,C=3,V=25。接着,利用式(4)求出轨迹向量Vt。确认归一化区间[a,b],并根据2.2 节中所示方法解出式(8)中的实参p和q,并根据式(7)求得骨骼点到人体重心点的平均距离L,将x=L代入式(8)中将其归一化到区间[a,b],并利用式(9)可求得xt。然后分别构建时序图卷积神经网络Ts(·)以及空间图卷积神经网络Js(·),用它们分别提取时序散度和点源的抽象特征,接着采用矩阵合并的方式将上述抽象特征融合。最后使用softmax得到分类结果res。

方法其伪代码如下。

输入 视频中的骨骼数据S=[N,T,C,V],间隔时间c,归一化区间[a,b],绝对值函数abs(·),点源特征xj,时序图卷积神经网络Ts(·),空间图卷积神经网络Js(·),矩阵拼接函数concat(·),分类器softmax(·)。

输出 预测结果res。

3 实验与分析

3.1 数据集

1)NTU-RGB+D60[19]。NTU-RGB+D60 是公开的3D 人体行为数据集,包含60 个动作类别,总共包含57 880 个视频样本。该数据集的拍摄和剪辑工作由40个年龄段在10~35岁的志愿者所执行。每个动作由3台摄像机拍摄,这3台摄像机拍摄时选择的高度相同,但水平角度不同,分别为:-45°、0°、45°。该数据集利用kinect 深度传感器检测到每一帧人体的3D 骨骼点序列,骨骼序列中每个人有25 个骨骼点,骨骼点的分布如图3所示,且所有视频中的总人数不超过2。文献[19]中提供了2 个基准来对数据集划分数据集:X-Sub 和X-View。其中X-Sub 按拍摄视频中参与者的不同来将数据集划分为训练集(40 320个视频)和验证集(16 560个视频);X-View将1号和3号摄像机拍摄到的37 920个视频作为训练集,将2号摄像机拍摄到18 960视频作为验证集。本文将遵循上述两种划分方式来评估本文所提模型。

图3 NTU-RGB+D 骨架示意图[17]Fig.3 Schematic diagram of NTU-RGB+D skeleton

2)NTU-RGB+D120[20]。和NTU-RGB+D60[19]一样,该数据集是3D 行为识别的公开数据集。文献[20]中提供了2 个基准来对数据集进行划分:X-Sub和X-View,其中:X-Sub按拍摄视频中参与者的不同来将数据集划分为训练集(63 026 个视频)和验证集(50 919个视频);X-View 根据视频编号来对数据集进行划分,将编号为偶数的视频作为训练集(75 823 个视频),编号为奇数的视频作为测试集(38 122个视频)。本文将遵循上述两种划分方式来评估本文所提出的模型。

3.2 训练详情

本文的所有实验均使用Pytorch[26]作为深度学习框架。训练方式参考文献[10],在NTU-RGB+D 数据集[19-20]上,单次训练所选取的样本数为64(baseline=64)。选择交叉熵作为反向传播梯度的损失函数,权重衰减率设置为0.000 1。对于NTU-RGB+D 数据集[19-20],本文选取的样本人数为2。若视频中总人数大于2,则取其中2 人;若总人数小于2,则取目标视频中的总人数,并在数据矩阵中用0 补全空缺位置。视频总共取300 帧,如果所选视频帧数少于300,则用0 补全空缺位置;总的迭代次数设置为60,初始的学习率设为0.1,并在第30 次迭代时和第40 次迭代时分别除以10。用上述方法完成两个单流网络的训练后,本文将分别提取网络输出特征,并将得到的特征融合,接入链式神经网络继续训练,得到预测的最终结果。训练链式神经网络时,单次训练所选取的样本数设置为256,初始学习率为0.1,迭代次数设置为20,损失函数同上文所述相同。

3.3 融合特征的实验结果分析

为了探求骨骼空间特征与骨骼点时序散度特征的互补关系,本文将构建双流网络,并在NTU-RGB+D[19-20]上做相应的测试。实验结果如表1、2 所示,其中JT-STGCN(Joint and Temporal-Spatial Temporal Graph Convolutional Network)与JTAGCN(Joint and Temporal-Adaptive Graph Convolutional Network)均表示特征融合双流网络,所融合的特征数据分别表示点源流Js 以及时序散度流Ts,所选用的基准模型分别为ST-GCN[9]与AGCN[10]。

如表1和表2所示,在NTU-RGB+D60[19]上,2s-AGCN[10]在X-Sub 和X-View 两种划分方法下的准确率分别为88.5%和95.1%;本文结合时序散度特征流以及点源特征流,在sub 和view 两种划分方法下的准确率分别为89.3%和95.5%。在NTU-RGB+D120[20]上,2s-AGCN[10]在X-Sub 和X-View 两种划分方法下的准确率分别为81.6%和93.2%;本文结合时序散度特征流以及点源特征流,在X-Sub 和X-View 两种划分方法下的准确率分别为82.9%和83.7%。可以看出时序特征与空间特征的互补能力要强于原版2s-AGCN[2]中的双流网络。

表1 在NTU-RGB+D120数据集上准确率对比 单位:%Tab.1 Accuracy comparison on NTU-RGB+D120 dataset unit:%

表2 在NTU-RGB+D60数据集上准确率对比 单位:%Tab.2 Accuracy comparison on NTU-RGB+D60 dataset unit:%

为了探求时序特征与和点源特征的优劣性,本文以STGCN[1]为基准模型,在X-View 的划分方法下,单独计算了NTU-RGB+D60[17]数据集中单类的准确率。时序散度流Ts 和点源特征流Js 在类别“穿鞋”的上准确率分别为93%和70%,在类别“检查时间”上的准确率分别为“69%”和“94%”。由此可以看出,时序散度特征与点源特征在不同的类别上各有优劣。如图4(a)所示,“穿鞋”这一行为,包含弯腰、伸手、提鞋子这些动作分支,人体动作比较复杂。时序散度特征对复杂动作有极强的表征能力,故在“穿鞋”这一行为上的识别率要远高于点源流特征;如图4(b)所示,“检查时间”这个动作仅仅是抬起手臂,动作较为单一。时序散度特征对单一的动作没有很强的表征能力,故对于“检查时间”这一行为,点源特征的识别率要高于时序散度特征。在结合上述两流的特征后,“穿鞋”和“检查时间”的识别率分别达到了95%和93%。可以看出,结合后的双流网络继承了时序散度流以及点源流的优势,弥补了各自的不足,整体上有着更好的性能。

图4 不同人体行为的骨骼点可视化Fig.4 Visualization of skeleton points of different human behaviors

通过上述实验,可以得出以下结论:时序散度特征对于人体行为中复杂的运动状态有着极强的表征能力,点源特征则更适用于运动状态单一的人体行为。两者各有优劣,同时也具有极强的互补关系。这也论证了2.3 节中所提出的观点:时序特征与空间特征有着极强的互补关系。

3.4 消融实验结果分析

为了验证散度特征注意力机制的有效性,本文做了相应的消融实验。如表3 所示,Ts-no-A 表示无注意力机制的时序散度特征。可以看出,在加入注意力机制后,实验性能都有显著的提升。由此验证了2.2 节中所阐述的观点:在人体行为识别任务中,相比于人体上灵活性相对较弱的骨骼点(例如肩膀、跨部),手腕与脚踝这些骨骼点往往对人体行为识别任务起到更为关键的作用。

表3 关于注意力机制的消融实验结果Tab.3 Results of ablation experiments of attention mechanism

为了对比Js 和Ts 的性能,本文选用ST-GCN 以及AGCN为基准模型,特征流分别选用点源特征流Js 和时序散度特征流Ts,在NTU-RGB+D 数据集[19-20]上采用单流网络做了消融实验,实验结果如表4~5所示。

从表4~5 中可以得知,对于不同的基准模型,时序散度特征的性能也有所不同。在ST-GCN[9]的基础上,相对于原始的点源数据而言,采用时序散度特征的建模方法可以达到更加显著的效果;但是在AGCN[10]上,采用轨迹向量建模,效果却不是那么明显。本文认为,由于AGCN[10]中自适应卷积层的作用是通过初始的数据信息预测出有效的特征图。因此AGCN[2]模型数据有一定的要求:初始数据必须对人体的空间特征有一定的表达能力。然而轨迹向量的建模方法会使数据丢失一部分的空间表达能力。故在AGCN[2]的单流网络中,散度特征的性能没有很好地展现出来。

表4 消融实验在NTU-RGB+D60数据集上的结果Tab.4 Results of ablation experiments on NTU-RGB+D60 dataset

表5 消融实验在NTU-RGB+D120数据集上的结果Tab.5 Results of ablation experiments on NTU-RGB+D120 dataset

4 结语

在基于骨骼点的行为识别算法中,点源数据缺乏时序信息。为了解决上述问题,本文提出了基于骨骼点的时序散度特征,用来描述人体骨骼点在时间维度上的运动状态。接着为时序散度特征添加注意力机制,增加不同行为之间的类间方差,使神经网络更容易辨别不同的人体行为。最后构建时空双流网络模型,融合时序散度特征以及点源空间特征,并在NTU-RGB+D 数据集[19-20]上做了大量实验,双流模型的实验效果均超过所采用的基准模型。

从实验结果可以看出,时序散度特征可以弥补点源特征缺乏时间维度上运动表征的不足,能有效地与点源空间特征相结合,两者具有很强的互补关系。这也证实了本文方法的有效性。但由于人体骨架缺乏场景信息,该研究方向依然有很大的提升空间。可以考虑将场景信息与骨骼点将结合,并使用自适应卷积层过滤掉场景信息中的噪声,保留关键信息。在未来的行为识别算法研究中,可以在上述两个方面深入探索。

猜你喜欢
时序骨架骨骼
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
浅谈管状骨架喷涂方法
汽车用减震件过盈配合骨架装配模具及装配技术
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
你不能把整个春天都搬到冬天来
“超级大陆”发现新物种完整骨架
周博士考察拾零(六十六)日光温室前屋面开机具作业门处骨架的处理方法
3D打印骨骼指日可待
骨骼是如何生长的