中山大学与Pixocial联手提出CatVTON:轻量化架构与高效训练,助力虚拟试衣技术落地应用!

news2024/11/16 8:34:57

近日,中山大学和 Pixocial 联合发布了 CatVTON,提出更加轻量化的架构与参数高效训练策略,助力图像虚拟试衣技术向落地应用迈进! 项目已公开论文并开源权重和代码,更有在线 Demo 可以试玩!

给钢铁侠穿上奇异博士的披风战袍?

让寡姐换上国风花草 Polo 衫?

又或者让马斯克穿着做旧牛仔走红毯?

只需要上传两张图像给 🐈 CatVTON,不到半分钟就可以得到!

相关链接

项目主页: https://zheng-chong.github.io/CatVTON

论文地址: https://arxiv.org/abs/2407.15886

论文阅读

摘要

基于扩散模型的虚拟试戴方法 实现真实的试穿效果,但复制骨干 网络作为参考网或利用额外的图像编码器来处理条件输入,导致高训练和推理成本。在这项工作中,我们重新思考了ReferenceNet和图像编码器的必要性,并对其进行了创新 设计了一种简单高效的虚拟试戴扩散模型CatVTON。 它可以方便地将任意类别的店内或穿过的服装无缝转移到目标人群 将它们在空间维度上连接起来作为输入。模型的有效性体现在三个方面:

  1. 轻量级的网络。只有原来的扩散模块,不需要额外的网络模块。正文编码器和正文注入的交叉注意事项,进一步降低参数167.02M。

  2. 参数高效训练。我们确认了试穿 通过对相关模块进行实验,仅训练49.57M个参数即可达到高质量的试戴效果 (约占骨干网络参数的5.51%)。

  3. 简化推理。CatVTON消除了所有不必要的东西条件和预处理步骤,包括姿态估计、人工解析和文本输入,只需要服装参考、目标人物图像和虚拟试穿过程的面具。

大量实验证明与基线方法相比,CatVTON以更少的先决条件和可训练的参数获得了更好的定性和定量结果。此外,CatVTON表示在野外场景中很好的泛化只有73K样本的开源数据集。

方法

轻量化模型架构

CatVTON 通过在输入上把人物、服装在通道维度拼接(Concatenate),在结构上摆脱了对额外的 ReferenceNet 的依赖,跳过了对图像虚拟试衣来说没有显著帮助的文本交叉注意力,同时也不需要任何额外的图像编码器来辅助生成。

CatVTON 在功能上丰富多样, 但其模型架构却十分简洁高效:

  • 2 个网络模块(VAE+UNet)

  • 899.06M 总参数量

  • <8G 推理显存(输出图像1024×768)

轻量化的架构来源于 CatVTON 对现有方法模块冗余 的观察: 基于 Warping 的方法依靠几何匹配对服装进行形变再利用试穿模块融合,结果生硬不自然; 基于扩散模型的方法引入ReferenceNet,加重了训练和推理的负担;

下表详细地比较了不同方法与 CatVTON 的模块数量、参数量、可训练参数量、显存占用、推理条件。

在网络模块上,CatVTON 只需要 VAE+UNet,无需任何额外的编码器;在模型总参数量上,CatVTON 比其他方法至少缩减了 44% ;在显存占用上,CatVTON 也只有其他方法的一半甚至更低,体现了 CatVTON 在 模型架构轻量化 上的优势。

参数高效训练

在训练上,CatVTON 探究了在将预训练扩散模型迁移到 TryOn 任务时去噪 UNet 中真正起作用的模块。

首先,去噪 UNet 在结构上是由不同特征尺度的ResNet 和 Transformer Blocks 堆叠而成(如下图)。其中 ResNet 是卷积网络,具有空间不变性,适用于特征的提取,并不负责跨空间的特征交互,这一部分在扩散模型进行大规模预训练时,已经具备了足够的特征编码能力,因此与迁移到 TryOn任务关联性不强。

Transformer Block 内部结构又可以细化为三个部分:Self Attention, Cross Attention 和 FFN。其中Cross Attention在 T2I 任务中用于与文本信息交互,FFN 起到特征映射的作用,因此与服装、人物特征交互最相关的便是 Self Attention。

理论上确定了需要训练的模块后,在实验上,CatVTON 文中还进行了消融,发现对 UNet、Transformer Block 和 Self Attention 分别进行解锁训练,其可视化结果并没有明显的差异,同时在指标上也十分接近,验证了“Self Attention是将预训练扩散模型迁移到 TryOn 任务的关键模块”的假设。

