毕业设计项目(难度高)——文本驱动的可控人体动作生成方法(论文/代码)

完整的论文代码见文章末尾 以下为核心内容

摘要

本文实现了一种基于扩散模型的文本驱动的可控人体动作生成方法。本文利用先进的交叉模态线性变换器及细粒度控制技术,根据自然语言描述生成逼真的人体动作序列。扩散模型在生成高质量图像和视频方面有较大优点,本文将其改进性地应用于动作生成领域,实现了从文本到可控动作的转换。其次,本文对批量生成的运动数据进行筛选和进一步处理。最终,使用Motion Matching技术进行动作拼接和交互控制,实现一个可交互的角色动画控制器,进一步提高了动作序列的自然度、可控性和实用性,展示了模型在三维动画生成等实际应用场景中的有效性和适用性。

本文工作

本文实现了一种基于扩散模型的文本驱动的可控人体动作生成方法。利用先进的交叉模态线性变换器及细粒度控制技术,从自然语言描述中生成逼真的人体动作序列。此外,使用Motion Matching技术进行动作拼接和交互控制,最终实现一个可交互的角色动画控制器,进一步提高了动作序列的自然度、可控性和实用性。实现内容主要有以下三方面:

模型架构,即基于扩散模型结合交叉模态线性变换器,通过逐步去噪的方法精确地模拟动作生成过程。

数据处理与优化,即构建并优化包含丰富文本描述的动作数据集,实现高效的数据处理和增强功能,以适应模型训练的需求。

交互控制技术,即通过动作拼接技术和实时交互控制,进一步增强模型在实际应用中的灵活性、可控性,提高用户体验。

实现方法

本文首先通过基于扩散模型的深度学习模型实现了依据文本条件的可控动作序列的生成。其结构主要如下:

去噪扩散概率模型 (DDPM):其负责逐步去除高斯噪声,从而生成目标动作序列。该模型通过控制噪声添加和去除的步骤,实现了从随机噪声状态逐渐恢复出清晰的动作序列的能力。

基于Transformer的编码解码层:该层包含文本编码器和动作解码器,采用了Transformer架构来将自然语言描述映射到动作序列。文本编码器使用CLIP模型预训练的特征提取能力,增强了模型对文本的理解和处理。

跨模态线性Transformer层:这一层是为处理变长的动作序列而设计,包括线性自注意力和交叉注意力等组件,专门处理基于文本提示的输入序列。可以在不同的时间步骤中根据文本描述动态调整动作生成。

细粒度控制:在生成动作序列时对身体的不同部分进行独立控制,以及根据时间的变化对动作进行调整。这增加了动作生成的精确性和适应性,使得生成的动作更加符合文本描述且自然。

对模型批量输出的动作序列筛选出可利用的部分创建生成BVH文件,作为运动数据集,然后通过读取BVH和前向运动学的功能对运动数据进行进一步的处理与拼接,最终通过利用Motion Maching技术实现一个可交互的角色动画控制器,其可以根据键盘或鼠标的控制进行相应的动作。

动作拼接和交互控制主要通过以下算法来实现:

动作的平移与面朝,即对BVH文件进行平移和旋转对齐,确保动作的一致性和准确性。通过算法分解旋转成两个部分,一部分是绕y轴的旋转,另一部分是在xz平面的旋转,实现了精确的动作对齐。该过程包括调整根节点的位置和方向,以匹配目标平面位置和朝向,确保动作在空间上与目标位置和朝向一致。

动作的插值与融合,即将两个动作序列融合成一个连续的序列。使用球面线性插值(SLERP)和线性插值方法来平滑过渡和融合动作。根据融合系数,这些系数决定了两个原始动作在不同帧上的融合程度,实现动作的自然过渡。

动作的循环及对齐,即处理动画序列中的循环和对齐,使动作能够无缝循环播放。通过调整四元数的方向一致性和计算角速度,实现动作在循环过程中的平滑性和连续性。使用阻尼计算模拟动作衰减,确保动作在循环中自然过渡。

动作拼接与控制,即将两个独立的动作数据平滑地连接起来。详细介绍了对动作序列进行切割、对齐、和混合的方法,包括对动作的起始和结束帧进行调整,以确保动作在空间位置和面向方向上的一致性。通过惯性混合和线性插值法,增加了动作序列的物理连贯性和视觉平滑性。

去噪扩散概率模型层

DDPM(Denoising Diffusion Probabilistic Model)过程通过几个核心类和函数实现,涵盖了创建扩散路径、建模逆向扩散过程以及最终采样的逻辑。

前向扩散定义了如何将结构化数据逐步转换为无结构的噪声状态,同时确保这一转换可以被逆向模型可靠地逆转。在DDPM框架中,这种转换是通过一系列控制的噪声添加步骤实现的。

在此流程中,需要准备输入数据和噪声,如果没有提供噪声,则生成与输入数据匹配的随机噪声。验证噪声的形状是否与输入数据一致,以确保两者可以正确合并。对输入数据应用一个系数以平滑处理,同时对噪声应用另一个系数以增加其随机性,这样做有助于更好地模拟数据的自然变异。将处理过的数据与处理过的噪声相加,输出最终的混合结果。

