Generative Action Description Prompts for Skeleton-based Action Recognition

标题:基于骨架的动作识别的生成动作描述提示

源文链接:https://openaccess.thecvf.com/content/ICCV2023/papers/Xiang_Generative_Action_Description_Prompts_for_Skeleton-based_Action_Recognition_ICCV_2023_paper.pdficon-default.png?t=N7T8https://openaccess.thecvf.com/content/ICCV2023/papers/Xiang_Generative_Action_Description_Prompts_for_Skeleton-based_Action_Recognition_ICCV_2023_paper.pdf

源码链接:GitHub - MartinXM/GAP: official implementation for Language Supervised Training for Skeleton-based Action Recognitionicon-default.png?t=N7T8https://github.com/MartinXM/GAP

 发表:ICCV-2023

目录

摘要

1. 介绍

2. 相关工作

2.1. 基于骨骼的动作识别

2.2. 人体部位先验

2.3. 多模态表示学习

3. 方法

3.1. 生成式动作提示框架

3.2. 骨架编码器

3.3. 文本编码器

3.4. 动作描述学习

3.5 动作描述生成

4实验

4.1. 数据集

4.2. 实现细节

4.3. 消融实验

4.4. 与最新技术的比较

4.5. 讨论

5. 结论

读后总结


摘要

骨架动作识别最近受到了广泛关注。当前的骨架动作识别方法通常被形式化为独热编码分类任务,并未充分利用动作之间的语义关系。例如,“做胜利手势”和“竖起大拇指”是两种手势动作,它们的主要区别在于手部的运动。这些信息在动作类别的独热编码中是不可见的,但可以通过动作描述来揭示。因此,在训练中利用动作描述可能有助于表示学习。在这项工作中,我们提出了一种用于骨架动作识别的生成式动作描述提示(GAP)方法。更具体地说,我们采用预训练的大规模语言模型作为知识引擎,自动生成身体部位动作的文本描述,并提出了一种多模态训练方案,通过利用文本编码器为不同的身体部位生成特征向量,并监督骨架编码器进行动作表示学习。实验表明,我们提出的GAP方法在没有增加推理阶段额外计算成本的情况下,比各种基线模型取得了显著的改进。GAP在流行的骨架动作识别基准上达到了新的最先进水平,包括NTU RGB+D、NTU RGB+D 120和NW-UCLA。源代码可在https://github.com/MartinXM/GAP获取。

1. 介绍

动作识别由于其在人机交互、体育与健康分析、娱乐等方面的广泛应用,一直是一个活跃的研究课题。近年来,随着深度传感器(如 Kinect [44] 和 RealSense [14])的出现,人类身体关节数据变得易于获取。利用身体关节进行动作识别的方法,即所谓的基于骨架的动作识别,由于其计算效率高以及对光照条件、视角变化和背景噪声的鲁棒性,吸引了大量关注。

大多数之前的基于骨架的动作识别方法集中于建模人体关节之间的关系,采用单模态训练方案,以一系列骨架坐标作为输入【41, 15, 27, 9, 28, 4, 25, 40, 30, 36, 35, 22】。受最近图像和语言多模态训练成功的启发【23, 1】,我们提出了一个有趣的问题:动作语言描述能否揭示动作关系并有助于基于骨架的动作识别?遗憾的是,由于缺乏包含骨架-文本对的大规模数据集,构建这样的数据集将需要大量的时间和财力资源。因此,【23, 11, 39】中描述的训练方案不能直接应用于基于骨架的动作识别。因此,开发新的多模态训练范式以解决这一问题是必要的。

我们提出利用以语言提示的形式生成类别级人类动作描述。动作的语言定义包含丰富的先验知识。例如,不同的动作聚焦于不同身体部位的运动:“做胜利手势”和“竖起大拇指”描述手部的手势动作;“划圈”和“挥动网球拍”描述手臂的运动;“点头”和“摇头”是头部的动作;“跳跃”和“侧踢”依赖于脚和腿的运动。一些动作描述了多个身体部位的互动,例如,“戴帽子”和“穿鞋”涉及手和头、手和脚的动作。这些关于动作的先验知识可以为表示学习提供细粒度的指导。此外,为了解决收集人类动作提示的繁琐工作,我们求助于预训练的大型语言模型(LLM),例如 GPT-3 [1],以便高效地自动生成提示

具体而言,我们开发了一种新的训练范式,利用生成式动作提示进行基于骨架的动作识别。我们利用 GPT-3 [1] 作为我们的知识引擎,为动作生成有意义的文本描述,通过精心设计的文本提示,可以生成整个动作以及每个身体部位的详细文本描述。在图1中,我们将我们提出的框架(b)和(c)与传统的单编码器基于骨架的动作识别框架(a)进行了比较。在我们的框架中,开发了一种多模态训练方案,其中包含一个骨架编码器和一个文本编码器。骨架编码器将骨架坐标作为输入,并生成部分特征向量和全局特征表示。文本编码器将全局动作描述或身体部位描述转换为整个动作或每个身体部位的文本特征多部分对比损失(对于(b)为单一对比损失)用于对齐文本部分特征和骨架部分特征,并且交叉熵损失应用于全局特征上

