无需训练,这个新方法实现了生成图像尺寸、分辨率自由

    ChatGPT狂飙160天,世界已经不是之前的样子。
新建了免费的人工智能中文站https://ai.weoknow.com
新建了收费的人工智能中文站https://ai.hzytsoft.cn/

更多资源欢迎关注


近日,来自香港中文大学 - 商汤科技联合实验室等机构的研究者们提出了FouriScale,该方法在利用预训练扩散模型生成高分辨率图像方面取得了显著提升。

近期,扩散模型凭借其出色的性能已超越 GAN 和自回归模型,成为生成式模型的主流选择。基于扩散模型的文本到图像生成模型(如 SD、SDXL、Midjourney 和 Imagen)展现了生成高质量图像的惊人能力。通常,这些模型在特定分辨率下进行训练,以确保在现有硬件上实现高效处理和稳定的模型训练。

图片

图 1 : 采用不同方法在 SDXL 1.0 下生成 2048×2048 图像的对比。[1]

然而,当这些预训练的扩散模型在超出训练分辨率时生成图像,通常会出现模式重复和严重的人工伪影(artifacts)问题,如图 1 最左侧所示。

为了解决这一问题,来自香港中文大学 - 商汤科技联合实验室等机构的研究者们在一篇论文中深入研究了扩散模型中常用的 UNet 结构的卷积层,并从频域分析的角度提出了 FouriScale, 如图 2 所示。

图片

图 2 FouriScale 的流程(橙色线)示意图,目的是保证跨分辨率的一致性。

FouriScale 通过引入空洞卷积操作和低通滤波操作来替换预训练扩散模型中的原始卷积层,旨在实现不同分辨率下的结构和尺度一致性。配合「填充然后裁剪」策略,该方法能够灵活生成不同尺寸和长宽比的图像。此外,借助 FouriScale 作为指导,该方法在生成任意尺寸的高分辨率图像时,能够保证完整的图像结构和卓越的图像质量。FouriScale 无需任何离线预计算,具有良好的兼容性和可扩展性。

定量和定性实验结果表明,FouriScale 在利用预训练扩散模型生成高分辨率图像方面取得了显著提升。

图片

  • 论文地址:https://arxiv.org/abs/2403.12963

  • 开源代码:https://github.com/LeonHLJ/FouriScale

  • 论文标题:FouriScale: A Frequency Perspective on Training-Free High-Resolution Image Synthesis

方法介绍

1、空洞卷积保证跨分辨率下的结构一致性

扩散模型的去噪网络通常是在特定分辨率的图像或潜在空间上训练的,这个网络通常采用 U-Net 结构。作者的目标是在推理阶段使用去噪网络的参数生成分辨率更高的图像,而无需重新训练。为了避免推理分辨率下的结构失真,作者尝试在默认分辨率和高分辨率之间建立结构一致性。对于 U-Net 中的卷积层,结构一致性可表述为:

图片

其中 k 是原本的卷积核,k' 是为更大分辨率定制的新卷积核。根据空间下采样的频域表示,如下:

图片

可以将公式(3)写为:

这个公式表明了理想卷积核 k' 的傅里叶频谱应该是由 s×s 个卷积核 k 的傅里叶频谱拼接而成的。换句话说,k' 的傅里叶频谱应该有周期性重复,这个重复模式是 k 的傅里叶频谱。

广泛使用的空洞卷积正好满足这个要求。空洞卷积的频域周期性可以通过下式表示:

图片

当利用预训练扩散模型(训练分辨率为(h,w))生成 (H,W) 的高分辨率图像时,空洞卷积的参数使用原始卷积核,扩张因子为 (H/h, W/w),是理想的卷积核 k'。

2、低通滤波保证跨分辨率下的尺度一致性

然而,只利用空洞卷积无法完美地解决问题,如图 3 左上角所示,只使用空洞卷积仍然在细节上存在模式重复的现象。作者认为这是因为空间下采样的频率混叠现象改变了频域分量,导致了不同分辨率下频域分布的差异。为了保证跨分辨率下的尺度一致性,他们引入了低通滤波来过滤掉高频分量,以去除空间下采样后的频率混叠问题。从图 3 右侧对比曲线可以看到,在使用低通滤波后,高低分辨率下的频率分布更加接近,从而保证了尺度一致。从图 3 左下角图看到,在使用低通滤波后,细节的模式重复现象有明显地改善。

 

图片

图 3 (a) 是否采用低通滤波的视觉对比。(b)不采用低通滤波的傅立叶相对对数幅值曲线。(c) 采用低通滤波的傅立叶相对对数幅值曲线。

3、适应于任意尺寸的图像生成

