【万物皆可 GAN】CycleGAN 原理详解

  • 概述
  • CycleGAN 可以做什么
    • 图片转换
    • 图片修复
    • 换脸
  • CycleGAN 网络结构
  • CycleGAN 损失函数

概述

CycleGAN (Cycle Generative Adversarial Network) 即循环对抗生成网络. CycleGAN 可以帮助我们实现图像的互相转换. CycleGAN 不需要数据配对就能实现图像的转换.


从上图我们可以看到, 通过使用 CycleGAN 我们实现了马到斑马的转换.

CycleGAN 可以做什么

答: 万物皆可 GAN

图片转换


图片修复


换脸

CycleGAN 网络结构

CycleGAN 由左右两个 GAN 网络组成. G(AB) 负责把 A 类物体 (斑马) 转换成 B 类物体 (正常的马). G(BA) 负责把 B 类物体 (正常的马) 还原成 A 类物体 (斑马).


如果我们只有 G(AB) 一个网络, 生成器 (Generator) 就会偷懒, 用随意任何一匹马蒙混过关, 如图底部. 所以我们需要两个 GAN 网络, 通过循环约束生成器 (Generator).


如图, 完整的 CycleGAN 由上下两部分组成, 上下两部分的唯一区别在于输入. 一个输入是 A 类, 生成 B 类; 另一个输入是 B 类, 生成 A 类.

CycleGAN 损失函数

CycleGAN 的损失函数总共有 2 组, 每组 4 个, 总计 8 个. 如图:

其中:

  • D_A & D_B: 是判断器的损失
  • G_A & G_B: 是生成器的损失
  • cycle_A & cycle_B: 是原始图像和还原图像的损失, 即 A => B => A, 初始和和还原 A 的损失
  • idt_A & idt_B: 是映射损失, 即用真实的 B 当做输入, 查看生成器是否会原封不动的输出 (B => B?)

【万物皆可 GAN】CycleGAN 原理详解相关推荐

  1. 【Android架构师java原理详解】二;反射原理及动态代理模式

    前言: 本篇为Android架构师java原理专题二:反射原理及动态代理模式 大公司面试都要求我们有扎实的Java语言基础.而很多Android开发朋友这一块并不是很熟练,甚至半路初级底子很薄,这给我 ...

  2. 【万物皆可 GAN】生成对抗网络生成手写数字 Part 1

    [万物皆可 GAN]生成对抗网络生成手写数字 Part 1 概述 GAN 网络结构 GAN 训练流程 模型详解 生成器 判别器 概述 GAN (Generative Adversarial Netwo ...

  3. EMD算法之Hilbert-Huang Transform原理详解和案例分析

    目录 Hilbert-Huang Transform 希尔伯特-黄变换 Section I 人物简介 Section II Hilbert-Huang的应用领域 Section III Hilbert ...

  4. SVM分类器原理详解

    SVM分类器原理详解 标签: svm文本分类java 2015-08-21 11:51 2399人阅读 评论(0) 收藏 举报  分类: 数据挖掘 文本处理(16)  机器学习 分类算法(10)  目 ...

  5. 【GAN优化】详解SNGAN(频谱归一化GAN)

    今天将和大家一起学习具有很高知名度的SNGAN.之前提出的WGAN虽然性能优越,但是留下一个难以解决的1-Lipschitz问题,SNGAN便是解决该问题的一个优秀方案.我们将先花大量精力介绍矩阵的最 ...

  6. AI 以 5:0 比分击败美顶级飞行员;经典对抗攻击 Deepfool 原理详解

    开发者社区技术周刊又和大家见面了,快来看看这周有哪些值得我们开发者关注的重要新闻吧. 2019 年全球公共云服务市场总额达 2334 亿美元 新里程碑!IBM 宣布最高量子体积 64 马斯克将通过实时 ...

  7. 生成对抗网络(GAN)原理详记

    生成对抗网络(GAN)原理详记 前言 一:什么是生成对抗网络(GAN) 1.GAN是什么 2.生成任务 3.GAN的数学描述 二:各类GAN 1.DCGAN (1) DCGAN网络结构 (2) DCG ...

  8. Web网络安全漏洞分析,SQL注入原理详解

    本文主要为大家介绍了Web网络安全漏洞分析SQL注入的原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪 一.SQL注入的基础 1.1 介绍SQL注入 SQL注入就是 ...

  9. 【万物皆可 GAN】给马儿换皮肤

    [万物皆可 GAN]给马儿换皮肤 概述 真假斑马 实现流程 代码 执行流程 执行结果 概述 CycleGAN (Cycle Generative Adversarial Network) 即循环对抗生 ...

最新文章

  1. News Break!沈向洋投资并出任美国版“今日头条”董事长
  2. 23 Merge k Sorted Lists
  3. gitlab增加日志
  4. 如何快速弄懂一个新模型_如何评估创业项目是否靠谱?一个新的模型 | 创创锦囊...
  5. 华为鸿蒙山海,华为包圆了整部《山海经》,鸿蒙是何意?还有青龙白虎朱雀玄武?...
  6. (王道408考研数据结构)第七章查找-第二节1:顺序查找及其优化
  7. python 程序bug解决方案
  8. erlang 读取confg文件异常 could not start kernel pid error in config file
  9. js获取url上的数据;angularjs获取url上的参数
  10. k-means聚类分析的C++实现
  11. 基于扩展卡尔曼滤波的slam
  12. 【coq】函数语言设计 笔记 02 - induction
  13. java获取北京时间系统时间全球各地时间。
  14. javascript高级一
  15. java变量_Java变量
  16. 股票及炒股票的基础知识
  17. [pandas基础]Pandas Series和Pandas DataFrame基础操作
  18. 输出一个 n 阶的方阵
  19. 以太坊-Ethereum Studio工具入门-快速开始
  20. 制造业BOM 工厂BOM管理系统 简单实用BOM管理系统,树形结构,目视化BOM管理系统,集成ERP、SAP的BOM管理系统,快速上线BOM管理系统

热门文章

  1. CPLD与16C554在航空发动机参数采集器中的应用——转载
  2. 50个Pandas的奇淫技巧:向量化字符串,玩转文本处理
  3. 互联网人出游必备清单
  4. Linux 各类设置、配置、使用技巧参考,Linux使用集锦
  5. opencv检测某个区域rgb变化_使用OpenCV和C ++检测RGB颜色间隔
  6. 串口助手测试NB-IoT模块与华为OceanConnect平台通信(BC35-G模块、非常详细)
  7. 史上最简单的Elasticsearch教程:SpringBoot集成Elasticsearch 实时流量监测平台
  8. FL Studio中的音频剪辑功能
  9. TiDB和MongoDB分片集群架构比较
  10. 你到底是读的书少还是读的太多了