【AIGC】MimicMotion:姿态引导的高质量人体运动视频生成技术

本文主要是介绍【AIGC】MimicMotion:姿态引导的高质量人体运动视频生成技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

资源

论文:https://arxiv.org/pdf/2406.19680

github:https://github.com/Tencent/MimicMotion

comfyui:https://github.com/kijai/ComfyUI-MimicMotionWrapper

核心要点

1. confidence-aware pose guidance可以确保高质量视频和时间维度上的帧与帧之间的平滑

2. 区域损失,减少了图像失真

3. 渐进式潜在空间融合策略

数据准备

视频数据集包括大量人物动作,利用预先训练过的图像到图像的视频模型的强大能力,数据集不需要过大,因为预先训练的模型已经有很好的先验。

数据集中的每个视频由三部分组成:

1.参考图(I_{ref})

2.一组视频序列

3.序列相对应的动作

预处理部分

视频序列调整大小和裁剪为了获取固定比率的视频,参考图是在相同视频中随机选取的,参考图会以同样的方式做预处理,pose数据是通过DWPose库提取的。

亮点

利用了预训练的svd视频生成模型,可以大大减少训练数据集的大小和算力的要求。

网络结构

参考图片进入扩散模型会有两个分支,一是UNet的每个块。通过一个视觉编码器CLIP,可以将提取到的特征喂入每个UNet的交叉注意力用于控制最终输出。二是变为输入的潜在特征,使用冻结的VAE编码器获取潜在空间的表示。参考图片被重复编码多次,主要为了与输入序列帧对齐。并将两者堆叠送入UNet。

作者直接将帧序列中提取到Pose序列加到UNet的第一个卷积输出层,而没有加入到每个UNet块

有两个原因

a) 序列姿势逐帧提取,没有任何时间交互,因此当 U-Net 直接对这些层产生影响时,它可能会混淆 U-Net 中的时空层;  b) 姿势序列的过度参与可能会降低预训练的图像到视频模型的性能。

关键点详解

Confidence-aware pose guidance

 将姿势和关键点的置信度分数集成到它们各自的绘图颜色中。这意味着我们将分配给每个关键点和肢体的颜色乘以其置信度分数。因此,具有较高置信度分数的关键点和相应的肢体在姿势引导图上会显得更显著。该方法使模型能够在其指导中优先考虑更可靠的姿态信息,从而提高姿态引导生成的整体精度。

 比较清晰的姿态,颜色会更深一些。

Hand region enhancement 

 

此外,我们采用姿态估计和相关置信度分数来缓解基于区域的伪影,例如手部失真,这在基于扩散的图像和视频生成模型中很普遍。具体来说,我们通过阈值关键点置信度分数来识别可靠的区域。通过设置阈值,我们可以区分自信检测到的关键点和由于遮挡或运动模糊等因素可能模糊或不正确的关键点。置信度分数高于阈值的关键点被认为是可靠的。我们实现一种基于置信阈值生成掩码的屏蔽策略。我们揭开置信度分数超过预定义阈值的区域,从而识别可靠的区域。在计算视频扩散模型的损失时,未掩蔽区域对应的损失值按一定比例放大,因此与其他掩蔽区域相比,它们对模型训练的影响更大。

具体来说,为了减轻手部失真,我们使用手部区域中关键点的置信度阈值计算掩码。只有所有超过此阈值的关键点置信度分数的手被认为是可靠的,因为更高的分数与更高的视觉质量相关。然后,我们通过填充这些关键点的边界来构造手周围的边界框,并将封闭的矩形指定为未屏蔽的。在视频扩散模型训练期间,该区域随后在损失计算中被分配了更大的权重。这种选择性揭露和加权过程使模型对手的学习偏向,尤其是视觉质量较高的手,有效地减少了失真,提高了生成内容的整体真实感。

推理阶段

在推理阶段,一段长视频会采用重叠帧技术进行潜在空间渐进式融合,权重与重叠帧和非重叠帧的距离有关。

 可视化权重表示图

实现细节

数据集有4436个人物跳舞视频,每个时长20s。采用了预训练的SVD1.1权重。PoseNet是从头开始训练的,我们在8卡A100(40G)上训练了20轮,每个设备上的batch_size为1。学习率是10-5并且针对前500个迭代步数有一个warmup的调整策略。我们调整了UNet和PoseNet的所有参数。

这篇关于【AIGC】MimicMotion:姿态引导的高质量人体运动视频生成技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127442

相关文章

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API