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

    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/

更多资源欢迎关注


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言单链表

1. 单链表的概念和结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 链表与顺序表都属于线性表,顺序表在物理存储结构上是线性的,但是链表在物理存储结构上…

react-静态组件,动态组件

react09- 组件 静态组件 动态组件 静态组件: 函数组件,在第一次渲染完成后,组件中的内容,不会根据组件内的某些操作再次进行更新,页面并不会跟着改变 过程: 第一次渲染时,执行函数方法&#x…

202458读书笔记|《风来自你的方向》——我每次见你时的百米冲刺,加起来就是一生的长跑

《风来自你的方向》隔花人著 大绵羊BOBO绘,狗狗🐶绘本,这是看的第3本书。上俩本是《我是你的小狗 狗狗心事绘本》,《我是你的小狗2 当我有了你》。 同样的简短文字小狗🐶漫画,有爱的主人,有趣…

[中级]软考_软件设计_计算机组成与体系结构_12_概述及回顾

概述及回顾 总纲考情分析与分值海明校验码计算公式重点 总纲 考情分析与分值 海明校验码计算公式 2 r m r 1 2^r mr1 2rmr1 重点 数据的表示是计算题型的基础计算机组成中的CPU组成计算机组成中的存储系统,是核心重点的考察CISC与RISC及流水线执行时间的求取

lgwr超时如何判断存储还是cpu问题?(等待事件各种类型和说明及相关查询)

通过awr报告看: 分析: log file parallel write平均等待8毫秒 log file sync平均等待402毫秒 排查: log file sync parallel write lgwr cpu log file parallel write等待少说明存储不慢。 所以:log file sync等待长是因为…

css字体相关属性

属性汇总 属性作用font-family 设置文章字体 font-size 设置字体大小 font-weight设置字体粗细font-style设置字体斜体font总体设置以上属性 设置文章字体 font-family属性 案例: 设置字体大小 font-size属性 注意事项: 1.必须要加单位&#xff0…

很牛的一套仓库管理系统,免费复用【带源码】

今天给大家分享一套基于SpringbootVue的仓库管理系统源码,在实际项目中可以直接复用。(免费提供,文末自取) ​一、系统运行图(设计报告和接口文档) 1、登陆页面 2、物品信息管理 3、设计报告包含接口文档 二、系统搭建视频教程 …

Training - Kubeflow 的 PyTorchJob 配置 DDP 分布式训练 (ncclInternalError)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/137569332 Kubeflow 的 PyTorchJob 是 Kubernetes 自定义资源,用于在 Kubernetes 上运行 PyTorch 训练任务,是 K…

谷歌浏览器快捷键, VScode 快捷键

谷歌浏览器快捷键 谷歌浏览器跳转标签页的方式: control Tab 跳转下一个标签页 control shift tab 上一个标签页 command 1-8 跳转对应的标签页,而command 9 则是跳转最后一个标签页 Previous Tab 插件实现谷歌浏览器两个tab页来回切换。快捷键为…

猫头虎分享已解决Error: 已解决“ModuleNotFoundError: No module named“

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 领域矩阵: 🌐 猫头虎技术领域矩阵: 深入探索各技术领域,发现知识的交汇点。了解更多,请访问: 猫头虎技术矩阵…

Docker入门指南:从安装到基本操作和镜像构建的全面教程

文章目录 一、Docker简介二、Docker的安装三、Docker的基本概念四、Docker的基本操作五、Dockerfile和镜像构建六、总结 一、Docker简介 Docker是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖项打包到一个可移植的容器中,然后在任何支持Dock…

24/04/09总结

异常: 1.异常是什么? 程序中可能出现的问题 2.异常体系的最上层父类是谁?异常分为几类? 父类:Exception。 异常分为两类:编译时异常、运行时异常 编译时异常和运行时异常的区别? 编译时异常:没有继承RuntimeException的异常,直接继承于Exception。 编译阶段就会…

阿里面试题二

实在是太长了 重新开一篇吧 dubbo 服务暴露 Dubbo——服务调用、服务暴露、服务引用过程 - 简书 这两篇文章写的是极好 我现在查得资源强的可怕朋友们 服务降级 MockClusterInvoker 负载均衡策略 容错机制在哪里实现的源码 通信 NIO、BIO区别,NIO解决了什么…

[C语言]——柔性数组

目录 一.柔性数组的特点 二.柔性数组的使用 三.柔性数组的优势 C99中,结构体中的最后⼀个元素允许是未知大小的数组,这就叫做『柔性数组』成员。 typedef struct st_type //typedef可以不写 { int i;int a[0];//柔性数组成员 }type_a; 有些编译器会…

jmeter压测websocket协议

一、jmeter 安装websocket插件 1、选项--插件管理 2、搜索WebSocket Samplers by Peter Doornbosch插件 进行安装 3、 重启 jmeter 二、jmeter压测websocket协议实战 2.1、以网站为例: websocket在线测试 1、断开连接 2、打开F12,查看WS数据 3、…

下班后开始更新进行做什么内容

今天没有完成的内容有哪些 作用插槽 没有完成 开始学习一下一个工具如何 学习一个kail 兼职挖漏洞的方式 先来安装一个windows镜像内容 安装成功了

蓝桥杯-阿坤老师的魔方挑战

图示: 代码: #include <iostream> using namespace std; int main() {int N,i,j,row,col,sum,max0;cin>>N;int ar[N][N];for(i0;i<N;i){for(j0;j<N;j){cin>>ar[i][j];}//输入矩阵 }for(i0;i<N;i){row0;coli;sum0;//重新初始化while(row<N){if(c…

基于Java+SpringBoot+vue3+uniapp口红销售/商城管理系统设计与实现

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

C++11:function包装器

包装器&#xff0c;体现了C11中的封装性&#xff0c;包装器可以应用于&#xff1a;函数指针&#xff0c;仿函数&#xff0c;lambda 而包装器function的出现刚好也弥补了上述三种语法的不足之处 函数指针写起来较为复杂&#xff0c;而仿函数之间类型不同&#xff0c;lambda则在…

【粉丝福利社】区块链与金融科技(文末送书-完结)

&#x1f3c6; 作者简介&#xff0c;愚公搬代码 &#x1f3c6;《头衔》&#xff1a;华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xf…