StarGANv2: Diverse Image Synthesis for Multiple Domains论文解读及实现(一)
StarGAN v2: Diverse Image Synthesis for Multiple Domainsp
github:https://github.com/clovaai/stargan-v2
1 模型架构
模型主要架构由四部分组成
①Generator、②Mapping network、③Style encoder、④Discriminator
-
Generator:G网络
生成模型G将输入图片x转换成 输出图片G(x,s),反映了一个领域的独有风格编码s。s是有Maping network F或者风格编码E生成。s被设计表征为领域y的风格。 -
Mapping network: F网络
给定一个隐变量z和一个领域y,mapping network F生成一个风格 s=F(z),F由一层MLP和多个输出分支组成,分支代表了领域的所有风格。通过随机采样不同的隐变量z,F能高效的学习各领域的风格表征。 -
Style encoder:E网络
给定图片X和相应的领域y,encoder E挖掘风格编码 s=E(x),E和上面的F类似。使用不同的参考图片,E可以产生不同风格的编码s。 -
Discriminator:D网络
判别器D是多任务判别器,由多个输出分支组成,每个分支Dy学习一个二分类,判断图片X是否是真实的y领域,或者由G生成的假图 G(x,s).

2 训练目标
2.1Adversarial objective.
对抗损失:
训练期间,随机采样隐变量z和领域y,通过F函数,生成风格编码s ,
风格编码: s ˉ = F y ˉ ( z ) 风格编码: \bar s=F_{\bar y}(z) 风格编码:sˉ=Fyˉ(z)
生成网络G,将图片X和上面的风格编码S作为输入,生成图片:
生成图片: G ( x , s ˉ ) 生成图片: G(x,\bar s) 生成图片:G(x,sˉ)
对抗损失函数为:
L a d v = E x , y [ l o g D y ( x ) ] + E x , y ˉ , z [ l o g ( 1 − D y ˉ ( G ( x , s ˉ ) ) ) ] ( 1 ) L_{adv}=E_{x,y}[logD_y(x)]+E_{x,\bar y,z}[log(1-D_{\bar y}(G(x,\bar s)))] \qquad (1) Ladv=Ex,y[logDy(x)]+Ex,yˉ,z[log(1−Dyˉ(G(x,sˉ)))](1)
D_y:是y领域的判别器
F: 是提供y领域的风格编码s
G:输入图片和风格编码s,生成新图片
2.2 Style reconstruction
风格重构损失
使得前后的风格距离最小
L s t y = E x , y ˉ , z [ ∣ ∣ s ˉ − E y ˉ ( G ( x , s ˉ ) ) ∣ ∣ 1 ] ( 2 ) L_{sty}=E_{x,\bar y ,z}[||\bar s-E_{\bar y}(G(x,\bar s))||_1] \qquad (2) Lsty=Ex,yˉ,z[∣∣sˉ−Eyˉ(G(x,sˉ))∣∣1](2)
E网络用来生成风格,上面有提到
(前面的E是求均值,后面的 E y ˉ E_{\bar y} Eyˉ是网络)
2.3 Style diversification
为了使生成器G产生更多风格图片,使得不同风格图片的距离尽可能大
L d s = E x , y ˉ , z 1 , z 2 [ ∣ ∣ G ( x , s ˉ 1 ) − G ( x , s ˉ 2 ) ∣ ∣ 1 ] ( 3 ) L_{ds}=E_{x,\bar y,z_1,z_2}[||G(x,\bar s_1)-G(x,\bar s_2)||_1]\qquad (3) Lds=Ex,yˉ,z1,z2[∣∣G(x,sˉ1)−G(x,sˉ2)∣∣1](3)
s ˉ 1 和 s ˉ 2 \bar s_1和\bar s_2 sˉ1和sˉ2是F在隐变量 z 1 和 z 2 条件下生成的 s ˉ i = F y ˉ ( z i ) f o r i ∈ 1 , 2 z_1和z_2条件下生成的 \bar s_i =F_{\bar y}(z_i) \quad for \quad i \in {1,2} z1和z2条件下生成的sˉi=Fyˉ(zi)fori∈1,2
2.4 cycle consistency loss
循环一致损失
使得经过变换后的X与之前的X距离最小
L c y c = E x , y , y ˉ , z [ ∣ ∣ x − G ( G ( x , s ˉ ) , s ^ ) ∣ ∣ 1 ] ( 4 ) L_{cyc}=E_{x,y,\bar y,z}[||x-G(G(x,\bar s),\hat s)||_1] \qquad (4) Lcyc=Ex,y,yˉ,z[∣∣x−G(G(x,sˉ),s^)∣∣1](4)
s ^ = E y ( x ) \hat s=E_y(x) s^=Ey(x)是E网络估计的风格code,y是原始的X的领域,使生成器G学会去保留原始的X的特征
2.5 full objective
将上面的损失函数求和,其中DS是最大化距离(所有用减号),其他是最小化

