数字人解决方案——Champ单个视频单张图像生成可控且一致的人体视频生成

概述

Champ是阿里巴巴集团、南京大学和复旦大学的研究团队共同提出了一种创新的人体动画生成技术,Champ能够在仅有一段原始视频和一张静态图片的情况下,激活图片中的人物,使其按照视频中的动作进行动态表现,极大地促进了虚拟主播和其他虚拟角色生成技术的发展。

Champ技术的核心在于其独特的工作流程。首先,该方法利用SMPL(Skinned Multi-Person Linear Model)模型来生成渲染深度图、法线贴图和语义贴图。这些图像为后续的处理步骤提供了详尽的三维形状信息,是构建真实感动画的关键。接着,Champ结合了基于骨架的动作指导,为模型注入精确的动作属性,确保生成的动画既准确又具有丰富的细节。

通过这种方法,Champ能够捕捉并再现人物的细微动作和表情,使得生成的动画既自然又逼真。这不仅为虚拟内容创作者提供了一个强大的工具,也为虚拟现实、游戏开发和电影制作等领域带来了新的可能性。

项目主页:https://fudan-generative-vision.github.io/champ/
论文地址:https://arxiv.org/pdf/2403.14781.pdf
Github地址:https://github.com/fudan-generative-vision/champ
企鹅交流群:787501969

简介

Champ是一种基于SMPL模型的先进技术,旨在精确捕捉视频中人体的几何形状和动作特征。通过统一身体形状和姿势的表示方法,Champ能够从源视频中提取复杂的3D人体信息。

该技术通过整合渲染深度图像、法线图和语义图等多维度数据,这些数据都是从SMPL模型序列中获得的。同时,Champ还利用了基于骨骼结构的运动信息来引导模型,这为潜在扩散模型提供了更为丰富的条件,使得模型能够全面地理解和再现3D形状及详细的姿势属性。

Champ的一个显著特点是其多层运动融合模块,该模块结合了自注意机制,能够在空间域中有效地整合形状和运动的信息。自注意机制使得模型能够自动识别并关注对结果影响最大的特征,从而在处理过程中提高对关键信息的捕捉能力。

此外,Champ通过将3D人体参数模型作为运动引导,实现了在参考图像和源视频运动之间进行精确的参数形状对齐。这一过程允许模型根据参考图像调整人体姿势,同时保持源视频中的运动特征,确保生成的动画既准确又自然。

图片
生成扩散模型的最新进展为图像动画领域带来了显著的推动力,特别是在人类图像动画的生成方面。这一领域主要采用基于生成对抗网络(GAN)和扩散模型的方法。GAN方法通过变形函数对输入的动作进行空间变换,以生成连续的视频帧。但GAN在动作转移方面面临挑战,尤其是在人物身份和场景动态发生较大变化的情况下。
与之相对的扩散模型方法,通过结合参考图像和动态条件直接生成人类动画视频。最新的扩散模型结合了数据驱动策略和CLIP编码的视觉特征,通过时间对齐模块解决了GAN方法中的泛化问题。

本研究进一步优化了形状对齐和姿势引导机制,提出了一种基于SMPL模型的人体图像动画生成方法。SMPL模型作为一种3D参数化人体模型,能够统一表示身体形状和姿势变化,提供丰富的人体几何特征,如表面变形、空间关系和轮廓等。利用SMPL模型的参数化特性,可以建立重建的SMPL与源视频中提取的SMPL运动序列之间的几何对应关系,从而调整参数化SMPL运动序列,优化潜在扩散模型中的运动和几何形状条件。

该方法包含三个关键步骤:

  1. 将SMPL模型的序列投影到图像空间,生成深度图、法线图和语义图,以捕捉人体的3D信息。
  2. 引入基于骨架的运动指导,以提高动画生成的精度。
  3. 通过特征编码和自注意力机制融合深度、法线、语义和骨架图,进一步提升模型的生成能力。

