3D人体姿势数据为何缺乏语言描述?PoseScript 数据集如何填补这一空白?

2024-11-16 11:00   安徽  


点击上方卡片,关注“AI学术工坊”公众号

各种重磅干货,第一时间送达


PoseScript:连接 3D 人体姿势和自然语言

摘要

自然语言在许多计算机视觉应用中起着关键作用,例如图像描述、视觉问答和跨模态检索,可提供细粒度的语义信息。不幸的是,虽然人体姿势是人类理解的关键,但当前的 3D 人体姿势数据集缺乏详细的语言描述。为了解决这个问题,我们引入了 PoseScript 数据集。该数据集将来自 AMASS 的六千多个 3D 人体姿势与丰富的人工注释的身体部位描述及其空间关系配对。此外,为了将数据集的大小增加到与数据密集型学习算法兼容的规模,我们提出了一个精心设计的描述过程,该过程从给定的 3D 关键点生成自然语言的自动合成描述。该过程使用一组简单但通用的 3D 关键点规则提取低级姿势信息,称为“姿势代码”。然后使用句法规则将这些姿势代码组合成更高级别的文本描述。借助自动注释,可用数据量显著增加(100k),从而可以有效地预训练深度模型以对人类描述进行微调。为了展示带注释姿势的潜力,我们提出了三个利用 PoseScript 数据集的多模态学习任务。首先,我们开发了一个管道,将 3D 姿势和文本描述映射到联合嵌入空间中,从而可以从大规模数据集中跨模态检索相关姿势。其次,我们为生成 3D 姿势的文本条件模型建立了基线。第三,我们提出了一个生成姿势描述的学习过程。这些应用展示了带注释姿势在各种任务中的多功能性和实用性,并为该领域的未来研究铺平了道路。

论文链接:https://arxiv.org/abs/2210.11795

论文标题:PoseScript: Linking 3D Human Poses and Natural Language

论文作者:Ginger Delmas, Philippe Weinzaepfel, Thomas Lucas, Francesc Moreno-Noguer, Gregory Rogez

1.关键字

3D 人体姿势、自然语言、多模式学习、描述、生成、检索、描述。

2.引言

这个姿势是头部向下,最终接触地板,身体的重量落在手掌和脚上。双臂向前伸直,与肩同宽;双脚分开一英尺,双腿伸直,臀部尽可能抬高。’。上面的文字描述了下犬式瑜伽姿势,读者可以从这种自然语言描述中轻松想象出这样的姿势。能够自动映射自然语言描述和准确的 3D 人体姿势将为许多应用打开大门,例如在部署运动捕捉 (MoCap) 系统不切实际时帮助图像注释;在大型数据集中执行基于姿势的语义搜索(见图 1 顶部),这些搜索目前仅基于高级元数据,例如正在执行的操作 [1]–[3];数字动画中的复杂姿势或运动数据生成(见图 1 中间);或向视障人士教授姿势技能 [4](见图 1 底部)。

虽然将语言与图像或视频相结合的问题已经引起了广泛关注 [5]–[8],尤其是最近的多模态神经网络 CLIP [9] 和 DALL-E [10] 取得了令人印象深刻的成果,但将文本与 3D 几何联系起来的问题才刚刚开始增长。最近有几次尝试将文本映射到刚性 3D 形状 [11]、[12],以及使用自然语言进行 3D 对象定位 [13] 或 3D 对象区分 [14]。最近,Fieraru 等人 [15] 介绍了 AIFit,这是一种自动生成人类可解释的反馈的方法,用于参考和目标运动之间的差异。还有许多尝试使用各种形式的文本来建模人类。例如,属性已被用于建模体形 [16] 和面部图像 [17]。其他方法 [18]–[21] 利用文本描述来生成运动,但没有对肢体进行细粒度控制。与我们的工作更相关的是,Pavlakos 等人 [22] 利用深度维度上两个关节之间的关系,而 Pons-Moll 等人 [23] 通过一系列姿势位描述 3D 人体姿势,这些姿势位是不同类型问题的二进制指标,例如“右手是否在臀部上方?”。然而,这些类型的布尔断言表达能力有限,与人类使用的自然语言描述相差甚远。

