细粒度、共性模型、差异模型、可训练、可解释性、邻居关节:时间关系图、空间关系图
我们提出了一种新模型,通过基于图的关节关系建模从视频中直观地评估动作的性能。之前的工作主要聚焦于包括表演者身体和背景的整个场景,然而他们忽视了关节交互的细节。这对于细粒度和精确的动作评价是低效的,因为每个关节的动作质量依赖于它的邻居关节。因此,我们提出基于关节关系来学习细节的关节运动。我们建立了可训练的关节关系图,并且分析他们的关节动作。我们为关节动作学习提出了两个新颖的模块,Joint Commonality Module和Joint Difference Module。
Joint Commonality Module
关节共性模块为确定的身体部位建立模型
Joint Difference Module
关节差异模块为身体部位间的差异建模
我们在六个公开的Olympic action中完成了我们方法的性能评估。我们的方法和之前的方法以及whole-scene分析方法相比在Spearman’s Rank Correlation数值上有很大的提升。我们还展示了我们的模型解释动作评估过程的能力。
动作性能评价是一个评价动作表现有多好的任务。动作评价技术在一些现实应用中非常重要。例如,在药物治疗中,动作评判系统可以通过病人日常日人的表现来监测和评估。在运动中,使用自动评判技术,我们可以为每个奥林匹克赛事构造通用打分系统,帮助运动员提升他们的表现。
自动评判动作性能系统的使用最近在计算机视觉社区被广泛探索。一些作品尝试在视频中进行动作性能评估[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来学习关节关系图中的关节动作
我们考虑几个局部连接关节的交互运动模式来评估动作的性能。 为此,我们建议学习详细的关节运动和与关节邻域的协调,该邻域由某个关节及其邻居组成 ,整个结果由图2展示。
3.1. Learning the motion of joint neighbourhoods
评判动作性能的时候,我们关心关节领域的动作,设计Joint Commonality Module去学习在一个关节领域中的一般性动作。
Spatial Relation Graph
表示了在每一个time step,每个领域对一个确切的关节有多大的影响
图中的每个节点表示一个确定的关节
图中的每条边表示一对关节间的关系
- Irrelevant Node:既没有对应同一个关节,也没有在人体骨骼中相连的两个关节- 使用邻接矩阵$A_sepsilon 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_scdot H_0^t H1t=As⋅H0t其中 H 1 t ϵ R J × M H_1^tepsilon R^{Jtimes M} H1tϵRJ×M,J仍然代表关节总数,M代表隐藏状态的特征维度。特别值得一提的是,隐藏状态包含卷积之间的关节特征 H 0 t = F t F ϵ R J × M H_0^t=F^tquad Fepsilon R^{Jtimes 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 ) cepsilon {(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}^Tcdot 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^{Mtimes 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
The Joint Difference Moudle
这里有个问题,既然已经有了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)做为权值????
D s t ϵ R J × M 和 D p t ϵ R J × M D_s^tepsilon 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^{Mtimes 1} dst^ϵRM×1和 d p t ^ ϵ R M × 1 hat{d_p^t}epsilon R^{Mtimes 1} dpt^ϵRM×1,两者计算方式相同。
3.3 Assessing the performance
Regression Module
利用回归模块计算评判结果。
回归模块的输入是:
首先,需要将各个特征通过feature coders编码
训练中,我们在 特征池化层 应用正交正则项减少不同特征之间的冗余,正交正则化公式如下:
最后,通过两个全连接层获得评判结果。S( )是一个回归函数, s ϵ R sepsilon R sϵR是对一个视频的评判结果。视频分为t个时间段,每个时间段通过回归函数完成聚合(个人理解,回归函数就是加权和)
Optimization
4.1 Implementation Details
Data Preprocessing
- 使用已经在Kinetics数据集上预训练好的I3D模型来提取RGB关节特征和Optical FLow(光流)。- whole-scene特征的特征是通过整个图像获取的,关节特征是在裁剪出的关节切片图上获取的。(问题来了,怎么批量的得到关节裁剪图???????)- 将整个视频分为16个段,每个段内均匀采样出16frames作为I3D网络的输入- 通过左右翻转视频完成视频数据的增强- 把奥委会官方的真实打分标准化为0-100区间,作为评估模型的监督量
Model Training
4.2 Quantitative Results
4.3. Qualitative Results
The Relation Graphs
Fine-grained Assessment Results
细粒度的评价结果,图8中我们展示了我们模型的评价结果和Whole-scene基线模型
本文发布于:2024-02-04 09:01:03,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170703619254181.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |