数源AI 论文解读系列
论文链接:https://arxiv.org/pdf/2311.18836.pdf
代码链接:https://yfeng95.github.io/posegpt
引言
在日常生活中,我们只需看一眼图片或简短的场景描述就能形成对该图片或场景中个体姿势的印象。例如,我们可能会想:“那个穿着裙子的女孩在做什么?”或者,“如果她感到累了,她会如何行动?”此过程涉及对图像的解释、运用对世界的一般知识以及理解人体语言。
现有的专门用于3D姿势估计和生成的系统受到了狭窄任务的限制。这与大型语言模型(LLMs)展示的通用推理能力形成了对比。现有的多模态LLMs展示了从图片中感知和解释信息以及基于丰富的世界知识推理的能力。它们在描述场景、包括人的外观、活动和高级行为方面特别擅长。如果LLM能够将这种通用世界知识与3D人体姿势和运动关联起来,它将具备超越现有解决方案的强大推理能力。也就是说,LLM可以利用其从图片和语言中学到的一切知识来更深入、更细致地理解人体姿势和运动。然而,现有的LLMs还没有展示解释3D人体姿势的能力。
简介
我们介绍了PoseGPT,这是一个利用大型语言模型(LLMs)来理解和推理图像或文本描述中的3D人体姿势的框架。我们的工作受到人类从单张图像或简短描述中直观理解姿势的能力的启发,这个过程涉及图像解释、世界知识以及对身体语言的理解。传统的人体姿态估计方法,无论是基于图像还是文本,往往缺乏全面的场景理解和细致的推理,导致视觉数据与现实世界的影响之间存在断裂。
PoseGPT通过将SMPL姿态嵌入到多模态的LLM中作为一个独特的信号标记,解决了这些限制,使得从文本和视觉输入直接生成3D人体姿势成为可能。这种方法不仅简化了姿势预测,还使LLMs能够运用它们的世界知识来推理人体姿势,促进了两个高级任务:推测性姿势生成和姿势估计推理。这些任务涉及通过微妙的文本查询来推理人体,可能还伴有图像。我们建立了这些任务的基准,超越了传统的3D姿势生成和估计方法。我们的结果显示,PoseGPT在这些新提出的任务上比现有的多模态LLMs和任务特定方法表现更好。此外,基于复杂推理的PoseGPT理解和生成3D人体姿势的能力开辟了人体姿势分析的新方向。
方法与模型
我们的目标是使大型语言模型(LLMs)能够理解人体姿势,在我们的情况下,姿势以SMPL 姿势参数表示。受到最近多模态LLMs的进展的启发 ,我们将人体姿势视为一种独立的形态。在这个框架中,LLM生成一个表示该形态的唯一标记,然后通过多层感知器(MLP)投影层将其映射到SMPL姿势参数1。利用SMPL参数模型 ,我们可以将这些信息解码为三维人体网格。在这里,我们描述了将SMPL姿势作为一种形态集成到LLMs中的架构和训练策略。一旦LLM掌握了3D人体姿势的概念,它就具备了生成人体姿势和理解世界的双重能力,使其能够通过复杂的语言和视觉输入进行推理,随后生成人体姿势。这使我们能够引入由此能力可能产生的新任务,并提供用于评估性能的基准。
1
网络结构
我们的方法接收文本或图像(如果提供)作为输入,并生成文本输出。此外,当用户请求人体姿势信息时,它还能生成并返回相应的SMPL姿势。我们的模型由一个多模态LLM模型fϕ,一个嵌入投影层 gΘ,以及由姿势和形状参数 θ 和β 表示的参数化人体模型SMPL 组成。在这里,我们假设 β 的值都为零,对应于平均身体形状。给定文本字符串 Xq 和图像 Xv 作为输入,模型生成文本响应Yt = fϕ(Xq, Xv) 或者在没有图像时 Yt = fϕ(Xq)。与Yt 对应的语言嵌入表示为 Ht。如果文本输出 Yt 中包含,则从 Ht 中检索到相应的姿势嵌入 Hpose。姿势嵌入经由SMPL投影层 gΘ 处理,得到SMPL姿势参数 θ = gΘ(Hpose)。然后使用标准的SMPL函数 M(θ, β)(详见[29])确定身体网格的3D顶点和三角形。
2
训练
我们保持视觉编码器和视觉投影器都冻结,专注于训练 SMPL 姿势投影层 gΘ。此外,我们使用 LoRA 对 LLM 模型进行微调,其参数表示为 ϕlora。最终可优化的参数集为 {ϕlora, Θ}。通过提供的目标文本输出 Yˆt 和 SMPL 姿势参数 ˆθ,我们使用以下目标函数对模型进行优化:
首先,该术语是交叉熵损失,通常用于训练自回归文本生成和细调大型语言模型。其次,姿势损失是在姿势参数之间计算的L1损失。λt 和 λθ 分别用作其各自损失项的权重。
为了训练我们的多模态语言模型(Multi-ModalLLM),我们利用下面的现有任务特定数据集构建数据。
1)文本到姿势生成
可以通过详细的文本描述生成3D人体姿势。在这种情况下, 数据对包括SMPL姿势参数和详细的文本描述标签{Xq,ˆθ}。为了将这些数据以问题-回答的形式呈现,我们采用模板,如“用户:{description}, 可以给出这个人的SMPL姿势吗?助手:当然可以,它是。”,其中{description}包含数据集中的姿势描述Xq。
2)人 体 姿 势 估 计
传 统 的 三 维 人 体 姿 势 估 计 方 法[9, 19]通常涉及使用裁剪的图像来回归SMPL身体形状和姿势参数。所使用的数据集包含图像和SMPL参数对,其中SMPL参数通常是伪地面实况,通过将这些参数拟合到人类标记的二维关键点来获得。由于我们的重点主要集中在人体姿势上,我们使用剪裁图像和SMPL姿势参数对{Xv,ˆθ} 来适当地格式化数据,以便进行视觉问题回答,类似于文本到姿势生成,我们使用问题-答案模板,如:“用户:<图像> 能够提供中心人物的SMPL姿势吗?助手:当然可以,这个人的SMPL姿势是。”其中<图像>表示输入图像的占位符标记。相应的真实SMPL姿势参数ˆθ 被用于计算姿势损失,如方程 1所示。在训练过程中,我们还使用其他模板来生成问题-答案数据以确保多样性;
3)多模态指令微调
为了保持多模态LLM在多轮对话中的固有能力,我们在训练过程中引入了多模态指令微调数据集。按照LLaVA-V1.5 [26]的方法,我们使用了LLaVA-V1.5-MIX665K2数据集,该数据集是通过对GPT-4进行查询创建的。
3
Reasoning about Human Pose
在进行人体姿势估计、文本到姿势生成以及多模态指令跟踪数据集的训练后,我们的微调模型现在已经能够同时处理这些不同的任务。它能够从单个图像中估计SMPL姿势,根据详细描述生成姿势,并促进问答对话。值得注意的是,我们发现即使在没有将SMPL姿势整合到多轮对话中或将复杂短语与SMPL姿势进行链接的情况下,我们的模型在多轮对话中关于人体姿势的推理方面有零样本能力。这表明该模型能够将推理和世界知识与SMPL姿势表示交织在一起。因此,除了传统的人体姿势和生成任务的评估方法,我们引入了两个需要推理技能的新任务:推测式姿势生成和基于推理的姿势估计。这些新任务利用了模型在人体姿势分析背景下应用推理的能力。
1)臆测姿势生成(SPG)
在这个任务中,用户不是直接使用文本到姿势生成数据集中的显式姿势描述,而是对一个人的状态提出间接性问题,需要LLM推理 和 生 成 适 当 的 姿 势。例 如, 一 个 用 户 可 能 会问:“USER:{descriptions implicit},你能给这个人的SMPL姿势吗?ASSISTANT:当然,它是。”这里,{description implicit}代表诸如“这个男人正在求婚,他可能会处于什么姿势?”之类的臆测性查询。这种查询需要对“婚姻”这样的全局概念有一定的理解,以及逻辑推理个体姿势,然后生成SMPL姿势参数。为了创建一个评估数据集,我们使用PoseScript数据集中的姿势描述作为源。然后查询GPT4来重构这些描述,将其转化为与每个姿势相关的活动的问题,生成了共计20k个响应,其中780个示例用于评估。这些响应随后会经过手动审查和校正。
2)基于推理的姿态估计(RPE)
标准的人体姿态估计通常会处理整个图像,首先使用检测方法来分离出感兴趣的人物,然后对裁剪后的图像应用人体姿态估计方法。这种方法通常忽略了场景背景,而场景背景对于推理人体姿态可能是有用的。相比之下,该任务允许用户在请求有关人物姿态的详细信息之前对图像进行特定查询。具体而言,我们将基于推理的姿态估计定义如下:“用户:<图像> {人物描述},你能给出此人的SMPL姿态吗?助手:当然,这是 <姿态>。” 在这种情况下,{人物描述} 可以是关于特定个体的查询,例如“黑发男子”或“楼梯旁的女子”。模型需要解释场景上下文并为符合描述的个体生成SMPL姿态参数。为了评估这一任务,我们从标准姿态估计评估数据集中获取了图像到SMPL姿态的配对。然后我们使用GPT4V生成这些图像中个体的描述。生成的描述随后通过手动精炼。具体而言,我们从3DPW的测试集中随机选取了50个多人图像。对于每个个体,我们收集了覆盖行为、服装、姿态、体型、总结的描述,其中总结总结了其他所有属性。这一过程共生成了250个问题和答案对用于评估。
实验结果
我们使用LLaVA-1.5V-13B作为多模态LLM骨干网络,使用CLIP进行视觉编码,使用finetuned的从Llama 2在对话数据上微调的Vicuna-13B作为LLM骨 干 网 络。我 们 保 留CLIP编 码 器 和 视 觉投 影 层, 同 时 从 头 开 始 训 练SMPL投 影 层, 并 使用LORA对LLM进行微调。SMPL投影层由MLP层组成,维度为。根据之前的工作,我 们 的 网 络 预 测SMPL姿 势 的6D旋 转, 然 后 将其转换为旋转矩阵用于损失计算。我们使用128的秩和256的alpha配置了LoRA的微调过程。优化使用AdamW,学习率和权重衰减率分别设置为2e-4和0。我们为文本生成损失赋予权重1.0,为SMPL姿势损失赋予权重0.1。在训练阶段,我们使用8块NvidiaA100 GPU,每块GPU具有80G的内存。为了提高训练 效 率, 我 们 使 用DeepSpeed引 擎。我 们 将 每个GPU的批量大小设置为16,并配置梯度累积步骤为2。训练过程涉及所有训练数据集,每个批次中图像到姿势估计、文本到姿势生成和LLaVA多模态指令调优数据的比例为2:1:1。
使用不同文本描述的基于推理的姿势估计
人体姿势估计中模型的比较
不同方法结果对比示例图