中山大学和字节发布「视频虚拟试穿」扩散模型VITON-DiT,一键生成换装后视频!

视频虚拟试穿技术日益受到关注,然而现有的工作局限于将服装图像转移到姿势和背景简单的视频上,对于随意拍摄的视频则效果不佳。最近,Sora 揭示了 Diffusion Transformer (DiT) 在生成具有真实场景的逼真视频方面的可扩展性,可以说是风头无两。正是在这样的背景下,中山大学和字节跳动团队探索并提出第一个基于 DiT 的视频虚拟试穿框架 VITON-DiT,一键就能生成换装后视频了!

论文题目
VITON-DiT: Learning In-the-Wild Video Try-On from Human Dance Videos via Diffusion Transformers

论文链接
http://arxiv.org/abs/2405.18326

论文单位
中山大学、字节跳动

引言

视频虚拟试穿系统旨在通过视频为目标人物穿上所需的服装,同时保持其动作和身份。这项技术在电子商务和娱乐等实际应用中具有巨大的潜力。现有的大部分工作都集中在基于图像的试穿上,例如基于生成对抗网络(GANs)的图像试穿。

尽管图像生成质量令人印象深刻,但基于UNet的LDMs在处理视频场景时表现欠佳。而新兴的基于Transformer的LDMs(或称扩散Transformer,DiT)在生成高保真现实世界图像/视频方面展示了显著的能力和可扩展性,例如Stable Diffusion 3和Sora。受Sora的启发,作者提出了VITON-DiT,这是首个基于DiT的视频虚拟试穿模型,旨在解决真实场景中的视频试穿问题。

具体来说,VITON-DiT 包含三个主要组件:

  • 用于视频潜在生成的空间时间去噪 DiT

  • 用于保持服装细节的服装提取器

  • 用于保留人物姿势和身份的 ID 控制网络

这三个模块通过创新的注意力融合机制连接。这种机制通过一个附加的注意力过程将提取的服装特征与人物去噪特征相结合,从而能够将服装特征无缝地集成到视频生成过程中。

方法

VITON-DiT 的核心是扩散变换器 DiT,这是一种结合了扩散模型和变换器架构的新型神经网络模型。扩散模型通过逐步添加噪声并在反向过程中去除噪声来生成数据,而变换器则利用自注意力机制处理序列数据。这种结合使得VITON-DiT能够生成高质量且逼真的视频内容。

VITON-DiT框架 包含三个组件:去噪DiT、服装提取器和ID ControlNet。时空DiT模块是去噪DiT中的主要结构,每个块包含空间自注意力(SSA)、时间自注意力(TSA)和提示交叉注意力(PCA)层。

 3.5研究测试:
hujiaoai.cn
4研究测试:
askmanyai.cn
Claude-3研究测试:
hiclaude3.com

SSA 在空间维度上执行注意力,以生成/保留纹理。而TSA 在时间维度上执行注意力,以保持时间一致性。对于 PCA,则是在提示嵌入(例如,“跳舞的人”)和 TSA 的中间特征之间执行交叉注意力,以增强整体视觉质量。

这些层协同工作,不仅能够生成服装的纹理,还能保持视频序列中的时间连贯性。

对于去噪 DiT 来说,其训练目标仍是标准的潜在扩散损失。

图片

▲图 2. VITON-DiT概述。(a)该架构包含三个组件,具有以下任务。(1)去噪 DiT:通过一组时空 (ST-) DiT 块生成视频内容的潜在表示。(2)ID 控制网络:为去噪 DiT 生成特征残差,以保留参考人物的身份、姿势和背景。(3)服装提取器:通过注意力融合获取并向去噪 DiT 和控制网络传递服装特征,从而在生成的试穿视频中恢复详细的服装纹理。(b)注意力融合说明:使用加性注意力整合人物去噪特征和提取的服装特征。此操作同时用于去噪 DiT 和 ID 控制网络。

👗 服装提取器

服装提取器是VITON-DiT中的另一个关键组件,它负责从输入的服装图像中提取特征。这些特征随后会被融合到去噪DiT和 ID ControlNet中,以确保生成视频中的服装细节得到精确恢复。

由于输入仅包含一张服装图像 (即没有时间信息),因此它去掉了时间注意力机制。

与去噪 DiT 类似,服装图像由  编码并经过  个服装提取模块。在每次传递中,需要存储中间特征,然后将其输入到主 DiT 和 ID 控制网络中。具体来说,如图 2(b) 所示,注意力融合模块发挥作用,并通过加性注意将服装编码器与其他两个模块关联起来。注意力的融合过程可以表述为:

🔒 身份保留控制网络(ID ControlNet)

ID ControlNet的设计目的是在试穿过程中保持人物的姿势和身份信息。它通过一个网络来引导去噪DiT,确保人物的面部和身体特征在生成的视频中保持一致。

从本质上讲,视频虚拟试穿可以看作是一个图像修复(inpainting)问题。它需要四元组  将目标服装  放置在参考人物视频  上,包括与服装无关的图像 、DensePose 图像  和修复掩码 ,如图 2(a) 所示。由于 OpenSora 的预训练权重未针对图像修复任务进行调整,因此作者引入了一个 ID ControlNet  来保留人物的姿势、身份和背景。

形式上,给定一个与服装无关的条件序列 ,VAE 编码器  产生潜在变量 ,这些变量进一步与掩码  拼接。

然后,大小为  的潜在变量被修补,并通过一个零初始化的线性层,然后再送入 ID 控制网络。 的输出信号直接注入去噪 DiT 中作为特征残差。通过这样的设置可以使  能够提供精确、像素对齐的控制信号,以实现准确的身份保留。这个过程可以被描述为:

其中  表示拼接操作。同时,作者发现提出的 ID 控制网络对条件错误具有鲁棒性,以图 5(a) 为例,虽然控制网络的 DensePose 输入有明显的伪影,但 VITON-DiT 仍然产生了合理的结果。

🔄 长视频生成的训练和推理策略

图片

▲图 3.(a)随机不可知条件交换:随机用对应的真实图像且全零掩码替换掉不可知图像和修复掩码。(b)IAR 推断:在每个划分的序列内生成关键帧,然后进行 AR 推断以填充缺失的帧。

直接生成长视频是非常具有挑战性的,特别是在计算资源有限的情况下。为了缓解这一问题,作者在训练过程中使用了一种新的随机选择策略,而在推理过程中使用一种插值自回归(IAR)技术。

在训练过程中,系统会随机选择一些帧,并在这些帧上应用特定的训练技术,以增强模型对不同视角和动作的适应能力。而在推理过程中使用 IAR 技术,通过先生成关键帧、再使用自回归的方法,将剩余帧进行填充,从而生成高质量的长视频。

对于 IAR 技术,作者称它改进了传统的自回归方法,更有利于生成高质量的扩展视频。作者将视频生成分为两个子任务:关键帧生成和帧填充。具体来说,对于生成  帧视频的任务,IAR 首先将其分成  个子视频,根据提供的条件预测每个子视频中的起始帧,然后进行自回归技术填充缺失的  帧。这可以防止模型因遮挡而导致质量下降,还能确保视频的流畅性。

实验结果

作者收集了一个不成对的人类舞蹈视频数据集,其中包含各种服装、背景和身体动作。使用场景检测工具对收集到的数千个视频进行分割,并筛选出多人或一小部分人的片段,从而产生超过 15,000 个高质量视频片段。作者进一步结合 FashionVideo 和 Tiktok 数据集进行训练。最后挑选了50个不同身份、不同背景的片段,作为评估视频试穿效果的新基准。

VITON-DiT采用了多阶段自监督训练策略,具体步骤如下:

  1. 图像预训练(Garment Extractor):在这一阶段,仅训练服装提取器,冻结其他所有模块,从解析出的服装图像中重建人物图像。这有助于模型学习更大量的服装图像,并增强生成人物图像的能力。

  2. 图像预训练(ID ControlNet):接着,加入ID ControlNet,除了去噪ST-DiT的SSA模块,其他的所有参数都设置为可训练。训练目标与第一阶段相同。

  3. 视频微调(VITON-DiT):最后,除了去噪ST-DiT的SSA模块,对所有参数进行训练。

📊 定量与定性结果

  • 定量评估:研究人员使用了结构相似性指数(SSIM)、学习感知图像补丁相似性(LPIPS)和 Fréchet Inception Distance(VFID)等指标来评估生成视频的视觉质量和时间连贯性。

  • 定性评估:VITON-DiT在VVT数据集上与其他基线方法进行了比较。结果显示,VITON-DiT在保持服装形状和颜色一致性,以及在不同摄像机距离下服装-人物对齐方面表现优于其他基线。

