当前位置: 首页 > news >正文

第二十三周周报:High-fidelity Person-centric Subject-to-Image Synthesis

目录

摘要

Abstract

TDM

SDM 

SNF

测试时的人物细节捕捉

主要贡献

总结


摘要

本周阅读了一篇2024年CVPR的关于高保真度、以人物为中心的图像合成方法的论文:High-fidelity Person-centric Subject-to-Image Synthesis。该论文提出了一种名为Face-diffuser的生成管道,旨在解决现有方法在训练不平衡和质量妥协问题上的不足,通过独立微调两个专门的预训练扩散模型来实现人物和语义场景的合成。

Abstract

This week, I read a paper from CVPR 2024 on a high-fidelity, person-centric image synthesis method titled "High-fidelity Person-centric Subject-to-Image Synthesis".  The paper proposes a generative pipeline called Face-diffuser, aimed at addressing the shortcomings of existing methods in terms of training imbalance and quality compromise. It achieves the synthesis of subjects and semantic scenes by independently fine-tuning two specialized pre-trained diffusion models.

论文链接:2311.10329 (arxiv.org)

作者:Yibin Wang, Weizhong Zhang, Jianwei Zheng, Cheng Jin

该论文以现有的人物到图像合成方法面临着训练不平衡和质量妥协的问题,导致在联合学习中无法优化人物生成的质量为研究背景 。为了解决上述问题,研究者提出了Face-diffuser,这是一个有效的协作生成管道,用于人物和语义场景的合成 。Face-diffuser首先独立微调两个基于稳定扩散的专门预训练扩散模型:Text-driven Diffusion Model (TDM)和Subject-augmented Diffusion Model (SDM),分别用于场景和人物生成 。

效果图如下所示:

Face-diffuser的采样过程分为三个连续阶段:

  1. 语义场景构建:使用TDM构建初步的语义场景。
  2. 人物-场景融合:TDM和SDM基于有效的协作机制Saliency-adaptive Noise Fusion(SNF)进行协作,将人物融入场景中。
  3. 人物增强:进一步使用SDM来细化生成人物的质量。

网络结构图如下所示:

TDM

Stable diffusion (SD) is employed as our TDM. For semantic scene generation, given the semantic scene prompt c and the input image x, the VAE first encodes the x into a latent
representation z, perturbed by Gaussian noise ε to get z_{t} at t step during diffusion. Then the text encoder ψ maps semantic scene prompts c to conditional embeddings ψ(c) which
would be integrated into the denoiser \varepsilon _{\theta }, U-Net through cross-attention [8, 9, 29, 32]. The training objective is to minimize the loss function as follows:

L_{noise}=E_{z,c,\varepsilon \sim N(0,1),t}\left \| \varepsilon -\varepsilon _{\theta }(z_{t},t,\psi _{c}) \right \|_{2}^{2}

During inference, a random noise z_{T} is sampled from a normal distribution N (0, 1), and this noise is iteratively denoised by the U-Net to produce the initial latent representation z_{0}.
Subsequently, the VAE decoder maps these latent codes back to pixel space to generate the final image.

稳定扩散(SD)被用作我们的文本驱动扩散模型(TDM)。对于语义场景生成,给定语义场景提示c和输入图像x,变分自编码器(VAE)首先将x编码成潜在表示z,通过高斯噪声ε扰动得到扩散过程中第t步的z_{t}。然后,文本编码器ψ将语义场景提示c映射到条件嵌入ψ(c),这些嵌入将通过交叉注意力机制[8, 9, 29, 32]整合到去噪器,U-Net中。训练目标是最小化如下损失函数:

L_{noise}=E_{z,c,\varepsilon \sim N(0,1),t}\left \| \varepsilon -\varepsilon _{\theta }(z_{t},t,\psi _{c}) \right \|_{2}^{2}

推理过程中,从标准正态分布 N(0,1)中采样一个随机噪声 ϵ,并由 U-Net 迭代去噪以产生初始的潜在表示z_{0}。随后,VAE 解码器将这些潜在编码映射回像素空间以生成最终图像 。

