传知代码-基于图像的虚拟试衣领域新突破(论文复现)

代码以及视频讲解

本文所涉及所有资源均在传知代码平台可获取

概述

本文将解读并且复现2024CVPR的一篇图像领域的一篇论文OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on。该论文能够高效生成高质量的试穿效果,无论是人体还是服装图像,其生成结果在逼真度可控性方面均优于其他方法,标志着虚拟试穿领域的一个显著突破。为电商等领域带来了新的可能,下面就说说这篇文章的贡献:

  1. 电商应用:OOTDiffusion能够实现逼真且可控的虚拟试穿,大幅提升在线购物体验。消费者可以通过虚拟试穿功能,直观地了解服装的穿着效果,从而减少退货率,提升购买决策的信心。
  2. 研究者启发:该研究展示了将预训练扩散模型应用于虚拟试穿领域的创新方法,尤其是无需冗余变形处理的精准对齐技术。这为研究者提供了新的思路,推动虚拟试穿、图像生成和计算机视觉领域的发展。
  3. 技术创新:OOTDiffusion通过引入配装dropout和无分类器引导等技术,提高了虚拟试穿的可控性和图像生成的质量,为进一步研究在多样化场景中的应用提供了坚实基础。

直观体验

这篇文章已经做成了网页,可以直接体验该文章产生的效果:https://huggingface.co/spaces/levihsu/OOTDiffusion,通过这个链接可以访问。
先来一张体验一下:
在这里插入图片描述

运行后生成的图像如下:
在这里插入图片描述

看不过瘾,那再来一张:
在这里插入图片描述

那这里只能够运行网站中已经提供的图像,如果要自定义的话,就需要复现代码了,在复现之前先来看看他的核心原理。

核心原理

主要创新点

  1. 提出了OOTDiffusion,这是一种基于LDM的网络架构,配备了用于逼真且可控虚拟试穿的新型配装UNet。

  2. 提出了配装融合方法,无需冗余的变形处理,能够在自注意力层中高效地将服装特征与目标人体精准对齐。

  3. 在训练过程中引入了配装dropout,进一步提升了配装UNet的可控性。

  4. 分别在两个广泛使用的高分辨率基准数据集VITON-HD和Dress Code上训练了OOTDiffusion。大量的定性和定量评估表明,在各种目标人体和服装图像的逼真度和可控性方面,该方法优于最先进的VTON方法,意味着图像虚拟试穿领域的一个显著突破

准备工作

OOTDiffusion是Stable Diffusion的扩展,Stable Diffusion是最常用的潜在扩散模型之一。Stable Diffusion采用了一个由编码器E解码器D组成的变分自编码器(VAE),以在潜在空间中实现图像表示。一个UNet ϵθ 被训练用于通过CLIP文本编码器 τθ编码的条件输入来去噪高斯噪声ϵ。给定图像x和文本提示y,通过最小化损失函数来训练去噪。

OOTDiffusion模型

先看图:
在这里插入图片描述

左侧部分,服装图像被编码到潜在空间,并输入到配装UNet中进行单步处理。配装特征通过CLIP编码器生成的辅助条件输入,结合配装融合方法,融入到去噪UNet中。在训练过程中,针对服装潜在特征应用了配装dropout,以实现无分类器引导。右侧部分,输入的人体图像根据目标区域进行遮罩处理,并与高斯噪声连接起来,作为去噪UNet的输入进行多步采样。在去噪完成后,特征图被解码回图像空间,生成试穿结果。具体来说可以分为以下部分:

  1. 目标人体图像和输入服装图像:首先,给定一张目标人体图像 x 和一张输入服装图像 g,目的是生成一张逼真的穿戴效果图像 xg。
  2. 生成遮罩人体图像:使用OpenPose和HumanParsing工具,对目标人体图像 x 进行处理,生成遮罩人体图像 xm。这个遮罩图像包含了人体的关键部分,用于辅助模型在穿戴过程中正确地贴合服装。
  3. VAE编码器将图像转换到潜在空间:接下来,使用VAE编码器 E 将遮罩人体图像 xm 转换到潜在空间中,得到 E(xm),其维度缩小为原图像尺寸的1/8。
  4. 与高斯噪声结合:然后,将编码后的潜在表示 E(xm) 与高斯噪声 ϵ 结合起来,作为去噪UNet的输入潜在向量 zT。这个潜在向量不仅包含了人体的关键特征,还引入了随机性,帮助模型在生成图像时保留一定的多样性和自然感。
  5. UNet的输入通道调整:为了处理这个带有8个通道的输入潜在向量,去噪UNet的第一个卷积层增加了4个零初始化的通道。这意味着模型在处理这些输入时,会根据这些额外的通道调整自身的卷积操作,从而更好地融合人体和服装特征。