图片

▲表 1:VVT 数据集的定量比较。最好的结果用粗体表示。

图片

▲图 4:与基线的定性比较。VITON-DiT 在一致保留服装形状和颜色以及在不同相机距离下稳定的服装与人对齐方面优于其他基线。

📈 消融研究

图片

▲图 5:数据量消融研究。随着数据质量和数量的增加,模型的视觉性能也相应逐渐提高。

研究表明,随着数据质量和数量的增加,模型的视觉性能也逐渐提高。使用少量但是高质量的数据(即 Data-S)训练的模型明显优于 Data-F。此外,更多数量的 HQ 数据能够获得更好的人体先验知识,即使在姿势引导不准确的情况下,模型也能产生合理的结果,如图5所示(Data-M 和 Data-L 列)。

图片

包含空间交叉注意力(SCA)的完整模型在恢复服装纹理方面比其他模型变体表现更好。另外,与传统的自回归(AR)方法相比,IAR技术在处理遮挡和恢复纹理细节方面更为稳健。

图片

总结

这篇文章提出了第一个基于DiT的视频试穿网络VITON-DiT,能够有效地恢复生成视频中的服装细节,实现数十秒的视频生成。

相比于之前的 VITON、GP-VTON等工作,VITON-DIT 方法将当前的先进技术融入进来,包括 DiT、注意力机制等。摒弃了以前工作中的各种形变方法后,不仅获得了非常先进的性能,而且也拓展到了视频生成领域,这也正是技术发展的魅力了。

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

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

相关文章

Kubernetes入门-大简介

目录 何为微服务 何为云原生 何为编排器 “Kubernetes”这个名字来自希腊语,意思是“舵手”舵手是一个航海/航行术语,指掌舵的人从本质上说,Kubernetes是云原生微服务(cloud-native microservice)应用的编排器(orchestrator) 何为微服务 …

WordPress 高级缓存插件 W3 Total Cache 开启支持 Brotli 压缩算法

今天明月给大家分享一下 WordPress 高级缓存插件 W3 Total Cache 开启支持 Brotli 压缩算法的教程,在撰写【WordPress 高级缓存插件 W3 Total Cache Pro 详细配置教程】一文的时候明月就发现 W3 Total Cache 已经支持 Brotli 压缩算法了,可惜的是在安装完…

ctfshow-web入门-命令执行(web53-web55)