实验结果显示,该方法在TikTok和UBC时尚视频数据集上取得了优异的表现,并在真实场景数据集上展现了强大的泛化能力。这表明,基于SMPL模型的人体图像动画生成方法能够有效地捕捉和再现复杂的人体动作和形状变化,为图像动画领域提供了一种新的解决方案。

算法框架

Champ是一种先进的人体图像动画合成技术,它能够根据给定的人物图像和参考视频中的动作序列,生成一个时间连贯且视觉可控的视频。这一过程的核心在于利用SMPL模型来提取和复制人体动作,从而创造出逼真的动画效果。

在实现过程中,Champ首先使用SMPL模型对源视频中的人体姿势和形状进行分析和提取。SMPL模型是一种基于物理的模型,它通过一组参数来描述人体的三维形状和姿势。这种模型能够精确捕捉人体的细节,包括关节的位置、身体的姿态以及肌肉的形态等。

提取出的姿势和形状信息随后被用于生成多个包含姿势和形状细节的输出。这些输出不仅提供了丰富的人体几何信息,而且为后续的动画生成过程提供了基础。接着,Champ在潜在扩散模型框架中利用这些输出为人物图像动画提供多层次的姿势和形状指导。

潜在扩散模型是一种生成模型,它通过模拟数据的扩散过程来生成新的数据样本。在Champ中,这个模型利用从SMPL模型中提取的姿势和形状信息,以及深度、法线和语义地图等辅助信息,来生成与参考视频动作相匹配的动画帧。

图片

潜在扩散模型(LDM)。它将扩散和去噪两个随机过程结合到潜在空间中。首先,使用变分自编码器(VAE)将输入图像编码为低维特征空间。然后,将输入图像转换为潜在表示,应用方差保持马尔可夫过程对其进行扩散,生成多样化的噪声潜在表示。去噪过程涉及从z_t到z_t-1的每个时间步长t的噪声预测。最后,使用冻结的解码器将去噪后的z_0解码回图像空间。

图片

图片

SMPL****模型是计算机图形学和计算机视觉领域中常用的人体建模和动画方法。该模型结合了参数化形状空间和姿势空间,能够生成多样化的人体形状和姿势。模型的参数包括姿势和形状,通过输入这些参数,可以生成一个包含6890个顶点的3D网格表示。模型还可以使用顶点权重来进行人体部位分割。

Multi-Layer运动条件

**SMPL引导条件。**给定一个参考人体图像I ref和一个参考运动视频帧序列I 1:N,利用4D-Humans分别获得3D人体参数化SMPL模型H ref和H m1:N。为了从像素空间中提取全面的视觉信息,渲染SMPL网格以获得二维表示。这包括编码深度图,其中包含从每个像素到相机的距离信息,对重建场景的3D结构至关重要。对法线映射进行编码,描述了图像中每个点的表面方向,可以捕获关于人体表面的详细信息。此外,语义分割图为图像中的每个像素提供了类信息,从而能够准确处理人体不同组件之间的交互。

**参数化形状对齐。**作为人体视频生成的关键,通过驱动运动序列来生成参考人体图像的动画仍然具有挑战性。利用参数化的人体模型,可以很容易地对齐参考人体和运动序列之间的形状和姿态。给定在参考图像I ref上拟合的SMPL模型H ref和来自N帧驱动视频I 1:N的SMPL序列H m1:N,我们的目标是将H ref的形状β ref与H m1:N的姿态序列θ m1:N对齐。对齐后的SMPL模型可表示为:

图片

从H trans 1:N中渲染的相应条件来指导图像I ref上的视频生成,产生像素级对齐的人体形状,并增强生成的动画视频中的人体外观映射过程。

Multi-Layer运动引导

通过参数形状对齐,完成了基于参考图像重建的参数化SMPL模型与源视频SMPL模型序列之间的形状级对齐。然后,从对齐的SMPL模型序列中绘制深度图、法线图和语义图。此外,引入骨骼作为辅助输入,以增强复杂动作的表示,如面部表情和手指运动。如图3所示,利用潜在特征嵌入和下面将要介绍的自注意力机制,我们可以对人体形状和姿态的多层嵌入进行空间加权,从而生成多层语义融合作为运动指导。