最后通过理论和实验锁定的Self Attention 部分,只有 49.57M 参数,仅占总参数量 5.71% 的部分,对其进行微调,就可以实现逼真的试穿效果,在上一节表格中可以看到,相较于其他方法,CatVTON 将可训练参数量减少了 10 倍 以上。

效果

多任务+多品类的虚拟换装

CatVTON 不仅可以实现传统的平铺服装图到人物的换装,而且同时支持上衣、裤子、裙子、套装 等不同品类服装,服装的形状和精细纹理都能保持较高的一致性。

另外,CatVTON 还可以实现人物A到人物B的换装,无需显式地指定类别,根据 Mask 的不同即可完成目标服装的试穿,支持单独的上衣、裤子、裙子或者全身多件服装同时更换。

结论

CatVTON 重新思考和设计了基于扩散模型的虚拟试穿框架,将多任务、多品类的虚拟试衣集成到同一模型中,以轻量化的框架和参数高效的训练策略实现了 SOTA 的试穿效果,降低了模型的训练、推理计算需求,推动了虚拟试衣模型走向落地与应用。

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

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

相关文章

Qt Creator初识

目录 一、认识 Qt Creator 1.Qt Creator 概览 2.使用 Qt Creator 新建项目 2.1 新建项目 2.2 选择项目模板 2.3 选择项目路径 2.4 选择构建系统 2.5 填写类信息设置界面 2.6 选择语言和翻译文件 2.7 选择 Qt 套件 2.8 选择版本控制系统 2.9 最终效果 3.认识 Qt Cre…

【详细】Ubuntu下安装qt5

Ubuntu下安装qt5 一. QT安装环境准备1、判断gcc是否安装2、安装g3、安装clang编译器4、安装 clang 5、安装make6、安装make-guile7、安装cmake 二. QT5安装1、安装Qt5的组件2、安装Qt的开发工具3、安装qtcreator4、安装qt55、安装qt charts&#xff08;可选&#xff09; 三、安…

VS2022创建C C++ GTEST工程

原因 需要对带代码进行单元测试&#xff0c;选择在Visual studio 中使用GTEST 框架。 实施 创建一个常规的控制台可执行程序。然后使用NUGET安装包 安装GTEST 头文件和动态库&#xff0c;同时安装GTEST ADAPTER。 安装可能提示找不到包源&#xff0c;此时需要根据提示配置一…

【克隆图】python刷题记录

R2-图 目录 DFS BFS ​ps: 图遍历即可&#xff0c;使用字典来记录访问过的结点。 DFS """ # Definition for a Node. class Node:def __init__(self, val 0, neighbors None):self.val valself.neighbors neighbors if neighbors is not None else []…

苹果CMS:资源采集站如何设置定时采集详细教程讲解

我们搭建好站点之后&#xff0c;会自定义一些采集&#xff0c;但是需要每天去手动执行&#xff0c;有时候甚至会忘记&#xff0c;那我们如何处理呢&#xff1f;今天我们就来介绍一下如何设置定时器。 如果按照官方例子来设置定时器会遇到一个问题就是采集的资源未绑定类型&…

极简Springboot+Mybatis-Plus+Vue零基础萌新都看得懂的分页查询(富含前后端项目案例)

目录 springboot配置相关 依赖配置 yaml配置 MySQL创建与使用 &#xff08;可拿软件包项目系统&#xff09; 创建数据库 创建数据表 mybatis-plus相关 Mapper配置 ​编辑 启动类放MapperScan 启动类中配置 添加config配置文件 Springboot编码 实体类 mapperc(Dao…

Chiplet SPI User Guide 详细解读

目录 一. 基本介绍 1.1.整体结构 1.2. 结构细节与功能描述 二. 输入输出接口 2.1. IO Ports for SPI Leader 2.2. IO Ports for SPI Follower 2.3. SPI Mode Configuration 2.4. Leader IP和Follower IP功能图 三. SPI Programming 3.1. Leader Register Descripti…

ubuntu 配置opencv-python-imsow()报错

python调用imshow&#xff08;&#xff09;时出现下面的错误&#xff1a; error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-c…

六个开源的PDF转Markdown项目

