美文网首页
[论文笔记]InstaGAN:Instance-Aware Im

[论文笔记]InstaGAN:Instance-Aware Im

作者: 祁晏晏 | 来源:发表于2020-05-07 18:23 被阅读0次

我想看InstaGAN,但想看这个得先理解CycleGAN,所以看完CycleGAN我再来

  • 好,我胡汉三看完回来了
    看完发现还要补LSGAN,但因为不影响阅读,补的过程我打算之后再进行

Abstract

Image-to-image转换任务在涉及到多目标和形状的巨大改变时经常失败

本文

  • 融合实例信息,改进多实例转换任务,保持实例的排序不变性。
  • 提出context preserving loss,保留除目标实例外的特征
  • 提出a sequential mini-batch inference/training technique,在GPU内存限制的情况下更好的多目标转换

Introduction

介绍背景和贡献。

贡献主要分为三部分:

  • 提出一个能保证任意数量的实例排序不变性的神经网络结构
  • 提出上下文保护损失函数,既保护背景又能转换目标实例
  • 提出小批量训练技巧,解决GPU内存限制问题的同时,提升少量目标转换的效果

InstaGAN

背景介绍

两个domain间的相互转换,有条件限制(即实例限制),无监督,要求实例和背景和谐。

Architecture

image.png

InstaGAN的结构是基于CycleGAN的(G YX(G XY(x)) ≈ x && G XY(G YX(y)) ≈ y)。不同的是,本文不需要连接成环,使用其中一半即可。

本文的目标是训练出两个生成器Gxy(由x,a生成y',b')和Gyx(由y,b生成x',a')。为了对抗,还需要两个判别器Dx(判别X,a和X',a'是否在Domain(X * a)中)和Dy。

对Domain(X * a)中的

生成方法

  1. 提取图像特征(提取方法:f_GX)

  2. 分别提取每个实例的特征(提取方法:f_GA),有n个实例

  3. 将提取到的实例特征求和,保证其实例的排序不变性

  4. 连接图像特征和实例特征和,送入生成器g_GX,生成图像。输入:

    h_{\mathrm{GX}}(x, \boldsymbol{a})=\left[f_{\mathrm{GX}}(x) ; \sum_{i=1}^{N} f_{\mathrm{GA}}\left(a_{i}\right)\right]

  5. 连接图像特征、实例特征和、每个实例的特征,分别送入生成器g_GA,生成转换后的masks。输入:

    h_{\mathrm{GA}}^{n}(x, \boldsymbol{a})=\left[f_{\mathrm{GX}}(x) ; \sum_{i=1}^{N} f_{\mathrm{GA}}\left(a_{i}\right) ; f_{\mathrm{GA}}\left(a_{n}\right)\right]

生成这部分有些问题:

  1. 结果图像的生成靠的是g_GX吗?那g_GA存在的意义是什么?

判别方法

判别器同样需要对X和a同时编码。同生成方法,判别器的输入为:

h_{\mathrm{DX}}(x, \boldsymbol{a})=\left[f_{\mathrm{DX}}(x) ; \sum_{i=1}^{N} f_{\mathrm{DA}}\left(a_{i}\right)\right]

作者表示,连接图像特征和实例特征有利于建立X和a间的联系。

对于上文提到了f_GX, f_GA, f_DX, f_DA, g_GX, g_GA,采用任意深度网络均可。(这一句话里的细节太多了,前文也没有提到g_GX和g_GA,我也不明白g_GA的意义在哪儿,可能是因为没看完吧)

损失函数

损失函数由以下几部分组成。

  • domain loss:输出符合目标domain

    • GAN loss
  • content loss:输出保留原有内容

    • cycle-consistency loss
    • identity mapping loss

    (看到这些loss我就知道我又要补课了)

    • context preserving loss(本文新提出的loss)

      使用输入和输出的分割信息

接下来进行具体介绍。

GAN loss

GAN loss有多种变体。本文使用了LSGAN,在实验中表现出了稳定的好品质

\mathcal{L}*{\mathrm{LSGAN}}=\left(D*{\mathrm{X}}(x, \boldsymbol{a})-1\right)^{2}+D_{\mathrm{X}}\left(G_{\mathrm{YX}}(y, \boldsymbol{b})\right)^{2}+\left(D_{\mathrm{Y}}(y, \boldsymbol{b})-1\right)^{2}+D_{\mathrm{Y}}\left(G_{\mathrm{XY}}(x, \boldsymbol{a})\right)^{2}

cycle-consistency loss & identity mapping loss

\begin{aligned} \mathcal{L}*{\mathrm{cyc}} &=\left\|G*{\mathrm{YX}}\left(G_{\mathrm{XY}}(x, \boldsymbol{a})\right)-(x, \boldsymbol{a})\right\|*{1}+\left\|G*{\mathrm{XY}}\left(G_{\mathrm{YX}}(y, \boldsymbol{b})\right)-(y, \boldsymbol{b})\right\|*{1} \\ \mathcal{L}*{\mathrm{idt}} &=\left\|G_{\mathrm{XY}}(y, \boldsymbol{b})-(y, \boldsymbol{b})\right\|*{1}+\left\|G*{\mathrm{YX}}(x, \boldsymbol{a})-(x, \boldsymbol{a})\right\|_{1} \end{aligned}

Lcyc利用cycle规则,还挺好理解的

Lidt不理解,需要补课

context preserving loss

\left.\mathcal{L}*{\mathrm{ctx}}=\left\|w\left(\boldsymbol{a}, \boldsymbol{b}^{\prime}\right) \odot\left(x-y^{\prime}\right)\right\|*{1}\right]+\left\|w\left(\boldsymbol{b}, \boldsymbol{a}^{\prime}\right) \odot\left(y-x^{\prime}\right)\right\|_{1}

整个损失函数

\mathcal{L}*{\text {InstaGAN }}=\underbrace{\mathcal{L}*{\text {LSGAN }}}*{\text {GAN (domain) loss }}+\underbrace{\lambda*{\text {cyc }} \mathcal{L}*{\text {cyc }}+\lambda*{\text {idt }} \mathcal{L}*{\text {idt }}+\lambda*{\text {ctx }} \mathcal{L}*{\text {ctx }}}*{\text {content loss }}

Sequential mini-batch translation

一个在GPU受限情况下使用instaGAN的方法。因为不是我现阶段学习的要点,留在这儿等以后补充。

相关文章

网友评论

      本文标题:[论文笔记]InstaGAN:Instance-Aware Im

      本文链接:https://www.haomeiwen.com/subject/hjqzghtx.html