行动评估之前的工作主要聚焦于包括表演者身体和背景的整个场景,然而他们忽视了关节交互的细节。这对于细粒度和精确的动作评价是低效的,因为每个关节的动作质量依赖于它的邻居关节。尽管有些工作已经分析了每个关节的动作去尝试更好的发现细粒度的线索。但是他们单独地分析了每个关节的位置。不同的是,为了评估细粒度的表现,本文考虑了几个局部连接的关节交互动作模式,而不是单独的查看每个关节,聚焦在局部的关节连接而不是单个关节来评价细粒度的表现是恰当的。
相邻(局部连接)关节的运动共性表示某一身体部位的一般运动,而相邻关节之间的运动差异反映了动作协调。一个表现良好的动作必须有熟练的详细的运动和关节之间的良好协调。
模型总体结构:将输入视频统一分为T个时间步长,模型给出了每个时间步长的评估结果。我们将整个场景和局部小块视频作为输入,其中局部小块被裁剪在关节周围。我们提取了全场景视频和局部小块视频的特征。然后,所提出的关节共性模块和关节差分模块学习了关节在关系图上的关节运动,并给出了四个学习特征。然后将学习到的特征输入到回归模块中。
设计关节共性模块来学习关节邻域的一般运动。
空间关系图:表示每个邻居在每个时间步长内对某个关节的运动的影响(图中的每个节点都代表一个特定的关节,每条边都表示一对关节之间的关系)。
将空间关系图的邻接矩阵表示为 A s ∈ R J × J A_s\in R^{J\times J} As∈RJ×J,其中J为骨架关节的总数,元素 A s ( i , j ) As(i,j) As(i,j)表示第i个关节对第j个关节的影响程度。
关节共性模块在空间关系图上进行图卷积GCN,学习关节邻域内的关节运动特征,模型输出共性特征 h ˉ c t \bar{h}_c^t hˉct 显示了关节邻域的一般运动。
除了关节邻域的一般运动外,运动协调对行动评估也很重要。一个邻域内关节之间的巨大运动差异表明缺乏协调。引入了一个关节差异模块,它学习每个关节相对于其空间和时间邻域的运动差异。为了达到上述目的,本文引入了时间关系图来建模两个直接时间步长之间的关节关系。将时间关系图的邻接矩阵表示为 A p ∈ R J × J A_p\in R^{J\times J} Ap∈RJ×J,元素 A p ( i , j ) A_p(i,j) Ap(i,j) 表示第 i 个关节(在前一个时间步长 t−1 )对第 j 个关节(在当前时间步长t) 的影响。
关节差异模块在空间关系图和时间关系图上从邻居关节中学习每个关节的运动差异。并输出差异特征 d ˉ s t \bar{d}_s^t dˉst 和 d ˉ p t \bar{d}_p^t dˉpt 来描述关节邻域中的运动差异。
关节差分模块的计算:首先,对于关节i的差分特征,计算关节i与其每个相邻关节j之间的运动差值。然后用A (i,j)加权。关节i的聚合特征由其邻域内的运动差加权和汇总组成。关系图A的差分特征Dt由所有关节的聚合特征构造成。
在当前时间步长t时,所有关节的关节邻域差异形成了矩阵 D ˉ s t \bar{D}_s^t Dˉst和 D ˉ p t \bar{D}_p^t Dˉpt.
D s t ( i , m ) = ∑ j ( A s ( i , j ) ⋅ ( F t ( i , m ) − F t ( j , m ) ) ) ⋅ w j D_s^t(i,m)=\sum_j(A_s(i,j)\cdot (F^t(i,m)-F^t(j,m)))\cdot w_j Dst(i,m)=j∑(As(i,j)⋅(Ft(i,m)−Ft(j,m)))⋅wj
D p t ( i , m ) = ∑ j ( A p ( i , j ) ⋅ ( F t ( i , m ) − F t − 1 ( j , m ) ) ) ⋅ w j D_p^t(i,m)=\sum_j(A_p(i,j)\cdot (F^t(i,m)-F^{t-1}(j,m)))\cdot w_j Dpt(i,m)=j∑(Ap(i,j)⋅(Ft(i,m)−Ft−1(j,m)))⋅wj
1 ≤ i , j ≤ J , 1 ≤ m ≤ M 1\leq i,j\leq J,1\leq m\leq M 1≤i,j≤J,1≤m≤M
回归模块:
输入:回归模块输入的特征有全场景视频特征 q t ∈ R M q^t\in R^M qt∈RM、共性特征( h ˉ c t \bar{h}_c^t hˉct)和差异特征( d ˉ s t \bar{d}_s^t dˉst 和 d ˉ p t \bar{d}_p^t dˉpt )
首先,特征被编码到特征编码器中
u ^ i t = C i ( u i t ) \hat{u}_i^t=C_i(u_i^t) u^it=Ci(uit)
其中 C i C_i Ci是一个编码函数, u ^ i t \hat{u}_i^t u^it是相应的编码特征
然后,通过一个特征池化层进行聚合,形成一个整体的特征 v t v^t vt
v t = ∑ i α i ⋅ u ^ i t + β i v^t=\sum_i\alpha_i\cdot \hat{u}_i^t+\beta_i vt=i∑αi⋅u^it+βi
为了减少不同特征之间的冗余性,在特征池化层中加入了一个正交的正则化项,
R O = ∑ i , j γ ⋅ ( u ^ i t T ⋅ u ^ j t ) R_O=\sum_{i,j}\gamma \cdot (\mathbf{\hat{u}_i^t}^\mathrm{T}\cdot \hat{u}_j^t) RO=i,j∑γ⋅(u^itT⋅u^jt)
其中 ( u ^ i t , u ^ j t ) (\hat{u}_i^t,\hat{u}_j^t) (u^it,u^jt)是一对要正交化的特征.
最后,得到两个全连接层的评价结果:
s = ∑ t S ( v t ) s=\sum_tS(v^t) s=t∑S(vt)
基于Mask-RCNN的姿态估计结果的示例
模型与最先进的方法和baseline的比较结果: 本文的模型实现了最先进的性能,并且它在六个动作中每一个都优于baseline。
对姿态估计方法的鲁棒性,模型在两种姿态估计方法上都有性能的提高
可视化体操跳马学习到的关系图。我们可视化了空间关系图的邻接矩阵(左)和时间关系图(右)的邻接矩阵。如图所示,在一个时间步长内,我们的体操跳马评估模型非常重视一些关键关节之间的关系,如臀部、肩膀和膝盖。我们的模型从前一个时间步长中就非常关注同一关节和肩膀的运动。
模型对两个体操跳马案例和整个场景的行动评估结果。我们的模型的评估结果显示了良好的动作表现(绿色)和不好的动作(红色)。我们的模型进一步给出了对关节的评估结果,显示了关节的好坏表现。