CycleGAN算法简述

embedded/2024/11/13 9:20:37/

1. 简介

CycleGAN是一种图像到图像的翻译模型,旨在无配对训练数据的情况下完成跨域图像转换。传统方法需要成对的输入-输出数据,但这种配对数据的获取往往代价高昂且难以实现。CycleGAN通过使用无配对数据的训练策略,实现从一个图像域到另一个域的有效转换,使其在艺术风格迁移、季节变化和对象转换等任务中表现出色。

2. 创新点

CycleGAN的核心创新在于引入了循环一致性损失(Cycle Consistency Loss),使得即使在没有配对数据的情况下,也能实现合理的图像翻译。该损失函数确保跨域映射的一致性,即从域 ( X ) 转换到域 ( Y ),再从 ( Y ) 转换回 ( X ) 时,得到的结果应尽可能接近原始图像。此外,CycleGAN结合了生成对抗网络(GAN),在保持图像真实感的同时,实现无配对数据的图像转换。

3. 网络结构

CycleGAN的模型结构包含两个生成器( G ) 和 F 两个判别器( D_X ) 和 ( D_Y ),各模块的结构如下:

  • 生成器(G和F):生成器网络用于完成跨域转换,其中 ( G ) 将域 ( X ) 的图像转换到域 ( Y ),( F ) 则将 ( Y ) 转换回 ( X )。生成器基于卷积神经网络(CNN),通过残差块捕捉图像中的复杂模式。

  • 判别器(DX和DY):CycleGAN采用PatchGAN结构的判别器,PatchGAN关注图像的局部特征,能够对小块图像(如70×70的图像块)进行真假分类。PatchGAN设计减少了模型参数量,在保证生成图像质量的同时提高判别效率。

3.1. PatchGAN原理

PatchGAN判别器通过对图像的局部70×70像素块进行真假分类,从而在判别时聚焦于图像的局部高频特征。PatchGAN比全图判别器更轻量化,允许模型以全卷积方式处理任意尺寸的图像,同时能够提升生成器在图像细节层次上的表现。

4. 关键公式解析

CycleGAN的关键数学公式如下:

a. 对抗损失

对于从域 ( X ) 到域 ( Y ) 的转换,其对抗损失定义为:

L GAN ( G , D Y , X , Y ) = E y ∼ p data ( y ) [ log ⁡ D Y ( y ) ] + E x ∼ p data ( x ) [ log ⁡ ( 1 − D Y ( G ( x ) ) ) ] \mathcal{L}_{\text{GAN}}(G, D_Y, X, Y) = \mathbb{E}_{y \sim p_{\text{data}}(y)}[\log D_Y(y)] + \mathbb{E}_{x \sim p_{\text{data}}(x)}[\log (1 - D_Y(G(x)))] LGAN(G,DY,X,Y)=Eypdata(y)[logDY(y)]+Expdata(x)[log(1DY(G(x)))]

该目标使生成器 ( G ) 生成的图像在判别器 ( D_Y ) 看来与真实的 ( Y ) 域图像难以区分。CycleGAN在从 ( Y ) 到 ( X ) 的转换中也定义了类似的对抗损失。

b. 循环一致性损失

循环一致性损失确保转换后的图像尽量保持原图内容,其定义为:

L cyc ( G , F ) = E x ∼ p data ( x ) [ ∥ F ( G ( x ) ) − x ∥ 1 ] + E y ∼ p data ( y ) [ ∥ G ( F ( y ) ) − y ∥ 1 ] \mathcal{L}_{\text{cyc}}(G, F) = \mathbb{E}_{x \sim p_{\text{data}}(x)}[\| F(G(x)) - x \|_1] + \mathbb{E}_{y \sim p_{\text{data}}(y)}[\| G(F(y)) - y \|_1] Lcyc(G,F)=Expdata(x)[F(G(x))x1]+Eypdata(y)[G(F(y))y1]

该损失鼓励 F ( G ( x ) ) ≈ x F(G(x)) \approx x F(G(x))x G ( F ( y ) ) ≈ y G(F(y)) \approx y G(F(y))y,确保双向映射的一致性,

c. 全损失函数

CycleGAN的最终目标函数结合了对抗损失与循环一致性损失:

L ( G , F , D X , D Y ) = L GAN ( G , D Y , X , Y ) + L GAN ( F , D X , Y , X ) + λ L cyc ( G , F ) \mathcal{L}(G, F, D_X, D_Y) = \mathcal{L}_{\text{GAN}}(G, D_Y, X, Y) + \mathcal{L}_{\text{GAN}}(F, D_X, Y, X) + \lambda \mathcal{L}_{\text{cyc}}(G, F) L(G,F,DX,DY)=LGAN(G,DY,X,Y)+LGAN(F,DX,Y,X)+λLcyc(G,F)