图1:我们提出的生成式动作描述提示(GAP)框架(双编码器)与其他骨架识别方法(单编码器)的比较。除了分类损失外,我们提出的方法还包含额外的对比损失。请注意,文本编码器仅在训练阶段使用,GPT-3 用于离线动作描述生成。对于每个给定的动作查询,GPT-3 生成带有提示模板的动作文本描述,然后将该动作描述用于多模态训练

我们的贡献总结如下:
- 据我们所知,这是第一项利用生成式提示进行基于骨架的动作识别的工作,该方法将LLM作为知识引擎,并精心利用文本提示自动生成不同动作的整体动作和身体部位运动的详细文本描述
- 我们提出了一种新的多模态训练范式利用生成式动作提示指导基于骨架的动作识别,通过利用动作和人体部位的知识增强了表示。这种方法在推理阶段不增加任何计算成本,可提高模型性能。
- 借助所提出的训练范式,我们在几个流行的基于骨架的动作识别基准上取得了最先进的性能,包括NTU RGB+D、NTU RGB+D 120和NW-UCLA

2. 相关工作

2.1. 基于骨骼的动作识别

近年来,通过设计高效有效的模型架构,针对基于骨架的动作识别提出了各种方法。在[9, 28, 41]中,RNN被应用于处理人体关节的序列。HBRNN [9] 使用端到端的分层RNN来建模时间骨架序列的长期上下文信息。VA-LSTM [41] 设计了一个视角自适应的RNN,使网络能够端到端地适应最合适的观察视角。受CNN在图像任务中的成功启发,基于CNN的方法[42, 37] 被用来建模关节之间的关系。在[37]中提出了一个纯CNN架构,名为拓扑感知CNN(TA-CNN)。由于人体关节可以自然地表示为图节点,并且关节连接可以用邻接矩阵描述,因此基于GCN的方法[38, 4, 25, 2, 30]引起了很多关注。例如,ST-GCN [38] 应用了时空GCN来模拟人体关节在空间和时间维度上的关系。CTR-GCN [2] 提出了一种通道级图卷积用于精细的关系建模。Info-GCN [6] 在GCN中采用了信息瓶颈。随着视觉Transformer [8]的近期流行,基于Transformer的方法[22, 26, 35] 也被用于骨架数据的研究。所有先前的方法都采用了单模态训练方案。据我们所知,我们的工作是第一个将多模态训练方案应用于基于骨架的动作识别的工作。

2.2. 人体部位先验

在先前的工作中,为了基于骨架的动作识别,已经通过设计特殊的模型架构使用了人体部位先验[32, 29, 35, 10]。PB-GCN [32] 将骨架图划分为四个子图,并使用基于部位的图卷积网络学习识别模型。PA-ResGCN [29] 计算了人体各部位的注意力权重,以提高特征的判别能力。PL-GCN [10] 提出了一个部位级别的图卷积网络,自动学习部位划分策略。IIP-transformer [35] 应用了Transformer来学习部位间和部位内的关系。与先前的方法相比,我们直接使用部分语言描述来指导多部分对比损失训练过程中的表示学习。我们没有设计任何复杂的部位建模模块,因此在推理阶段不会增加额外的计算成本。

2.3. 多模态表示学习

多模态表示学习方法,如CLIP [23] 和 ALIGN [11],已经表明,视觉-语言联合训练可以为零样本学习、图像描述生成、文本-图像检索等下游任务学习强大的表示。UniCL [39] 使用了一种统一的对比学习方法,将图像标签视为图像-文本-标签数据,以学习通用的视觉-语义空间。然而,这些方法需要一个大规模的图像-文本配对数据集进行训练。ActionCLIP [34] 遵循了CLIP的训练方案进行视频动作识别,使用了预训练的CLIP模型,并添加了Transformer层来对视频数据进行时间建模。至于动作描述,标签名称直接作为文本提示,前缀和后缀不包含太多语义意义,例如,“一个关于[action name]的视频”,“人类动作[action name]”等。相比之下,我们使用LLM(GPT-3)作为知识引擎,生成动作中人体运动的描述,为表示学习提供细粒度的指导。此外,我们在身体部位上采用多部分对比损失,学习精细的骨架表示Prompt Learning(PL)[46, 45, 12] 方法旨在通过引入可学习的提示向量解决零样本学习和少样本学习带来的挑战。虽然PL已经展示了有希望的结果,但学习到的提示向量的可解释性仍然是一个挑战。最近,[20] 应用LLM生成零样本图像分类的描述。STALE [21] 使用并行分类和定位/分类架构进行零样本动作检测。MotionCLIP [31] 旨在将动作潜在空间与CLIP潜在空间对齐,用于3D人体动作生成。ActionGPT [13] 使用LLM生成详细的动作描述进行动作生成。我们的研究是同时进行且独立进行的。所有这些方法在推理期间都需要一个文本编码器,而我们提出的框架仅在训练阶段施加开销,在测试期间不增加任何计算或内存成本