在本文中,我们提出使用自然语言对身体部位及其空间关系进行自由形式和任意复杂结构描述,来映射 3D 人体姿势。为此,我们首先介绍多模态 PoseScript 数据集,该数据集由人类注释者为 AMASS 数据集 [2] 中的大约 6,000 个姿势编写的描述组成。为了扩大这个数据集,我们还提出了一种以人为中心的姿势自动描述流程,可以在几分钟内注释数千个人体姿势。我们的管道建立在 (a) 通过将姿势位 [23] 扩展为不同身体部位的更细粒度分类关系(例如“膝盖略微/相对/完全弯曲”)而获得的低级信息上,我们将其称为姿势代码的单元,以及 (b) 来自 BABEL 数据集 [3] 注释的动作标签或姿势代码组合的高级概念。我们定义规则以使用语言聚合原理选择和聚合姿势代码,并将它们转换为句子以生成文本描述。因此,我们能够自动为标准化的输入 3D 姿势提取类似人类的描述。重要的是,由于该过程是随机的,我们可以为每个姿势生成多个描述,就像不同的人类注释者所做的那样。我们使用此过程来描述从 AMASS 数据集中提取的 100,000 个姿势。图 2 显示了人工编写的描述和自动生成的描述的示例。

使用 PoseScript 数据集,我们建议解决三个多模态学习任务,见图 1。第一个是跨模态检索任务,其目标是从数据库中检索与给定文本查询最相似的 3D 姿势;这也可以应用于 RGB 图像,方法是将它们与 3D 人体模型相关联。第二个任务是根据文本描述生成不同的人体姿势。第三个任务旨在从提供的 3D 姿势生成文本描述。在所有情况下,我们的实验都表明,在对真实描述进行微调之前,使用自动描述对模型进行预训练是有益的。总之,我们的贡献有三点:

  • 我们介绍了 PoseScript 数据集(第 III 节)。它将人体姿势与自然语言中的结构描述关联起来,这些描述要么通过人工书写的注释获得,要么使用我们的自动描述管道获得。
  • 然后,我们研究文本到姿势检索的任务(第 IV 节)。
  • 我们介绍了文本条件姿势生成的任务(第 V 节)。
  • 我们最后关注姿势描述生成的任务(第 VI 节)。

这项工作的初步版本已在 [24] 中提出,其中我们已经介绍了 PoseScript 数据集和前两个任务的基线。在这项工作中,我们通过增加 PoseScript 数据集的大小、研究姿势描述生成问题和提供额外的分析来扩展我们的贡献。特别是,我们研究了描述管道的不同方面以及用于预训练的自动生成的描述数量的影响。我们进一步使用额外的数据和文本编码器的转换器 [25] 改进了我们的模型。

3.POSESCRIPT 数据集

PoseScript 数据集由静态 3D 人体姿势以及自然语言中的细粒度语义注释组成。我们提供人工注释的描述 (PoseScript-H),并通过自动生成的描述 (PoseScript-A) 进一步增加数据量。姿势选择策略在第 III-A 节中介绍,众包数据收集过程在第 III-B 节中介绍,自动描述流程在第 III-C 节中介绍。最后,第 III-D 节报告了 PoseScript 数据集的汇总统计数据。

A.姿势选择

PoseScript 数据集包含从 14,096 个 AMASS [2] 序列中采样的总共 100,000 个人体姿势。为了确保多样性,我们排除了每个序列的前 25 帧和后 25 帧,其中包含初始化姿势,例如 T 姿势。此外,我们每 25 帧只采样一个姿势,以避免彼此太相似的冗余姿势。为了进一步最大化可变性,我们使用了最远点采样算法。首先,我们使用中性身体模型对每个姿势的关节位置进行标准化,其中默认形状系数和全局方向设置为 0。然后,我们从数据集中随机选择一个姿势,并迭代地将具有最高 MPJE(平均每关节误差)的姿势添加到已选姿势集合中。这个过程一直持续到我们获得具有最大可变性的所需姿势数量。

图 3 展示了从中选出 100,000 个选定姿势的 AMASS 子数据集。值得注意的是,AMASS 中可用的所有 DanceDB 和 MPI Limits 序列似乎都在 PoseScript 中使用;并且 PoseScript 中的大多数姿势实际上来自 DanceDB (28%)、CMU (20%) 和 BioMotionLab (13%)。这是因为与 AMASS 中的其他子数据集相比,这些子数据集表现出更大的姿势变化性。

