StarGAN 使用指南:一个模型实现多个域的迁移

StarGAN 使用指南

    • 网络结构
    • 多数据集训练
    • 使用指南
    • StarGAN v2

 


论文地址:https://arxiv.org/pdf/1711.09020.pdf

我们有猫的图片集、狗的图片集和兔子的图片集。

目标是让猫的图片看起来像狗的图片,狗的图片看起来像兔子的图片,兔子的图片看起来像猫的图片。

这是一个多领域迁移的问题。

如果使用传统 GAN 不能解决多领域迁移的问题,只能两个领域的互相转化,只能用多个传统 GAN。

那有没有什么方法,一个模型就能实现多个域的迁移呢?StarGAN。

网络结构

传统 GAN 和 StarGAN,在域迁移上差异:

传统的域迁移 需要在不同的两个域之间相互进行特征提取,这就导致在有 k 个域的情况下需要 k*(k-1) 个生成器。

比如上文的 3 个数据集,需要 3*2 个生成器来完成所有可能的域之间的转换。

  • 猫到狗的生成器:用于将猫的图片转换为狗的图片
  • 猫到兔子的生成器:用于将猫的图片转换为兔子的图片
  • 狗到猫的生成器:用于将狗的图片转换为猫的图片
  • 狗到兔子的生成器:用于将狗的图片转换为兔子的图片
  • 兔子到猫的生成器:用于将兔子的图片转换为猫的图片
  • 兔子到狗的生成器:用于将兔子的图片转换为狗的图片

而 starGAN 则解决了这个问题,自始至终只需要一个生成器。

核心思想:通过一个域标签向量来控制多个域的转换。

看上图,生成器(蓝色区域):

  • 左一:把输入图像(Input image)、目标域(Target domain)拼接,输入生成器(G),得到假的图片(Fake image)

  • 左二:再把假图(Fake image)、原来域(Original domain)拼接,输入生成器(G),得到重建图像(Reconstructed image)

  • 循环箭头:对比重建图像和原图之间,要最小化误差,循环这个过程(变到目标域,再变回源域)

判别器(红色区域):

  • 把假图(Fake image)、真实图像(Real image)分别输入判别器

  • 判别器不仅要判断真假,还要判断来自哪个域

多数据集训练

假设我们要训练一个模型来识别动物的图片,我们有三个数据集:猫的图片集、狗的图片集和兔子的图片集。

如果我们只使用单个数据集来训练模型,那么模型可能会对其他动物的图片识别能力较弱。

多数据集训练:如果我们将三个数据集合并成一个大的数据集,并在训练过程中同时使用这三个数据集,模型就可以获得更多的样本和不同种类的动物图片,从而提高识别能力。

判别器部分:

  • CelebA 是人脸数据集(黄色)

  • RaFD 是人脸表情数据集(绿色)

生成器部分:

  • 蓝色框 Mask vector 是掩码向量,只选择 CelebA 训练或者 RaFD 训练

  • 黄色框 CelebA 是人脸数据集

  • 绿色框 RaFD 是人脸表情数据集

使用指南

项目代码:https://github.com/yunjey/stargan.git

StarGAN v2

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试前自测题,接口自动化测试过程中怎么处理接口依赖?

面试的时候经常会被问到在接口自动化测试,过程中怎么处理接口依赖?首先我们要搞清楚什么是接口依赖。 前言 01.什么是接口依赖 接口依赖指的是,在接口测试的过程中一个接口的测试经常需要依赖另一个或多个接口成功请求后的返回数据。 那怎么…

Stable Diffusion WebUI训练Lora测试XYZ显示例图

方式一 1.1 选择模型放入目录 将模型放入sd项目的models\Lora\目录,尽量保持和其他模型分开。 sd中显示如下: 1.2 脚本X/Y/Zplot选择 X轴类型:提示词搜索/替换 X轴值:NUM,000001,000002, 000003, 000004, 000005, 000006, 000007, 000008, 000009, 000010 Y轴类型:提…

Mysql进阶-事务锁

前置知识-事务 事务简介 事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 就比如: 张三给李四转账1000块钱&#xff0…

文件下载保存接口的创建_FastAPI

文件下载保存接口的创建 功能描述实现代码功能演示 功能描述 在网页上对数据进行下载保存处理。例如点击网页上的保存按钮,会把文件下载到本地。下面就是对下载保存功能的实现。 实现代码 gpt_router.get("/export_data") async def export_data():# 需…

应用在触摸开关触控屏中的电容式触摸芯片

触摸开关是一种电子开关,使用时轻按开关按钮即可打开开关。松开手时,开关断开,内部结构由金属弹片受力弹动断开或者由电容值,电阻值等电气参数改变而控制。触摸开关一般是指应用触摸感应芯片原理设计的一种墙壁开关,是…

