当前位置: 首页 > 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 示例…...

定义函数合并字符串—超详细讲解

【问题描述】 编写一个函数void str_bin(char str1[ ], char str2[ ]), str1、str2是两个有序字符串(其中字符按ASCII码从小到大排序),将str2合并到字符串str1中,要求合并后的字符串仍是有序的,允许字符重…...

实现 vue3 正整数输入框组件

1.实现代码 components/InputInteger.vue <!-- 正整数输入框 --> <template><el-input v-model"_value" input"onInput" maxlength"9" clearable /> </template><script lang"ts" setup> import { ref …...

Leetcode - 周赛425

目录 一&#xff0c;3364. 最小正和子数组 二&#xff0c; 3365. 重排子字符串以形成目标字符串 三&#xff0c;3366. 最小数组和 四&#xff0c;3367. 移除边之后的权重最大和 一&#xff0c;3364. 最小正和子数组 本题可以直接暴力枚举&#xff0c;代码如下&#xff1a; …...

c++(斗罗大陆2)

我把魂力等级更新到了31级 #include<iostream> #include<conio.h> #include<windows.h> #include<stdlib.h> #include<stdio.h> #include<time.h> #include<string.h> using namespace std; int qs10; int xthl0;//先…...

redis常见数据类型

Redis是一个开源的、内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息代理&#xff0c;支持多种数据类型。 一、数据类型介绍 String&#xff08;字符串&#xff09; Redis中最基本的数据类型。可以存储任何类型的数据&#xff0c;包括字符串、数字和二进制…...

MySQL - 性能优化

使用 Explain 进行分析 Explain 用来分析 SELECT 查询语句&#xff0c;开发人员可以通过分析 Explain 结果来优化查询语句。 比较重要的字段有: select_type : 查询类型&#xff0c;有简单查询、联合查询、子查询等 key : 使用的索引 rows : 扫描的行数 type &#xff1a;…...

Linux进程概念-详细版(一)

目录 进程概念 描述进程-PCB task_struct-PCB的一种 task_struct内容分类 查看进程 通过系统目录查看 通过ps命令查看 通过系统调用获取进程的PID和PPID 通过系统调用创建进程 fork的认识 使用if进行分流 最后的总结 Linux进程状态 运行状态-R 浅度睡眠状态-S 深度睡…...

K8S网络系列--Flannel网络下UDP、VXLAN模式的通信流程机制分析

文章目录 前言一、了解overlay、underlay容器网络二、网络通信1.分类2.网络虚拟设备对2.1、什么是网络虚拟设备对veth pair?2.2、如何查看容器的网卡与主机的哪个veth设备对是成对的关系? 3、vxlan和vtep3.1、vtep3.2、vxlan相关概念 三、Flannel网络模式剖析0、flannel的作用…...

ThreadLocal的设计思考

问题的提出 在Java多线程中&#xff0c;共享变量的读写非常容易出现不可预测的行为&#xff0c;因此对共享变量的访问控制非常重要。因此在多线程编程时&#xff0c;为了保证线程安全&#xff0c;需要进行额外的同步措施。比如典型的操作就是加锁。除了加锁外&#xff0c;另一…...

shell脚本练习(2)

1. 使用case实现成绩优良差的判断 2. for创建20用户 用户前缀由用户输入 用户初始密码由用户输入 例如&#xff1a;test01,test10 3. for ping测试指网段的主机 网段由用户输入&#xff0c;例如用户输入192.168.2 &#xff0c;则ping 192.168.2.10 --- 192.168.2.2…...

新闻头条新闻/北京关键词优化报价

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 支持向量机是由间隔最大化和高维映射两大部件组成。间隔最大化是目标&#xff0c;支持向量机的损失函数…...

网站建设经营范围/谷歌网页版入口

更多实例例子 1移除字符串两侧的空格&#xff1a;$str " Hello World! ";echo "不使用 trim: " . $str;echo "";echo "使用 trim: " . trim($str);?>以上代码的 HTML 输出如下(请查看源代码)&#xff1a;不使用 trim: Hello Worl…...

表白视频制作网站/长沙百度快速排名优化

简介 这节课NeHe课程主要向我们展示了将物理运动规律引入到三维场景中&#xff0c;模拟真实物体的位置变化过程。这节课分别模拟了如下几种运动方式&#xff1a; &#xff08;1&#xff09;在重力作用下的抛物线运动&#xff1b; &#xff08;2&#xff09;匀速运动 &#xff…...

海安做网站的公司/网推公司

1、汉字编码原理 到底怎么办到随机生成汉字的呢&#xff1f;汉字从哪里来的呢&#xff1f;是不是有个后台数据表&#xff0c;其中存放了所需要的所有汉字&#xff0c;使用程序随机取出几个汉字组合就行了呢&#xff1f;使用后台数据库先将所有汉字存起来使用时随机取出&#xf…...

温州市网站建设公司/提高百度搜索排名

怎样调用一个由char * 指针指向函数名的函数&#xff1f;最直接的方法就是维护一个名字和函数指针的列表&#xff1a; int one_func(), two_func(); int red_func(), blue_func(); struct { char *name; int (*funcptr)(); } symtab[] {"one_func", o…...

安陆 网站建设/网站seo优化案例

条件&#xff1a;1八位数&#xff1b;2.以领开头&#xff1b;3.末尾要依次递增 <script type"text/javascript">function Account(num,a){ // num以领开头的8位数&#xff0c;a依次递增 //初始的a为数字var s a.toString(); // 数字转字符串var b s.…...