目录 1、web53 2、web54 3、web55 1、web53 这里的代码有点不一样,说一下这两种的区别: (1)直接执行 system($c); system($c);这种方式会直接执行命令 $c 并将命令的输出直接发送到标准输出(通常是浏览器&#xff…

【qsort函数】

前言 我们要学习qsort函数并利用冒泡函数仿照qsort函数 首先我们要了解一下qsort(快速排序) 这是函数的的基本参数 void qsort (void* base, size_t num, size_t size,int (*compar)(const void*,const void*)); 简单解释一下 base:指向…

23.在游戏中按下Home键呼出辅助窗口

上一个内容:22.钩子注入原理 在 22.钩子注入原理 它的代码上进行修改 效果图: 首先在CWndMain.h文件中添加下图红框里的东西 ChangeShowState函数的实现 void CWndMain::ChangeShowState() {UiShow !UiShow;ShowWindow(UiShow); } OnInitDialog函数…

CISCN2024 初赛 wp 部分复现(Re)

Misc 1. 火锅链观光打卡 答题即可 Re 1. asm_re 感谢智谱清言,可以读出大致加密算法 这是输入 这是加密部分 这里判断 找到疑似密文的部分,手动改一下端序 #asm_wp def dec(char):return (((char - 0x1E) ^ 0x4D) - 0x14) // 0x50 #return (ord(cha…

powerdesigner各种字体设置

1、设置左侧菜单: 步骤如下: tools —> general options —> fonts —> defalut UI font ,选择字体样式及大小即可,同下图。 2、设置Table的字体大小 Tools------>Display Prefrences------>Table------->Format---------…

RabbitMQ系列-rabbitmq无法重新加入集群,启动失败的问题

当前存在3个节点:rabbitmq5672、rabbitmq5673、rabbitmq5674 当rabbitmq5673节点掉线之后,重启失败 重启的时候5672节点报错如下: 解决方案 在集群中取消失败节点 rabbitmqctl forget_cluster_node rabbitrabbitmq5673删除失败节点5673的…

王学岗鸿蒙开发(北向)——————(十)子组件修改父组件的内容与 动画

子组件修改父组件的内容 使用类似Android的回调,父组件传递给子组件一个函数 import { MyComment } from ./component/MyComment import { MyContent } from ./component/MyComtent import { MyTitleComponent } from ./component/MyTitleComponentEntry Componen…

【MySQL数据库基础】

🌈个人主页:努力学编程’ ⛅个人推荐:基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 …

【CS.OS】堆管理算法:不同的堆分配和管理算法

1000.5.CS.OS.1.3-基础-内存管理-堆管理算法-Created: 2024-06-09.Sunday10:41 文章目录 1 内存分配算法概述1.1 首次适应(First-Fit)1.2 最佳适应(Best-Fit) 2 伙伴系统(Buddy System) 3 总结References …

Python | 正则表达式

?:标记?之前的字符为可选. used&#xff1f; d可有可无 *:匹配>0个重复的在*号之前的字符。 ab*c 匹配多个b &#xff1a;匹配>1个重复的号前的字符。&#xff08;至少一个&#xff09; {n,m}&#xff1a;匹配num个大括号之前的字符或字符集 &#xff08;n < num …

算法:101. 对称二叉树

对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; 树中节…

ThreadCache线程缓存

一.ThreadCache整体结构 1.基本结构 定长内存池利用一个自由链表管理释放回来的固定大小的内存obj。 ThreadCache需要支持申请和释放不同大小的内存块&#xff0c;因此需要多个自由链表来管理释放回来的内存块.即ThreadCache实际上一个哈希桶结构&#xff0c;每个桶中存放的都…

目标检测(R-CNN)系列(Pytorch 26)

一 R-CNN 除了之前描述的单发多框检测之外&#xff0c;区域卷积神经网络&#xff08;region‐based CNN或regions with CNN features&#xff0c; R‐CNN&#xff09;(Girshick et al., 2014)也是将深度模型应用于目标检测的开创性工作之一。下面介绍R‐CNN及其一 系列改进方法…

架构设计-web项目中跨域问题涉及到的后端和前端配置

WEB软件项目中经常会遇到跨域问题&#xff0c;解决方案早已是业内的共识&#xff0c;简要记录主流的处理方式&#xff1a; 跨域感知session需要解决两个问题&#xff1a; 1. 跨域问题 2. 跨域cookie传输问题 跨域问题 解决跨域问题有很多种方式&#xff0c;如使用springboot…

cefsharp124.x升级125.x(cef125.0.21/Chromium 125.0.6422.142)

一、版本说明 1.1 依赖关系变化 依赖移除:cef.redist.x64,cef.redist.x86增加新支持chromiumembeddedframework.runtime 旧版本需要移除依赖cef.redist.x64和cef.redist.x86否则会初始化异常。 自版本121.*以后common依赖关系变化 chromiumembeddedframework.runtime.win-x6…

CentOS7 配置Nginx域名HTTPS

Configuring Nginx with HTTPS on CentOS 7 involves similar steps to the ones for Ubuntu, but with some variations in package management and service control. Here’s a step-by-step guide for CentOS 7: Prerequisites Domain Name: “www.xxx.com”Nginx Install…

来腾讯第4天,我已经焦虑昏了啊!

大家好&#xff0c;我是白露啊。 今天在看到一个实习生在抱怨&#xff0c;给我笑惨了。 标题是&#xff1a;“腾讯实习第4天&#xff0c;焦虑昏了”&#xff01; 他写道&#xff1a;“怎么办啊牛爷爷们&#xff0c;什么都不会。业务看不懂&#xff0c;文档看不懂&#xff0c;…

【上海大学计算机组成原理实验报告】七、程序转移机制

一、实验目的 学习实现程序转移的硬件机制。 掌握堆栈寄存器的使用。 二、实验原理 根据实验指导书的相关内容&#xff0c;实验箱系统的程序转移硬件机制在于&#xff0c;当LDPC有效时&#xff0c;如果此时DUBS上的值就是转移的目标地址&#xff0c;则此目标地址被打入PC&am…