DA-GAN: Instance-level Image Translation by Deep Attention Generative Adversarial Networks

本文均为总结其他人的博客对遇见的一些问题的解决,如有侵权,请联系删帖
论文标题 :DA-GAN: Instance-level Image Translation by Deep Attention Generative Adversarial Networks

论文提出的难点:
(1)本论文采用的是无监督学习的方法,没有配对数据的情况下,很难找到正确的对应关系
(2)set-level约束不能学习instance-level对应关系
(3)现有工作是建立在生成对抗网络基础上的,生成图像的分布不同于目标图像集的分布

解决办法:
提出了一种新框架,将两个待翻译图像集S和T分解到instance-level,利用attention机制发现instance-level的对应关系,把实例放置到两个集合共有的高度结构化空间中。最后对instance进行重组得到想要的图像。本论文在set-level和instance-level分别建立对应的约束。

那什么是instance那?
实例是一个比较宽泛的概念,在不同的任务中可以有不同的定义,例如再生成鸟的任务中,实例可以是鸟的头,身体,脚,嘴,羽毛等一些身体的部位。
在这里插入图片描述
图片翻译的原则:
保留源域的预期身份(例如,文本到图像中的语义,人脸到动画中的人的身份),同时生成与目标域(想要生成的鸟或动画)相匹配的样本。现在大部分作品是在GAN上实现的,而生成对抗网络只训练整体数据分布特征,不能实现实例级别的对应。实例级的对应是指一组样本共享的可识别对象的特征。

在这里插入图片描述
上图StackGAN忽略了鸟的眼睛。论文把GAN和attention结合起来学习局部信息生成全新样本。

目前大部分GAN是学习图像集(set-level)水平的数据分布,即把源图像集和目标图像集分别看成一个的整体分布。而DA-GAN不同,DA-GAN在学习过程中考虑了instance-level的细粒度特征。并结合attention机制采用无监督学习方式(不是成对的数据)学习图像细粒度特征,并进一步重组学到的细粒度特征产生更多样的新图像。

DA-GAN框架结构图
在这里插入图片描述
图一:姿势变形的例子来说明过程,给定源域S和目标域T两张鸟类图像,姿势变形的目标是将源域S鸟的姿势转换为T的姿势,但是仍保持S 的实体。

图一a部分
表示前向传播过程,两张输入的图片被DAE投影到一个潜在空间。生成器G使用潜在空间的表示DAE(s)和DAE(t)去产生翻译样本 s’=G(DAE(s))和t’=G(DAE(t))

图一b部分
展示DAE的细节,输入图片X的特征映射(E是一个编码器)经过floc函数确定出N个attention区域,N个区域的特征包含N个实例。N个区域与图片通过cropping处理,产生N个instance图片,再经过编码器将S和T共同投影到潜在空间中

先讲一下floc函数
在这里插入图片描述
函数数输入的是图片经过编码器的特征映射,输出是N个区域的中心坐标x和y。区域的大小和图片大小一致

边界的参数化位置为
在这里插入图片描述
这四个边界值确定Mi

接下来执行的是CROPPING操作,这一步我自己认为的类似于取两个区域的交集操作,即:
在这里插入图片描述

中间的小圆圈表示矩阵对应位置相乘的操作,确定关注区域,即:
在这里插入图片描述

潜在空间对应的表示为
在这里插入图片描述

Mi的公式为:
在这里插入图片描述
在这里插入图片描述

当K足够大时,sigmoid函数近似于一个阶跃函数。这时Mi就相当于一个二维矩形函数,是一个在三维空间中的实心矩形,如下图。Mi的梯度也相当于三维空间中二维矩形的梯度
在这里插入图片描述

Mi关于x的梯度为
在这里插入图片描述

图一C部分
对应优化时instance-level和set-level的损失函数。图中S、T分别为
源域
在这里插入图片描述

目标域
在这里插入图片描述

映射关系
在这里插入图片描述

源域翻译的样本集
在这里插入图片描述

目标域翻译的样本集
在这里插入图片描述

那如何在无监督的情况下,寻找set-level和instance-level的对应关系那?
解决办法:使用DAE(deep attention encoder)学习attention机制并将其整合到映射函数F中,在DAE中将S和T两个集合中的样本翻译成高度结构化潜在空间的实例

学习包括两个步骤:
(1)DAE先将原始数据分解成实例,文本-图像中原始文本找到对应的关键词,姿势变形中原始图像的姿势
(2)找到匹配的实例,使用实例级损失函数进行约束,下面两个公式

Instance-Level Image Translation
Instance-Level loss主要分为Lcst和Lsym,公式分别如下:
在这里插入图片描述
上面的式子计算源图S重构成S’后的损失
在这里插入图片描述
上式是T到其自身的映射的对称性来强化映射,计算目标图T重构T’后的损失
上面这两个式子对应图一C模块的上半部分,其中d表示距离的计算

Set-Level Image Translation
应用了LsGAN和LtGAN两个损失,公式如下:
在这里插入图片描述
上式用于约束生成图片S’和源目标图片T的一致性
在这里插入图片描述
为了防止model collapse的出现,用上式解决,上式也用于约束源目标图像T和生成图像T’的一致性

介绍下model collapse
当源数据分布有多个极值时,生成器会倾向于拟合一个局部极值,产生大量相似的数据,如下面右图所示。
在这里插入图片描述

model collapse解决方法:
1、调换生成目标优化顺序,先优化生成模型,在优化判别模型,使得在优化初期生成模型产生更多的模型样本而减小判别模型的约束。
在这里插入图片描述
2、minibatch features
将真实样本和模型样本分割为小块,分块的由块内特征进行判别
3、不用判别模型达到最优化后再优化模型

Loss
在这里插入图片描述

DA-GAN的学习策略为:
在这里插入图片描述
其中F代表的是DAE和G两个网络
整个网络结构采用resnet结构,生成器的输入是在channel层叠加的instance-level数据,网络最后几层经过上采样生成翻译图片。
判别器是将翻译后的图片作为输入,经过一系列的下采样层,最后经过全连接层和一个节点产生评分结果
Encoder中应用卷积,Batch normalization 和ReLu
Decoder中应用反卷积,Batch normalization和ReLu

本论文的贡献分为三个方面:
一、将任务分成了实例级别,增强了可控性
二、第一个将attention机制应用到GAN上
三、引入了一个新框架

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值