【论文翻译】:2020-CVPR-PREDICT & CLUSTER: Unsupervised Skeleton Based Action Recognition
论文链接:PREDICT & CLUSTER: Unsupervised Skeleton Based Action Recognition (thecvf.com)
代码链接:shlizee/Predict-Cluster: Repository for PREDICT & CLUSTER: Unsupervised Skeleton Based Action Recognition (github.com)
1. 引言
尽管最近的方法在识别视频中的基本动作方面显示出了惊人的成功率,但当前的方法依赖于强大的监督,并附带大量带有动作标签的训练示例。对于各种类型的动作和应用程序来说,大规模数据集的收集和注释是难以置信的。此外,注释本身就是一个具有挑战性的问题,因为注释通常取决于注释者为给定序列分配有意义的标签。特别是在不清楚ground-truth的情况下,如对动物运动的标注。实际上,注释挑战在运动的不同上下文信息源中很常见,例如视频(RGB),深度(+ D)和随时间推移跟踪的关键点。一方面,与RGB+D数据相比,关键点包含的信息少得多,并且使用起来很困难。然而,另一方面,关注关键点通常可以孤立动作,并为它们提供更健壮的独特特征。对行为识别来说,人体关节点的时间序列(骨架数据)通常被认为是一种描述动作的有效方法。因此,我们关注3D骨架时间序列,并提出一个无监督的系统来学习特征,并根据它们将动作分配给类。
我们称我们的系统为预测&聚类(P&C),因为它是基于训练一个编码器-解码器类型的网络来同时预测和聚类骨架序列,这样网络学习一个有效的动作的隐藏特征表示。事实上,用非分类无监督任务来直观地替换分类有监督任务是试图继续(预测)或再现(重新生成)给定序列,从而使隐藏状态捕捉动作的关键特征。在编码器-解码器架构中,预测任务通常如下实现:给定作为编码器输入的动作序列,解码器继续或生成编码器输入序列。由于输入是序列,解码器和编码器都是递归神经网络(RNN),包含序列中每个时间样本的隐藏变量单元。编码器的最终隐藏状态通常被用来表示动作特征。虽然编码器包含了动作特征,但是由于训练过程中的梯度从解码器流回编码器,所以解码器训练策略显著地决定了表示的有效性。具体而言,提出了两种类型的解码器训练策略用于这种预测/重建任务。
第一种策略是条件策略,其中解码器的前一个时间步长的输出被用作当前时间步长的输入。利用这种策略,解码器的输出被期望是连续的。相反,无条件策略给解码器的每个时间步长分配一个零输入。先前的工作表明,解码器的无条件训练有望具有更好的预测性能,因为它有效地削弱了解码器,从而迫使编码器学习更具信息性的表示。
在我们的系统中,我们扩展这样的策略来增强编码器表示。这导致特征空间中动作的增强的聚类和组织。特别地,我们提出了两种解码器训练策略,固定权重和固定状态来进一步惩罚解码器。这些策略的实现引导编码器进一步学习它所处理的序列的特征表示。事实上,在这两种策略中,解码器都是“弱解码器”,即解码器实际上没有被优化,并且充当向编码器传播梯度以进一步优化其最终状态的角色。将这两种策略结合在一起,我们发现网络可以学习一个健壮的表示,并且我们的结果表明,与未经训练的无监督方法相比,这种策略可以获得显著增强的性能。通过在三个广泛的基于骨架和RGB+D的动作识别数据集上评估我们的系统,我们证明了我们提出的方法的有效性和通用性。具体来说,我们表明我们的P&C无监督系统实现了高精度性能,并优于以往的方法。
2. 相关工作
- 对于基于骨架的监督动作识别,在深度学习方法之前,提出了经典方法来将动作从李群映射到其李代数,并使用动态时间扭曲、傅立叶时间金字塔表示和线性SVM的组合来执行分类(2014-CVPR-Lie Group)。
- RNN
- CNN
- GNN
- 无监督
动作识别的目的是给一系列帧分配一个类别标签,这些帧具有关于所执行动作的上下文信息,如图1所示。已经引入了许多方法,特别是用于人体运动动作识别的方法。这种方法使用视频帧(RGB)和/或深度(RGB+D)和/或骨架数据,即跟踪身体关节(关键点)。基于骨架的动作识别是特别有利的,因为它需要更少的数据,相对容易获取,因此具有实时执行的潜力。此外,骨架数据可用于理解动作的独有特征,与包括背景等不相关特征的视频和深度形成对比。事实上,近年来,各种有监督和无监督的方法已经被引入到基于人体骨骼的动作识别中。大多数基于骨架的方法都受到了监督,应该为训练提供一组带注释的动作和标签。在无监督的环境中,动作识别的问题更具挑战性。只有几个基于骨架的无监督方法被提出,并且已经开发了几个无监督的方法来使用更多的信息,例如视频帧和深度,即无监督的RGB+D。我们在下面回顾这些先前的方法,并且将我们的结果与它们进行比较。
---层次RNN(HBRNN-L):2015-CVPR-Hierarchical recurrent neural network for skeleton based action recognition.
---部分感知LSTM: 2016-CVPR-Ntu rgb+ d: A large scale dataset for 3d human activity analysis.
---由于骨架数据是有噪声的,很大程度上是由于相机视图的差异,先前的工作提出了一种视图自适应RNN (V A-RNN),它学习从原始骨架数据到一般姿态的转换。
2019-PAMI-View adaptive neural networks for high performance skeleton-based human action recognition.
---时空骨架序列可以表示为一个矩阵,其中每个列向量代表一帧骨架,向量的关节表示为关节的坐标。这样的矩阵然后可以被转换成一个图像,在该图像上CNN被训练用于分类。
2015-ACPR-Skeleton based action recognition with convolutional neural network.
---此外,增强的骨架可视化方法已经与CNN分类结合起来开发,用于视图不变的人类动作识别。
2017-PR-Enhanced skeleton visualization for view invariant human action recognition
最近,图形神经网络(GNN)在基于骨架的动作识别中获得了流行。这些网络中的数据结构是对应于人体骨骼的图形,即顶点对应于关节,边对应于骨骼。利用图结构,网络学习受人体骨骼解剖约束的表示。
---在监督动作识别设置中,使用图形卷积网络(GCN)实现神经网络。特别是,时空GCN被设计成从骨架数据中学习空间和时间模式。
2018-AAAI-Spatial temporal graph convolutional networks for skeleton-based action recognition.
---该方法的最近扩展表明,具有两个流的有向GCN可以编码骨架表示,并自适应地学习图形。此外,还提出了包含预测模块的行动结构GCN,以增强行动识别。
2019-CVPR-Skeleton-based action recognition with directed graph neural networks.
2019-CVPR-Two-stream adaptive graph convolutional networks for skeleton-based action recognition.
2019-CVPR-Actional-structural graph convolutional networks for skeleton-based action recognition.
虽然最近的监督方法在动作识别上表现出稳健的性能,但无监督设置是有利的,因为它不需要标记序列,并且当引入初始训练集中不包括的附加动作时,可能不需要重新训练。无监督方法通常旨在通过预测输入动作序列的未来帧或通过重新生成序列来获得有效的特征表示。
---基于递归的序列对序列模型,作为一个自动编码器来学习视频的表示。
2015-ICML-Unsupervised learning of video representations using lstms.
与无监督的RGB+D方法一样,基于骨架的方法利用人体运动预测任务作为学习动作特征表示的基础任务。对于这样一项任务,基于RNN的Seq2Seq模型[15]与非Seq2Seq RNN模型(如ERD [5]和S-RNN [7])相比,精度有所提高。GNN也被证明是有效的网络架构。无监督的GNN被证明能有效地学习真实动作捕捉和运动跟踪数据中的动力学[8]。最近,通过利用预测网络RNN Seq2Seq和鉴别器[6],包含遗传神经网络的网络在该任务上取得了改进的性能。
基于骨架的动作识别的无监督方法很少,因为从身体关节的坐标位置获得有效的特征表示是具有挑战性的。事实上,先前的非深度工作已经表明,表示在建模和预测3D人体骨骼运动中起着重要作用。最近,已经提出了用于人体运动预测的深度方法。特别地,郑等人[36](LOTT GAN)提出了GAN编码器-解码器,使得解码器尝试重新生成输入序列,并且使用鉴别器来鉴别重新生成是否准确。用于动作识别的特征表示取自编码器隐藏表示的最终状态。在训练期间,屏蔽的地面真实输入被提供给解码器。该方法在运动捕捉数据库上进行了测试。如CMU动捕数据集、HDM05和Berkeley MHAD。
3. 方法
身体关键点预处理:
由于动作可以有不同的长度,所以我们对每个动作序列进行下采样,使其至多有一个固定长度。如果序列长度小于固定长度,用0进行填充。
隐藏状态聚类的自组织:
我们在系统中使用的一个关键特性是最近的观察,即通过RNN传播的输入序列在网络的隐藏状态中自组织成簇,即簇代表隐藏状态嵌入中的特征。这种策略是一种很有前途的无监督多维序列聚类方法,如人体关键点序列。正如我们所展示的,自组织是任何RNN体系结构所固有的,甚至对于随机RNN也是如此,它用随机权重初始化并保持固定,即不执行任何训练。事实上,当我们将不同动作的身体关键点序列输入随机RNN时,隐藏状态空间中的特征被证明是有效的过滤器。虽然这种策略是有希望的,但识别准确性的结果似乎不是最佳的。因此,我们实现了一个编码器-解码器系统,我们称之为预测&群集(P&C),其中编码器传播输入序列,并将最后的隐藏状态传递给解码器。解码器用于重新生成编码器输入序列。此外,我们利用随机网络设置(不需要训练)为要训练的网络选择最佳超参数。我们在下面描述P&C的组成部分。
运动预测:
我们的无监督方法的核心是编码器-解码器RNN (Seq2Seq)。这种网络模型被证明在预测多维时间序列特征的未来演化方面是有效的,包括各种动作的骨架时间数据。在这些应用中,网络中的典型流量是单向的。编码器处理初始序列和活动并将最终状态传递给解码器,基于这种状态产生了向前的进化。
我们提出了一个双向流,这样网络可以在动作序列中捕获更好的长期依赖性。具体来说,编码器是一个多层双向门控循环单元(GRU),其输入是整个动作序列的所有关节点。解码器的输出作为重构损失。
超参数检索:
如同在任何深度学习系统中一样,超参数会显著影响网络性能,并且需要调整以获得最佳状态。我们利用随机初始化RNN的自组织特性通过网络传播序列,并在训练前使用网络性能作为超参数调整的优化。具体来说,我们通过在编码器中传播骨架序列来评估编码器的容量,并评估最终编码器状态的识别性能。我们观察到,当选择一个适合训练的最优网络时,这种高效的超参数搜索显著减少了总训练时间。
训练:
设置了最佳超参数编码器后,对解码器的输出进行训练,以预测(重新生成)编码器的输入动作序列。用于预测的训练通常根据两种方法中的一种来执行:(I)无条件训练,其中在每个时间步长向解码器馈送零,或者(ii)有条件训练,其中初始输入被馈送到解码器的第一时间步长,并且后续时间步长使用前一时间步长的预测输出作为它们的输入。基于这些训练策略,我们提出了两种解码器配置:(1)固定权重解码器(FW)或(2)固定状态解码器(FS),以削弱解码器,即迫使它执行基于信息的重建,从而提升编码器的聚类性能。
(1) 固定权重解码(FW)
在这种配置下,解码器的输入是无条件的。解码器不期望学习用于预测的有用信息,并且它完全依赖于编码器传递的状态。解码器的权重因此可以被随机分配,并且解码器被用作序列的递归传播器。在针对再生损失的训练中,这种配置被期望迫使编码器学习潜在特征,并且用传递给解码器的最终状态来表示它们。这种直观的方法被证明是计算效率高的,因为只有编码器被训练,我们的结果表明与KNN行动分类良好的性能。
(2) 固定状态解码(FS)
在这种配置中,解码器的外部输入是有条件的(每个时间步长的外部输入是前一个时间步长的输出),但是内部输入,通常是前一步的隐藏状态,被编码器ET的最终状态所取代。也就是在RNN cell
特征自动编码:
在训练预测网络之后,我们提取最终编码器状态作为与每个动作序列相关联的特征向量。因为特征向量是高维的,所以我们使用特征级自动编码器,它学习高维特征的核心低维分量,因此它可以用于分类(图5)。具体地说,我们实现了自动编码器,表示为f,它是一个具有参数θ的编码器-解码器结构。
KNN分类器:
为了评估我们在动作识别任务上的方法,我们在自动编码器特征向量的中间层使用了一个最近邻(KNN)分类器。具体来说,我们将KNN分类器(k = 1)应用于训练集中所有序列的训练网络的特征,以分配类别。然后,我们使用余弦相似性作为距离度量来执行识别,即,将每个测试序列放在一个类中。值得注意的是,KNN分类器不需要学习额外的动作放置权重。
4. 实验结果和数据集
实现细节:为了训练网络,根据视图不变变换预处理所有身体关键点序列,并下采样以具有最多50帧(图3)。坐标也标准化为[1,1]的范围。使用超参数搜索,采用上面讨论的随机RNN传播,我们设置了以下架构: 编码器:3层双GRU,每层N = 1024个单元。解码器:1层单GRU,N = 2048个单位,使其与编码器最终状态ET的尺寸兼容。所有组都用随机均匀分布初始化。特征级自动编码器:6个FC层,尺寸如下:输入特征向量(dim = 2048)→FC(1024)→FC(512)→FC(256)→FC(512)→FC(1024)→FC(2048)。除了最后一层是线性的之外,所有的FCs都使用tanh激活。自动编码器的中间层输出由256个元素组成的矢量特征,用作最终特征。我们使用Adam优化器和学习率,从104开始,每1000次迭代的衰减率为0.95。如果范数大于25,梯度将被剪裁,以避免梯度爆炸。在一个Nvidia Titan X GPU上,每次训练迭代需要0.7秒,前向传播需要0.1秒,批处理大小为64。请参见补充材料中关于建筑选择的更多细节。
数据集:我们使用三个不同的数据集来训练、评估和比较我们的P&C系统和相关方法。这三个数据集包括不同数量的类、动作类型、从不同视角和不同主题捕捉的身体关键点。在这些数据集中,身体关键点由深度相机捕获,并且还包括附加数据,例如视频(RGB)和深度(+D)。各种类型的动作识别方法已经被应用于这些数据集,例如,有监督的骨架方法和无监督的RGB+D方法。我们在表1的数据集中列出了这些类型的方法及其在测试中的性能。值得注意的是,据我们所知,我们的工作是第一个完全无监督的基于骨架的方法应用于这些广泛的动作识别测试。
我们将我们的P&C系统应用到的数据集是(1)NW-UCLA(2)UWA3D,(3)NTU RGB+D。这些数据集分别包括10,30,60个动作类的3D身体关键点。我们在下面简要描述它们。UCLA西北(NW-UCLA)数据集由Kinect v1捕获,包含10个动作的1494个视频。这些动作由10名受试者重复进行1至6次。每个动作有三个视图,每个受试者有20个关节被记录。我们遵循[13]和[30]使用前两个视图(V1,V2)进行训练,最后一个视图(V3)测试交叉视图动作识别。UWA3D多视角活动二(UW·A3D)数据集[20]包含由10名受试者执行4次的30个人类动作。记录15个关节,从四个视角观察每个动作:正面、左右侧和顶部。数据集具有挑战性,因为有许多视图,并且只考虑其中的一部分会导致自遮挡。此外,动作之间有很高的相似性,例如,“喝酒”和“接电话”这两个动作有许多接近相同的关键点&空闲,并且在动态关键点中有细微的差异。NTU RGB+D数据集[21]是用于3D人类活动分析的大规模数据集。该数据集由56880个视频样本组成,使用微软Kinect v2从40个不同的人类受试者中捕获。NTU RGB+D(60)包含60个动作类。我们使用3D骨架数据进行实验,使得每个时间样本包含25个关节。我们在跨视图和跨主题协议上测试我们的P&C方法。
5. 评估和比较
评估:在所有实验中,我们使用k = 1的K近邻分类器来计算动作识别精度,并评估我们的P&C方法的性能。我们测试了P&C体系结构的不同变体(第3节中描述的组件组合),并在本文中报告了这些变体的一个子集:无训练的基线随机初始化编码器(P&C-Rand),具有文件系统解码器和特征级自动编码器的完整系统(P&C-文件系统自动编码器),以及具有文件系统解码器和特征级自动编码器的完整系统(P&C-文件系统自动编码器)。我们在补充材料中报告其余的组合及其结果。
6. 总结
提出了一种新的基于人体骨骼的无监督动作识别模型。由于新的训练策略削弱了解码器并加强了编码器的训练,与现有方法相比,我们的系统达到了增强的性能。结果,网络学习到更多可分离的表示。实验结果表明,我们的无监督模型能够有效地学习三个基准数据集上的显著动作特征,并优于以往的无监督方法。