SDM 

The SDM model tailored for subject generation is also based on the SD model but includes an additional reference image condition r . Inspired by previous works like [17, 34], we
adopt a tuning-free approach by enhancing text prompts with visual features extracted from reference images. When given a text prompt and a list of reference images, we begin by
encoding the text prompt and reference subjects into embeddings using pre-trained CLIP text and image encoders, respectively. Following this, we replace the user-specific word embeddings with these visual features and input the resulting augmented embeddings into a multilayer perceptron (MLP). This process yields the final conditioning embeddings, denoted as \psi (c)_{aug} . The loss function of SDM closely resembles the one in Eq. (1), wi th the substitution of ψ ( c ) by \psi (c)_{aug}.
L_{noise}=E_{z,c,\varepsilon \sim N(0,1),t}\left \| \varepsilon -\varepsilon _{\theta }(z_{t},t,\psi _{(c)aug}) \right \|_{2}^{2}

为生成主体而定制的SDM模型也基于SD模型,但包括一个额外的参考图像条件 r。受到像 [17, 34] 这样的先前工作的启发,我们采用了一种无需调整的方法,通过从参考图像中提取视觉特征来增强文本提示。当给定一个文本提示和一系列参考图像时,我们首先使用预训练的CLIP文本和图像编码器分别对文本提示和参考主体进行编码,生成嵌入。接下来,我们用这些视觉特征替换用户特定的词嵌入,并将生成的增强嵌入输入到多层感知器(MLP)中。这个过程产生了最终的条件嵌入,记作\psi (c)_{aug}​。SDM的损失函数与方程(1)中的非常相似,只是将 ψ(c)替换为\psi (c)_{aug}

L_{noise}=E_{z,c,\varepsilon \sim N(0,1),t}\left \| \varepsilon -\varepsilon _{\theta }(z_{t},t,\psi _{(c)aug}) \right \|_{2}^{2}

SNF

请注意,响应R_{T}R_{S }实际上评估了语义场景和参考图像对预测噪声中每个像素的影响,具有较大值的区域意味着这些条件对这些像素有显著影响,这自然定义了TDM和STM在这一步的责任。

正式地,我们首先基于 R_{T}R_{S }定义以下两个显著性图:

\Omega ^{T}=Smooth(Abs(R_{T}))

\Omega ^{S}=Smooth(Abs(R_{S}))

其中,操作符 Abs(⋅)计算输入变量的绝对值,而 Smooth(⋅) 函数用于减少高频噪声,有效地消除局部异常值并增强相邻区域的一致性。\Omega ^{T}\Omega ^{S}​ 的实证验证,即它们的视觉化呈现在第4.3节。

给定 \Omega ^{T}​ 和 \Omega ^{S}​,我们继续通过比较这两个显著性图来开发显著性自适应融合掩码:

M=argmax(Softmax(\Omega ^{T}),Softmax(\Omega ^{S}))

这里的softmax操作至关重要,因为 \Omega ^{T}​ 和 \Omega ^{S}​ 的值可能有不同的量级,它确保每个显著性图的总和保持不变,从而使它们可比较。掩码 M 被用来定义协作机制,即 M_{ij}=0M_{ij}=1 的像素分别在生成过程中分配给TDM和SDM。

最后,可以通过以下过程获得融合后的噪声:

 \widehat{\varepsilon }=M\bigodot \widehat{\varepsilon }_{S}+(1-M)\bigodot \widehat{\varepsilon }_{T}

这里的 ⊙ 表示哈达玛积(即元素对应的乘积),为了简化表示,我们省略了 t。需要注意的是,在每个采样步骤中,两个模型都以混合后的 z_{t}​ 作为输入,这有助于自动实现两个模型噪声空间的语义对齐。 

SNF是一种基于分类器自由引导(CFG)的细粒度协作机制,可以无缝集成到DDIM采样过程中 。在每一步中,SNF利用两个模型的CFG响应来生成一个适应于显著性的掩码,自动分配区域给它们进行合成。

