CycleGAN-Turbo:CycleGAN结合扩散模型,一步图像到图像转换方法

CycleGAN-Turbo:CycleGAN结合扩散模型,一步图像到图像转换方法

    • 提出背景
      • 子解法1:直接对条件信息进行编码
      • 子解法2:整合三个独立模块
      • 子解法3:保留高频细节
    • 相关工作
      • 例子:日转夜图像转换
        • 现有方法
        • 我们的方法:CycleGAN-Turbo
    • 方法
      • 解法1:添加条件输入
      • 解法2:保留输入细节
      • 解法3:非成对训练
      • 扩展
    • 总结
      • 解法:一步图像到图像转换方法
        • 子解法1:端到端网络结构
        • 子解法2:保留高频细节
        • 子解法3:非成对训练适应性
      • 扩展解法:应对多样化的图像生成需求
        • 子解法4:成对训练的适应性
        • 子解法5:生成多样化输出

 


论文:https://arxiv.org/pdf/2403.12036.pdf

代码:https://github.com/GaParmar/img2img-turbo

在这项工作中,我们解决了现有条件扩散模型的两个局限性:由于迭代去噪过程,推断速度慢,以及对成对数据进行模型微调的依赖。

为了解决这些问题,我们引入了一种通用方法,通过对抗学习目标来适应新任务和领域的单步扩散模型。

具体来说,我们将标准潜在扩散模型的各个模块合并为一个单一的端到端生成网络,具有小的可训练权重,增强了其保持输入图像结构的能力,同时减少了过拟合。

我们证明,对于非配对设置,我们的模型CycleGAN-Turbo在各种场景转换任务中超越了现有的基于GAN和基于扩散的方法,如日转夜转换以及添加/移除雾、雪和雨等天气效果。

我们将我们的方法扩展到配对设置,其中我们的模型pix2pix-Turbo与最近的作品如ControlNet for Sketch2Photo和Edge2Image相媲美,但具有单步推断。

这项工作表明,单步扩散模型可以作为各种GAN学习目标的强大基础。

你想把一张晴天的照片转换成雨天的场景。

传统的方法可能需要大量成对的数据,即成千上万的晴天和雨天图片对,以此来训练一个模型学习这种转换。这种方法不仅耗时耗力,而且在很多情况下,找到精确匹配的成对图片是不可能的。

我们提出的方法,CycleGAN-Turbo,就是为了解决这个问题。它不需要成对的数据来学习将晴天转换为雨天的转换。相反,它通过一种叫做对抗学习的技术,让模型学习两种场景之间的差异。

模型包括两部分:一个生成器和一个判别器。生成器尝试从晴天图片生成雨天图片,而判别器则尝试区分生成的图片和真实的雨天图片。通过这种方式,生成器不断改进,最终能够生成非常真实的雨天效果图片。

此外,我们的方法只需要一步就能完成这种转换,这与传统的迭代去噪扩散模型相比,大大加快了推理速度。这意味着用户可以几乎实时地看到转换结果,而不是等待几分钟或更长时间。

例如,你有一张公园的照片,想看看雨天的样子。使用我们的CycleGAN-Turbo模型,你只需将这张晴天的公园照片输入模型,模型就会立即生成一张雨天效果的图片。

这个过程不需要寻找或提供一张相同场景的雨天图片作为参考,也不需要等待长时间的处理。

在这里插入图片描述

提出背景

针对条件扩散模型在图像生成应用中遇到的两个具体问题,本研究提出了一个一步图像到图像转换方法。

这个方法既适用于成对数据设置也适用于非成对数据设置,能够产生与现有条件扩散模型相媲美的视觉结果,同时将推理步骤减少到1步。

重要的是,我们的方法可以在没有成对图像的情况下训练。

子解法1:直接对条件信息进行编码

  • 问题特征:标准扩散适配器直接应用于一步设置效果不佳,因为噪声图直接影响输出结构,导致网络接收到冲突信息。
  • 解决方案:我们将条件信息直接馈送到UNet的噪声编码分支。这样,网络可以直接适应新的控制信号,避免噪声图和输入控制之间的冲突。
  • 示例:在将晴天图片转换为雨天图片的任务中,我们直接将“雨天”这一条件信息编码进模型,而不是同时处理噪声图和“晴天”图像,这避免了生成过程中可能出现的信息冲突,使转换更加准确和自然。