以上的方式只能适应于生成分辨率与默认推理分辨率的长宽比一致时,为了使 FouriScale 适应于任意尺寸的图像生成,作者采用了一种「填充然后裁剪」的方式,方法 1 中展示了结合了该策略的 FouriScale 的伪代码.

图片

4、FouriScale 引导

由于 FouriScale 中的频域操作,不可避免的使生成的图像出现了细节缺失与不期望的伪影问题。为了解决这一问题,如图 4,作者提出了将 FouriScale 作为引导的方式。具体来说,在原本的条件生成估计以及无条件生成估计的基础上,他们引入一个额外的条件生成估计。这个额外的条件生成估计的生成过程同样采用空洞卷积,但是使用更加温和的低通滤波,从而保证细节不丢失。同时他们将利用 FouriScale 输出的条件生成估计中的注意力分数替换掉这一额外的条件生成估计中的注意力分数,由于注意力分数包含着生成图像中的结构信息,这一操作将 FouriScale 中正确的图像结构信息引入,同时保证了图像质量。

图片

图 4 (a) FouriScale 引导示意图。(b)不采用 FouriScale 作为引导的生成图像,有明显的伪影和细节错误。(c) 采用 FouriScale 作为引导的生成图像。

实验

1. 定量试验结果

作者遵循 [1] 的方法,测试了三个文生图模型(包括 SD 1.5,SD 2.1 和 SDXL 1.0),生成四种更高分辨率的图像。测试的分辨率是它们各自训练分辨率的 4 倍、6.25 倍、8 倍和 16 倍像素数量。在 Laion-5B 上随机采样 30000/10000 个图文对测试的结果如表 1 所示:

图片

表 1 不同的无需训练方法的定量结果对比

他们的方法在各个预训练模型,不同分辨率下都获得了最优的结果。

2. 定性试验结果

如图 5 所示,他们的方法在各个预训练模型,不同分辨率下都能够保证图像生成质量与一致的结构。

图片

图 5 不同的无需训练方法的生成图像对比

结论

本文提出了 FouriScale 用于增强预训练扩散模型生成高分辨率图像的能力。FouriScale 从频域分析出来,通过空洞卷积和低通滤波操作改善了不同分辨率下的结构和尺度一致性,解决了重复模式和结构失真等关键挑战。采用「填充然后裁剪」策略并利用 FouriScale 作为指导,增强了文本到图像生成的灵活性和生成质量,同时适应了不同的长宽比生成。定量和定性的实验对比表明,FouriScale 能够在不同预训练模型,不同分辨率下都能够保证更高的图像生成质量。

    ChatGPT狂飙160天,世界已经不是之前的样子。
新建了免费的人工智能中文站https://ai.weoknow.com
新建了收费的人工智能中文站https://ai.hzytsoft.cn/

更多资源欢迎关注


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

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

相关文章

【Unity添加远程桌面】使用Unity账号远程控制N台电脑

设置地址: URDP终极远程桌面;功能强大,足以让开发人员、设计师、建筑师、工程师等等随时随地完成工作或协助别人https://cloud-desktop.u3dcloud.cn/在网站登录自己的Unity 账号上去 下载安装被控端安装 保持登录 3.代码添加当前主机 "…

P5356 [Ynoi2017] 由乃打扑克

我手把手教她打扑克 qwq 综合分析一下2个操作,查找区间第k小的值,感觉可以用主席树,区间修改那没事了 考虑分块做法,块长B 分析第一个操作 只需要维护数列的单调性,然后二分答案上二分就ok了 分析第二个操作 维护一个加法懒…

纯小白蓝桥杯备赛笔记--DAY10(字符串)

文章目录 KMP字符串哈希算法简介:斤斤计较的小z--2047字符串hash Manacher回文串的性质算法简介最长回文子串 字典树基础朴素字符串查找步骤前缀判定--1204 01tire算法简介:例题1:例题2: KMP字符串哈希 算法简介: 真前…

使用MQTT.fx接入新版ONENet(24.4.8)

新版ONENet使用MQTT.fx 模拟接入 目录 新版ONENet使用MQTT.fx 模拟接入开始前的准备创建产品设备获取关键参数 计算签名使用MQTT.fx连接服务器数据流准备与上传数据流准备数据发送与接收 开始前的准备 创建产品 设备下载Token签名工具生成签名 创建产品设备 根据以下内容填写…

C++中高阶数据结构(AVL树的原理讲解)

AVL树 AVL树的定义 avl本质是搜索树,是高度平衡二叉搜索树.特点是:任何树的左右子树的高度差不超过1.最大的高度差值最大也只能是1,也称之为平衡因子, 平衡因子就是右子树减去左子树的值,这个值的绝对值的最大值只能是1.这个平衡因子不是必须的,只是一种控制方式,方便我们更…

