1. 引言
动作识别算法作为计算机视觉领域热门的研究课题之一,被广泛地应用于人机交互 [1] [2]、监控安全 [3] [4] 以及医疗健康 [5] 等领域。由于RGB图像数据存在遮挡、光线变化以及视角变换等挑战,基于骨架的动作识别算法为人们打开了新的思路。
骨架数据的一个重要优势在于它显式地记录了关节点的坐标信息,避免背景信息的干扰。但挑战也是显而易见的,动作的执行速率不同,导致采样的骨架序列存在时间错位的问题。尤其是,当以不同的演变速率执行相同的动作时,数据对应的采样帧并不完全相似。解决这个问题的常用方法是找到一个合适的模板动作,将所有动作序列样本与模板对齐。形状分析都在对齐后的骨架序列上进行,从而避免由时间错位引起的度量扭曲。
在动作识别的黎曼框架下,骨架序列被表示成流形上的轨迹,而流形上模板轨迹的计算方法,目前大致分为两种。第一种是在轨迹的切空间寻找模板。Vemulapalli等人 [1] 将动作骨架序列表示为李群上的轨迹,随后将轨迹上的点映射到李代数上。由于李代数为向量空间,因此,作者首先随机选择一条轨迹的李代数来初始化模板,并将其他轨迹的李代数与之对齐。然后直接求取对齐后的所有轨迹李代数的线性平均,将该平均向量作为新的对齐模板。在切空间寻找对齐模板,方法简单,计算高效,但是一旦将轨迹映射到了切空间,它就不再具有轨迹的非欧结构。这在对齐轨迹时,可能会损失一些结构信息。第二种常用方法就是基于Karcher均值的概念,计算所有样本轨迹的平均轨迹,并将该平均轨迹作为模板轨迹。平均轨迹包含所有样本轨迹的统计信息,是合适的轨迹对齐模板。Su等人 [7] 提出将传输平方根向量场(Transported Square-Root Vector Field, TSRVF)与Karcher均值概念相结合的平均轨迹计算方法,将平均轨迹定义为一条积分曲线,积分起点固定,沿着平均传输平方根向量场方向进行积分。Anirudh等人 [8] 将Su等人 [7] 提出的平均轨迹计算方法与基于李群的骨架表示方法进行结合,用于解决李群上轨迹的时间错位问题。Amor等人 [9] 将骨架序列表示成Kendall形状空间上的轨迹,然后结合轨迹在形状空间上的测地距离以及Karcher均值的概念来计算平均轨迹。
本文基于Karcher均值算法的概念,提出将Karcher均值算法与李群上测地距离相结合的平均轨迹计算方法。该方法不同于上述工作中的平均轨迹计算方法,其基本思想是平均轨迹到所有样本轨迹的测地距离平方和最小。根据测地距离,将平均轨迹逐步向样本轨迹中心平行移动,因此,计算所得的平均轨迹更靠近样本轨迹中心。本文将该方法应用于动作识别中,构建一个新的动作识别框架。本文首先采用基于李群的骨架表示方法 [6],对骨架上身体部位之间的相对几何位置(旋转和平移)进行编码。随后,本文运用提出的平均轨迹计算方法,计算所有样本轨迹的平均轨迹,并利用传输平方根向量场表示方法 [7] 将所有样本轨迹与平均轨迹对齐。在特征提取阶段,本文提取两种分类特征,即平均轨迹到样本轨迹的射击向量以及样本轨迹的李代数。为了解决数据噪声问题,我们采用傅里叶时间金字塔表示方法 [10] 来处理两类特征,滤掉高频系数,并提出对两类特征的傅里叶系数进行加权融合,以获得更优的动作识别结果。最后,我们训练一个one-vs-all线性支持向量机分类器来实现动作分类。本文的主要贡献可以总结为以下两点:
1) 提出了Karcher均值与测地距离相结合的平均轨迹计算方法,并将其应用于动作识别任务,构建出一个新的动作识别框架。
2) 提出对两种动作特征的傅里叶系数进行加权融合。本文实验结果验证了融合特征的有效性。
2. 预备知识
2.1. 特殊欧氏群SE(3)的基础知识介绍
特殊欧氏群SE(3)是
矩阵的集合,矩阵形式为
其中
表示旋转矩阵,它是特殊正交群SO(3)上的元素。
表示平移向量。从几何的角度看,特殊欧氏群SE(3)中的元素形成了一个弯曲的6维流形,并且具有李群结构 [11]。恒等矩阵
是SE(3)中的元素,同时也是该李群的单位元。
SE(3)在单位元
处的切平面称为SE(3)的李代数,记为
。对任意元素
其中
,
是
的反对称矩阵。它的等价向量表示为
,是一个6维的向量空间。
对于SE(3)上的指数映射和对数映射,本文沿用 [12] 中给出的定义。对任意
,当
时,指数映射定义为
(1)
当
时,指数映射定义为
(2)
其中
和A可由Rodrigue公式显式给出,
对任意
,对数映射的定义为
(3)
其中
,当
时,
当
时,
。
![](//html.hanspub.org/file/20-1251309x36_hanspub.png)
Figure 1. Pairwise interpolation method. The red point is the point to be interpolated, and the orange solid line is the Lie group SE(3) geodesic line
图1. 成对插值法。红点为待插值点,橘色实线为李群SE(3)测地线
对SE(3)上的数据进行插值有多种方法 [13]。本文主要采用基于螺旋运动的成对插值法 [14]。如图1所示,给定
,分别对应时刻
,然后定义以下曲线进行插值:
其中
,
,
。指数映射exp和对数映射log通过(1)、(2)、(3)式进行估计。
2.2. 骨架表示的具体方法
令
表示一副骨架,其中
表示关节点集合,
表示带有方向的身体骨骼位置集合。如图2展示了一副包含15个关节点和14块身体骨骼的骨架。
给定一对身体骨骼
和
,如图3所示,
分别表示身体骨骼的
起点和终点。为了表述它们之间的相对几何关系,我们首先对其中一块骨骼构建局部坐标系,然后描述将其移动到另一块骨骼位置处的旋转和平移。在图3中,骨骼
的局部坐标系是通过旋转一平移全局坐标系所得。令
为
轴,
是坐标原点,
分别为时刻
时,骨骼
在
局部坐标系下的起始关节点。于是,骨骼
和
在时刻
下的相对几何可以描述为
![](//html.hanspub.org/file/20-1251309x62_hanspub.png)
Figure 2. Schematic diagram of human skeleton
图2. 人体骨架示意图
![](//html.hanspub.org/file/20-1251309x63_hanspub.png)
Figure 3. The representation of em in the local coordinate system of en
图3. em在en的局部坐标系下的表示
考虑到单个
在一些特定的相对运动下会保持不变,因此,本文同时采用
和
来表示骨骼
和
之间的相对几何。只有当骨骼间不存在相对运动时,
和
才会同时保持不变 [6]。
通过上述身体骨骼之间的相对几何,我们可以把时刻
时的一副完整骨架
表示为
其中
为身体骨骼的数量。一副完整的骨架共有
个骨骼对,本文为了记号简洁,将骨骼对
下标
用骨骼对数目的序号表示,记为
,
,即完整的骨架表示又可以写为
依据这种骨架表示方法,一个完整的动作骨架序列就可以表示为
上的轨迹
.
3. Karcher均值与测地距离相结合的平均轨迹计算方法
本文采用基于李群的骨架表示方法,将动作骨架序列表示为特殊欧氏群积空间
上的轨迹,记为
,
。
为骨架序列的帧数。假设每副骨架包含
块身体骨骼,则每条轨迹的尺寸为
,其中
是相对几何的尺寸。
Karcher均值这个概念首先由Grove和 Karcher [15] 提出,之后被推广到黎曼流形上表示样本中心。本文提出Karcher均值与测地距离相结合的平均轨迹计算方法,其基本思想是样本轨迹中心(平均轨迹)到所有样本轨迹的测地距离平方和最小。给定
上
条样本轨迹
,根据 Karcher均值的概念,平均轨迹
的计算公式可以描述为
(4)
其中
为动作轨迹
和
之间的测地距离。如图4所示,红点代表流形上的轨迹,黄点表示潜在的轨迹中心。红色实线表示轨迹,黄色虚线表示两点之间的测地线。
![](//html.hanspub.org/file/20-1251309x98_hanspub.png)
Figure 4. The average trajectory calculation method combining Karcher average value and geodetic distance
图4. Karcher均值与测地距离相结合的平均轨迹计算方法
令
,那么每条动作轨迹应当包含
个相对几何位置(旋转和平移),每个相对几何位置记为
,
是样本轨迹的序号,
表示每副骨架上的相对几何位置的序号,
为骨架帧数的序号。因此,动作轨迹之间的测地距离平方和可以写为两条动作轨迹上,所有对应相对几何位置之间的测地距离平方和,即
(5)
其中
表示的是
时刻,第
条动作轨迹的第
个相对几何到平均轨迹
的第
个相对几何的测地距离。由于相对几何位置位于李群
上,因此,距离
定义在李群
上。令
,则第
条动作轨迹的第
个相对几何到第
条动作轨迹的第
个相对几何的测地距离可以描述为
其中
。对数映射
的具体计算形式可以通过(3)式所得。
在求解目标函数(5)式的过程中,要求平均轨迹到所有动作轨迹的测地距离平方和最小,即要求轨迹上每个对应相对几何之间的测地距离最小。因此,(5)式的具体求解步骤可总结如下算法1所示。
4. 平均轨迹计算方法在动作识别方向上的应用
4.1. 特征的提取和融合
由第二章可知,本文首先将骨架序列表示为李群
上的轨迹。为了解决轨迹时间错位问题,本文采用Karcher均值与测地距离相结合的平均轨迹计算方法,计算所有样本的平均轨迹,并将其作为轨迹时间对齐的模板。随后,本文采用TSRVF表示方法 [7],用于对齐平均轨迹和样本轨迹。然而,对齐后的轨迹仍位于流形空间,在这个空间上进行轨迹分类并不容易。为了解决这个问题,我们针对时间对齐后的轨迹提取两类动作特征:一类是平均轨迹到样本轨迹的射击向量(Shooting Vector,SV),另一类是样本轨迹的李代数(Lie Algebra, LA)。射击向量可以理解为单位时间内,序列空间上一点到另一点的切向 [8]。在本文中,轨迹时间对齐之后,我们在
时刻,从平均轨迹
的某一点出发,在
时刻,到达另一动作轨迹的对应点,计算两点之间的射击向量,如图5所示。具体计算过程如算法2所示。
![](//html.hanspub.org/file/20-1251309x151_hanspub.png)
Figure 5. The schematic diagram of the characteristic shooting vector
图5. 特征射击向量的示意图
由于轨迹位于李群
上,同时轨迹的李代数为向量空间,因此,本文提取轨迹的李代数进行动作表征。李代数的提取方法总结在算法3中
为了克服数据噪声问题,获得更加有效、鲁棒的动作表征,本文采用傅里叶时间金字塔方法 [10] 处理两类特征,分别获得射击向量的傅里叶时间金字塔系数
和李代数的傅里叶时间金字塔系数
。此外,为了获得更优的动作识别结果,本文提出对两类特征的傅里叶时间金字塔系数进行加权融合,融合特征
,其中
为特征的权重系数。融合特征既包含轨迹之间的距离信息,也包含单个样本轨迹的几何信息。
4.2. 动作识别框架
本文将Karcher 均值和测地距离相结合的平均轨迹计算方法应用于动作识别中,构建一个新的动作识别框架,如图6所示。
![](//html.hanspub.org/file/20-1251309x177_hanspub.png)
Figure 6. The action recognition framework of this article
图6. 本文的动作识别框架
第一步,采用基于李群的骨架表示方法,对3D骨架形状的相对几何进行编码,从而得到位于特殊欧氏群积空间
上的动作轨迹。
第二步,针对每一个动作类别,运用本文提出的平均轨迹计算方法,计算每个动作的平均轨迹。该平均轨迹将用作轨迹时间对齐的对齐模板。
第三步,采用TSRVF表示方法将每条样本轨迹与平均轨迹进行对齐。
第四步,得到时间对齐后的轨迹,可以进一步实现特征提取。图 6中第一行为特征射击向量的提取过程,计算的是平均轨迹到所有对齐后的动作轨迹的切向量。第二行为特征李代数的提取过程,计算的是每条轨迹在单位元
处的切向量。
第五步,为了解决数据噪声的问题,本文采用傅里叶时间金字塔表示方法处理两类特征,滤去高频系数。由于我们对特征的每一维都用傅里叶时间金字塔进行处理,因此最终获得的特征是所有傅里叶系数的级联。
第六步,在分类之前,我们对两种分类特征的傅里叶系数进行加权融合,然后训练一个one-vs-all 线性支持向量机来分类特征。
5. 实验评估
5.1. 数据集
本文采用了两个动作识别数据集,分别是UTKinect Action数据集 [16] 和MSR-Action3D数据集 [17]。
UTKinect Action数据集:UTKinect Action是2012年使用单个静态Kinect相机采集的数据集。它由199个动作序列组成,分别由10位演员执行10个动作:“walk”,“sit down”,“stand up”,“pick up”,“carry”,“throw”,“push”,“pull”,“wave hands”以及“clap hands”。每个动作重复执行两次。每帧骨架上包含20个关节点。这个数据集的挑战性在于,所有的动作序列并不是在同一视角下捕捉到的。如图7所示,(a)行和(b)行虽然都是动作“walk”的骨架序列,但是视角完全相反。因此在处理该数据集时,必须克服视角变换的差异。
MSR-Action3D数据集:MSR-Action3D是2010年由一个与Kinect类似的深度传感器采集的数据集。它包含557个动作序列,分别由10位演员执行20个动作:“high arm wave”,“horizontal arm wave”,“hammer”,“hand catch”,“forward punch”,“high throw”,“draw X”,“draw tick”,“draw circle”,“hand clap”,“two hand wave”,“side boxing”,“bend”,“forward kick”,“side kick”,“jogging”,“tennis swing”,“tennis serve”,“golf swing”以及“pick up and throw”。每个动作重复执行两到三次。每帧骨架上包含20个关节点。如图8所示,骨架序列从左到右,展示了动作“high arm wave”的部分骨架序列。
(a) UTKinect数据集中,动作“walk”的部分骨架序列,骨架顺序从右到左
(b) UTKinect数据集中,动作“walk”的部分骨架序列,骨架顺序从左到右
Figure 7. Part of the skeleton sequence of the action “walk” in the two perspectives in the UTKinect data set
图7. UTKinect数据集中,动作“walk”在两个视角下的部分骨架序列
![](//html.hanspub.org/file/20-1251309x182_hanspub.png)
Figure 8. Part of the skeleton sequence of the action “high arm wave” in the MSR-Action3D data set
图8. MSR-Action3D数据集中,动作“high arm wave”的部分骨架序列
5.2. 实验设计
为了保证实验的丰富性,本文对两种分类特征以及它们的融合特征分别求取动作识别结果。假设每个动作有
帧骨架,每副骨架有
个关节点和
个身体部位。由于基于李群的骨架表示是对骨架骨骼之间的相对几何进行编码,因此每条动作轨迹的尺寸为
,其中
是刚体变换矩阵的维度。令
为不同动作类别的下标,
是根据本文提出的平均轨迹计算方法得到的第
类动作的平均轨迹。对任意动作轨迹
(
是样本轨迹的下标),令
表示样本轨迹
到平均轨迹
的最优对齐结果。接下来,我们计算射击向量
及其傅里叶系数
,李代数
及其傅里叶系数
,并进行加权融合。由于有
类动作,因此,可以计算得到
个特征射击向量
和特征李代数
。
5.3. 实验参数设置
针对这两个动作数据集,本文采用 [18] 中提出的目标交叉实验设置(cross-subject test setting)。一半演员所做的动作用于训练分类器,剩下一半演员所做的动作用于测试。我们选择五种不同的训练和测试组合,最终的分类结果为五种组合结果的平均值。我们将算法1中的超参数
设置为0.1。在对两类分类特征进行加权融合时,我们分别测试了从0.1到0.9共9组参数,然后选择其中最佳的参数组合。
5.4. 实验结果及讨论
UTKinect Action数据集上的动作分类结果如表1所示。特征射击向量和李代数的分类结果分别为96.80%和97.20%,李代数分类结果比射击向量高出0.4%。特征融合的结果展示在图9中。由图可以看出,共有四组融合参数[0.7, 0.3],[0.6, 0.4],[0.5, 0.5]以及[0.4, 0.6],使得融合特征取得最高的分类结果98.20%。参数组合的前者为特征射击向量的权重系数,后者为李代数的权重系数。该融合特征的结果比射击向量和李代数的分类结果分别高出1.4%和1%。可以看出,在UTKinect Action数据集上,特征融合的操作能够有效提高动作识别的正确率。图10展示了UTKinect Action数据集上各类动作的分类正确率。10类动作中,有8类动作达到了100%的识别正确率,动作“throw”识别正确率最低,为86%,动作“pick up”识别正确率为96%。本文提出的动作识别框架在UTKinect Action数据集上取得了良好表现。
![](Images/Table_Tmp.jpg)
Table 1. Action classification results on UTKinect Action dataset. SV: shooting vector, LA: Lie algebra
表1. UTKinect Action数据集上的动作分类结果。SV:射击向量,LA:李代数
![](//html.hanspub.org/file/20-1251309x205_hanspub.png)
Figure 9. Feature weighted fusion on UTKinect Action dataset
图9. UTKinect Action数据集上的特征加权融合
MSR-Action3D数据集上的动作分类结果如表2所示。特征射击向量和特征李代数的动作分类结果分别为89.05%和91.40%。李代数的分类正确率比射击向量高出2.35%。最佳特征融合参数如图11所示,在参数组合为[0.2, 0.8]或[0.1, 0.9]时,融合特征取得最高的动作分类结果91.48%。该融合特征结果比两个单类特征的分类结果分别高出2.43%和0.08%。图12展示了MSR-Action3D数据集中各项动作的识别正确率。大部分动作类别都能达到80%以上的识别正确率。由于动作“hand catch”和“draw circle”相似度较高,因此误分类情况较多,两类动作的识别正确率仅有31.67%和69.33%。
通过对比三类特征的实验结果,可以发现,特征李代数的实验结果明显优于特征射击向量。这是因为在李群SE(3)上,当两点之间的距离较远时,对数映射容易发生扭曲,从而使得特征射击向量的有效性低于特征李代数。其次,在两个数据集上,融合特征的分类正确率也要高于两个单类特征,验证了特征融合操作的有效性。
本文的动作识别实验结果也与采用了相同实验设置 [18] 的现有方法进行了比较。我们将现有方法的分类结果展示在了表格第一栏,表格第二栏为本文的最优分类结果。
![](//html.hanspub.org/file/20-1251309x206_hanspub.png)
Figure 10. The classification accuracy rate of each type of action on the UTKinect Action dataset
图10. UTKinect Action数据集上的每类动作的分类正确率
![](Images/Table_Tmp.jpg)
Table 2. Action classification results on the MSR-Action3D dataset. SV: shooting vector, LA: Lie algebra
表2. MSR-Action3D数据集上的动作分类结果。SV:射击向量,LA:李代数
![](//html.hanspub.org/file/20-1251309x207_hanspub.png)
Figure 11. Feature weighted fusion on MSR-Action3D dataset
图11. MSR-Action3D数据集上的特征加权融合
本文方法与现有其他方法在UTKinect Action数据集上的动作识别正确率展示在表3中。由表格可知,在目标交叉实验设置下,本文实验取得了最优的动作识别结果98.2%,比采用了相同骨架表示方法的黎曼方法Lie Group [1] 和TSRVF on Lie Group [8] 分别高出1.12%和3.33%。与非黎曼方法JL-distance LSTM [19] 的实验结果相比,也要高出2.24%。与最近的SCDL [20] 方法相比,本文实验结果略高出0.81%。本文的动作识别框架在UTKinect Action数据集上取得了最优的实验结果。
![](//html.hanspub.org/file/20-1251309x208_hanspub.png)
Figure 12. The classification accuracy rate of each type of action on the MSR-Action3D data set
图12. MSR-Action3D数据集上的每类动作的分类正确率
![](Images/Table_Tmp.jpg)
Table 3. Comparison of the results of the action recognition method in this paper and other methods on the UTKinect Action dataset
表3. 本文动作识别方法与其他方法在UTKinect Action数据集上的结果比较
表4展示了本文动作识别方法与其他动作识别算法在MSR-Action3D数据集上的动作分类结果。可以看出,在目标交叉实验设置下,本文实验的动作识别正确率比采用了相同骨架表示方法的Lie Group [1] 和TSRVF on Lie Group [8] 分别高出2%和6.32%。比TSRVF on S [9] 工作高出2.48%,该方法将骨架序列表示为Kendall形状空间上的轨迹,并且同样采用TSRVF表示方法进行时间对齐。与SCDL [20] 相比,本文实验结果仍高出1.47%。本文的动作识别框架在MSR-Action3D数据集上仍取得最优的实验结果。
![](Images/Table_Tmp.jpg)
Table 4. The comparison of the results of the action recognition method in this paper with other methods on the MSR- Action3D dataset
表4. 本文动作识别方法与其他方法在MSR-Action3D数据集上的结果比较
6. 结论
本文主要针对轨迹时间对齐过程中,模板轨迹的求取问题,提出Karcher均值与测地距离相结合的平均轨迹计算方法。该方法计算所有样本轨迹的平均轨迹,然后将平均轨迹当作轨迹对齐的模板。随后,本文将该平均轨迹计算方法应用于动作识别框架中。本文动作识别框架流程清晰简洁,同时,通过实验结果可以看出,本文根据提出算法求得的平均轨迹是合适的对齐模板。然而,Karcher均值算法存在初始值依赖的问题,可能会为结果引入偏差。因此,无偏的平均轨迹计算方法仍是一个值得研究的方向。
本文还针对动作识别框架中的特征提取,提出将特征射击向量和李代数的傅里叶系数进行加权融合。融合特征既包含了轨迹间的距离信息,也包含了轨迹自身的几何信息。实验在两个动作识别数据集上进行。通过对比三类特征的实验结果,验证了特征融合的有效性。同时,与现有的动作识别方法相比,本文提出的动作识别框架也取得了最优的实验结果。
基金项目
上海市“科技创新行动计划”(18441909000)。