3. 方法

在本节中,我们详细介绍提出的生成式动作描述提示(GAP)框架。GAP旨在利用自动生成的动作描述增强骨架表示学习,并且可以嵌入到现有的主干网络中。因此,GAP可以与各种骨架和语言编码器配合使用。在接下来的章节中,我们首先概述GAP框架,然后详细介绍骨架编码器、文本编码器以及GAP的主要组成部分。

3.1. 生成式动作提示框架

我们的GAP方法的综合框架如图2所示。它由一个骨架编码器Es和一个文本编码器Et组成,分别用于生成骨架特征和文本特征。训练损失可以表示为:

\mathcal{L}_{total}=\mathcal{L}_{cls}(E_s(\mathcal{S}))+\lambda\mathcal{L}_{con}^{multi}(E_s(\mathcal{S}),E_t(\mathcal{T})),\quad(1)

其中,Lcls是交叉熵分类损失,\mathcal{L}_{con}^{multi}是多部分对比损失。骨架输入S\in R^{B\times 3\times N\times T},其中B是批量大小,3是坐标参数数量,N和T分别是关节数量和序列长度。λ是可学习的权衡参数。T是LLM生成的文本描述。

图2:具有多部分对比损失的生成式动作描述提示(GAP)的总体框架。在训练期间,骨架编码器同时使用交叉熵损失和多部分对比损失进行训练。我们使用GPT-3生成的动作描述作为文本编码器的输入,以生成人体部位特征。然后,利用多部分对比损失将部位特征与骨架编码器的部位特征对齐在测试期间,只使用来自骨架编码器的全局特征进行分类,文本编码器被忽略

在训练期间,Es 使用交叉熵损失和多部分对比损失进行训练,其中部分文本描述作为额外的指导全局骨架特征通过对所有关节点进行平均池化生成,部分骨架特征通过对各个节点组的特征进行平均池化生成骨架部分特征通过全连接层(FC层)映射,以保持与文本特征相同的特征维度文本部分描述由LLM离线生成,并在训练期间由Et编码以生成文本部分特征在测试阶段,我们直接使用骨架编码器的全局特征进行动作概率预测。因此,与先前仅使用骨架编码器的方法相比,我们的GAP框架在推理时不会增加额外的内存或计算成本

3.2. 骨架编码器

由于其高效性和强大性能,图卷积网络(GCN)在骨架动作识别中普遍存在。因此,我们在GAP框架中采用GCN作为骨架网络的主干。我们的骨架编码器由多个GC-MTC块组成,每个块包含一个图卷积(GC)层和一个多尺度时间卷积(MTC)模块

图卷积。人体骨架可以表示为图G = {V, E},其中V是人体关节点的集合,|V| = N,E是边的集合。记\mathbf{H}^l\in\mathbb{R}^{N\times F}为第l层的人体关节特征,特征维度为F。图卷积可以表述如下:H_{l+1} = \sigma (D^{-\frac{1}{2}}AD^{-\frac{1}{2}}H^l W^l)\qquad(2)

其中D\in R^{N \times N }是度矩阵(度表示与该节点相连的边的数量),A是表示关节连接的邻接矩阵,W^l是第l层的可学习参数,σ是激活函数。

这个图卷积公式是基于谱图卷积(Spectral Graph Convolution)的理论推导得来的。在这个公式中:

- H_l 是输入图的节点特征矩阵,H_{l+1}  是输出图的节点特征矩阵。
- A 是图的邻接矩阵,表示节点之间的连接关系。
- D 是度矩阵,是一个对角矩阵,其对角线上的元素是每个节点的度数。
- W_l  是可学习的参数矩阵,用于将输入特征转换到输出特征空间。
- \sigma是激活函数。

这个公式的推导基于拉普拉斯矩阵的谱分解。通过度矩阵D的逆平方根和邻接矩阵 A 的乘积,实现了对节点特征的归一化处理,这有助于处理图结构中不同节点度数的影响。然后,通过乘以参数矩阵W_l,将归一化后的特征进行线性变换。最后,通过激活函数\sigma 进行非线性变换,生成输出特征矩阵  H_{l+1}。

多尺度时间建模。为了对不同时间尺度下的动作进行建模,我们利用[19, 2]中的多尺度时间卷积模块进行时间建模。该模块包括四个不同的分支,每个分支都包含一个1 × 1卷积来减少通道维度。其中有两个具有不同扩张率(1和2)的时间卷积分支,以及一个最大池化分支,第四个分支仅包含1 × 1卷积。四个分支的输出被连接起来以产生最终结果。

骨架分类。基于骨架的动作识别方法将人体骨架数据映射到动作标签的独热编码,这些标签通过交叉熵损失进行训练:
\mathcal{L}_{cls}=-y\log p_\theta(x), \qquad(3)
其中, y 是独热编码的真实动作标签, x 是全局骨架特征,p_{\theta}(x)是预测的概率分布。