子解法2:整合三个独立模块

  • 问题特征:多阶段管道(编码器-UNet-解码器)导致图像细节丢失,尤其是在输入为真实图像时。
  • 解决方案:我们将编码器、UNet和解码器三个分离的模块合并为一个单一的端到端可训练架构。使用LoRA技术调整原始网络以适应新的控制信号和领域,这样减少了过拟合和微调时间。
  • 示例:在进行日转夜图像转换时,通过整合这三个模块,我们能够保留更多的图像细节,比如云层的纹理和光线的变化,从而生成更加逼真和细腻的夜景图像。

子解法3:保留高频细节

  • 问题特征:原有模型在图像到图像转换过程中丢失高频细节。
  • 解决方案:我们通过在编码器和解码器之间加入跳过连接(使用零卷积技术),来保留输入图像的高频细节。
  • 示例:在给图像添加或去除雨效果时,保留了雨滴对光线的微妙影响和地面反射等高频细节,使得转换后的图像更加栩栩如生。

这个一步图像到图像转换方法的提出,是基于条件扩散模型在实时交互式应用(如Sketch2Photo)和需要大规模成对数据集训练的应用中面临的限制。

通过上述子解法的组合,我们不仅解决了推理速度慢和数据成对要求高的问题,还实现了在无需成对数据的情况下进行训练,大大拓宽了模型的应用范围和灵活性。

相关工作

在这一节中,我们讨论了图像到图像转换领域的相关工作,并将我们的方法与现有方法进行了比较。接下来,我会通过一个具体的例子来说明我们的方法与相关工作之间的联系和差异。

例子:日转夜图像转换

现有方法
  • 成对图像转换方法:传统的成对图像转换方法,如pix2pix,依赖于成对的日景和夜景图片,使用重建损失和对抗损失结合的方式来学习从源域到目标域的映射。
  • 条件扩散模型:近期的一些工作,如ControlNet,引入了使用适配器(如门控变压器层或零卷积层)的有效微调技术,建立在预训练的文本到图像模型上,以实现更精准的图像转换。然而,这些方法仍需要大量的成对训练数据。
  • 非成对图像转换方法:对于缺少成对输入和输出图像的情况,提出了循环一致性、共享中间潜在空间、内容保留损失和对比学习等技术。尽管这些方法为非成对翻译任务探索了新的途径,但它们通常需要从头开始在新领域上进行训练。
我们的方法:CycleGAN-Turbo
  • 创新点:我们提出了一种既适用于成对也适用于非成对设置的一步图像到图像转换方法。与现有方法相比,我们的方法能够利用大规模预训练的扩散模型(如SD-Turbo),而无需成对的图像数据,显著加快了推理速度。
  • 应用实例:在日转夜图像转换任务中,我们的方法不需要成对的日景和夜景图片。通过对预训练的文本条件一步扩散模型进行调整,并利用对抗学习目标,我们能够直接将日景图像转换为夜景,同时保留高质量的图像细节和结构。
  • 与现有方法的区别:不同于需要大量成对数据和复杂训练过程的传统方法,我们的方法通过简化推理步骤并利用预训练模型,提高了转换效率和质量,特别是在处理非成对的图像转换任务时展现了更好的性能和适应性。

方法

这一部分提出了将预训练的文本到图像模型转化为图像到图像翻译模型的方法,专注于如何解决细节丢失问题和进行非成对训练。我们还探讨了扩展到成对设置和生成随机输出的可能性。以下是对方法的具体问题与解法的逻辑拆解:

解法1:添加条件输入

  • 问题特征:在一步模型中,噪声图直接控制生成图像的布局和姿态,经常与输入图像的结构矛盾。
  • 子解法1:直接向网络馈送条件输入,而不是使用额外的编码器。这是因为预训练模型生成的图像结构显著受到噪声图的影响。
  • 示例:在将日间驾驶图像转换为夜间的任务中,我们直接将“夜间”这一条件信息编码进模型,避免了由于引入额外编码器而造成的结构冲突。


