本文主要是介绍【论文阅读翻译】Action Assessment by Joint Relation Graph,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【论文阅读翻译】Action Assessment by Joint Relation Graph
- KeyWords
- Abstract
- Introduction
- Related Work
- Approach
- Experiment
KeyWords
细粒度、共性模型、差异模型、可训练、可解释性、邻居关节:时间关系图、空间关系图
Abstract
我们提出了一种新模型,通过基于图的关节关系建模从视频中直观地评估动作的性能。之前的工作主要聚焦于包括表演者身体和背景的整个场景,然而他们忽视了关节交互的细节。这对于细粒度和精确的动作评价是低效的,因为每个关节的动作质量依赖于它的邻居关节。因此,我们提出基于关节关系来学习细节的关节运动。我们建立了可训练的关节关系图,并且分析他们的关节动作。我们为关节动作学习提出了两个新颖的模块,Joint Commonality Module和Joint Difference Module。
-
Joint Commonality Module
关节共性模块为确定的身体部位建立模型
-
Joint Difference Module
关节差异模块为身体部位间的差异建模
我们在六个公开的Olympic action中完成了我们方法的性能评估。我们的方法和之前的方法以及whole-scene分析方法相比在Spearman’s Rank Correlation数值上有很大的提升。我们还展示了我们的模型解释动作评估过程的能力。
Introduction
动作性能评价是一个评价动作表现有多好的任务。动作评价技术在一些现实应用中非常重要。例如,在药物治疗中,动作评判系统可以通过病人日常日人的表现来监测和评估。在运动中,使用自动评判技术,我们可以为每个奥林匹克赛事构造通用打分系统,帮助运动员提升他们的表现。
自动评判动作性能系统的使用最近在计算机视觉社区被广泛探索。一些作品尝试在视频中进行动作性能评估[6, 7, 24, 10, 21, 20]。然而,他们在粗粒度的方式分析动作。许多方法简单地提取了整个场景的特征来评价动作。尽管有些工作已经分析了每个关节的动作去尝试更好的发现细粒度的线索。但是他们单独地分析了每个关节的位置。不同的是,为了评估细粒度的表现,我们考虑了几个局部连接的关节交互动作模式,而不是单独的查看每个关节。例如,在潜水中,当脚踝和臀部是弯曲的,那么膝盖的弯曲是正常的(在滚动阶段),然而如果脚踝和臀部是直的在伸展姿态(在进水阶段),膝盖的弯曲就是个瑕疵。因此,聚焦在局部的关节连接而不是单个关节在评价细粒度的表现是恰当的。
在这个工作中,我们探索了在局部的关节连接动作中的关节用于动作评判。特别地,我们通过动作共性建模了聚焦身体动力学模型,通过动作差异建模了关节协作(图1)。邻居(局部连接)关节的动作共性反映了确定身体部位的一般动作,而邻居关节的动作差异指出了动作协调。一个好的动作表现必须有技巧的动作细节和协调的关节
为了建模关节动作的关系,我们提出了一个基于图的动作评判网络,图中的每个节点对应一个关节动作。定义了两个可学习的关系图:Spatial Relation Graph——一个time step内的关节关系,Temporal Realtion Graph——建模跨时间step 的关节关系。基于这两个图,开发了两个动作学习模块,Joint Commonality Module和Joint Difference Module。
-
Joint Commonality Module通过聚合一个time step内Spatial Graph的关节动作来获取身体部分的动力学信息
-
Joint Difference Module通过比较在Spatial graph和Temporal Graph中每个关节与其邻居动作来获取协调信息
-
我们的模型不仅仅利用关节动作来提升动作评判,而且学习到关系图来解释评估过程,因为可训练的关节图展示了在动作评判中邻居关节对其他关节的影响程度
-
总结贡献
-
提出了新颖的学习关节动作细节的框架来评价动作表现
-
提出了空间关系图和时间关系图为邻居关节的关系建模
-
提出了Joint Commonality Module和Joint Difference Module来学习关节关系图中的关节动作
-
Related Work
- Action Performance Assesment
- Gordon was the first to explore the viability of automated action assessment from videos. 它解决了有关自动视频评估应用的几个问题,并通过从骨骼轨迹评估体操跳马的性能来演示应用。
- 由于外科领域的紧张训练需要,很多公共集中在评价外科任务的技能。然而,由于不同的外科设计不同的特征,因此这些方法很难来普适性
- 关于任务的制定,一些方法 [41, 40] 将行动评估制定为级别分类任务,将参与者分为新手和专家两类。 其他一些方法 [37, 6, 7, 1] 将视频中的技能确定制定为成对排序任务。 相反,按照一些方法 [24, 32, 21, 20],**我们利用专家评委给出的可靠分数来指导学习过程,然后将其制定为回归任务。 **
- 许多现有的动作评价分析了粗粒度的整个场景,没有进一步为关节动作的细节建模。Pirsiavash考虑到了关节位置序列。它提取联合位置序列的 DCT 特征,并使用支持向量回归模型来评估奥运赛事。 然而,它单独对每个关节进行建模,而不考虑关节之间的关系。
- Relation Models
- 有一些工作建模不同种类的关系在计算机视觉社区
- 一些工作以在人类的骨骼结构上建立时空关系为目标
- 在建模骨骼结构上,一些工作把人类骨骼构造成一棵树。
- 其他公共去除邻居关节,把他们平铺为一张图片,事实上这种方式添加了一些不相干的关系,因为一些在图上的邻居关节在实际骨骼结构中一点也不相干。
- 另一个工作是CeliKtutan,已经尝试为动作分析建立骨骼模型。然而,这项工作侧重于对齐骨架动态序列,并没有对骨架图上的关节关系进行建模
- 相反,我们旨在为动作分析建模关节关系,保留骨架关节的图形结构。
- Graph-based Joint Relations
- 一些在动作识别而不是评价的研究工作也通过图建模了关节时空关系。他们简单地随时间连接单独地相同关节。这种方式适用于动作识别,但是不适合动作评价,因为动作评价的短期、局部流畅性和熟练程度是很重要的
- 相比之下,我们专注于解决动作评估问题,并认为对关节关系进行更细粒度的建模很重要。 更重要的是,我们特别建议在空间和时间关系图上汇总每个关节与其相邻关节的动力学差异,这在图建模上尚未尝试。
Approach
我们考虑几个局部连接关节的交互运动模式来评估动作的性能。 为此,我们建议学习详细的关节运动和与关节邻域的协调,该邻域由某个关节及其邻居组成 ,整个结果由图2展示。
-
3.1. Learning the motion of joint neighbourhoods
-
评判动作性能的时候,我们关心关节领域的动作,设计Joint Commonality Module去学习在一个关节领域中的一般性动作。
-
Spatial Relation Graph
-
表示了在每一个time step,每个领域对一个确切的关节有多大的影响
-
图中的每个节点表示一个确定的关节
-
图中的每条边表示一对关节间的关系
-
-
- Irrelevant Node:既没有对应同一个关节,也没有在人体骨骼中相连的两个关节- 使用邻接矩阵$A_s\epsilon R^{J \times J}$来表示Spatial Relation Graph,J 代表骨骼关节总数。- **As(i,j)表示第i个关节对第j个关节的影响**- As中的元素是非负数,并且是可以进行学习的,不相干的关节对应的As(i,j)=0- 可学习权重在训练开始时被随机初始化为[0,1)区间的数值
-
The Joint Commonality Module
-
The Joint Commonality Module在Spatial Relation Graph上执行图卷积,学习关节邻域内的关节运动特征,灵感来自 Graph Convolution Networks [25]
-
该模型输出CommonalityFeatures——展示了关节领域的一般运动
-
在聚合过程中,每个节点传输它所拥有的运动特征给它的邻居。
-
我们把图卷积前后的特征矩阵标记为 H c t H_c^t Hct,包含了所有节点在第t个时间步长的隐藏状态。这里的c取值为{0,1}表示是否进行了图卷积。
-
图卷积可以被写成邻接矩阵和隐藏状态矩阵的乘法, H 1 t = A s ⋅ H 0 t H_1^t=A_s\cdot H_0^t H1t=As⋅H0t其中 H 1 t ϵ R J × M H_1^t\epsilon R^{J\times M} H1tϵRJ×M,J仍然代表关节总数,M代表隐藏状态的特征维度。特别值得一提的是,隐藏状态包含卷积之间的关节特征 H 0 t = F t F ϵ R J × M H_0^t=F^t\quad F\epsilon R^{J\times M} H0t=FtFϵRJ×M代表在 t t h t^{th} tth时间步长的关节动作特征
-
之后该模块聚集了所有节点的隐藏状态生成的Commonality Feature h c t ^ \hat{h_c^t} hct^,t是时间步长号, c ϵ ( 0 , 1 ) c\epsilon {(0,1)} cϵ(0,1)代表是否执行了卷积。特征聚合是一个平均池化 h c t ^ = 1 N ( H c t T ⋅ 1 ) \hat{h_c^t}=\frac{1}{N}({H_c^t}^T\cdot 1) hct^=N1(HctT⋅1),其中 1 = [ 1 , 1 , . . . . , 1 ] T 1=[1,1,....,1]^T 1=[1,1,....,1]T是一个全1向量,最后得到 h c t ^ ϵ R M × 1 \hat{h_c^t}\epsilon R^{M\times 1} hct^ϵRM×1,代表时间t时,完成卷积后的特征聚合。
-
Joint Commonality Module学习单个关节的运动(卷积之前,也就是 F t F^t Ft)和关节领域的运动(卷积之后),分别在小粒度和大粒度上描绘了局部运动。
-
-
3.2 Learning coordination in joint neighbourhoods
除了关节领域的一般运动,运动协调在动作评判中也是非常重要的。领域内关节之间的巨大运动差异表明缺乏协调。我们介绍一个Joint Difference Module学习每个关节与他的时空领域的动作差异。因此,对于一个确切的关节,我们不仅仅考虑它在当前时间步长的领域动作,而且要考虑之前时间步长的动作。
-
Temporal Relation Graph
- 为了实现以上目的,引入 Temporal Relation Graph在两个即时时间步长为关节关系建模。用 A p ϵ R J × J A_p\epsilon R^{J\times J} ApϵRJ×J邻接矩阵完成对Temporal Relation Graph的建模。
- 时间关系图建模了横跨两个时间步长的,领域之内的关节的关系。
- Ap(i,j)表示前一个时间步长t-1中的 i t h i^th ith关节对于当前时间步长t中的 j t h j^th jth关节的影响大小
- Ap也是非负的,并且可学习的。可训练权值在训练开始被随机初始化为[0,1)内的数值
-
The Joint Difference Moudle
- The Joint Difference Moudle从空间关系图和时间关系图学习了每个关节与它的邻居间的动作差异。该模块输出Difference Features d s t ^ \hat{d_s^t} dst^和 d p t ^ \hat{d_p^t} dpt^来描绘关节领域的动作差异
- 为了计算一个关节i的Difference Feature
- 我们首先计算关节i和它领域中每一个关节j的动作差异。该动作差异通过As(i,j)和Ap(i,j)的权值体现(也就是Joint Features中的第i行和第j行值相减,再乘以As(i,j)的值,这里As(i,j)代表了权重,因为它的意义就是i对j的影响大小!!!!!)。
- 然后关节i使用加权和的方式聚合它的领域内的动作差异(i的邻域内其他关节j的权重 w j w_j wj,通过训练得到,代表的意义是关节j在i的邻域内其他关节中对i影响所占的比重)
这里有个问题,既然已经有了As(i,j)作为特征差的权重,为什么还要有 w j w_j wj,从公式上看 w j 和 A s ( i , j ) w_j和A_s(i,j) wj和As(i,j)也是可以合并的啊?????????????
会不会有可能是多个As(i,j)值并没有进行归一化,和不为1,而 w j w_j wj的和加起来绝对是1
想明白了:没啥问题,因为这是一个有向图,i->j的影响和j->i的影响不同,As(i,j)是i对j的影响。
那问题又来了,为什么不直接用As(j,i)做为权值????
- 当前time step t 的所有关节的聚合邻域差异形成了矩阵 D s t a n d D p t D_s^t and D_p^t DstandDpt,图4描绘了构造过程。
-
D s t ϵ R J × M 和 D p t ϵ R J × M D_s^t\epsilon R^{J \times M} 和 D_p^t \epsilon R^{J \times M} DstϵRJ×M和DptϵRJ×M的计算公式如下图,其中 F t − 1 F^{t-1} Ft−1是关节在时间步长t-1时的特征。 F t ( i , m ) F^t(i,m) Ft(i,m)表示第i个关节在 m t h m^{th} mth维度的关节特征,是一个实数。i的邻域内其他关节j的权重 w j w_j wj,通过训练得到,代表的意义是关节j对其他关节的影响
-
最后通过平均池化来融合每个关节聚合后的动作差异,形成Difference Features d s t ^ ϵ R M × 1 \hat{d_s^t}\epsilon R^{M\times 1} dst^ϵRM×1和 d p t ^ ϵ R M × 1 \hat{d_p^t}\epsilon R^{M\times 1} dpt^ϵRM×1,两者计算方式相同。
-
-
3.3 Assessing the performance
-
Regression Module
利用回归模块计算评判结果。
-
回归模块的输入是:
- 整个场景的视频特征 q t ϵ R M q^t\epsilon R^M qtϵRM,采用whole-scene特征,因为运动员在场景中的位置在动作评判中也是很重要的。
- Commonality Feature h c t ^ \hat{h_c^t} hct^
- Difference Feature d s t ^ \hat{d_s^t} dst^ 和 d p t ^ \hat{d_p^t} dpt^
-
首先,需要将各个特征通过feature coders编码
- 第二,被编码后的特征被feature pooling layer聚合,形成一个整体特征。这里 α i \alpha_i αi我的理解应该是对于每个特征量的权值。
-
训练中,我们在 特征池化层 应用正交正则项减少不同特征之间的冗余,正交正则化公式如下:
-
最后,通过两个全连接层获得评判结果。S( )是一个回归函数, s ϵ R s\epsilon R sϵR是对一个视频的评判结果。视频分为t个时间段,每个时间段通过回归函数完成聚合(个人理解,回归函数就是加权和)
-
-
Optimization
- 利用MSE Loss,和正交正则项与L2正则项在关系图的训练中进行优化。
-
Experiment
-
4.1 Implementation Details
-
Data Preprocessing
- We extract human poses and bounding boxes with pose estimation method based on Mask-RCNN [12]
-
- 使用已经在Kinetics数据集上预训练好的I3D模型来提取RGB关节特征和Optical FLow(光流)。- whole-scene特征的特征是通过整个图像获取的,关节特征是在裁剪出的关节切片图上获取的。(问题来了,怎么批量的得到关节裁剪图???????)- 将整个视频分为16个段,每个段内均匀采样出16frames作为I3D网络的输入- 通过左右翻转视频完成视频数据的增强- 把奥委会官方的真实打分标准化为0-100区间,作为评估模型的监督量
-
Model Training
- 所有模型训练的优化器是Adam Optimizer
- 使用循环学习率,每500次迭代改变一次{1e-4,1e-5,1e-6}
- 特征编码器Ci实现方式是一个全连接层 of shape 400x512 with ReLU激活
- 回归函数中的两个全连接层的shape分别是512x128,128x1,γ=0.8
- 为了训练的稳定,我们在多个训练阶段对权重进行了优化
- 首先,我们基于目前学习到的As,分别训练基线分支,Joint Difference Module和Joint Conmonality Module。此阶段,不包括特征池化层,而且Regression Block也不会被保存。
- 所有的分支被训练4500次迭代
- 第二,基于之前阶段得到的权重,训练整个模型,包括特征池化层和对Regress Block的重初始化,该阶段运行3000次迭代,而加载的权重在前500次是固定的。
-
4.2 Quantitative Results
- The Olympic Actions
- 通过AQA-7数据集的6个动作评估我们的方法,包含1106个视频。
- 对于训练集和测试集的划分参照[20]
- Evaluation Metric
- Spearman’s rank correlation,展示了两个系列之间的排名相关性,被用于评估预测值和真实值的相关性。
- 跨动作的平均 Spearman 等级相关性是使用 [20] 中的 Fisher 的 z 值从各个动作的相关性计算得出的。
- Comparison with state-of-the-art methods and our base-lines
- 表1展示了结果,我们模型的成功,一部分原因是由于我们基于成功的I3D模型获取video特征,另一部分是使用图模型来评判动作表现
- 因此我们也设计了两个不使用图模型的baseline模型,一个是仅仅使用whole-scene的I3D特征评判动作性能,另一个通过平均池化使用whole-scene和local patch特征
- 结果展示基于图的关节动作学习,提供了很好的动作评判性能提升。.
- Ablation Study
- 通过消减组件来测试框架下各组件对整体模型性能的贡献。
- 大部分情况下移除组件都会是的指标下降,也有例外:在Skiing中,仅仅使用Joint Commonality Module没有Difference Module已经实现了很好的结果,这是因为在滑雪运动中,更看重身体部分的一般运动而不是身体部分的差异,因为滑雪在高速运动中。
- 由于不同的特征对结果有不同的贡献,所以Encoders和Feature Pooling Layer是极其重要的
- Robustness to Pose Estimation Methods
- 除了基于Mask-RCNN的姿势评估方法外,我们也在基于AlphaPose的跳水中评估了我们的模型。表明我们的方法对于两种姿态评估方法都具有鲁棒性。
- Extension to Egocentric Surgical Videos
- 额外的评估我们的方法在以个人为中心的外科手术,数据集为JIGSAWS Dataset。
- The Olympic Actions
-
4.3. Qualitative Results
-
The Relation Graphs
- 图7可视化了As和Ap,从Gymvault中学习到的Gs和Gp。
- 从As中,可以看到我们的模型把更多的注意力放在肩膀,臀部和膝盖的细节动作,这是不令人惊讶的,因为这是传统的动作关键点分析
- 从Ap中,看到对角线有更深的颜色,我们可以看到,我们的模型非常重视前一个时间步中同一关节的运动。这和我们的观点一致,一个动作的表现评价很大程度的依赖相同关节之前的动作。我们的模型也重点关注了肩膀的前一个动作,因为肩膀在动作分析中是很重要的。
- 结果是有趣的,因为它指出了我们评价当前动作的方式
- 当我们评估每个关节的动作,我们重点关注几个锚关节的同步动作
- 和相同关节以及肩膀的上一个状态
-
Fine-grained Assessment Results
细粒度的评价结果,图8中我们展示了我们模型的评价结果和Whole-scene基线模型
- 该模型还可以获得细粒度的确切关节的得分,通过仅仅获取关节在Commonality和Difference 的特征来获得对某个确定关节的评分。
- 而baseline模型,仅仅关注整体的身体状态而对于人类的姿势关注太少。
-
这篇关于【论文阅读翻译】Action Assessment by Joint Relation Graph的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!