当前位置: 首页 > news >正文

昇思25天学习打卡营第20天|CycleGAN图像风格迁移互换

模型简介
CycleGAN(Cycle Generative Adversarial Network) 即循环对抗生成网络,来自论文 Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 。该模型实现了一种在没有配对示例的情况下学习将图像从源域 X 转换到目标域 Y 的方法。

该模型一个重要应用领域是域迁移(Domain Adaptation),可以通俗地理解为图像风格迁移。其实在 CycleGAN 之前,就已经有了域迁移模型,比如 Pix2Pix ,但是 Pix2Pix 要求训练数据必须是成对的,而现实生活中,要找到两个域(画风)中成对出现的图片是相当困难的,因此 CycleGAN 诞生了,它只需要两种域的数据,而不需要他们有严格对应关系,是一种新的无监督的图像迁移网络。

就好比我们人类认知的时候,不可能所有的内容都学一遍,基本都是举一反三的,这个模型更加接近人类学习的过程,基本能做到举一反三。他不是需要严格对应的数据。

# 可视化
# 通过 create_dict_iterator 函数将数据转换成字典迭代器,然后使用 matplotlib 模块可视化部分训练数据。
import numpy as np
import matplotlib.pyplot as pltmean = 0.5 * 255
std = 0.5 * 255plt.figure(figsize=(12, 5), dpi=60)
for i, data in enumerate(dataset.create_dict_iterator()):if i < 5:show_images_a = data["image_A"].asnumpy()show_images_b = data["image_B"].asnumpy()plt.subplot(2, 5, i+1)show_images_a = (show_images_a[0] * std + mean).astype(np.uint8).transpose((1, 2, 0))plt.imshow(show_images_a)plt.axis("off")plt.subplot(2, 5, i+6)show_images_b = (show_images_b[0] * std + mean).astype(np.uint8).transpose((1, 2, 0))plt.imshow(show_images_b)plt.axis("off")else:break
plt.show()

在这里插入图片描述
这里可以看到现在都是比较正常的图片,颜色,大小都比较合理。

下面是模型转换后的图片结果,可以看到他把水果的颜色做了准确替换,其他部分包括图三人物的颜色被准确保留。
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MVC 返回集合方法,以及分页
  • FPGA入门-自用
  • 语音识别HResults统计工具以及字根据关键词进行合并
  • PostgreSQL关闭数据库服务的三种模式
  • Re:从零开始的C++世界——类和对象(上)
  • vscode终端(控制台打印乱码)
  • 【精品资料】模块化数据中心解决方案(33页PPT)
  • LLM——langchain 与阿里 DashScop (通义千问大模型) 和 DashVector(向量数据库) 结合使用总结
  • 2024年是不是闰年?
  • IAR全面支持芯驰科技E3系列车规MCU产品E3119/E3118
  • python+selenium-UI自动框架之[优化]元素查找和BasePage页面
  • 跨域问题出现的原因,怎么解决?
  • 《Windows API每日一练》9.25 系统菜单
  • Ubuntu18.04安装ROS
  • 【解密】记一次辽宁省某综合实践教学管理平台加解密算法分析
  • JavaScript-如何实现克隆(clone)函数
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Angular 响应式表单 基础例子
  • laravel5.5 视图共享数据
  • Web Storage相关
  • 分布式事物理论与实践
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 蓝海存储开关机注意事项总结
  • 如何合理的规划jvm性能调优
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 用mpvue开发微信小程序
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • #include<初见C语言之指针(5)>
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #数据结构 笔记三
  • (a /b)*c的值
  • (C#)一个最简单的链表类
  • (C)一些题4
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (六)Hibernate的二级缓存
  • (排序详解之 堆排序)
  • (算法设计与分析)第一章算法概述-习题
  • .gitignore不生效的解决方案
  • .NET 8 跨平台高性能边缘采集网关
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .netcore 获取appsettings
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .NET文档生成工具ADB使用图文教程
  • @31省区市高考时间表来了,祝考试成功
  • @Builder注释导致@RequestBody的前端json反序列化失败,HTTP400
  • @Mapper作用
  • @SpringBootApplication 包含的三个注解及其含义
  • [04]Web前端进阶—JS伪数组
  • [Angular] 笔记 6:ngStyle
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [AX]AX2012开发新特性-禁止表或者表字段