生成器架构。

它将文本到图像模型整合到一个端到端的网络中,具有可调整的权重,在转换过程中保持输入图像结构。

模型利用LoRA适配器和零卷积进行微调,只需很小的权重改变。文本输入被编码,并与图像输入一起被模型处理,生成转换后的图像,如“夜间驾驶”的例子所示。

在这里插入图片描述

解释了向单步模型添加条件编码器分支的挑战。

左侧显示了标准的单步扩散模型将输入噪声转换为连贯的输出图像。

右侧说明了如何添加具有不同布局的条件编码器可能导致与输入噪声的冲突,影响输出图像的质量。

解法2:保留输入细节

  • 问题特征:图像编码器的设计虽然加快了训练和推理速度,但在图像翻译任务中,这种设计可能不理想,因为它不利于保留输入图像的细节。
  • 子解法2:在编码器和解码器网络之间添加跳过连接。这样可以在图像翻译过程中保留细腻的细节。
  • 示例:将白天的驾驶场景图像转换为夜晚,通过使用跳过连接的架构,可以显著地保留如文本、路标和远处汽车等细节。

在这里插入图片描述
强调了在转换过程中保留细节的跳过连接的重要性。

它提供了一个有无跳过连接的模型训练结果的比较,清晰地显示跳过连接有助于从输入的白天图像保留细节到转换后的夜晚图像。

解法3:非成对训练

  • 问题特征:现有的GAN基础或扩散基础方法通常需要在新领域上从头开始训练。
  • 子解法3:使用修改后的CycleGAN公式进行非成对翻译,同时利用预训练的扩散模型。
  • 示例:在没有成对数据集的情况下,将白天的图像转换为夜晚,我们的方法可以通过非成对的方式学习这种转换,同时保持循环一致性和对抗损失,确保翻译的质量。

扩展

  • 成对训练:我们适应我们的翻译网络G到成对设置,例如将边缘或草图转换为图像。
  • 生成多样化输出:通过在预训练模型的特征和模型权重之间进行插值,生成多样化的输出。

在这里插入图片描述
将提出的方法CycleGAN-Turbo与其他基于GAN的和基于扩散的方法进行了比较。

它展示了提出的方法在保持图像质量和结构上的优越性,跨越各种任务,如将马转换成斑马,或改变季节景色从夏天到冬天和冬天到夏天。

通过上述方法的组合,我们不仅解决了图像到图像翻译过程中的细节丢失问题,而且还实现了在没有成对数据的情况下进行训练,扩大了模型的应用范围和灵活性。


总结

解法:一步图像到图像转换方法

结合了CycleGAN的非成对图像翻译概念和Diffusion模型的强大生成能力,创造了CycleGAN-Turbo和Pix2Pix-Turbo这两个新模型。

在本文中,作者团队解决了条件扩散模型存在的两个问题:推理速度慢和对成对数据的依赖。

他们通过引入单步扩散模型来适应新任务和领域的方法,成功地整合了传统的CycleGAN和pix2pix模型的优点到扩散模型框架中。

这不仅提升了推理速度,还允许在无需成对数据的情况下进行训练。

  • CycleGAN-Turbo:本文中提到的CycleGAN-Turbo解决了传统CycleGAN需要循环一致性且训练周期长的问题,通过利用单步推理的Diffusion模型,提高了效率,并在非成对的场景转换任务中取得了良好的表现。

  • Pix2Pix-Turbo:类似地,Pix2Pix-Turbo改善了传统pix2pix模型需要成对数据并且转换速度慢的限制,通过采用单步推理扩散模型,实现了快速且准确的图像翻译。

“Turbo”则暗示了模型在效率和速度上的显著提升。

子解法1:端到端网络结构
  • 问题特征:在一步模型中,引入额外的条件编码器导致与噪声图之间的信息冲突。
  • 解决方案:整合编码器、UNet、和解码器为一个单一的端到端可训练架构,使用LoRA适配器直接对条件信息进行编码。
  • 示例:日转夜的图像转换中,不使用额外的条件编码器,而是直接将“夜间”条件馈入模型,避免信息冲突,保留更多夜景的细节。