B.数据集收集

我们使用众包注释平台 Amazon Mechanical Turk2 (AMT) 收集了从 AMASS 数据集 [2] 中提取的 3D 人体姿势的人工书写描述。

注释界面。如图 4 所示,界面首先向注释者展示人体姿势的网格(蓝色),以及用于控制视点的滑块。任务是使用相对于主体的方向(“左”是身体的“左”)、身体部位指示(例如“右手放在臀部”)、常见姿势参考(例如“倒立”)和类比来编写蓝色姿势的描述。在第二步中,为了鼓励区分性标题,我们另外显示了 3 个区分器姿势(灰色),它们在语义上接近要注释的姿势。然后指示工作人员完善他们的描述,使其仅适用于蓝色姿势。虽然这个界面最初设计为一步式(一次显示所有姿势),但我们发现注释器有时只会提供足够的蓝色姿势信息以将其与显示的灰色姿势区分开来,但没有足够的信息来完整描述它。这种两步设计试图限制这种现象,以便获得完整而精确的描述。图 2(左)显示了一些 PoseScript-H 示例。

在 PoseScript 中选择姿势鉴别器。它们应该与目标姿势相似,以使用我们早期版本的检索模型获得的姿势嵌入之间的距离来衡量。它们还需要至少有 15 种不同的姿势代码分类。这确保所选的姿势鉴别器与要注释的姿势具有一些语义相似性,同时具有足够的差异性,以便注释者轻松区分。

注释者资格。注释任务最初面向居住在英语国家的工人开放,他们之前的作业中至少有 5000 项获得批准,批准率超过 95%。我们根据以下标准手动审查了近 1000 条注释:描述“完整”(即几乎所有身体部位都已描述),没有左右混淆,没有距离度量(因为这些度量不能随身体大小扩展),没有主观评论,拼写错误很少,语法良好。基于这些评估,我们进一步确定了 41 名工人的资格,并仅向他们提供任务;只有随机选择的一些注释才会进行手动审查。另外 61 名工人提交了出色的注释,但不够完整,无法获得资格。

定价。完成一次 HIT 的时间估计为 2-3 分钟。根据 2022 年加州的最低工资,每次 HIT 可获得 0.50 美元的奖励。我们另外为每 50 次注释向合格的注释者支付 2 美元的奖金。

语义分析。我们在表 I 中报告了对 115 条注释进行的语义分析的结果。结果表明,数据集的一个挑战性方面是某些身体部位的隐式侧面描述:相应侧面的推导涉及对先前描述的身体部位及其之间的层次关系进行推理。在本研究过程中,我们还测量了注释平均描述了 6.2 个不同的身体部位:这些部位在不同的注释中有所不同,并且可以给出多个指示来详细说明一个身体部位的位置。这暗示了注释中的细节水平。

C.自动描述流程

现在,我们来描述用于生成 3D 人体姿势的合成文本描述的过程。如图 5 所示,它依赖于提取、选择和聚合基本姿势信息(称为姿势代码),最终将其转换为句子以生成描述。

该过程以以人为中心的姿势的 3D 关键点坐标为输入。这些坐标使用 SMPL-H 身体模型 [53] 推断,使用默认形状系数和沿 y 轴的标准化全局方向。

1. 姿势码提取。姿势码描述了一组特定关节之间的关系。我们捕获了五种基本关系:角度、距离和相对位置(如 [23] 中所述),还有俯仰、滚动和地面接触。

角度姿势代码描述了身体部位在给定关节处(例如左肘)如何“弯曲”。根据角度,姿势代码被分配以下属性之一:‘直’、‘略微弯曲’、‘部分弯曲’、‘直角弯曲’、‘几乎完全弯曲’和‘完全弯曲’。

距离姿势代码将两个关键点(例如两只手)之间的 L2 距离分为“靠近”、“与肩同宽”、“张开”或“宽”。

相对位置的姿势代码计算沿给定轴的两个关键点之间的差异。对于 x 轴,可能的类别有:“在右侧”、“忽略 x”、“在左侧”;对于 y 轴,可能的类别有:“下方”、“忽略 y”、“上方”;对于 z 轴,可能的类别有:“后面”、“忽略 z”和“前面”。具体来说,比较左手和右手的 x 坐标可以推断它们是否交叉(即左手在右手的“右侧”)。“忽略”的解释是模棱两可的配置,这里不再赘述。