每日OJ题_两个数组dp⑥_力扣97. 交错字符串

目录 力扣97. 交错字符串 解析代码 力扣97. 交错字符串 97. 交错字符串 难度 中等 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子…

C++ 学习笔记

文章目录 【 字符串相关 】C 输入输出流strcpy_s() 字符串复制输出乱码 【 STL 】各个 STL 支持的常见方法 ? : 运算符switch case 运算符 switch(expression) {case constant-expression :statement(s);break; // 可选的case constant-expression :statement(s);break; //…

HarmonyOS实战开发-如何实现电话服务中SIM卡相关功能

介绍 本示例使用sim相关接口,展示了电话服务中SIM卡相关功能,包含SIM卡的服务提供商、ISO国家码、归属PLMN号信息,以及默认语音卡功能。 效果预览 使用说明: 1.若SIM卡槽1插入SIM卡则SIM卡1区域显示为蓝色,否则默认…

创建个人百度百科需要什么条件?

互联网时代,创建百度百科词条可以给个人带来更多的曝光和展现,相当于一个镀金的网络名片,人人都想上百度百科,但并不是人人都能创建上去的。 个人百度百科词条的创建需要满足一定的条件,今天伯乐网络传媒就来给大家聊聊…

P1123 取数游戏(dfs算法)

题目描述 一个 NM 的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻 8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。 输入格式 第…

关联式容器——map和set详解

troop主页 今日鸡汤:Never bend your head.Always hold it high.Look the world straight in the face. 加油!成为最好的编程大师 前言 我们前几篇文章讲了搜索二叉树,我们提到了搜索二叉树的应用就是K结构和KV结构,今天我们要提…

Vue3中的computed,watch和watchEffect的特点

1.computed 1)computed拥有缓存性,多次调用会直接从缓存中获取,而不会重新执行,只有相依赖的数据发生改变才会重新计算,所以说computed性能很高。 例:下面是同时调用三次计算属性firstTotal和三次函数first…

扬帆出海扩规模,仍是比亚迪未来的发展关键?

又到了新能源车企公布阶段性成果的时期。 日前,乘联会预估2024年3月全国新能源乘用车厂商批发销量82万辆,同比增长33%,环比增长84%。其中,比亚迪继续领跑,3月销量超30万辆,环比增长147.8%,而这…

简单用Nodejs + express 编写接口

文章目录 get接口示范post接口示范注意点 准备工作可以看上一篇文章:文章链接》》 get接口示范 app.get(/, (req, res) > {res.send("Hello World"); })因为是get接口,所以可以直接在浏览器上请求(端口地址接口名)…

测开面经(Git经典题目,Git入门)

1. GitHub是什么 a. Git是一个分布式版本控制系统,作用是跟踪、管理和协调软件开发项目中的代码更改。 b. 提供了一种有效的方式来管理代码的版本历史,以及多人协作开发的能力。 2. Git的作用有哪些 a. 版本控制:Git可以记录每次代码更改的…

基于51单片机轮胎胎压监测系统—数码管显示

基于51单片机轮胎胎压监测系统 (仿真+程序+设计报告) 功能介绍 具体功能: 1.MPX4115压力传感器胎压检测; 2.ADC0832进行模数转换后,51单片机处理控制; 3.数码管显示胎压&#xff…

想要品牌传播有效,先清楚这三个本质问题

在互联网时代,企业想要提高市场竞争力就需要做好品牌传播。然而有许多企业在做品牌传播时都会踩坑,原因是因为忽视了这三点,接下来就让媒介盒子和大家分享: 一、 文案本质是“购买理由” 在文案技巧中经常会出现一些词&#xff…

uniapp 表单使用Uview校验 包括城市选择器

<view><!-- 注意&#xff0c;如果需要兼容微信小程序&#xff0c;最好通过setRules方法设置rules规则 --><u--form labelPosition"left" :model"model1" :rules"rules" ref"uForm" labelWidth"174"><u…

Python中csr_matrix的两种初始化方法

本文以csr_matrix为例来说明sparse矩阵的使用方法&#xff0c;其他类型的sparse矩阵可以参考https://docs.scipy.org/doc/scipy/reference/sparse.html csr_matrix是Compressed Sparse Row matrix的缩写组合&#xff0c;下面介绍其两种初始化方法 csr_matrix((data, (row_ind…

【操作系统】-寄存器-具有记忆功能的元器件

为什么要使用寄存器 现代电子计算机用二进制来表示数字&#xff0c;人类发明了触发器&#xff0c;每个触发器可以保存1比特&#xff0c;为了保存一个较大的二进制数&#xff0c;组合一起就是新的元器件&#xff0c;称为寄存器&#xff08;register&#xff09;&#xff0c;或者…