图片

**Self-Attention指导。**本文提出了一种制导编码器,用于编码多级制导。通过这种方法,实现了从引导中提取信息的同时,微调一个预训练的去噪U-Net。编码器由一系列轻量级网络组成。我们为每个指导条件分配一个指导网络F i来编码其特征。对于每个引导网络,首先通过一组卷积层提取引导条件的特征;考虑到存在多级引导条件,涉及人体不同特征,在卷积层之后添加自注意力模块。该模块便于精确捕获每一层引导条件对应的语义信息。特别是,图3说明了训练后深度、正常、语义和骨架特征嵌入的自注意力图。分析结果显示出不同的模式:深度条件主要关注人体的几何轮廓;正常状态强调人体的方向性;语义条件优先考虑身体不同部位的语义信息;骨骼注意力提供了面部和手部的详细约束。

**多层运动融合。**为了保持预训练去噪U-Net模型的完整性,我们选择应用零卷积来提取每个引导条件的特征。引导编码器将所有引导条件中的特征嵌入通过求和进行聚合,从而得到最终的引导特征y。该操作在数学上可以表示为:

图片

其中N为纳入制导条件的总数。随后,将引导特征与噪声潜表示相结合,然后将其送入去噪融合模块。

神经网络

**网络结构。**提出了一种视频扩散模型,融合了来自3D人体参数模型的运动指导。我们采用SMPL模型从运动数据中提取连续的SMPL姿态序列。本文提出一种运动嵌入模块,将多层引导纳入模型中。运动引导的多个潜在嵌入通过自注意力机制单独细化,然后使用多层运动融合模块将其融合在一起。此外,我们使用一个VAE编码器和一个剪辑图像编码器对参考图像进行编码。为了确保视频的一致性,我们利用了两个关键模块:ReferenceNet和时间对齐模块。VAE嵌入被输入到参考网络中,该网络负责保持生成的视频和参考图像中的字符和背景之间的一致性。采用了一种运动对齐策略,利用一系列运动模块在各帧之间应用时间注意力。该过程旨在减轻参考图像和运动指导之间的任何差异,从而增强生成视频内容的整体连贯性。

**训练。**训练过程包括两个不同的阶段。在初始阶段,仅在图像上进行训练,而不包括模型中的运动模块。将VAE编码器和解码器以及剪辑图像编码器的权重冻结在冻结状态,同时允许指导编码器、去噪U-Net和参考编码器在训练期间进行更新。在初始化阶段,从一段人类视频中随机选择一帧作为参考,并从同一段视频中选择另一幅图像作为目标图像。然后将从目标图像中提取的多层引导输入到引导网络中。该阶段的主要目标是利用特定目标图像的多级引导生成高质量的动画图像。

在第二个训练阶段,加入运动模块以增强模型的时间连贯性和流动性。该模块使用AnimateDiff中预先存在的权重进行初始化。提取包含24帧的视频片段作为输入数据。在运动模块训练过程中,保持初始阶段训练的引导编码器、去噪U-Net和参考编码器不变。

**推理。**在推理过程中,通过对齐从野生视频中提取的运动序列或合成的运动序列,在特定的参考图像上执行动画。通过参数化形状对齐,将运动序列与参考图像重建的SMPL模型进行像素级对齐,为动画生成提供依据。为了适应包含24帧的视频片段的输入,采用时间聚合技术将多个片段连接起来。这种聚合方法旨在产生长时间的视频输出。

实验

实现细节

**数据集。**我们构建了一个数据集,包括来自著名在线库的大约5000个高保真真实的人体视频,共包括100万帧。数据集被分割为:Bilibili(2540个视频),快手(920个视频),Tiktok & Youtube(1438个视频),小红书(430个视频)。这些视频以不同年龄、种族和性别的人为特征,以全身、半身和特写镜头的方式描绘,并以室内和室外的不同背景为背景。