俯仰和滚转姿势代码评估由两个关键点定义的身体部位的垂直度或水平度(例如,左膝盖和臀部一起定义左大腿)。如果身体部位与 y 超平面大致正交,则为“垂直”,如果位于 y 超平面中,则为“水平”。其他配置为“俯仰-滚转-忽略”。

地面接触姿势码仅用于中间计算,表示关键点是“在地面上”(即垂直接近身体中最小高度的关键点,被视为地面)还是“忽略地面”。处理姿势码分类中的歧义。姿势码分类是使用预定义阈值获得的。由于这些值本质上是主观的,我们通过在阈值化之前定义应用于测量角度和距离值的噪声水平来随机化分箱步骤。

更高层次的概念。我们还定义了一些超级姿势代码来提取更高层次的姿势概念。这些姿势代码是二进制的(它们要么适用于给定的姿势配置,要么不适用于给定的姿势配置),并且由基本姿势代码表达。例如,超级姿势代码“跪下”可以定义为双膝“着地”和“完全弯曲”。

2. 姿势码选择旨在从提取的姿势码中选择一个有趣的子集,以获得简洁而有区别的描述。首先,我们删除琐碎的设置(例如“左手在右手的左边”)。接下来,基于对整个姿势集的统计研究,我们随机跳过一些非必要的(即非琐碎但非高度区分的)姿势码,以解释自然的人为疏忽。我们还将高度区分的姿势码设置为不可跳过。最后,我们根据统计上频繁出现的姿势码对和三元组以及身体部位之间的传递关系删除冗余的姿势码。详细信息在补充材料中提供。

3. 姿势码聚合包括将共享语义信息的姿势码合并在一起。这可以减少标题的大小并使其更加自然。我们提出了四条具体的聚合规则:

基于实体的聚合合并了具有相似分类的姿势代码,同时描述了属于较大实体(例如手臂或腿)的关键点。例如,“左手在右手下方”+“左肘在右手下方”组合成“左臂在右手下方”。

基于对称性的聚合融合了具有相同分类的姿势代码,并对仅在身体侧面不同的关节集进行操作。因此,感兴趣的关节被置于复数形式,例如“左肘弯曲”+“右肘弯曲”变成“肘部弯曲”。

基于关键点的聚合将姿势代码与共同关键点组合在一起。我们将共享关键点视为主题并连接描述。可以使用例如“它”或“他们”再次引用主题。例如,“左肘在右肘上方”+“左肘靠近右肩”+“左肘弯曲”被聚合为“左肘在右肘上方,靠近右肩。它是弯曲的。”。

基于解释的聚合会合并具有相同分类但应用于不同关节集(可能重叠)的姿势代码。与基于实体的聚合相反,它不需要所涉及的关键点属于共享实体。例如,“左膝弯曲”+“右肘弯曲”变成“左膝和右肘弯曲”。

当条件满足时,聚合规则将随机应用。特别是,基于关节和基于解释的聚合规则可能对相同的姿势代码进行操作。为了避免偏向一条规则,合并选项首先列在一起,然后随机应用。

4. 将姿势码转换为句子分为两个步骤。首先,我们选择每个姿势码的主题。对于对称姿势码(涉及两个仅在身体侧面不同的关节),在两个关键点之间随机选择主题,另一个则通过其名称、其侧面或“另一个”随机引用,以避免重复并提供更多不同的标题。对于不对称姿势码,我们定义一个“主要”关键点(选择为主题)和“支持”关键点,用于指定姿势信息(例如,“左手举过头顶”中的“头部”)。为了流程的流畅,在某些预定义情况下,我们省略了命名支持关键点(例如,“左手举过头顶”简化为“左手举起”)。其次,我们在最后的聚合步骤中将所有姿势码组合在一起。我们通过将每个姿势代码数据插入一个模板句子来获得单独的描述,该模板句子是从给定姿势代码类别的可能模板集合中随机挑选的。最后,我们使用随机预定义的转换以随机顺序连接各个部分。对于从 BABEL [3] 中的注释序列中提取的姿势,我们可以根据相关的高级概念添加一个句子(例如“这个人摆出瑜伽姿势”)。