3.3. 文本编码器

考虑到最近Transformer模型在自然语言处理领域取得的成功,我们采用一个预训练的基于Transformer的语言模型作为我们的文本编码器E_t,例如BERT [7] 或 CLIP-text-encoder [23]。输入以文本的形式呈现,并经过标准的分词处理。随后,特征通过一系列Transformer模块进行处理。最终的输出是一个表示文本描述的特征向量。对于不同的人体部位,我们使用不同的部位描述作为文本编码器的输入

3.4. 动作描述学习

骨架语言对比学习。相较于骨架分类中的独热标签监督,骨架语言对比学习利用自然语言进行监督。它采用了双编码器设计,包括骨架编码器 E_s和文本编码器E_t,分别用于编码骨架数据和动作描述。这两个双编码器通过在批次内的两个方向上(从骨架到文本的方向(s→t)和从文本到骨架的方向(t→s))对比骨架-文本对进行联合优化:

\begin{aligned} &p_{i}^{s2t}(\mathbf{s_{i}}) =\frac{\exp(sim(\mathbf{s_i},\mathbf{t_i})/\tau)}{\sum_{j=1}^B\exp(sim(\mathbf{s_i},\mathbf{t_j})/\tau)}, \\ &&\text{(4)} \\ &p_{i}^{t2s}(\mathbf{t_{i}}) =\frac{\exp(sim(\mathbf{t_i},\mathbf{s_i})/\tau)}{\sum_{j=1}^B\exp(sim(\mathbf{t_i},\mathbf{s_j})/\tau)}, \end{aligned}

其中,s, t 分别是骨架和文本的编码特征,sim(s, t) 是余弦相似度, \tau 是温度参数, B  是批次大小。与CLIP中的图像-文本对是一对一映射不同,在我们的设置中,可能存在多个正匹配,不同类别的动作形成负对,因此,我们不使用交叉熵损失,而是使用KL散度作为骨架-文本对比损失

\begin{aligned}\mathcal{L}_{con}&=\frac{1}{2}\mathbf{E}_{\mathbf{s},\mathbf{t}\sim\mathcal{D}}[KL(p^{s2t}(\mathbf{s}),y^{s2t})+KL(p^{t2s}(\mathbf{t}),y^{t2s})],\qquad(5)\end{aligned}

其中,D 是整个数据集,y_{s \rightarrow t}y_{t \rightarrow s}是真实标签相似度分数,对于负对其概率为0,对于正对其概率为1。ps→t​(s) 是从骨架到文本的方向上的匹配概率分布。

在训练过程中,对于给定的一对骨架和文本,可能存在多个动作类别的文本描述与之匹配,这些被匹配的文本描述都被认为是正匹配。但是,同时也可能存在其他动作类别的文本描述与该骨架特征形成负对,因为它们与骨架特征的语义不匹配,这些被匹配的文本描述都被认为是负匹配。因此,在这种情况下,对于同一个骨架特征,可能存在多个正匹配和多个负匹配的文本描述。

在这个设置中,每个骨架可以与多个文本描述相匹配,这与 CLIP 中的图像-文本对是一对一映射不同。这种情况下,采用交叉熵损失可能会带来一些问题:

  1. 多样性匹配: 对于同一个骨架,可能存在多个动作描述与之相关联,因此不存在唯一的“正确答案”。在交叉熵损失中,每个样本只有一个正确的标签,但在这种情况下,很难确定哪一个是“正确”的标签。

  2. 负样本处理: 除了存在多个正匹配之外,还可能存在不匹配的负样本,即来自不同动作类别的文本描述。在交叉熵损失中,负样本通常被视为来自其他类别,但在这种设置中,负样本可能与骨架存在某种相似性,因此不适合简单地将其视为负样本

因此,选择使用 KL 散度作为骨架-文本对比损失的主要原因是,它能够更好地适应这种多对多的匹配情况,并更准确地衡量模型预测与实际匹配之间的差异。KL 散度损失考虑了匹配概率分布的相对关系,能够更好地反映模型预测与地面实况之间的相似度。

多部分对比学习。考虑到人体部位的先验知识,骨架可以被划分为多个组。我们在图1(c)中展示了这个框架。我们对不同部位的特征以及全局特征应用对比损失,并提出了多部分对比损失部分特征可以通过部分汇聚获得,其中同一组内的关节特征被聚合以生成部分表示。更具体地说,我们选择最终分类层之前的特征进行部分特征汇聚。在图3中,我们展示了不同的部分划分策略。对于两个部分划分,整个身体被分为上半身和下半身两组。对于四个部分划分,身体被分为四组:头部、手臂、臀部、腿部。对于六个部分划分,头部、手部、臂部、髋部、腿部和脚部分别分组。多部分对比损失的损失函数可以表示为:

\mathcal{L}_{con}^{multi}=\frac{1}{K}\sum_{k=1}^{K}\mathcal{L}_{con}^{k},\quad(6)