测试时的人物细节捕捉

为了在测试时捕获并保留参考图像中给出的人物细节,Face-diffuser让SDM中的CFG响应成为有无参考人物图像之间的噪声差异,从而忽略文本条件的影响 。这种设置无疑指导SDM将显著性仅集中在与人物相关的区域,从而实现更高精度的人物生成 。

主要贡献

  1. 提出的Face-diffuser打破了现有人物到图像生成方法中的训练不平衡和质量妥协问题 。
  2. 通过有效的协作机制,Face-diffuser能够在测试时生成高质量样本,人物和语义场景生成器在不同时间步骤和不同图像中负责不同区域,实现灵活的演变合作 。

 

总结

Face-diffuser通过独立微调和细粒度协作机制,显著提高了人物和语义场景生成的高保真度。这种方法为解决现有人物到图像合成方法中的问题提供了一种有效的解决方案,并为未来的研究和应用提供了新的方向 。

下周将继续学习扩散生成模型有关内容。

如有错误,请各位大佬指出,谢谢!

相关文章:

第二十三周周报:High-fidelity Person-centric Subject-to-Image Synthesis

目录 摘要 Abstract TDM SDM SNF 测试时的人物细节捕捉 主要贡献 总结 摘要 本周阅读了一篇2024年CVPR的关于高保真度、以人物为中心的图像合成方法的论文:High-fidelity Person-centric Subject-to-Image Synthesis。该论文提出了一种名为Face-diffuser的…...

Cesium 与 Leaflet:地理信息可视化技术比较

在现代地理信息系统(GIS)和空间数据可视化领域,Cesium 和 Leaflet 是两种非常常见的地理可视化库,它们各自适用于不同的应用场景。Cesium 专注于三维地球视图和复杂空间分析,而 Leaflet 则注重轻量级的二维地图展示。本文将对这两种技术进行详细的对比,帮助开发者根据具体…...

Linux 服务器使用指南:诞生与演进以及版本(一)

一、引言 在当今信息技术的浪潮中,Linux 操作系统无疑是一个关键的支柱😎。无论是在服务器管理、软件开发还是大数据处理领域,Linux 都以其卓越的适应性和优势脱颖而出👍。然而,对于许多新手而言,Linux 系统…...

龙蜥 Linux 安装 JDK

龙蜥 Linux 安装 JDK 下载安装解压到目标路径设置环境变量直接在启动脚本中临时设置 参考资料 下载 这个就不赘述了,参考资料中的另外两篇安装帖,都有。 如果不能上网,也可以去内网其他之前装过JDK的服务器,直接复制过来。 tar …...

Python小白语法基础20(模块与包)

0) 参考文章 python的模块(module)、包(package)及pip_python package-CSDN博客Python之函数、模块、包库_python函数、模块和包-CSDN博客Python函数模块自定义封装及模块嵌套导入(手把手教程)_python如何封装一个模块-CSDN博客 1) 模块与包说明 软件…...

详解 Qt QtPDF之QPdfPageNavigator 页面跳转

文章目录 前言头文件: 自 Qt 6.4 起继承自: 属性backAvailable : const boolcurrentLocation : const QPointFcurrentPage : const intcurrentZoom : const qrealforwardAvailable : const bool 公共函数QPdfPageNavigator(QObject *parent)virtual ~QPd…...

通俗易懂:序列标注与命名实体识别(NER)概述及标注方法解析

目录 一、序列标注(Sequence Tagging)二、命名实体识别(Named Entity Recognition,NER)**命名实体识别的作用****命名实体识别的常见实体类别** : 三、标签类型四、序列标注的三种常见方法1. **BIO&#xf…...

【C语言】二叉树(BinaryTree)的创建、3种递归遍历、3种非递归遍历、结点度的实现

代码主要实现了以下功能: 二叉树相关数据结构定义 定义了二叉树节点结构体 BiTNode,包含节点数据值(字符类型)以及指向左右子树的指针。 定义了顺序栈结构体 SqStack,用于存储二叉树节点指针,实现非递归遍历…...