nginx部署和安装-后端程序多端口访问-后端代理设置

部分补充 查看nginx是否安装http_ssl_module模块 ./nginx -V 看到有 configure arguments: --with-http_ssl_module, 则已安装。 如果没有安装:参考文档 nginx官网地址:nginx: download 这里下载nginx-1.18.0稳定版tar.gz 下载后,利用…

JavaScript 数组方法 reduce() 的用法

一、概述 在JavaScript中,reduce()方法是一个非常实用的数组方法,它接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。这个方法在处理数组…

OpenTelemetry系列 - 第4篇 OpenTelemetry K8S生态

目录 一、【Helm】添加OTel Helm repo二、【Helm Chart】OTel Collector2.1 daemonset2.2 deloyment 三、【K8S Operator】OTel Operator3.1 安装OTel Operator3.2 部署OpenTelemetryCollector3.2.1 Deloyment Mode3.2.2 DeamonSet Mode3.2.3 StatefulSetMode3.2.4 Sidecar Mod…

基于SUMO和强化学习的交通优化

本文旨在解释强化学习方法如何通过 TraCl 与 SUMO 配合使用,以及这如何有利于城市交通管理和自动驾驶车辆的路径优化。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REV…

Node包管理工具 - nvm、npm、yarn、cnpm、pnpm

转载说明 原文地址 简介 nvm : 可以实现一台电脑,拥有多个版本的Node npm : node package manager 下载Node后自带的一个包管理工具 yarn : npm 的升级版,更优秀 cnpm : 配置下载非官方地址的依赖(淘宝、华为、腾讯镜像) pnpm :…

day70

今日回顾 session 中间件 auth session Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它能支持更…

辛普森距离(SD,Sampson Distance)

定义 Sampson误差是复杂性介于代数误差和几何误差之间,但非常近似于几何误差的一种误差。 应用 SLAM对极几何中使用到SD来筛选内点: 1.随机采样8对匹配点 2.8点法求解基础矩阵 ​; 3.奇异值约束获取基础矩阵F; 4.计算误差&…

通达信指标公式19:龙虎榜股票池——主力控盘度的计算方法

0.小红牛本指标,选股的思路说明:控盘度,又称主力控盘,是指主力控制了某只股票的大部分流通股,从而控制了股票的价格。主力控盘的目的通常是为了获取更多的收益,通过控制股票价格来实现其策略。所以首要分析…

(04730)电路分析基础之电阻、电容及电感元件

04730电子技术基础 语雀(完全笔记) 电阻元件、电感元件和电容元件的概念、伏安关系,以及功率分析是我们以后分析电 路的基础知识。 电阻元件 电阻及其与温度的关系 电阻 电阻元件是对电流呈现阻碍作用的耗能元件,例如灯泡、…

外包干了2个月,技术倒退2年。。。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

现代版“田忌赛马”:IPMT如何实现资源利用最大化

摘要:在流程调整和产品重整过程中,IPMT发挥了至关重要的作用。IPMT是什么?它的职责到底是什么?每个公司必须要有IPMT吗? 1992年,IBM在激烈的市场竞争下,遭遇到了严重的财政困难,利润…

机器学习-ROC曲线:技术解析与实战应用

本文全面探讨了ROC曲线(Receiver Operating Characteristic Curve)的重要性和应用,从其历史背景、数学基础到Python实现以及关键评价指标。文章旨在提供一个深刻而全面的视角,以帮助您更好地理解和应用ROC曲线在模型评估中的作用。…

【新手解答8】深入探索 C 语言:递归与循环的应用

C语言的相关问题解答 写在最前面问题:探索递归与循环在C语言中的应用解析现有代码分析整合循环示例代码修改注意事项结论 延伸:递归和循环的退出条件设置解析使用递归使用循环选择适合的方法 写在最前面 一位粉丝私信交流,回想起了当初的我C…

Zabbix HA高可用集群搭建

Zabbix HA高可用集群搭建 Zabbix HA高可用集群搭建一、Zabbix 高可用集群(Zabbix HA)二、部署Zabbix高可用集群1、两个服务端配置1.1主节点 Zabbix Server 配置1.2 备节点 Zabbix Server 配置1.3 主备节点添加监控主机1.4 查看高可用集群状态 2、两个客户…

【数据结构与算法】JavaScript实现二叉搜索树

文章目录 一、二叉搜索树的封装1.插入数据2.遍历数据2.1.先序遍历2.2.中序遍历2.3.后续遍历 3.查找数据3.1.查找最大值&最小值3.2.查找特定值 4.删除数据4.1.情况1:没有子节点4.2.情况2:有一个子节点4.3.情况3:有两个子节点4.4.完整实现 …