本文将介绍一种基于特征分离的通用人类姿态特征的学习算法 Unsupervised Human 3D Pose Representation with Viewpoint and Pose Disentanglement。
该算法从无监督的特征分离过程中,习得了一个迁移性好、多用途的人类3D姿势的表征,从而有助于人工智能系统获取对人体姿态一个通用本质的理解。
实验证明,所习得的表征,能够用于姿态去噪、人体动作识别和人体3D姿态估计等多个不同的任务。这篇文章来自于香港中文大学,被ECCV 2020 收录。本文将言简意赅的分享这篇文章,希望对读者有所启示。
1、问题解析
在这篇文章中,作者首先对人类姿势表征学习这一问题进行了剖析,认为人体姿态表征应该考虑一下几个方面:
1)人体姿态的本质特征(inherent feature)是什么
作者认为,姿态表征应该首先能够表达人体姿态的本质特征,而该特征应该同时包括人体关节间运动学关系(kinematic dependency)和人体骨骼结构外观特性(geometric dependency)。
人体关节间运动学关系表述了运动在人体各部分间的传播关系,解释了人体姿态是如何生成的,以及决定着在某一动作中身体各个部分的作用。外观特性指人体骨骼结构特有的外观,比如说左右肢体的对称性。
2)本质特征的视角不变性(view-invariant)
数据记录中的人体姿态常常随着观测相机的视角变化而变化。但人体姿态的本质特征是不随视角而改变的。表征作为人体姿态的抽象理解,应该也具备这样的特性。
3)特征分离(feature disentanglement)
人体姿态的形成常常是多个因素互相作用的结果。例如,某一个人体姿态跟动作的执行者、动作本身、以及相机的记录角度是息息相关的。人工特征提取常常基于人类的先验知识,从物理学或统计学的角度去考虑某些因素。
这些考虑常常是不完善的,容易导致信息丢失。信息丢失也同样发生在单纯不变特征的学习过程中。
因而,以人工特征(hand-crafted feature)或者不变特征(view-invariant feature)为表征,常常只能用于特定任务,缺乏泛化性。作者引用图灵奖获得者Bengio的观点,认为特征分离是解决这一问题最有效方式。
现有的人体姿态表征方法因为对以上几点,没有做到一个全面地考量,所以导致泛化性和有效性受限。
2、学习算法思路
作者借鉴去噪自编码器(denoising autoencoder)的思想,设计了一个恢复破坏人体姿态的任务。但是不同于一般的去噪自编码器对输入添加高斯噪声,文中对人体3D姿态进行了随机严重的破坏。
作者认为,如果网络能够恢复那些被破坏关节的正确位置,那么它就应该学习到了人体3D姿态的本质特征。同时在潜空间中,作者将人体姿态特征分解为视角不变的姿态特征(pose-dependent feature)和随视角变化的视角特征(view-dependent feature)。
这一过程可以由下面式(1)表示。
然而,作者认为上述过程依旧不足以引导网络学习到想要的特征。因为单个去噪自编码器每次只能从一个视角下的姿态学习,它并不知道某一姿态在另一视角下是什么样的。
因而也就没人任何视角的概念,无法做到视角变化下的鲁棒性(robustness)。为了引入视角的概念,作者将原始输入姿态进行随机的3D旋转,并引入另外一条神经网络并行处理这些旋转变换后的人体姿态。
两条神经网络共享网络参数,这是学习的关键。简单来说,通过共享参数,实现了让同一个learner同时从不同视角观测某一姿态,并理解这两个视角下哪些是相同的(pose-dependent feature),哪些是不同的特征(view-dependent feature)。
作者在文中,从生成模型的角度,给出了相应的解释及最终的学习目标,如式(2)。
3、网络结构
3.1 SeBiReNet
图1 用于对人体骨骼数据建模的SeBiReNet
为了实现对人体3D姿态运动学关系的内在建模,作者提出一个串联双向递归网络(Sequential Bidirectional Recursive Network, SeBiReNet)如图1所示。
该网络由两个部分组成,一个递归子网络(recursive subnet),一个发散子网络(diffuse subnet)。两个子网络中的每个神经节点都对应人体骨骼模型中的一个关节,因而它们具有相同数量的节点。每个子网络中的节点数和骨骼模型中的关节数相当。
图1中,不同的颜色代表了不同的身体部分,比如左右上肢、左右下肢、躯干。信息在这两个网络中的流向是反向的,它们分别模拟了人体运动过程中的逆向运动关系(inverse kinematic process)和前向运动关系(forward kinematic process)。
两个子网络具有各自的参数但是共享隐状态量(hidden states)。也就是说,递归子网络中的推理能够更新发散子网络的推理结果。发散子网络的中隐状态的变化依赖于递归子网络的结果。
这样,推理过程可以在两个子网络中,以一种循环的方式(recurrent mode)进行,从而达到不断优化结果的目的。子网络计算过程由式(3)给出,其中上标r代表递归子网络,d代表发散子网络。
文中进一步还给出了该网络的复杂度分析。如果SeBiReNet每个网络节点的隐状态维度为 ,输入量的维度为 ,那么某一有着N个子节点(在递归子网络中)或者父节点(在发散子网络中)的神经元具有的参数量为 。
在后续实验中,作者与其他网络结构的参数量进行了对比,证明所提出的网络结构轻量而有效。
3.2 基于SeBiReNet的表征学习网络架构
图2 人体3D姿态表征学习网络(Siamese-DAE)
基于前面所提到的人体姿态表征学习思路,作者提出了一个孪生去噪自编码器(S-DAE)的网络结构用于表征学习。
其中两个去噪自编码器分别处理原始输入和随机旋转后的姿态输入,并共享学习参数。为了习得预想的特征,该架构的主要组成部分有:
1)姿态重建损失函数(pose reconstruction loss)
为了在编码运动学关系的同时捕捉人体3D结构的几何外观特性,作者认为姿态重建损失函数应当包括三个部分,关节位置损失( ),骨骼长度损失( )和对称性损失( )。
其中关节位置损失定义为恢复关节点的位置和ground truth位置的欧氏距离。骨骼长度损失要求恢复后的骨骼长度和ground truth骨骼长度一致。对称性损失要求恢复后的人体姿态,其左右肢体的骨骼长度是一致的。
2)对视角不变的姿态特征的约束
由于姿态特征(pose-dependent feature)只跟具体人体姿态相关,是不随观测视角变化而变化的。因而在两个去噪自编码器中,这一部分的特征应该相同。
3)对视角变化特征的约束
人脑在认知人体姿态时,能够将姿态形状和视角分离。受此启示,作者认为网络潜空间中视角特征应该不影响姿态特征的度量空间,就像旋转并不改变骨骼长度。酉变换能够满足此要求,但在实数域的问题中,只需要将视角特征约束在正交变换空间中。即 。
4)视角迁移姿态重构
受益于特征分离,作者认为,如果姿态特征和视角特征能够很好地分离,那么通过交换两个姿态潜空间中的视角特征,可以将一个姿态变换到另一个姿态的视角下,生成交叉视角的姿态(view-transferred poses)。
综上所述,作者最终提出的网络训练损失函数为:
4、 实验结果
在实验室,作者使用四个数据集:Cambridge-Imperial APE dataset, Northwestern-UCLA dataset, NTU RGB+D dataset 和H3.6M dataset. 其中Cambridge-Imperial APE dataset用于去噪自编码器(S-DAE)的训练和验证。
Northwestern-UCLA dataset和NTU RGB+D dataset用于评估网络在去噪3D人体姿态的表现和所习得的姿态表征在人体动作识别中的表现。最后,文章探索了习得表征在人体3D姿态估计中的应用,并在H3.6M dataset上验证。各部分实验结果如下:
4.1 对SeBiReNet的对比分析
文中首先对SeBiReNet建模人体骨骼姿态的能力进行了比较分析,结果如表1所示。结果表明,所提出的SeBiReNet在处理人体骨骼结构方面由于传统的递归神经网络(recursive neural network)和多层感知器(MLP),这主要得益于SeBiReNet对人体内在运动学关系的建模。
4.2 人体姿态去噪(Pose Denoising)
图3 左图(a)APE dataset中的人体骨骼模型以及随机破坏后的人体姿态(corrupted skeletons)样例;右图(b)经过网络恢复后的人体姿态(recovered skeletons)样例。其中绿线、红线和蓝线分别绘制的ground truth姿态,破坏后的姿态以及恢复的姿态。
图4 未经进一步训练,在Northwestern-UCLA上的骨骼去噪结果。
从骨骼长度,肢体对称以及关节运动范围来看,恢复后的骨骼比原始骨骼更加合理稳定。
4.3 无监督人体动作识别
表2 展示了所习得的姿态表征用于跨视角人体动作识别的结果。可以看到,所提出的姿态表征在无监督动作识别中具有最好的识别结果(state-of-the-art results)。
这一结果即使跟一些有监督方法比较,也非常有竞争力。作者认为这充分说明了所习得表征的有效性。只有习得的姿态特征编码了人体姿态的本质特征以及具备视角不变的特性,才能获取如表所示的结果。
而且跟其他方法相比,文中方法的验证过程更加严格。作者在APE dataset上进行网络训练,然后没有在动作数据集上进行任何进一步的微调,直接提取特征。这也充分表明了文中方法的泛化性能。
进一步通过ablation study表明,如表3所示,学习架构中的所提出的各个部分均能够提升表征在动作识别中的表现,其中特征分离和对姿态特征的约束最为重要。
4.4 在3D人体姿态估计中的推广应用
图5 3D人体姿态估计的推广应用
在文章的最后一部分,作者设计了一个简单网络架构将习得的姿态表征应用到3D的人体姿态估计中。
如图5 所示,该架构包括一个3D编码器(encoder),一个3D解码器(decoder)和一个2D编码器。其中编码器和解码器的网络结构同前文中S-DAE中的编码器和解码器结构相同。
通过约束2D编码器习得一个和3D编码器一样的姿态表征,在通过共享解码器解码,实现了从2D 人体姿态估计3D人体姿态。
在H3.6M dataset上微调后,得到的结果如表4所示。可以看到,所习得的姿态表征也能够被用于人体3D姿态估计。
5. 总结
作者基于特征分离以及对人体3D姿态本质特征的分析, 提出了一个新的人体姿态表征学习方法。所习得的表征在不同的数据集和与人体姿态相关的任务上,具备良好泛化能力和有效性。
该表征有助于人工智能系统获得一个对人体姿态普适本质的理解,从而有助于各种与人体姿态相关的下游任务(down-stream tasks)。
论文地址:
https://arxiv.org/abs/2007.07053
代码地址:
https://github.com/NIEQiang001/unsupervised-human-pose
END
备注:姿态
姿态估计交流群
人体姿态估计、手势识别等更多新鲜资讯,若已为CV君其他账号好友请直接私信。
我爱计算机视觉
微信号:aicvml
QQ群:805388940
微博知乎:@我爱计算机视觉
网站:www.52cv.net
在看,让更多人看到