其中,K 是骨架被分成的不同部分或组的数量。

3.5 动作描述生成

对于文本编码器的动作描述 T 在 GAP 中起着至关重要的作用。在这里,我们探讨了几种不同的描述生成方法。图 4 展示了不同方法生成的动作“穿鞋子”的文本描述。

标签名称Label Name。一种直接的方法是直接使用标签名称。许多方法 [34] 使用这种类型的文本描述,带有前缀和后缀,如“[动作]的人类动作”,“[动作],一个动作的视频”等。虽然这些提示可以提升零样本和少样本问题的性能,但在我们的监督学习案例中,由于这些提示不包含关于动作的具有辨别性的语义信息,因此这种方法并没有带来显著的性能改进(正如我们的消融研究所示)。

HAKE部分状态。 HAKE [17]数据集包含人-物互动的注释部分状态。 对于每个样本,手动注释了六个身体部位的运动(头部、手、臂、臀部、腿、脚),总共有93个部分状态。 为了避免对每个样本进行繁琐的注释,我们应用了一个自动化流程,其中包含两个步骤:1)使用预训练的变压器文本编码器分别为标签名称和 HAKE 部分状态生成文本特征;2)通过在 HAKE 部分状态特征空间中,找到动作标签名称的 K 个最近邻(与动作标签名称的文本特征最相似的k个)来生成文本描述。 最接近动作标签名称的那些 HAKE 部分状态被选中作为动作描述。 然后我们使用这个生成的部分描述进行 GAP

手动描述。我们要求标注者按照动作的时间顺序写下身体部位移动的描述。这些描述由预定义的基本动作组成。我们要求标注者专注于最显著的部分运动。

大型语言模型。我们使用大规模语言模型(例如,GPT-3)来生成文本描述。我们设计文本提示,以便它可以生成我们期望的动作描述。文本描述可以通过三种方式生成。a)段落:一整段可以详细描述动作的描述;b)同义词:我们收集动作标签的10个同义词;c)部分描述:我们为每个动作收集不同身体部位的描述。身体分区策略遵循前一节的图3。我们以“穿鞋子”为例,并在图5中展示了用于生成不同描述的提示。

段落:Q段:描述一个人“穿鞋”的细节。A:这个人正在穿鞋。他正弯下腰,把脚伸进鞋里。他正在系鞋带。他做得又快又有效率。

同义词Q:建议10个“穿鞋”的同义词a:靴子,系上鞋带,穿上,步入,系上带子,系上领带,塞进,拉上拉链,穿上,系紧

部分描述:Q:描述“穿鞋”时身体部位的动作:头、手、手臂、臀部、腿、脚。A:头部微微前倾;手伸下去,抓住鞋子;手臂向前向下伸展;髋部保持静止;腿在膝盖处弯曲,使脚更靠近手;脚插入鞋中。

4实验

4.1. 数据集

NTU RGB+D [24] 是用于基于骨架的人体动作识别的广泛使用的数据集。它包含 56,880 个骨架动作序列。有两个用于评估的基准,包括跨主体(X-Sub)和跨视角(X-View)设置。对于 X-Sub,训练集和测试集来自两个不相交的集合,每个集合有 20 个主体。对于 X-View,训练集包含由摄像机视图 2 和 3 拍摄的 37,920 个样本,测试集包括由摄像机视图 1 拍摄的 18,960 个序列。

NTU RGB+D 120 [18] 是 NTU RGB+D 数据集的扩展,增加了 57,367 个额外的骨架序列和 60 个额外的动作类别。总共有 120 个动作类别。作者建议了两种基准评估方法,包括跨主体(X-Sub)和跨设置(X-Setup)设置。

NW-UCLA [33] 数据集由三个不同视角的 Kinect V1 传感器录制。骨架包含 20 个关节和 19 条骨连接。它包括 1,494 个视频序列,涵盖了 10 个动作类别。

4.2. 实现细节

对于 NTU RGB+D 和 NTU RGB+D 120,每个样本被调整为 64 帧,并采用 [43, 6] 的代码进行数据预处理。对于 NW-UCLA,我们遵循 [5, 2, 6] 中的数据预处理流程。对于我们的消融研究,我们使用单尺度时间卷积的 CTR-GCN,考虑到其在性能和效率之间的良好平衡。对于具有 ST-GCN 骨干网络的消融研究,请参阅补充材料。与其他方法进行比较时,我们采用 CTR-GCN 与多尺度时间卷积,因为它产生了最好的结果。对于文本编码器,我们使用 CLIP 或 BERT 的预训练文本变压器模型,并在训练过程中微调其参数。对比损失的温度设置为 0.1。至于 GPT-3 生成的动作描述的非确定性,我们在训练过程中通过采样有效地利用了生成的结果。例如,在我们的同义词场景中,我们生成了大量的同义词,并随机选择其中一些进行训练