图 2(右)中展示了一些自动描述示例。描述制作过程高度模块化;它允许根据不同的规则简单地定义、选择和聚合姿势代码。设计新类型的姿势代码(尤其是超级姿势代码)或额外的聚合规则,可以在未来带来进一步的改进。重要的是,管道的每个步骤都包含了随机化,这使得可以为同一姿势生成不同的描述,作为一种数据增强的形式。

D.数据集统计

我们在 AMT (PoseScript-H) 上收集了 6,283 条人工注释。我们通过手动更正英语词典中没有的单词的拼写、删除两个相同的连续单词中的一个以及检查拼写检查器(即 NeuSpell [54])检测到的错误来半自动清理描述。人工编写的描述平均长度为 54.2 个标记(50.3 个单词,加上标点符号)。图 6 显示了 1866 个词汇中最常用的单词的概览。

我们使用自动描述流程来增加数据集 (PoseScript-A) 中的姿势描述数量。我们总共设计了 87 个姿势代码,并在不到 10 分钟的时间内为 100,000 个姿势中的每一个自动生成 3 个描述。换句话说,我们可以在手动编写 10 个描述所需的时间内生成近 100 万个描述。总体而言,自动描述是使用 15% 的姿势代码跳过率和 95% 的聚合概率生成的。补充材料中提供了进一步的姿势代码统计数据。

我们将数据集大致分为 70% 用于训练、10% 用于验证和 20% 用于测试,同时确保来自同一 AMASS 序列的姿势属于同一分割。

4.应用于文本到姿态检索

本节讨论文本到姿势检索的问题,该问题涉及根据姿势与给定文本查询的相关性对大量姿势进行排名。此任务也与姿势到文本检索的逆问题相关。为了解决跨模态检索问题,通常的做法是将两种模态编码到共享的潜在空间中。

问题表述。设 为一组标题和姿势对。根据构造, 是标题 最相关的姿势,这意味着对于文本到姿势检索, 应该排在 之后。换句话说,检索模型旨在学习相似度函数 ,使得 。通过计算和排序查询与集合中每个姿势之间的相似度分数,可以为给定的文本查询检索一组相关姿势(对于姿势到文本检索,反之亦然)。

鉴于姿势和标题属于不同的模态,我们使用单独的编码器将它们嵌入到公共潜在空间中。具体来说,我们使用文本编码器 和姿势编码器 分别对标题和姿势进行编码。让 为联合嵌入空间中标题 和姿势 归一化表示,如图 7 所示。两种模态之间的相似度得分是根据它们各自嵌入之间的距离计算的。

编码器。描述被标记化,然后使用 GloVe 词嵌入 [56] 上的双 GRU [55] 或冻结的预训练 DistilBERT [57] 词嵌入上的转换器 [25] 进行嵌入。姿势被编码为大小为 (52, 3) 的矩阵,由 SMPL-H 身体关节以轴角表示的旋转组成。它被展平并馈送到姿势编码器,选择为 VPoser 编码器 [58]。添加的 ReLU 和最终投影层产生与文本编码大小相同的嵌入

训练。给定一批 个训练对 ,我们使用跨模态检索中常见的基于批次的分类 (BBC) 损失 [59]:

其中 是可学习的温度参数, 是余弦相似度函数

评估协议。通过对每个查询文本的整个姿势集进行排序来评估文本到姿势的检索。然后,我们计算召回率@K(R@K),即相应姿势在检索到的前K个姿势中排名的查询文本的比例。我们以类似的方式评估姿势到文本的检索。我们使用K = 1、5、10,并另外报告平均召回率(mRecall)作为来自两个检索方向的所有召回率@K值的平均值。

定量结果。我们在表 II 中报告了 PoseScript 测试集的结果,包括自动和人工编写的描述。我们的模型在自动描述上训练后的平均召回率为 72.8%,其中 R@1 接近 50%,自动描述的 R@10 超过 80%。然而,在人工描述上的表现会下降,因为在自动描述上训练时,许多来自更丰富的人类词汇的单词都看不见。当在人工描述上训练时,该模型获得了更高的性能,但仍然相当低。使用人工描述来微调在自动描述上训练的初始模型,几乎可以提高 2 倍,平均召回率(文本到姿势的 R@10)为 40.9%(分别为 57.9%),而从头开始训练时为 23.0%(分别为 35.7%)。这个实验清楚地显示了使用自动描述管道来扩展 PoseScript 数据集的好处。特别是,这表明该模型能够从自动描述中现有姿势代码的非平凡组合中得出人工编写的描述中的新概念。最后两行显示了在使用基于 Transformer 的文本编码器并通过镜像姿势(即在文本中切换左侧和右侧单词)应用数据增强时取得的进一步改进。