**实现。**使用8个NVIDIA A100 GPU进行训练,分为两个阶段,第一阶段处理单个视频帧,第二阶段处理时间序列,使用学习率为1e-5的训练方法。

结果

**基线。**与MRAA、DisCo、MagicAnimate、Animate Anyone等方法进行了全面比较。在所有定性比较实验中,我们采用了MooreThreads和MagicAnimate的开源实现。

**评价指标。**单帧图像质量评价包括L1误差、结构相似度(SSIM)、学习感知图像块相似度(LPIPS)和峰值信噪比(PSNR)等指标。视频保真度通过Frechet Inception距离与Fr échet视频距离(FIDFVD)和Fr échet视频距离(FVD)来评估。

**对TikTok数据集的评估。**Champ无论是原始的还是微调的形式,在大多数指标上都表现出卓越的性能,特别是突出了其在实现较低的L1损失、较高的PSNR和SSIM值,以及减少LPIPS、FID-VID和FVD分数方面的有效性。

在这里插入图片描述
图片

**对未见过数据集的评估。**通过定性评估,以及的统计比较,共同说明了Champ在泛化到未见过的域方面的有效性。

在这里插入图片描述

图片

**交叉ID动画。**Champ与最先进的跨实体动画基线方法进行了比较分析,特别是通过来自不同视频的运动序列制作参考图像的任务。

图片

**消融分析
**

实验结果表明,引入SMPL模型和骨架模型可以显著提高图像质量和保持形状对齐和运动引导,引入姿态引导自注意力机制可以提高转移的一致性和真实性。同时,该方法具有高效性,能够在较短的时间内完成转移。

图片

图片

在这里插入图片描述

图片

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Emgu CV教程】10.12、Moments()函数计算轮廓矩和质心

文章目录 一、概念介绍1.矩2.矩能干什么3.矩函数 二、演示1.原始素材2.代码3.运行结果 一、概念介绍 1.矩 矩,英文叫moment,是一个数学中的概念,以下的解释来自百度百科: 是不是看不懂,没关系,数学基础不…

mysqldump: Got error: 1049: Unknown database ‘root‘ when selecting the datab

1.问题描述 MySQL版本号:MySQL Server 8.3MySQL持久化到处数据库结构及数据 mysqldump: Got error: 1049: Unknown database root when selecting the datab2.问题解决 cmd 切换本地路径 cd /d D:\Program Files\MySQL\MySQL Server 8.3\bin执行数据库备份命令 …

Java智慧校园系统源码 微信小程序+电子班牌

Java智慧校园系统源码 微信小程序电子班牌 通过设备管理对百纳智慧校园的智慧班牌以及百纳智慧屏(校牌)进行统一集中式管理,支持浏览所有设备的基本信息以及在离线状态,支持添加设备、设备一键开关机、一键重启、设置节假日开关机…

Java单链表和LinkedList的实现

一、单链表的实现 无头单向非循环链表 定义异常用于判断所给位置是否合法 public class IndexNotLegal extends RuntimeException{public IndexNotLegal(){}public IndexNotLegal(String smg){super(smg);} } class ListNode中包含当前节点的值和下一个节点指向 实现链表的…

nginx支持的多种负载均衡策略

目录 1.轮询(默认) 2. ip_hash 3. 加权轮询(weight) 4. fair(第三方) 5. 最少连接(least_conn) 1.轮询(默认) 将请求依次分配给每个服务器,确…

SpringCloud Alibaba Sentinel 实现熔断功能

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第十六篇,即使用 Sentinel 实现熔断功能。 二、 Ribbon 系列 首先我们新建两个服务的提供者…

[StartingPoint][Tier1]Pennyworth

Important Jenkins是一个用于自动化构建、测试和部署软件项目的开源持续集成和持续部署(CI/CD)工具。它允许开发团队自动执行和监控在软件开发过程中的重复性任务,例如构建代码、运行测试、部署应用程序等。Jenkins提供了一个易于使用的Web界…