对于 NTU RGB+D 和 NTU RGB+D 120,我们将模型训练总轮数设置为 110 轮,批大小为 200。我们在前 5 轮采用热身策略。初始学习率设为 0.1,并在第 90 和 100 轮时减小 10 倍,权重衰减设为 5e-4,遵循 [6] 中的策略。对于 NW-UCLA,批大小、轮数、学习率、权重衰减、减小步长、热身轮数分别设置为 64、110、0.2、4e-4、[90,100]、5。

4.3. 消融实验

在本节中,我们进行实验评估不同组件的影响。实验在 NTU120 RGB+D 数据集的联合模态和 X-Sub 设置上进行。更多的消融研究请参考补充材料。

分区策略。我们测试了不同的身体分区策略用于 GAP,并将结果显示在表1a中。“全局”代表使用动作的全局描述和单一对比损失,相比基线提高了0.6%。使用更多的部分和多部分对比损失可以稳定地提高性能,当使用4个部分时,性能饱和至85.4%。

文本提示的影响。文本提示的设计对模型性能有很大影响。我们在表1b中展示了不同文本提示的影响。通过直接使用标签名称(带前缀或后缀)作为 GAP 中的文本提示,模型的性能仅略优于基线模型(0.2%),因为这并没有为训练带来额外的信息。利用标签名称的同义词列表或全局描述段落可以大大提高性能(0.6%),因为它丰富了每个动作类别的语义含义。使用部分描述提示会带来强大的性能,提高了0.8%。通过将标签名称的同义词和身体部位描述结合起来作为提示,实现了最佳性能,准确率达到了85.5%。

文本编码器的影响。在表1c中,我们展示了文本编码器的影响。我们发现,无论是XFMR(来自CLIP [23]的文本编码器)还是BERT都能取得良好的性能,表明骨架编码器可以受益于具有不同预训练来源(图像-语言或纯语言)的文本编码器。考虑到XFMR-32在效率和准确性之间的良好平衡,我们将其作为默认的文本编码器

GAP对不同的骨架编码器的影响。我们提出的GAP与网络架构解耦,可以用来改进不同的骨架编码器。在表1d中,我们展示了将GAP应用于ST-GCN [38]、CTR-baseline和CTR-GCN [2]的实验结果。GAP在推理阶段没有额外的计算成本,带来了一致的改进(0.6-1.2%),表明了GAP的有效性和泛化能力。

描述方法的比较。我们在表1e中比较了几种获取文本编码器文本提示的不同方法,包括:手动描述;HAKE部分状态;使用GPT-3生成文本提示。对于手动描述和 HAKE 结果,我们将它们用作 GAP 的全局描述。在这些方法中,GPT-3 可以通过精心设计的文本提示提供非常详细的人体部分描述,生成的部分文本描述实现了最佳性能。我们还实现了一个部分池化分类基线用作参考,该基线对每个池化的部分特征应用分类头。由于部分特征可能不足以预测动作类别,这个基线效果不佳。

与提示学习方法的比较。在表1f中,我们将GAP与使提示可学习的PL方法进行了比较。PL在固定或调整了文本编码器(TE)参数的情况下均优于基线。GAP进一步比PL提高了0.3%,这表明了生成提示和多部分范式的有效性

λ选择的影响。λ 的选择对模型性能有着重要的影响。为了研究在公式 1 中的权衡参数 λ 的影响,我们在 {1.0, 0.8, 0.5, 0.2} 中进行了搜索,并采用了 5 折交叉验证。模型的性能分别为 85.4%,85.5%,85.3% 和 85.2%。我们发现 λ = 0.8 取得了最佳性能;因此,我们将其作为我们默认的 λ 值,并在不同基准数据集的所有实验中使用它。

4.4. 与最新技术的比较

我们将我们的方法与之前的最新技术进行比较,结果如表2、3和4所示。为了公平比较,我们采用了4个合奏策略(Joint、Joint-Motion、Bone、Bone-Motion),因为大多数先前的方法都采用了这种策略。结果是5次运行的平均值,标准偏差约为0.1。如表2所示,在NW-UCLA数据集上,GAP的表现优于CTR-GCN约0.7%。它还优于最近的工作Info-GCN[6]约0.6%,后者使用了自注意层和信息瓶颈。考虑到该数据集上模型的性能已经非常高,我们认为这样的改进是显著的。在NTU RGB+D数据集上,GAP在交叉主体和交叉视图设置上分别比CTR-GCN[2]高出0.5%和0.2%,在这两种设置上,它分别比Info-GCN高出0.2%和0.1%。如表4所示,在最大的数据集NTU RGB+D 120上,我们的方法在交叉主体设置上比CTR-GCN大幅领先(1.0%),在交叉设置上领先0.5%。Info-GCN在这个数据集上也取得了很好的表现,而GAP仍然比它分别高出0.5%和0.4%。总的来说,GAP在NW-UCLA、NTU RGB+D和NTU RGB+D 120数据集上的表现始终优于最新技术,在不同设置下验证了其有效性和鲁棒性

4.5. 讨论