子解法2:保留高频细节
  • 问题特征:现有模型在图像转换过程中丢失输入图像的高频细节。
  • 解决方案:引入跳过连接和Zero-Convs,以保持细节。
  • 示例:在生成细节丰富的夜间场景时,跳过连接允许模型保留车辆和路标等细节,这些细节在没有跳过连接的模型中可能会丢失。
子解法3:非成对训练适应性
  • 问题特征:传统方法需要成对的训练数据,而这在许多情况下是不可行的。
  • 解决方案:采用CycleGAN的策略,不需要成对数据,利用对抗学习进行训练。
  • 示例:将晴天的图像转换成雨天效果,即使没有相对应的雨天图像,也能通过模型学习这种场景转换。

扩展解法:应对多样化的图像生成需求

子解法4:成对训练的适应性
  • 问题特征:某些情况下存在成对的训练数据,需要模型能够适应这种设置。
  • 解决方案:修改网络以适应成对数据,如草图到图片的转换。
  • 示例:使用成对的草图和真实图片数据,训练模型以精确转换。
子解法5:生成多样化输出
  • 问题特征:一步模型难以生成变化丰富的输出,因为它倾向于忽略额外的输入噪声。
  • 解决方案:通过对预训练模型的特征和权重进行插值,实现多样化输出。
  • 示例:用户可通过调整插值系数,在绘画到图片的转换任务中生成风格各异的图像结果。

综上所述,这篇文章提出的一步图像到图像转换方法通过综合各子解法,有效解决了条件扩散模型面临的问题,并展示了在多种图像转换任务中的应用潜力。

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

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

相关文章

SRS-110VDC-4Z-10A静态中间继电器 35MM卡轨安装 JOSEF约瑟

系列型号: SRS-24VDC-2Z-8A静态中间继电器;SRS-24VDC-2Z-10A静态中间继电器; SRS-24VDC-2Z-16A静态中间继电器;SRS-24VAC-2Z-8A静态中间继电器; SRS-24VAC-2Z-10A 静态中间继电器;SRS-24VAC-2Z-16A静态中…

echarts睡眠分期

效果 echarts核心配置 option {tooltip: {trigger: axis // 触发方式为axis,表示数据项图形触发,此时坐标轴上的刻度也会显示提示信息。},xAxis: {show: false,type: category,data: [2024-02-02 12:00:01,2024-02-02 12:00:02,2024-02-02 12:00:03,20…

院子摄像头的监控

院子摄像头的监控和禁止区域入侵检测相比,多了2个功能:1)如果检测到有人入侵,则把截图保存起来,2)如果检测到有人入侵,则向数据库插入一条事件数据。 打开checkingfence.py,添加如下…

“AI与程序员的共存之路:全球首位AI程序员Devin的诞生及其深远意义“

全球首位AI程序员Devin诞生的深远影响 随着全球首位AI程序员Devin的亮相,一个关于未来技术与人类劳动力关系的讨论再次被推到风口浪尖。AI是否会成为程序员的"同行",甚至"对手",引起了业界广泛的关注和讨论。本文将从四个…

基于springboot+vue的个人云盘管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

基础:TCP四次挥手做了什么,为什么要挥手?

1. TCP 四次挥手在做些什么 1. 第一次挥手 : 1)挥手作用:主机1发送指令告诉主机2,我没有数据发送给你了。 2)数据处理:主机1(可以是客户端,也可以是服务端)&#xff0c…

题目:笨笨机器人(蓝桥OJ 3262)

问题描述: 解题思路: 用n位二进制数每位来表示每一步的状态,2的n次幂即使全部可能。遍历计算全部符合题意总数,再用cnt/(2的n次幂)即答案。 需要注意的是,四舍五入后四位的方法:round(),可以四舍…

RN导航路由配置

tabbar底部导航栏 安装依赖包 需要安装四个依赖包(自己找适配自己RN的导航版本,我这里RN下面的依赖目前都是最新的,如下图所示)react-navigation/native 网站 yarn add react-navigation/native yarn add react-navigation/botto…

