深度学习(34)—— StarGAN(1)

深度学习(34)—— StarGAN(1)

文章目录

  • 深度学习(34)—— StarGAN(1)
    • 1. 背景
    • 2. 基本思路
    • 3. 整体流程
    • 4. StarGAN v2
      • (1) 网络结构
      • (2) mapping network
      • (3) style encoder
      • (4)Loss

和之前一样还是先理论后代码,所以这一讲还是StarGAN的理论。

1. 背景

先回忆一下,之前写的cyclegan,可以实现两个域之间的相互转换。即下面这几种情况:

  • 将输入人像转化为我想要的图像发色
  • 将输入人像转化为我想要的性别
  • 将输入人像转化为我想要的年龄
  • 将输入人像转化为我想要的肤色
    在这里插入图片描述

上面这种两个域之间的转化使用cyclegan就可以实现,但是如果想要实现在K个域的相互转化,使用cyclegan就需要训练k(k-1)个generator网络,时间成本和计算成本都太大。
在这里插入图片描述
可不可以只训练一个模型,根据我的reference图片的特征将source转化为我想要的图片?
为了满足这一需求,就出现了StarGAN

2. 基本思路

  • 使用StarGAN,只需要训练一个generator。相比cyclegan,StarGAN在输入时增加了类型编码(可以理解为【转化肤色,转化年龄,转化性别,转化发色】的编码)
    在这里插入图片描述
  • 无论是generator还是discriminator都增加这样的编码向量
    在这里插入图片描述

3. 整体流程

在这里插入图片描述
generator

  • 输入一张image和目标域 target domain的编码(向量) 经过generator生成targaet domain的fake image
  • 将得到的fake image 和 原图的domain输入generator生成restructed image(与input image 做loss)
  • 此时将fake image输入discriminator中让他辨别fake image的真假,还要输出domain 的编码,试图骗过discriminator

discriminator

  • 在训练过程中,输入real image 和 fake image,经过discriminator不但要辨别每张image的真假,还要辨别每张照片属于的domain编码

4. StarGAN v2

上面说的都是StarGANv1,他针对domain做了one-hot 编码,一个编码一个风格。
v2相对于v1的进步是用实际的特征向量作为风格的编码,在特征基础上进行提取和分析。v1中只使用one-hot编码学不到每种风格的具体知识

(1) 网络结构

在这里插入图片描述
相较于v1,v2主要对每种风格进行编码,使用到 mapping network 和 style encoder

(2) mapping network

随机生成的一个向量编码latent code 和一张图片经过网络后将当前的latent coder 编码成属于该图片风格的特征,用于代表该风格domain的编码

(3) style encoder

输入一张图片经过该encoder可以得到属于这张照片的风格domain编码。

(4)Loss

在正常的GAN网络基础上增加了三个额外的loss

  • style_loss:mapping 得到的style 编码要尽可能与style得到的style 编码相似。
  • diversity_loss:同一张图变换为不同风格,变换后的两者要尽可能的存在较大差异(差异多样性)
  • cycle_loss :转化的是风格,不能主体变得太离谱,真实的和rec之间的loss【和cyclegan中的一个loss 一样】

okk,今天就先这么多,代码讲解,明天吧,整个项目,老地方github上!

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

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

相关文章

【机器学习】西瓜书习题3.5Python编程实现线性判别分析,并给出西瓜数据集 3.0α上的结果