为了更深入地讨论所提出的GAP方法,我们利用了在NTU RGB+D 120交叉主体模式数据集上使用联合模态训练的模型。在图6中,我们展示了在NTU120数据集中,使用GAP和不使用GAP之间存在超过4%绝对准确度差异的动作类别。对于动作类别如“写字”、“打开盒子”、“吃饭”和“使用刀具”等,GAP都带来了显著的好处,这是因为语言模型为这些动作生成了详细的身体部位运动描述。另一方面,对于“剪纸”、“自拍”、“玩魔方”和“玩手机/平板电脑”等动作类别,GAP的表现较差。我们的分析揭示了这些表现不佳的动作与表现良好的动作之间的主要区别在于前者与物体相关,这使得使用骨架数据来识别它们变得具有挑战性。此外,数据集中存在的类别偏差也可能导致我们提出的方法在NTU120中对与物体相关的动作的性能变化。例如,在分析“剪纸”时,我们发现它与“擦手”(也出现在NTU120中)之间的主要区别在于有物体被拿着,比如纸和剪刀。相反,虽然“打开一个盒子”也是一个与物体相关的动作,但在NTU120数据集中没有其他与物体相关的相似动作,比如“展开衣服”。有关更多讨论和可视化结果,请参阅补充材料。

5. 结论

我们提出了一种新颖的生成式动作描述提示(GAP)框架,用于基于骨架的动作识别。据我们所知,这是首个利用动作知识先验进行骨架动作识别的工作。我们利用大规模语言模型作为知识引擎,自动生成详细的身体部位描述,无需繁琐的手工注释GAP利用知识提示来引导骨架编码器,并通过关于动作与人体部位关系的知识增强了学到的表示。广泛的实验表明,GAP是一个通用的框架,可以与各种骨干网络相结合,以增强表示学习。GAP在NTU RGB+D、NTU RGB+D 120和NW-UCLA基准数据集上取得了新的最先进水平。

读后总结

出发点:独热编码无法表示动作之间的相似性和差异性,模型只能通过大量数据学习动作的区分特征,而无法利用潜在的语义信息进行指导。这可能导致对相似动作区分不清,对语义相关的动作无法有效识别。

创新点:提出一种用于骨架动作识别的生成式动作描述提示(GAP)方法,通过在训练中利用动作描述,来辅助骨架信息,通过两个编码器(骨架编码器、文本编码器),骨架编码器部分,生成全局平均特征和部分平均特征;文本编码器部分,首先通过大语言模型生成适配标签的文本,再通过文本编码器生成全局和部分特征;最后将骨架编码器的特征和文本编码器的特征进行对齐,通过文本编码器的特征辅助骨架编码器特征,使得骨架编码器能够学习到更加丰富和准确的特征,通过计算骨架特征与文本特征之间的相似度(使用对比损失),模型能够更好地理解和区分不同的动作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/639723.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【openlayers系统学习】1.5交互-捕捉要素

五、捕捉要素 Snapping 捕捉 您可能已经注意到,很容易绘制与现有要素不完全对齐的要素。此外,在修改要素时,我们可能会破坏拓扑关系,导致原本相邻的多边形之间出现空隙。Snap 交互操作可以帮助在绘制和编辑要素时保持拓扑关系。…

vue 纵向滚动菜单, 点击滚动到选中菜单

1 背景 需要设计一个纵向滚动菜单,要求丝滑点,默认显示选中菜单 2 思路 给定一个容器,样式包含overflow:hidden,默认高宽足够显示一个菜单(以下用图标代替菜单),鼠标悬浮时增大容器高度&#…

时代终结,微软宣布淘汰VBScript;Flink漏洞被广泛利用;Grandoreiro银行木马强势回归,1500多家银行成攻击目标 | 安全周报0524

揭秘SolarMarker恶意软件:多层次基础设施让清除工作陷入困境 Recorded Future的新发现表明,SolarMarker信息窃取恶意软件背后的持续威胁行为者已经建立了一个多层次的基础设施,以使执法部门的清除工作变得复杂。 该公司在上周发布的一份报告…

Linux环境中部署docker私有仓库Registry与远程访问详细流程

目录 前言 1. 部署Docker Registry 2. 本地测试推送镜像 3. Linux 安装cpolar 4. 配置Docker Registry公网访问地址 5. 公网远程推送Docker Registry 6. 固定Docker Registry公网地址 前言 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊…

How Blink Works

How Blink Works TL;NR 在 Blink 上开发绝非易事。对于新接触 Blink的开发者来说,要实现一个高效的渲染引擎,需要了解大量Blink特有的概念和编码约定。对于经验丰富的开发者来说亦非易事,因为 Blink 非常庞大,对性能、内存和安全…

Ubuntu22.04本地部署qwen模型、jupyterlab开发环境、LoRA微调全流程

前言 这段时间在自己的Win11系统上部署了chatGLM以及Qwen模型,进行对话、推理以及工具调用都没有问题,但是在尝试进行微调的时候发现好像并不能成功,因此花费了很大的力气,又分别在ubuntu桌面版、windows子系统WSL2 Ubuntu上部署…