定性检索结果。图 8 显示了文本到姿势检索结果的示例。看来该模型能够同时编码多个姿势概念并区分左右身体部位。

图像数据库中的检索。MS Coco [31] 是用于人体网格恢复的几个真实世界数据集之一。我们求助于 EFT [60] 提供的 74,834 个伪地面实况 SMPL 拟合,并在其上应用使用 PoseScript 训练的文本到姿势检索模型。然后,我们在此 MS Coco-EFT 集合中检索 3D 姿势,并显示相应的图像以及人体周围的相关边界框。结果如图 9 所示。我们观察到,总体而言,图像满足了查询文本中指定的约束。检索基于姿势而不是上下文,因此第一行的第三张图像的姿势接近实际的跪姿。这显示了在 PoseScript 数据集上训练并应用于第三种模态的检索模型的一种应用:图像中的特定姿势检索。我们的模型可以应用于任何包含人类的图像数据集,只要 SMPL 拟合可用。

5.应用于文本条件姿势生成

接下来,我们研究基于文本的人体姿势生成问题,即为给定的文本查询生成可能的匹配姿势。我们提出的模型基于变分自动编码器 (VAE) [61]。

训练。我们的目标是根据其标题 生成一个姿势 。为此,我们训练一个条件 VAE 模型,该模型在训练时采用由姿势 及其标题 组成的元组 。图 10 概述了我们的模型。姿势编码器通过产生正态分布 的均值 和方差 ,将姿势 映射到潜在变量的后验。另一个编码器用于获得先验分布 ,与 无关但以 为条件。从 中采样潜在变量 并解码为重建的姿势 。训练损失结合了原始和重建姿势 之间的重建项 以及正则化项, 之间的 Kullback-Leibler (KL) 散度:

我们还尝试了一个额外的损失项 ,表示 :后验(即先验)和标准高斯 之间的 散度。这些可以看作是其他正则化器,它们还允许从模型中采样姿势而无需对标题进行条件处理。我们将解码器的方差视为学习常数 [62],并使用负对数似然 (nll) 作为重建损失,要么来自高斯——对应于 L2 损失和学习方差项——要么来自拉普拉斯密度,对应于 L1 损失。按照 VPoser,我们使用具有轴角表示的 SMPL(-H) 输入,并使用 [63] 的连续 6D 表示输出关节旋转。我们的重建损失 是旋转矩阵(用高斯对数似然评估)与关节位置和顶点位置之间的重建损失之和,两者均用拉普拉斯对数似然评估。

文本条件生成。在测试时,将描述 编码到 中,从中采样 并解码为生成的姿势

评估指标。我们根据 Frechet 初始距离的原理评估样本质量:我们使用真实测试姿势和测试描述生成的姿势,比较使用我们的检索模型提取的特征的分布(参见第 IV 节)。这被表示为 FID,但符号滥用。我们还报告了在真实姿势上训练并在生成的姿势上评估的检索模型的平均召回率(mR R/G),反之亦然(mR G/R)。这两个指标都对样本质量很敏感:如果数据不切实际,检索模型就会失败。第二个指标也对多样性很敏感:数据分布的缺失部分会阻碍在样本上训练的检索模型。最后,我们报告了在关节、顶点或旋转矩阵上计算的证据下限 (ELBO),并按目标维度进行了归一化。

结果。我们在表 III 中给出了定量结果。我们首先发现,在自动描述上训练和评估的模型中添加额外的正则化损失 Lreg 会略有帮助。此外,在没有任何条件的情况下对姿势进行采样也很方便。我们保留此配置并在 (a) 对人类描述进行训练和 (b) 对自动描述进行预训练,然后对人类描述进行微调时对其进行评估。预训练大大提高了所有指标,表明它有助于产生真实且多样化的样本。基于 Transformer 的文本编码器比基于 GloVe 和 biGRU 的编码器有所改进,在 mRecall 方面取得了显着更好的性能。这表明基于 Transformer 的文本编码器对姿势语义有更细致的理解。镜像增强带来了轻微的改进。我们在图 11 中显示了生成的样本;姿势是真实的,通常与查询相对应。有一些变化,特别是当文本允许时,例如顶部示例中右腿的高度或第四行中两腿之间的距离。可能会发生失败的情况;特别是像底部行中的“躺着”这样的罕见词会导致生成的样本中方差更大;尽管如此,其中一些仍然接近参考值。