参考代码 结合自己的理解,添加注释。 代码 导入相关的库 import numpy as np import pandas as pd import matplotlib from matplotlib import pyplot as plt导入数据,进行数据处理和特征工程 得到数据集 D { ( x i , y i ) } i 1 m , y i ∈ { 0 ,…

安装企业级高负载web服务器tomcat,并部署应用

web服务器Tocamt 1.Tocmat简介2.Tocmat安装1.安装jdk2.部署Tomcat1.配置环境变量2.启动tocmat3.Tomcat web管理功能 3.部署jpress应用 1.Tocmat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由…

C. Binary String Copying - 思维

分析: 赛时我是直接模拟的,tle然后mle,补提,发现规律,每一个改变的字符串都只会对应一个需要改变的区间,例如第一个样例前两个101100 -> 011100和101100 -> 011100,对应区间在确定改变的范…

paddle实现获取pdf的内容

paddle实现获取pdf的内容 1. 环境安装2. 实现代码 源码链接 1. 环境安装 安装paddlepaddle gpu版本python -m pip install paddlepaddle-gpu -i https://pypi.tuna.tsinghua.edu.cn/simplecpu版本:python -m pip install paddlepaddle -i https://pypi.tuna.tsing…

实战:Prometheus+Grafana监控Linux服务器及Springboot项目

文章目录 前言知识积累什么是Prometheus什么是Grafana怎样完成数据采集和监控 环境搭建docker与docker-compose安装docker-compose编写 监控配置grafana配置prometheus数据源grafana配置dashboardLinux Host Metrics监控Spring Boot 监控 写在最后 前言 相信大家都知道一个项目…

云原生全栈体系(二)

Kubernetes实战入门 第一章 Kubernetes基础概念 一、是什么 我们急需一个大规模容器编排系统kubernetes具有以下特性: 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大,Kubernetes 可以负…

SSL 证书过期巡检脚本 (Python 版)

哈喽大家好,我是咸鱼 之前写了个 shell 版本的 SSL 证书过期巡检脚本 (文章:《SSL 证书过期巡检脚本》),后台反响还是很不错的 那么今天咸鱼给大家介绍一下 python 版本的 SSL 证书过期巡检脚本 (完整代码…

王道《操作系统》学习(二)—— 进程管理(二)

2.1 处理机调度的概念、层次 2.1.1 调度的基本概念 2.1.2 调度的三个层次 (1)高级调度(作业调度) (2)中级调度(内存调度) 补充知识:进程的挂起状态和七状态模型 &#x…

SAP从放弃到入门系列之创建特殊库存转储预留

文章概览 一、思路二、过程2.1前台的主要过程:2.2 BAPI的实现过程: 之前写过几篇生产领料的思路包括代码,有兴趣的可以翻翻之前我发的文章。最近遇到既有项目专用物资、按单专用物资、通用物资合并领料的业务模式,所以领料的库存的…

VGG卷积神经网络-笔记

VGG卷积神经网络-笔记 VGG是当前最流行的CNN模型之一, 2014年由Simonyan和Zisserman提出, 其命名来源于论文作者所在的实验室Visual Geometry Group。 测试结果为: 通过运行结果可以发现,在眼疾筛查数据集iChallenge-PM上使用VGG…

什么是高级持续威胁(APT)攻击

目录 前言什么是高级持续威胁高级持续威胁攻击有哪些独特特征APT攻击的五个阶段APT检测及防护措施总结 前言 APT攻击是利用多个阶段和不同攻击技术的复合网络攻击。APT不是一时兴起2构思或实施的攻击。相反,攻击者故意针对特定目标定制攻击策略。并在较长时间内进行…

Excel·VBA定量装箱、凑数值金额、组合求和问题

如图:对图中A-C列数据,根据C列数量按照一定的取值范围,组成一个分组装箱,要求如下: 1,每箱数量最好凑足50,否则为47-56之间; 2,图中每行数据不得拆分; 3&…

webpack基础知识一:说说你对webpack的理解?解决了什么问题?

一、背景 Webpack 最初的目标是实现前端项目的模块化,旨在更高效地管理和维护项目中的每一个资源 模块化 最早的时候,我们会通过文件划分的形式实现模块化,也就是将每个功能及其相关状态数据各自单独放到不同的JS 文件中 约定每个文件是一…

Matlab对TMS320F28335编程-新建工程闪烁led灯

前言 工具:Matlab2022b Matlab对接C2000插件,下载连接如下 Embedded Coder Support Package for Texas Instruments C2000 Processors - File Exchange - MATLAB Central 在Matlab中加载此插件后,按照要求一步一步的进行就可以&#xff0c…

基于 JavaScript 的富文本编辑器框架简单使用

1.打开wangEditor wangEditor开源 Web 富文本编辑器&#xff0c;开箱即用&#xff0c;配置简单https://www.wangeditor.com/ 2.html文件 <link href"https://unpkg.com/wangeditor/editorlatest/dist/css/style.css" rel"stylesheet"> <style&…

qt源码--事件系统之QAbstractEventDispatcher

1、QAbstractEventDispatcher内容较少&#xff0c;其主要是定义了一些注册接口&#xff0c;如定时器事件、socket事件、注册本地事件、自定义事件等等。其源码如下&#xff1a; 其主要定义了大量的纯虚函数&#xff0c;具体的实现会根据不同的系统平台&#xff0c;实现对应的方…

MQTT服务器详细介绍:连接物联网的通信枢纽

随着物联网技术的不断发展&#xff0c;MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;协议作为一种轻量级、可靠、灵活的通信协议&#xff0c;被广泛应用于物联网领域。在MQTT系统中&#xff0c;MQTT服务器扮演着重要的角色&#xff0c;作为连接物联网设备和…

C高级【day2】

思维导图&#xff1a; 递归实现&#xff0c;输入一个数&#xff0c;输出这个数的每一位&#xff1a; #include<myhead.h>//递归函数 void fun(int num){//num没值不再递归if(0 num){return;}//输出数的最后一位printf("%d\t", num%10);//递归fun(num/10);}…

linux du命令解析(递归计算文件子目录大小)(计算大小)(计算容量)

文章目录 du命令简介用法常用选项示例 文档原 中文选项详细解释示例递归统计某个目录下所有文件大小&#xff08;不足单位会向上取整&#xff09;&#xff08;注意&#xff1a;可能会将目录大小也统计进去&#xff0c;目录大小为4096字节4kb&#xff1f;&#xff09; du命令使用…

AI算法图形化编程加持|OPT(奥普特)智能相机轻松适应各类检测任务

OPT&#xff08;奥普特&#xff09;基于SciVision视觉开发包&#xff0c;全新推出多功能一体化智能相机&#xff0c;采用图形化编程设计&#xff0c;操作简单、易用&#xff1b;不仅有上百种视觉检测算法加持&#xff0c;还支持深度学习功能&#xff0c;能轻松应对计数、定位、…