C++进阶之路---C++11相关特性 | 左值引用 | 右值引用 | 完美转发

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了C98称为C11之…

网络工程师之路由交换试题篇

网络工程师之路由交换试题篇 试题练习知识点练习方案设计案例一 试题练习 知识点练习 1.局域网和广域网的特点。 2.常见的网络拓扑类型有哪些,简述特点。 3.常见的传输介质有哪些,光纤连接器种类有哪些, 4.VRP系统视图中,用户访…

pcl 凸包ConvexHull

pcl 凸包ConvexHull 头文件等 #include <pcl/surface/convex_hull.h>typedef pcl::PointXYZ PointT; typedef pcl::PointCloud<PointT> CloudT; typedef CloudT::Ptr CP 代码 CP PSO::tubao(CP cloud) {pcl::ConvexHull<PointT> hull;hull.setInputCloud…

Redis入门到实战-第三弹

Redis入门到实战 Redis数据类型官网地址Redis概述Redis数据类型介绍更新计划 Redis数据类型 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#…

【Mysql数据库基础03】分组函数(聚合函数)、分组查询

分组函数(聚合函数&#xff09;、分组查询 0 该博客所要用的数据库表的属性1 分组函数1.1 简单的使用1.2 是否忽略null值1.3 和关键字搭配使用1.4 count函数的详细介绍1.5 练习 2 分组查询Group by2.1 简单的分组查询2.2 练习 3 格式投票:yum: 0 该博客所要用的数据库表的属性 …

树,二叉树与堆

这里写目录标题 树树的概念树的相关概念树的表示 二叉树二叉树的概念满二叉树与完全二叉树二叉树的重要性质二叉树的存储结构 堆二叉树的顺序存储堆的概念堆的实现堆插入和删除数据 树 树的概念 树的概念&#xff1a; 树是一种非线性的数据结构&#xff0c;它是由n&#xff08…

Teable——强大的在线数据电子表格

公众号&#xff1a;【可乐前端】&#xff0c;每天3分钟学习一个优秀的开源项目&#xff0c;分享web面试与实战知识&#xff0c;也有全栈交流学习摸鱼群&#xff0c;期待您的关注! 每天3分钟开源 hi&#xff0c;这里是每天3分钟开源&#xff0c;很高兴又跟大家见面了&#xff0…

在线获取文本列表并集计算器

具体请前往&#xff1a;在线文本并集计算工具

基于STC12C5A60S2系列1T 8051单片机可编程计数阵列CCP/PCA/PWM模块的捕获模式(外部中断)应用

基于STC12C5A60S2系列1T 8051单片机可编程计数阵列CCP/PCA/PWM模块的捕获模式(外部中断)应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍STC12C5A60S2系列1T 805…

学历提升外贸函电试题及答案,分享几个实用搜题和学习工具 #学习方法#笔记#微信

随着信息技术的快速发展&#xff0c;搜题软件应运而生&#xff0c;为大学生提供了便捷的问题解答方式。 1.九超查题 这个公众号比较有趣&#xff0c;它也是可以搜网课题目&#xff0c;复制题目到窗口即可。 题目解析很详细&#xff0c;题库丰富&#xff0c;有较多的学习资料…

docker desktop 登录不上账号

配置走代理&#xff08;系统全局&#xff09;也没用 解决方法 参考博文&#xff1a; https://blog.csdn.net/weixin_37477009/article/details/135797296 https://adoyle.me/Today-I-Learned/docker/docker-desktop.html 下载 Proxifiler 配置 Proxifiler

掌握这6大工具,自媒体ai写作之路畅通无阻! #知识分享#媒体#科技

从事自媒体运营光靠自己手动操作效率是非常低的&#xff0c;想要提高运营效率就必须要学会合理的使用一些辅助工具。下面小编就跟大家分享一些自媒体常用的辅助工具&#xff0c;觉得有用的朋友可以收藏分享。 1.元芳写作 这是一个微信公众号 面向专业写作领域的ai写作工具&am…