6.应用于图像中的 SMPL 拟合

我们在图 12 中展示了利用文本数据执行 3D 任务的潜力,该示例来自 SMPLify [64]。我们使用文本条件先验而不是通用 VPoser 先验 [58] 来初始化更接近地面真相的姿势,并更好地指导循环优化。这有助于避免糟糕的局部最小值陷阱。

7.应用于姿态描述生成

现在,我们介绍我们学到的方法来生成自然语言中的姿势描述。与第 III-C 节中介绍的过程相反,这种方法不依赖于启发式方法或模板结构。它是在人工编写的描述上进行训练的,从而生成更简洁的文本,具有改进的表述和更多高级概念。请注意,此模型不会降低第 III-C 节中的管道质量:就像其他模型一样,它从管道生成的自动描述的预训练中受益匪浅。

我们使用一个自回归模型,该模型从 BOS(序列开头)标记开始,并根据所有先前生成的标记和姿势条件迭代生成每个新标记;参见图 13。

训练。模型配备了 个标记的标记化标题 。它嵌入每个标记,添加位置编码,然后将结果提供给转换器,转换器通过交叉注意机制来解释姿势条件。使用因果注意掩码可防止模型在处理标记 时关注从 的标记。最后,模型在词汇表上输出概率分布 ,其中 对应于概率 之间的交叉熵损失最大化 ,从而训练模型从前一个标记 预测下一个标记

推理。给定 BOS 标记和输入姿势,通过在每个步骤 l 最大化可能性,以贪婪的方式迭代解码描述,直到解码特殊标记 EOS。在步骤 l,标记 l 被解码为最大化输出 的标记;然后将其附加到之前解码的标记 ,以便在下一轮中预测标记

评估。我们报告了标准自然语言处理 (NLP) 指标 BLEU-4 [65]、Rouge-L [66] 和 METEOR [67]。遵循 TM2T [41],我们使用第 IV 节中的检索模型来测量 (top-k R-precision) 的召回率,当对查询姿势进行排名时,我们的模型在为其他姿势生成的 31 个随机采样的生成文本中生成相应的文本。此外,当给定生成的文本时,我们报告通过将输入姿势与第 V 节中我们的模型生成的姿势进行比较而获得的重建指标 (MPJE、MPVE 和关节旋转的测地线距离)。虽然 NLP 指标衡量参考文本和生成文本之间的共同 n-gram,但其他指标评估生成描述的语义内容。事实上,不够详细的文本无法帮助生成或检索输入姿势。

结果。同样,我们从表 IV 中注意到,对自动描述进行预训练可以产生更好的描述,并且镜像增强也有帮助。我们注意到,R 精度和重建指标依赖于经过训练的模型,以及它们对数据的偏见理解(即某些概念可能编码不当)。这可以解释为什么生成的文本似乎比原始文本产生更好的结果。

图 14 显示了由我们的模型生成的描述示例。看起来,该模型能够生成有意义的描述,具有自我中心关系和高级概念(例如倒立)。但是,它有时会产生幻觉(上一个例子中的腿部位置),或者很难理解整个姿势,尤其是在极少数情况下,例如倒立姿势(如果身体没有向后弯曲那么多,头部确实会向上看)。

8.自动描述的特点

在本节中,我们旨在研究自动描述流程不同方面的影响。为此,我们为每个姿势生成 6 种不同类型的描述,每种描述都有不同的特点:我们使用相同的流程生成所有描述(第 III 节中介绍),并禁用流程中的某些步骤以生成不同的版本。

具体而言,停用的步骤包括:(1)随机跳过符合描述的条件的姿势代码;(2)聚合姿势代码(“隐式性”),省略支持关键点(例如,当停用此步骤时,“右脚在躯干后面”不会变成“右脚在后面”),并用替代词随机指代身体部位(例如“它”/“他们”,“另一个”);(3)添加由 BABEL [3] 给出的高级姿势注释构成的句子;(4)根据连锁反应规则删除冗余的姿势代码。