相关文章:
StarGANv2: Diverse Image Synthesis for Multiple Domains论文解读及实现(一)
StarGAN v2: Diverse Image Synthesis for Multiple Domainsp github:https://github.com/clovaai/stargan-v2 1 模型架构 模型主要架构由四部分组成 ①Generator、②Mapping network、③Style encoder、④Discriminator Generator:G网络 生成模型G将输入图片x转换…...
Go Gin 中使用 JWT
一、JWT JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下。 二、为什么要用在你的Gin中使用JWT 传统的Cookie-Sesson模式占用服务器内存, 拓展性…...
AWS中Lambda集成SNS
1.创建Lambda 在Lambda中,创建名为AWSSNSDemo的函数 use strict console.log(loading function); var aws require(aws-sdk); var docClient new aws.DynamoDB.DocumentClient(); aws.config.regionap-southeast-1;exports.handler function(event,context,cal…...
Mac下⬇️Git如何下载/上传远程仓库
使用终端检查电脑是否安装Git git --version 通过此文章安装Git ➡️ 传送门🌐 方式1⃣️使用终端操作 1.下载——克隆远程仓库到本地 git clone [远程地址] 例:git clone https://gitee.com/lcannal/movie.git 2.编…...
linux 命令--常用关机命令
1.使用shutdown命令 shutdown命令是Linux系统下最常用的关机命令之一。它可以让系统在指定时间内进行关机或者重启操作。例如,下面的命令可以让系统在5分钟后进行关机操作: sudo shutdown -h5其中,“-h”表示关机,“5”表示5分钟…...
ttf-dejavu fontconfig字体
ttf-dejavu fontconfig是验证码,pdf,excel时需要用到的字体 编辑dockerfile,先切换国内镜像源,默认alpinelinux是国外源,下载包会很慢 vim Dockerfile FROM alpine:latest RUN sed -i s/dl-cdn.alpinelinux.org/mirr…...
Open3D点云数据处理(十九):最小二乘直线拟合(矩阵方程法)
文章目录 1 最小二乘直线拟合原理(矩阵方程角度)2 相关知识2.1 超定线性方程组2.2 正规方程2.3 奇异值分解3 最小二乘直线拟合代码实现4 点云最小二乘直线拟合5 相关链接专栏目录:Open3D点云数据处理(Python) 1 最小二乘直线拟合原理(矩阵方程角度) 最小二乘直线拟合是…...
数据库事务ACID介绍
一、ACID简介 ACID,是指数据库管理系统(DBMS)在增删改数据的的过程中,为保证事务(transaction)的准确性,可靠性等,所必须具备的四个特性:原子性(atomicity&a…...
SM8650 qcxserver.c STRM_Initialize
STRM_Initialize streammanager 初始化流程 目录 STRM_Initialize Gptp::Init Config::Init SensorManager::Init SensorPlatform::SensorPlatformInit SensorManager::LoadSensorLib SensorManager::OpenSensorLib SensorManager::DetectAll SensorManager::DetectHandlerT…...
适配器模式-java实现
意图 复用已经存在的接口,与所需接口不一致的类。即将一个类(通常是旧系统中的功能类),通过适配器转化成另一个接口的实现。(简单来说,就是复用旧系统的功能,去实现新的接口) 我们举…...
【elasticSearch系】3.完整搭建详尽版elk
话不多说,我们先看下经典的elk 是由哪些组件搭建组合起来的 elasticsearch和kibana搭建 可以查看之前我们搭建elasticsearch和kibana 的这篇文章 logstash搭建 为了和之前我们搭建elasticsearch和kibana版本保持一致,这里我们还是选择7.17.3 下载地址 点击下载,这里为了…...
代码随想录day04
24. 两两交换链表中的节点 ● 力扣题目链接 ● 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 ● 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 思路 ● 使用迭代的方法,分析交换逻辑即可 ○ …...
[Realtek] WPA_SUPPLICANT + WPA_CLI使用指南
开启wpa_supplicant wpa_supplicant –Dnl80211 -iwlan0 -c ./wpa.conf –B 或者 wpa_supplicant -Dwext -iwlan0 -c ./wpa.conf -B 扫描AP wpa_cli -p/var/run/wpa_supplicant scan 查看AP扫描结果 wpa_cli -p/var/run/wpa_supplicant scan_results 连接到热点 OPEN…...
# ⛳ Docker 安装、配置和详细使用教程-Win10专业版
目录 ⛳ Docker 安装、配置和详细使用教程-Win10专业版🚜 一、win10 系统配置🎨 二、Docker下载和安装🏭 三、Docker配置🎉 四、Docker入门使用 ⛳ Docker 安装、配置和详细使用教程-Win10专业版 🚜 一、win10 系统配…...
Linux 教程
目录 Linux 教程 内核引导 运行init 运行级别 系统初始化 Linux 系统目录结构 Linux 教程 Lin...
图论——最短路算法
引入: 如上图,已知图G。 问节点1到节点3的最短距离。 可心算而出为d[1,2]d[2,3]112,比d[1,3]要小。 求最短路径算法: 1.Floyd(弗洛伊德) 是一种基于三角形不等式的多源最短路径算法。边权可以为负数 表现为a[i,j]a[j,k]<a[i,k]。 …...
在项目中增加网络加载需要考虑什么?
1、下载器 网络加载的第一步肯定是下载,那么选择一个合适的下载器是十分重要的,这个下载器最好支持什么功能? 多线程下载(同时需要服务端支持,下载时可指定range) 断点续传 通用性(其他位置也…...
阿里云服务器部署RabbitMQ流程
阿里云百科分享使用阿里云服务器部署RabbitMQ流程,RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用于在分布式系统中存储转发消息,有良好的易用性、扩展性和高可用性。本文介绍如何通过ECS实例部署Rabbi…...
青大数据结构【2014】
一、单选 二、简答 为了解决顺序队列的假溢出问题,提出了循环队列,即把存储队列的表从逻辑上看成一个环 判别队列空和满有三种方法: 1)采用计数器判别,空时,计数器为0;满时,计数器…...
Ansible Playbook快速部署一主多从MySQL集群
部署目标: 1、快速部署一套一主两从的mysql集群 2、部署过程中支持交互式定义安装目录及监听端口号 部署清单目录结构: rootmaster:/opt/mysql# tree . . ├── group_vars │ └── all.yml ├── hosts ├── mysql.yml └── roles└── mys…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