关键技术点

Outfitting UNet

它被设计用于高效地学习服装图像 g 的细节特征。

  1. 首先,将编码后的服装潜在表示 E(g),输入到 outfitting UNet,这个潜在表示包含了服装的关键特征,并将在后续步骤中被进一步处理。
  2. 接着,将这些服装特征整合到去噪 UNet,这一过程使得服装特征能够更好地融入到人体的穿戴效果中。
  3. 除了主要的服装特征输入外,还包括前面提到的辅助条件输入,这些信息都被用于联合训练 outfitting UNet 和去噪 UNet。通过最小化某个损失函数,模型被优化,以生成高质量的虚拟试穿图像。

Outfitting Fusion

如何将学习到的服装特征融合到去噪 UNet 中。具体内容如下:

  1. 该过程是基于上述提出的 Outfitting UNet,并受到空间注意力机制的启发而设计的。
  2. Outfitting Fusion 的目标是将 Outfitting UNet 学习到的服装特征整合到 Denoising UNet 中,以便在去噪过程中使用。
  3. 对于第 n 对特征图 gn 和 xn 将它们在空间域中进行拼接。这个拼接操作为后续在去噪 UNet 中更好地利用服装特征打下了基础。

Outfitting Dropout

在训练过程中为了增强虚拟试穿(VTON)方法的可控性,使用了该方法,并通过此操作实现了无分类器引导。

  1. 主要目的是增强模型的可控性,特别是在服装特征方面。通过这种操作,可以在条件图像生成任务中平衡生成图像的质量和多样性。
  2. 无分类器引导已经在许多条件图像生成任务中广泛使用,用于在质量和多样性之间取得平衡。具体到本模型中,它帮助模型在去噪时更加灵活地控制图像生成。
  3. 在 Outfitting UNet 的训练过程中,随机丢弃输入的服装潜在特征,将 E(g) 设置为全零向量(∅)。通过这种方式,去噪 UNet 可以同时在有条件和无条件(即有和没有服装特征融合)的情况下进行训练。
  4. 在推理过程中,通过使用一个指导尺度 sg(通常 sg ≥ 1)来调整条件控制的强度,以控制预测的噪声。指导尺度 sg 的调整允许模型在图像生成时,决定多少程度上依赖服装特征。

这篇论文的核心逻辑就是上述的这些,但是中间涉及到非常多的公式,要想彻底理解原理,还需要详细的看论文。如果只想使用,那么只需要跟着下面的步骤复现即可

原文复现

下载文件

附件中下载文件:为什么要从附件下载?因为官方提供的代码有许多问题,比如python包版本导入文件等错误。
在这里插入图片描述
在这里插入图片描述

安装环境

注意:官方只提供了这么多,事实上还需要下载:basicsr,那么下载basicsr就需要下载tf-nightly,下载这些用清华源不一定行。torch版本最好是>2.3。

numpy==1.24.4
scipy==1.10.1
scikit-image==0.21.0
opencv-python==4.7.0.72
pillow==9.4.0
diffusers==0.24.0
transformers==4.36.2
accelerate==0.26.1
matplotlib==3.7.4
tqdm==4.64.1
gradio==4.16.0
config==0.5.1
einops==0.7.0
onnxruntime==1.16.2

下载basicsr,tf-nightly

pip install tf-nightly -i http://mirrors.aliyun.com/pypi/simple/  
# 最好用阿里云不行再试试https://pypi.mirrors.ustc.edu.cn/simple/;http://pypi.douban.com/simple/;https://pypi.tuna.tsinghua.edu.cn/simple/

pip install basicsr -i http://mirrors.aliyun.com/pypi/simple/  

下载模型文件

要复现这篇论文需要下载五个模型文件:请下载完附件之后自行查看readme.md文件

有些还需要VPN才可以下载到,但是可以下载完附件后,从我提供的链接直接下载,并且是按照相关的存放格式放好的。

复现过程

cd OOTDiffusion/run
python run_ootd.py --model_path <model-image-path> --cloth_path <cloth-image-path> --scale 2.0 --sample 4
<model-image-path>:具体的model图片
<cloth-image-path>:具体的cloth图片

在这里插入图片描述

在这个过程中只需要提供两张图片,一张是模特的图片,一张是试衣的图片,就可以实现虚拟试衣

PS:请下载完附件后首先阅读pleasereadme.md文件。

源码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值