在 PoseScript 的所有 10 万个姿势中,只有 36,317 个在 BABEL 中进行了注释,并且可能受益于自动描述中的附加句子。由于 28% 的 PoseScript 姿势来自 DanceDB,而这些姿势未在 BABEL 中进行注释,因此我们为这些 DanceDBoriginated 姿势额外分配了“跳舞”标签,这是自动描述的一种变体,已经利用了 BABEL 辅助注释。这导致 64,758 个姿势受益于辅助标签。

表 V 总结了本节介绍的 6 个描述版本(N1 至 N5)的特点,以及组成 PoseScript-A(最后一行)的描述版本的特点,本文其余部分将使用该描述版本。

我们预训练了 6 种不同的检索模型(GloVe+biGRU 配置),每个模型的描述版本从 N1 到 N5。每个模型都在同一版本的 3 个生成描述池上进行训练。接下来,我们在 PoseScript-H 上微调检索模型。我们在表 V 的最后一列报告了 PoseScript-H 测试集上的平均召回率。

由于相对较高的可变性,很难判断自动描述流程的哪些方面最重要。然而,很明显,隐式性(即姿势代码聚合)使得自动描述更接近人工编写的描述,因为利用描述 N3 进行预训练可获得最佳效果。最终,通过在来自不同版本的 3 个描述池(最后一行)上对模型进行预训练可获得最佳性能。最后一个描述池,即 PoseScript-A,是所有其他部分的实验中使用的描述池。

9.训练数据的大小

在本节中,我们研究用于预训练的自动描述数量的影响。为此,我们定义了不同大小的数据子集,包括自动(10k、20k 和 100k)或人工书写的注释(3.9k 和 6.3k)。我们为每个 PoseScript-A 子集训练一个检索模型(GloVe+biGRU 配置),并在 PoseScript-H 上对其进行微调。此外,我们直接在每个人工书写的数据子集上训练检索模型。我们在图 15 中比较了 PoseScript-H 测试集上的结果。

我们观察到,在预训练时利用大量自动描述会获得更好的结果,尤其是当自动描述的数量远远超过人工编写的描述的数量时。

10.实施细节

我们遵循 VPoser [58] 的姿势编码器和解码器架构(除了我们使用 SMPLH [53] 的 52 个关节)。GloVe 字嵌入是 300 维的。我们使用具有 512 维隐藏状态特征的单层双向 GRU。我们基于 Transformer 的 [25] 文本编码器使用维度为 768 的冻结 DistilBERT [57] 字嵌入,然后将其传递给 ReLU 并投影到 512 维空间中。接下来,我们应用余弦位置编码,并将结果馈送到由 4 层、4 个头、GELU 激活和大小为 1024 的前馈网络组成的 Transformer。文本序列的最终嵌入是通过对输出进行平均池化获得的。我们对检索和生成任务使用相同的编码器。我们的文本解码器是一个与文本编码器配置相同的转换器,只是它有 8 个头;词嵌入和潜在空间的大小均为 512。使用 Adam [68] 优化模型。我们在微调时对检索模型使用初始损失温度 ,对姿势生成模型中的姿势自动编码器使用学习率系数 0.1。详情见表 VI。

11.讨论与结论

我们引入了 PoseScript,这是第一个用自然语言映射 3D 人体姿势和描述的数据集。我们为文本到姿势检索、文本条件下的人体姿势生成和姿势描述生成提供了多模式应用。在自动文本上进行预训练可显著提高性能(提高了 2 倍),这在研究的三个任务中都是系统性的。

局限性。我们模型的准确性在很大程度上取决于训练数据。例如,由于自我接触或倒立姿势的数量有限,我们的模型很难运行。收集更多人工编写的文本的替代方法是设计描述此类姿势配置的特定姿势代码。另一个普遍的观察是,我们的模型力求产生满足所有文本要求的结果,因为 PoseScript 描述非常丰富和复杂。

未来工作。PoseScript 数据集可以扩展以考虑多人交互。人们还可以利用来自大型多模态模型(例如文本到图像)的知识来帮助填补收集到的数据在某些方面的空白(例如活动概念)。人们可以进一步探索将基于文本的姿势先验(即具有身体语义意识)用于其他应用,例如动作识别。


AI学术工坊
分享最新AI资源
 最新文章