2024年11月文章一览

2024年11月编程人总共更新了21篇文章: 1.2024年10月文章一览 2.《使用Gin框架构建分布式应用》阅读笔记:p307-p392 3.《使用Gin框架构建分布式应用》阅读笔记:p393-p437 4.《使用Gin框架构建分布式应用》读后感 5.《Django 5 By Example…...

重生之我在异世界学编程之C语言:二维数组篇

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一 二维数组的创建1. 二维数组的…...

和鲸科技创始人CEO范向伟出席首届工业智算产业发展研讨会,共话 AI 创新与产业化落地

11 月 22 日,首届工业智算产业发展研讨会在中国工业互联网研究院召开。工业和信息化部党组成员、副部长单忠德,国家信息中心大数据发展部副主任魏颖出席会议并致辞。中国工程院院士、北京化工大学教授高金吉,工业和信息化部信息通信发展司二级…...

postgres数据备份与主从配置

备份PostgreSQL数据库 备份格式有几种选择: bak:压缩二进制格式 sql:明文转储 tar: tarball mydb# \q -bash-4.2$ pg pgawk pg_dump pgrep pg_basebackup pg_dumpall pg_restore# 备份所有的 -bash-4.2$ pg_dumpall &…...

【二分查找】力扣 275. H 指数 II

一、题目 二、思路 h 指数是高引用引用次数,而 citations 数组中存储的就是不同论文被引用的次数,并且是按照升序排列的。也就是说 h 指数将整个 citations 数组分成了两部分,左半部分是不够引用 h 次 的论文,右半部分论文的引用…...

使用uni-app进行开发前准备

使用uni-app进行开发,需要遵循一定的步骤和流程。以下是一个详细的指南,帮助你开始使用uni-app进行开发: 一、开发环境搭建 安装Node.js: 首先,从Node.js的官方网站(https://nodejs.org/)下载并…...

AI开发-深度学习框架-PyTorch-torchnlp

1 需求 Welcome to Pytorch-NLP’s documentation! — PyTorch-NLP 0.5.0 documentation 2 接口 3 示例 4 参考资料...

VBA数据库解决方案第十七讲:Recordset对象记录位置的定位方法

《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…...

Ubuntu 操作系统

一、简介 Ubuntu 是一个基于 Linux 的开源操作系统,它由 Canonical Ltd. 公司维护和资助。Ubuntu 以其易用性、强大的社区支持和定期的安全更新而闻名,一个一桌面应用为主的操作系统。 二、用户使用 1、常规用户的登陆方式 在登录时一般使用普通用户&…...

Maven 内置绑定到底怎么回事?

Maven是一个很好的项目管理工具. 一方面有着众多脚手架,另一方面在依赖管理方面 帮助使用者做了很多准备工作. 随着Maven的使用和学习的深入,大家会不仅有一些问题。 比较浅显的一个就是, 日常我们的Maven 下载安装好以后,在IDE 里…...

如何把Qt exe文件发送给其他人使用

如何把Qt exe文件发送给其他人使用 1、先把 Debug改成Release2、重新构建项目3、运行项目4、找到release文件夹5、新建文件夹,存放exe文件6、打开qt控制台串口7、下载各种文件8、压缩,发送压缩包给别人 1、先把 Debug改成Release 2、重新构建项目 3、运行…...

【汇编语言】call 和 ret 指令(三) —— 深度解析汇编语言中的批量数据传递与寄存器冲突

文章目录 前言1. 批量数据的传递1.1 存在的问题1.2 如何解决这个问题1.3 示例演示1.3.1 问题说明1.3.2 程序实现 2. 寄存器冲突问题的引入2.1 问题引入2.2 分析与解决问题2.2.1 字符串定义方式2.2.2 分析子程序功能2.2.3 得到子程序代码 2.3 子程序的应用2.3.1 示例12.3.2 示例…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

零基础设计模式——行为型模式 - 责任链模式

第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性&#xf…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

【C++进阶篇】智能指针

C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...