C++多生产者,多消费者模型

C11实现多生产者,多消费者模型 在C标准库中实现多生产者多消费者模型,可以使用std::thread、std::queue、互斥锁(std::mutex)、条件变量(std::condition_variable)等组件。下面是一个简单的示例,展示如何创建多生产者和多消费者模型&#xf…

Java进阶学习笔记1——课程介绍

课程适合学习的人员: 1)具备一定java基础的人员; 2)想深刻体会Java编程思想,成为大牛的人员; 学完有什么收获? 1)掌握完整的Java基础技术体系; 2)极强的编…

【学习笔记】Windows GDI绘图(五)图形路径GraphicsPath详解(上)

文章目录 图形路径GraphicsPath填充模式FillMode构造函数GraphicsPath()GraphicsPath(FillMode)GraphicsPath(Point[],Byte[])和GraphicsPath(PointF[], Byte[])GraphicsPath(Point[], Byte[], FillMode)和GraphicsPath(PointF[], Byte[], FillMode)PathPointType 属性FillMode…

DAMA:数据治理 CDGA/CDGP 认证考试备考经验分享

一、关于DAMA中国和CDGA/CDGP考试 国际数据管理协会(DAMA国际)是一个全球性的专业组织,由数据管理和相关的专业人士组成,非营利性机构,厂商中立。协会自1980年成立以来,一直致力于数据管理和数字化的研究、…

IJNM-International Journal of Network Management 智能网络管理

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、投稿咨询 一、期刊简介 International Journal of Network Management 是一本网络管理领域的研究人员、开发人员和从业人员向国际观众展示其工作的论坛。该杂志致力于传播信息,这将改善计算机网络和…

leetcode-55 跳跃游戏

leetcode Problem: 55. 跳跃游戏 思路 假设我们是一个小人,从第一个下标开始,每次经过一个位置,我们就可以根据当前位置的数值nums[i]和位置下标i计算出该位置所能到达的后续位置的最大值rnums[i]i。而这个r之前的区域一定都是可以经过的。…

信息系统项目管理师0128:输出(8项目整合管理—8.6管理项目知识—8.6.3输出)

点击查看专栏目录 文章目录 8.6.3 输出 8.6.3 输出 经验教训登记册 经验教训登记册可以包含执行情况的类别和详细的描述,还可包括与执行情况相关的影响、建议和行动方案。经验教训登记册可以记录遇到的挑战、问题、意识到的风险和机会以及其他适用的内容。经验教训…

阴影映射(线段树)

实时阴影是电子游戏中最为重要的画面效果之一。在计算机图形学中,通常使用阴影映射方法来实现实时阴影。 游戏开发部正在开发一款 2D 游戏,同时希望能够在 2D 游戏中模仿 3D 游戏的光影效果,请帮帮游戏开发部! 给定 x-y 平面上的…

如何在cPanel面板中开启盗链保护

本周有一个客户,购买Hostease的主机, 客户购买的是Linux虚拟主机,带cPanel面板的。询问我们的在线客服,如何可以防止他的网站上的图片不被盗用。cPanel的盗链保护功能可以帮助客户防止图片被盗链。 盗链(Hotlinking&a…

11.【Orangepi Zero2】基于Linux的智能垃圾桶项目

基于Linux的垃圾分类项目 功能需求 语音接入控制垃圾分类识别,并触发垃圾桶的开关盖 回顾二阶段的Socket编程,实现Sockect发送指令远程控制垃圾分类识别,并触发垃圾桶的开关盖 图像识别垃圾分类功能 语音播报垃圾物品类型 OLED显示垃圾物…

五分钟”手撕“图书管理系统

前言: 图书馆管理系统需要结合JavaSE的绝大部分知识,是一个很好的训练项目。 为了让大家更加方便的查阅与学习,我把代码放开头,供大家查询。 还有对代码的分析,我将以类为单位分开讲解。 目录 全部代码 Main类 Us…

wordpress主题模板兔Modown 9.1开心版附送erphpdown v17.1插件

Modown 9.1开心版是一款模板兔开发的wordpress主题可,持续更新多年,优秀的资源下载类主题该模板基于Erphpdown,可以销售软件、视频教程、文章等等,通过主题和插件结合可以实现付费下载、付费阅读等功能,配合模板兔的一…

C++中获取int最大与最小值

不知道大家有没有遇到过这种要求:“返回值必须是int,如果整数数超过 32 位有符号整数范围 [−2^31, 2^31 − 1] ,需要截断这个整数,使其保持在这个范围内。例如,小于 −2^31 的整数应该被固定为 −2^31 ,大…

Pytest框架实战二

在Pytest框架实战一中详细地介绍了Pytest测试框架在参数化以及Fixture函数在API测试领域的实战案例以及具体的应用。本文章接着上个文章的内容继续阐述Pytest测试框架优秀的特性以及在自动化测试领域的实战。 conftest.py 在上一篇文章中阐述到Fixture函数的特性,第…