基于R语言BIOMOD2模型的物种分布模拟

随着生物多样性全球大会的举办,不论是管理机构及科研单位、高校都在积极准备,根据国家林草局最新工作指示,我国将积极整合、优化自然保护地,加快推进国家公园体制试点,构建以国家公园为主体的自然保护地体系。针对我国…

Spring 如何优雅的灵活的Http重试

1、背景说明 在互联网时代, 不同系统之间大多数是通过http调用,调用过程中会超时、异常等过种问题。为了保证业务稳定,http 重试是常用方案。下面列举几种方案。 2、Http重试方案介绍 2.1 传统方案 1、使用传统的递归调用,实现方…

SQL 注入之 Windows/Docker 环境 SQLi-labs 靶场搭建!

在安全测试领域,SQL注入是一种常见的攻击方式,通过应用程序的输入执行恶意SQL查询,从而绕过认证和授权,可以窃取、篡改或破坏数据库中的数据。作为安全测试学习者,如果你要练习SQL注入,在未授权情况下直接去…

深入浅出 -- 系统架构之负载均衡Nginx实现高可用

一、Nginx的高可用 线上如果采用单个节点的方式部署Nginx,难免会出现天灾人祸,比如系统异常、程序宕机、服务器断电、机房爆炸、地球毁灭....哈哈哈,夸张了。但实际生产环境中确实存在隐患问题,由于Nginx作为整个系统的网关层接入…

anylabeling使用和安装

源码地址: git clone https://github.com/vietanhdev/anylabeling.git Auto Labeling with Segment Anything Youtube Demo: https://www.youtube.com/watch?v5qVJiYNX5KkDocumentation: https://anylabeling.nrl.ai Features: Image annotation for polygon, r…

利用Leaflet + React:构建WEBGIS

React是 Facebook 开发的一个开源库,用于构建用户界面。就其本身而言,Leaflet是一个用于将地图发布到网络的JavaScript 库。这两个工具的组合很简单,允许您创建动态网络地图。在本文中,我们将看到这种组合的一些特征以及一些简单的…

多输入多输出 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络多输入多输出预测

多输入多输出 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 多输入多输出 | Matlab实现OOA-BP鱼鹰算法优化BP神经网络…

java数据结构与算法刷题-----LeetCode367. 有效的完全平方数

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 自实现Math.sqrt()函数:牛顿迭代法 自实现Math.sqrt(…

Redis单线程 VS 多线程

一、Redis 为什么选择单线程? 这种说法其实并不严谨,为什么这么说呢? Redis的版本有很多 3.x、4.x、6.x,版本不同架构也不同的,不限定版本问是否单线程也是不太严谨。 版本3.x,最早版本,也就…

项目架构MVC,DDD学习

写在前面 本文一起看下项目架构DDD,MVC相关的内容。 1:MVC 不管我们做什么项目,自己想想其实只是做了三件事,如下: 其实,这三件事完全在一个类中做完也可以可以正常把项目完成的,就像下面这…

【MacBook系统homebrew镜像记录】

安装 使用Homebrew 国内源安装脚本,贼方便: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"切换至清华大学镜像源: 命令合并: 分别切换了 brew.git、 homebrew-core.git、 homebrew-…

逆向案例十二——看准网企业信息json格式的信息

网址:【全国公司排行|排名榜单|哪家好】-看准网 打开开发者工具——刷新——网络——XHR——下滑页面加载新的页面——找到数据包 发现参数加密,返回的数据也进行了加密 按关键字在下方搜索 kiv进入第一个js文件 ctrlf打开文件里面的搜索框继续搜kiv找到…

Java 面试宝典:Redis 的线程模型是怎么样的?

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。 本文已收录到我的技术网站:https://www.skjava.com。有全网最优质的系列文章、Java 全栈技术文档以及大厂完整面经 Redis 的线程模型其实是分两块的: Redis 6.0 …