其中, λ \lambda λ 用于平衡对抗损失和循环一致性损失。

6. 损失函数与训练稳定性

为提升训练稳定性,CycleGAN使用最小平方损失替代传统的对数损失,减少了梯度爆炸问题,也减轻了模式崩溃的现象。此外,判别器的更新基于生成图像的历史缓冲区,帮助减少模型振荡并提高训练稳定性。

7. 实验结果

CycleGAN在多项任务上表现优异:

  • 风格迁移:能够将绘画风格迁移到现实照片中(如将莫奈画风迁移到现实照片),生成效果优于传统的单图风格迁移方法。

  • 对象转换:在图像类间转换(如马与斑马的互转)上效果显著。

  • 季节转换:能够成功实现夏冬季景的转换(如将夏季风景转换为冬季风景)。

8. 训练数据

CycleGAN在实验中使用了多种无配对的数据集,如画作到照片、季节转换和对象转换任务。数据来源于ImageNet、Flickr和WikiArt,每个域的训练数据约有1000张图片,图像经过标准化预处理。

参考文献

Zhu, J., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. arXiv preprint arXiv:1703.10593

备注

个人水平有限,有问题随时交流~


http://www.ppmy.cn/embedded/136433.html

相关文章

(十三)JavaWeb后端开发——MySQL2

目录 1.DQL数据查询语言 1.1基本查询 1.2条件查询 where关键字 1.3分组查询 1.4排序查询 1.5分页查询 2.多表设计 3.多表查询——联查 4.多表查询——子查询​ 5.MySQL 事务 6.事务管理(事务进阶) 7.MySQL 索引 1.DQL数据查询语言 分为五大…

这是一个bug求助帖子--安装kali 遇坑

第一个报错 介质:kali-linux-2024.1-live-amd64 环境:Dell笔记本 i510代cpu 现象及操作 安装完以后 然后我换了个国内的源进行了以下操作 apt-get update:更新源列表 apt-get upgrade:更新所有可以更新的软件包 然后进行清理。…

数据结构:时间复杂度空间复杂度

专栏说明:本专栏用于数据结构复习,文章中出现的代码由C语言实现,在专栏中会涉及到部分OJ题目,如对你学习有所帮助,可以点赞鼓励一下博主喔💓 博客主页:Duck Bro 博客主页系列专栏:数…

每日一题——第一百二十一题

题目&#xff1a;找到一串字符串中最长的单词&#xff0c;打印单词&#xff0c;并打印其长度和开始的索引下标 #pragma once#include<stdio.h> #include<stdbool.h> #include<ctype.h> #include<string.h>//找到一串字符串中最长的单词&#xff0c;打…

Linux的目录结构 | 命令的认识 | 相对路径 | 绝对路径 | 常用命令(一)

文章目录 1.Linux的目录结构2.命令的认识3.相对路径和绝对路径4.常用命令&#xff08;目录文件操作&#xff09;5.常用命令&#xff08;文本查看&#xff09; 1.Linux的目录结构 \ &#xff1a;根目录 root&#xff1a;root用户的工作目录 home&#xff1a;普通用户的工作目录 …

前端零基础学习Day-Eight

CSS字体和文本样式 CSS文字样式 字体&#xff1a;font-family 语法&#xff1a;font-family:[字体1][,字体2][,...] p{font-family:"微软雅黑","宋体","黑体";} 含空格字体名和中文&#xff0c;用英文引号括起 属性值&#xff1a;具体字体名&…

CTF-RE 从0到N: 迈向混淆代码分析的第一步!分析控制流扁平化后的代码!

Control Flow Flattening&#xff08;控制流扁平化&#xff09;是一种代码混淆技术&#xff0c;主要用于提高程序的安全性&#xff0c;防止逆向工程和代码分析。它通过改变程序的控制流结构&#xff0c;使得代码的执行路径更加复杂和难以理解。具体来说&#xff0c;这种技术会将…

分享:文本转换工具:PDF转图片,WORD转PDF,WORD转图片

前言 鉴于网上大多数在线转换工具要么需要收费&#xff0c;要么免费后但转换质量极差的情况&#xff0c;本人开发并提供了PDF转图片&#xff0c;WORD转PDF&#xff0c;WORD转图片等的文本转换工具。 地址 http://8.134.236.93/entry/login 账号 账号&#xff1a;STAR001&a…