转载请注明出处:

https://www.cnblogs.com/darkknightzh/p/9333844.html

论文网址:https://arxiv.org/abs/1806.06195

在gan中,对图像进行风格变换时,一般都是将整个图像进行变换。由于图像包含前景和背景,因而该论文在保持背景区域不变的前提下,对前景区域进行风格变换。同时,使用self-regularization项来约束变换前后背景区域的差异。

网络结构如下图所示。输入图像通过2层的下采样,而后通过9层的残差网络,在通过2层的上采样,得到。另一方面,通过预训练的vgg-19网络的前几层,并通过2层的上采样,在通过conv+sigmoid,得到Gattn,即前景区域的概率图。网络基本结构均为conv+bn+relu。残差部分使用空洞卷积,因为空洞卷积可以增加感受野的大小。损失函数包含两部分,传统的判别器的损失及感知损失。文中指出,感知损失比传统的距离更接近人类对相似性的认知。传统的判别网络为5层的CNN网络。

其中,

$G(x)={{G}_{attn}}(x)\otimes {{G}_{0}}(x)+(1-{{G}_{attn}}(x))\otimes x$

${{G}_{attn}}(x)\otimes {{G}_{0}}(x)$代表前景区域,$(1-{{G}_{attn}}(x))\otimes x$代表背景区域。${{G}_{attn}}(x)$为前景区域的概率图,像素范围为[0, 1]。

文中判别器:

${{L}_{D}}=\log (D(y))-\log (1-D(G(x)))$

生成器:

${{L}_{G}}={{l}_{adv}}(G(x),y)+\lambda {{l}_{reg}}(x,G(x))$

生成器包含两部分,传统gan的损失:

${{l}_{adv}}(G(x),y)=-\log (-D(G(x)))$

及self-regularization项损失:

${{l}_{reg}}(G(x),x)=\sum\limits_{l=1,2,3}{\frac{1}{{{H}_{l}}{{W}_{l}}}\sum\limits_{h,w}{(\left\| {{w}_{l}}\circ (\hat{F}(x)_{hw}^{l}-\hat{F}(G(x))_{hw}^{l}) \right\|_{2}^{2})}}$

${{l}_{reg}}$使用预训练的vgg-19网络的前三层加权得到。分别将输入图像x及生成的图像$G(x)$通过vgg-19网络前3层,得到对应的特征图,并计算特征图的l2 norm的平方,之后进行加权。各层权重经过大量实验得到为:

$({{w}_{1}},{{w}_{2}},{{w}_{3}})=(1/32,1/16,1/8)$

训练过程:先训练${{G}_{0}}$,再训练${{G}_{attn}}$,最后finetune整个网络。对于$\lambda $,从0增加,直至对抗损失降低到阈值$l_{adv}^{t}$之下,而后固定$\lambda $。

(原)Show, Attend and Translate: Unsupervised Image Translation with Self-Regularization and Attention的更多相关文章

  1. Unsupervised Image-to-Image Translation Networks --- Reading Writing

    Unsupervised Image-to-Image Translation Networks --- Reading Writing 2017.03.03 Motivations: most ex ...

  2. Phrase-Based & Neural Unsupervised Machine Translation基于短语非监督机器翻译

    1. 前言 本文介绍一种无监督的机器翻译的模型.无监督机器翻译最早是<UNSUPERVISED NEURAL MACHINE TRANSLATION>提出.这个模型主要的特点,无需使用平行 ...

  3. MUNIT:Multimodal Unsupervised Image-to-Image Translation - 1 - 论文学习,不成对数据

    摘要:无监督图像转换是计算机视觉领域中一个重要而又具有挑战性的问题.给定源域中的一幅图像,目标是学习目标域中对应图像的条件分布,而不需要看到任何对应图像对的例子.虽然这种条件分布本质上是多模态的,但现 ...

  4. Unsupervised Image-to-Image Translation Networks

    Abstract: 无监督图像到图像的翻译目的是学习不同域图像的一个联合分布,通过使用来自单独域图像的边缘分布.给定一个边缘分布,可以得到很多种联合分布.如果不加入额外的假设条件的话,从边缘分布无法推 ...

  5. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 7 Regularization 正则化

    Lecture7 Regularization 正则化 7.1 过拟合问题 The Problem of Overfitting7.2 代价函数 Cost Function7.3 正则化线性回归  R ...

  6. Unpaired/Partially/Unsupervised Image Captioning

    这篇涉及到以下三篇论文: Unpaired Image Captioning by Language Pivoting (ECCV 2018) Show, Tell and Discriminate: ...

  7. 简单实现Python调用有道API接口(最新的)

    # ''' # Created on 2018-5-26 # # @author: yaoshuangqi # ''' import urllib.request import urllib.pars ...

  8. (转)Autonomous_Vehicle_Paper_Reading_List

    Autonomous_Vehicle_Paper_Reading_List 2018-07-19 10:40:08 Reference:https://github.com/ZRZheng/Auton ...

  9. [转]NLP Tasks

    Natural Language Processing Tasks and Selected References I've been working on several natural langu ...

随机推荐

  1. 《剑指offer》-数组乘积,不使用除法

    题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1].不能使用除法. ...

  2. day15--JavaScript

        上节作业回顾 <style></style>代表的是CSS样式 <script></script>代表的是JavaScript样式     1. ...

  3. java:大小写字母转换

    public class Solution { public static void main(String args[]) { testSolutions.lowercaseToUppercase( ...

  4. Python2 - 基础2 - 数据类型和模块

    一.数据类型 标准数据类型(5): Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) 其中数字类型有4种: int(有符号整型) 在3 ...

  5. python中执行shell的两种方法总结

    这篇文章主要介绍了python中执行shell的两种方法,有两种方法可以在Python中执行SHELL程序,方法一是使用Python的commands包,方法二则是使用subprocess包,这两个包 ...

  6. MySQL 8.0 Docker使用注解

    PUBLIC | AUTOMATED BUILD cytopia/mysql-8.0 Last pushed: 8 months ago Repo Info Tags Dockerfile Build ...

  7. PHP给图片加水印

    <?php /** *图片加水印 *@param $srcImg 原图 *@param $waterImg 水印图片 *@param $savepath 保存路径 *@param $savena ...

  8. springboot mail+Thymeleaf模板

    compile 'org.springframework.boot:spring-boot-starter-thymeleaf' compile 'io.ratpack:ratpack-thymele ...

  9. 模拟页面获取的php数据(二)

    <?php return [ "aData" => [//通勤方式 "trafficType" => [ 0 => [ "ty ...

  10. 运行程序,解读this指向---case2

    片段1 var anum = 666; function funcTest1(){ var b = anum * 2; var anum = 6; var c = anum / 2; console. ...