✨ 1: gptpdf gptpdf 是一个利用VLLM解析PDF为Markdown的工具&#xff0c;几乎完美支持数学公式、表格等。 GPTPDF 是一个使用视觉大模型&#xff08;如 GPT-4o&#xff09;将 PDF 文件解析成 Markdown 文件的工具。它主要用于高效地解析 PDF 文档中的排版、数学公式、表格、…

springboot专利信息服务管理系统-计算机毕业设计源码97187

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

【王佩丰 Excel 基础教程】第三讲:查找、替换、定位

文章目录 前言一、查找与替换1.1、按值查找1.2、按格式查找1.3、是否开启单元格匹配1.4、模糊查询 二、定位工具2.1、名称框的相关操作2.2、批注的相关介绍2.2.1、批注的基本操作2.2.2、批注的格式 2.3、使用 “ 定位条件 ” 解决以下问题 总结 前言 跟着B站学习王佩丰 Excel …

LLM工具调用破局:Few-shot Prompting

在大型语言模型&#xff08;LLM&#xff09;的应用中&#xff0c;工具的使用至关重要。我们一直在研究如何提升LLM调用工具的性能。一种常见的提升方法是通过少量样本提示&#xff0c;即将一些模型输入的示例和期望的输出结果直接展示给模型。据Language Models are Few-Shot L…

Jmeter下载、安装、永久汉化(Windows环境)

1、JDK下载 JDK8下载地址https://www.oracle.com/java/technologies/downloads/#java8-windows JDK8的Windows的64位&#xff1a; 2、Jmeter下载 jmeter下载地址https://jmeter.apache.org/download_jmeter.cgi 3、配置环境变量 安装好后&#xff0c;把jdk和jmeter都配置到…

4.JAVA-运算符

算数运算符 隐式类型转换 强制转换 字符串操作 字符相加 小结 自增自减运算符 赋值运算符 关系运算符 逻辑运算符 短路逻辑运算 三元运算符 运算符优先级 这里小括号优先于所有&#xff0c;所以想要哪一个优先运算&#xff0c;就可以将哪一个用小括号扩起来&#xff0c;比较方便…

科普贴:什么是大模型?快速了解大模型基本概念

在人工智能的世界里&#xff0c;大模型就像超级大脑一样&#xff0c;能够处理和理解大量的信息。你可能听说过ChatGPT&#xff0c;它就是大模型的一个典型代表。那么&#xff0c;什么是大模型呢&#xff1f;让我们一起来探索这个神奇的领域。 什么是大模型&#xff1f; 想象一…

EC与小鹅通震撼对接全攻略,一键解锁商业新纪元

客户介绍&#xff1a; 某企业管理咨询有限公司是一家深耕于商务服务业的专业咨询公司&#xff0c;隶属于商界联合品牌旗下。自成立以来&#xff0c;公司一直致力于在团队、产品及服务品质上不断投入与提升&#xff0c;公司的主要业务范围广泛&#xff0c;包括但不限于企业管理…

什么是PLM?

PLM&#xff08;Product Lifecycle Management&#xff0c;产品全生命周期管理&#xff09;是一种先进的企业信息化管理理念&#xff0c;旨在帮助企业从产品的概念设计、研发、生产制造、销售、售后服务&#xff0c;直到产品报废回收的整个生命周期进行管理和优化。PLM系统通过…

洗地机哪家好?四款洗地机好洗地机的品牌推荐

随着“懒人经济”的兴起&#xff0c;洗地机作为家居清洁领域的革新者&#xff0c;正逐步融入越来越多家庭的生活之中。面对市场上繁多的洗地机品牌与型号&#xff0c;消费者往往感到难以抉择&#xff1a;“洗地机哪个牌子最佳&#xff1f;”为了解答这一疑问&#xff0c;本文精…

JavaScript青少年简明教程:函数及其相关知识(上)

JavaScript青少年简明教程&#xff1a;函数及其相关知识&#xff08;上&#xff09; 在JavaScript中&#xff0c;函数是一段可以重复使用的代码块&#xff0c;它执行特定的任务并可能返回结果。 内置函数&#xff08;Built-in Functions&#xff09; 内置函数是编程语言中预先…

TinyMCE一些问题

1.element 在el-dialog中使用tinymce导致富文本弹窗在el-dialog后面的问题 原因是富文本的弹窗层级太低了 在APP.vue中添加样式即可解决 /* 富文本菜单 */ .tox-tinymce-aux {z-index: 9999 !important; }2.element 在el-dialog中点击富文本的功能栏报错 由于 aria-hidden 属…