基于Transformer的编码解码层

模型使用了包含文本编码器和运动解码器的Transformer架构。此架构将文本描述映射到运动序列,其中涉及到多个组件和方法。

文本编码部分使用了CLIP模型的文本编码器来提取文本特征,然后通过一个Transformer编码器来进一步处理这些特征。这个文本编码器结构旨在为时间序列数据的处理提供丰富且相关的文本上下文信息。

该部分将输入的文本数据进行标记化处理,并将其传输到指定的计算设备(如CPU或GPU)上。对标记化后的文本应用词嵌入,以转换为数值形式,便于模型处理。添加位置嵌入,以引入文本中词汇的顺序信息。将嵌入的文本数据通过一个变换器(Transformer)模型进行处理,以捕捉文本中的上下文关系。应用最终的归一化层,进一步调整数据的尺度。对变换器的输出进行预处理,以准备进一步的编码处理。通过一个文本转换编码器进一步处理文本数据。应用一个投影层,选择性地提取特定的输出特征。对输出数据进行重排,以匹配后续处理的需求。

跨模态线性Transformer层

跨模态线性Transformer层包含自注意力层和线性交叉注意力层用来处理自注意力和交叉注意力。自注意力处理单一序列内部的关系,而交叉注意力处理两个不同序列之间的关系,如文本和时间序列。如图3-1所示为注意力层结构图。

在这里插入图片描述## 细粒度控制
本小节介绍了使用多种方法来进行细粒度控制,通过精确地调整模型的行为以响应不同的输入和时间步骤。

时间步嵌入:时间嵌入是实现细粒度时间控制的关键组件。通过生成与时间步相关的正弦嵌入,模型能够对每个时间步的数据进行个性化处理。

交叉注意力机制:模型能够将文本信息动态地融入到时间序列中。这种机制允许模型不仅仅依赖于时间序列的内在模式,而且可以根据相关的文本描述来调整每个时间步的输出。

自注意力和前馈机制:自注意力层允许模型在不同时间步之间建立复杂的依赖关系,而前馈网络则进一步加工这些信息,增加了模型对数据的处理深度。

源掩码机制:用于指示哪些时间步是有效的,哪些应该被忽略。这对于处理长度不一的序列特别重要,确保模型不会在无关的时间步上浪费资源。

动作拼接和交互控制

本节对使用模型批量输出的3D动作序列进行筛选,选出可利用的部分来创建生成BVH文件,作为动作匹配(Motion Matching)中的数据库。预处理数据以匹配BVH文件所需的结构,转换坐标系统(从模型的本地坐标到全局坐标),创建对应的BVH层级结构。

对于BVH文件的MOTION部分,详细记录每一帧中每个骨骼的动作数据。确定动画的帧数和每帧的时间间隔。将每一帧的骨骼位置和旋转数据按照定义的通道顺序记录下来。

将所有BVH文件根据动作类型(如走路、跑步、跳跃等)进行分类。确保所有BVH文件的帧率和骨骼命名标准一致,以避免在动作匹配过程中出现数据不一致的问题。

读取BVH和前向运动学的功能对运动数据进行进一步的处理与拼接,最终通过利用Motion Maching技术实现一个可交互的角色动画控制器,其可以根据键盘或鼠标的控制进行相应的动作。

实验及评估

动作生成效果

本文实现了从文本到BVH文件再到最后3D的生成。选定的文本样例为“A person walks first and then run”,通过文本直接生成描述行走后跑步的动作序列。

文本“A person walks first and then run”通过一个利用基于扩散模型的文本到动作框架进行处理。模型解析文本以识别其中的动作——一个人先走路后跑步。这些动作在上下文中被分析,以确定它们的顺序和性质。

动作生成过程开始于构建一个初始序列,其中角色开始走路然后过渡到跑步。该序列通过一个逐步去噪的过程处理,从嘈杂的开始逐步细化为清晰连贯的动作序列。
如下图4-1至4-8所示为未进行动作处理和动作拼接与交互控制的初始图像:

在这里插入图片描述
在这里插入图片描述

交互效果

在本节中,探讨了通过增强的用户交互控制来提高3D动画的实时反应性和动态表现。开发了一个交互式示例,其中一个3D虚拟人物能够根据键盘或鼠标操控指示的箭头移动方向进行实时跟随。这一部分是单纯的模型输出无法实现的功能与效果。

该交互功能允许用户通过简单的键盘或鼠标操作控制3D模型的移动。当用户操控键盘或移动鼠标时,屏幕上的箭头位置被实时转换成3D空间中的坐标,3D模型随即朝这一坐标点移动。这种设计模拟了真实世界中的物体追踪行为。具体效果图像帧如下图4-17至4-30所示:

在这里插入图片描述
在这里插入图片描述

获取方式

在这里插入图片描述
有完备code和paper 还有示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值