Unsupervised Attention-guided Image-to-Image Translation
这是NeurIPS 2018一篇图像翻译的文章。目前的无监督图像到图像的翻译技术很难在不改变背景或场景中多个对象交互方式的情况下将注意力集中在改变的对象上去。这篇文章的解决思路是使用注意力导向来进行图像翻译。下面是这篇文章的结果图:

可以看到文章结果很好, 只有前景(对象)改变了, 而背景变化很小, 而其他的方法背景变化很大, 效果偏差.
现在介绍作者的方法,作者在cyclegan的基础上加入另外一个注意力网络,如下图所示:

上图的左边就是斑马转普通马的具体流程,首先\(s\)(斑马)会通过\(F_{S \rightarrow T}\)(\(S\)代表Source,\(T\)代表Target)得到普通马的预测,通知\(s\)还会通过一个注意力网络\(A_S\)得到掩模\(s_a\),这个注意力层是想将前景突显出来(很大的值),背景则忽略掉(很小的值),这样与\(F_{S \rightarrow T}\)的输出进行按点相乘,就会只凸显出马,而背景就是很低的值,这个掩模还有用处,通过\(1-s_a\)可以得到只凸显背景而忽略前景的掩模,将这个掩模去与\(s\)相乘,得到source的背景,而其前景则被置于很低的值,然后两者进行相加,得到最终预测\(s^{\prime}\)。\(s^{\prime}\)的计算公式可由下面公式表示:
\[
s^{\prime}=\underbrace{s_{a} \odot F_{S \rightarrow T}(s)}_{\text { Foreground }}+\underbrace{\left(1-s_{a}\right) \odot s}_{\text { Background }}
\]
由于基于cyclegan,所以还需要将\(s^{\prime}\)转换成\(s^{\prime\prime}\), 约束\(s^{\prime\prime}\)和\(s\)尽可能相似,所以还有一个普通马转斑马的过程,与斑马转普通马的过程一样,也用到了注意力网络\(A_T\).
注意力网络所生成的掩模为什么会与前景相关呢?如果不跟前景相关,根据上述公式知道,Foreground将不会凸显前景,因为掩模不跟前景相关,相乘会得到低值前景,而Background将凸显斑马的特征,相加后还是斑马,与普通马差异大,无法骗过鉴别器,所以注意力网络的掩模会学习与前景相关。
注意力网络的输出是\([0, 1]\)之间的连续值,而不是二进制分割掩码,这有三点原因:
- 连续可微,可以进行训练
- 可以让注意力网络在训练过程中保持注意力的不确定性,允许收敛
- 允许网络学习如何组合边缘,否则可能会使前景对象看起来“粘在”边缘上。
现在来看看损失函数(这里只介绍\(S \rightarrow T\)以及\(S \rightarrow T \rightarrow S\)的loss,\(T \rightarrow S\)和\(T \rightarrow S \rightarrow T\)是一样的),首先是GAN固有的对抗损失:
\[
\mathcal{L}_{a d v}^{s}\left(F_{S \rightarrow T}, A_{S}, D_{T}\right)=\mathbb{E}_{t \sim P_{T}(t)}\left[\log \left(D_{T}(t)\right)\right]+\mathbb{E}_{s \sim \mathrm{P}_{S}(s)}\left[\log \left(1-D_{T}\left(s^{\prime}\right)\right)\right]
\]
然后是cyclegan中的一致性损失\(S \rightarrow T \rightarrow S\), 公式如下:
\[
\mathcal{L}_{c y c}^{s}\left(s, s^{\prime \prime}\right)=\left\|s-s^{\prime \prime}\right\|_{1}
\]
总的loss为:
\[
\mathcal{L}\left(F_{S \rightarrow T}, F_{T \rightarrow S}, A_{S}, A_{T}, D_{S}, D_{T}\right)=\mathcal{L}_{a d v}^{s}+\mathcal{L}_{a d v}^{t}+\lambda_{c y c}\left(\mathcal{L}_{c y c}^{s}+\mathcal{L}_{c y c}^{t}\right)
\]
似乎到这里就结束了,其实还没有,作者发现翻译后的马现在看起来像斑马,但整体场景是假的,因为背景仍然显示了马生活在草地上的地方,而不是斑马生活在热带稀树草原上的地方,要向骗过鉴别器,注意力网络也会将背景凸显出来,这是我们不想看到的,具体事例如下图所示:

可以看到在30个epochs的时候,前景就差不多完全凸显出来了,所以作者采取了two-stage的策略,第一个stage按照上述loss训练\(F_{S}, F_{T}, A_{S}, A_{T}, D_{T}, D_{S}\), 在第二个stage的时候,中断$ A_{S}, A_{T}$的训练,只训练鉴别器和生成器,当然第二个stage的loss也要变化了。
第二个stage的掩模是固定的,生成器的输出根据掩模进行了阈值处理,处理公式如下:
\[
t_{\text { new }}=\left\{\begin{array}{ll}{t} & {\text { if } A_{T}(t)>\tau} \\ {0} & {\text { otherwise }}\end{array} \quad \text { and } \qquad s_{\text { new }}^{\prime}=\left\{\begin{array}{ll}{F_{S \rightarrow T}(s)} & {\text { if } A_{S}(s)>\tau} \\ {0} & {\text { otherwise }}\end{array}\right.\right.
\]
其中\(\tau\)设定为0.1,对应的对抗loss的公式就变为:
\[
\mathcal{L}_{a d v}^{s}\left(F_{S \rightarrow T}, A_{S}, D_{T}\right)=\mathbb{E}_{t \sim \mathrm{P}_{T}(t)}\left[\log \left(D_{T}\left(t_{\text { new }}\right)\right)\right]+\mathbb{E}_{s \sim \mathrm{P}_{S}(s)}\left[\log \left(1-D_{T}\left(s_{\text { new }}^{\prime}\right)\right)\right)
\]
总的训练过程如下所示:

作者提出的这种方法还是有限制的,对域之间的形状更改没有鲁棒性,如下所示:

可以看到狮子转成斑马域后,狮子的毛发形状特征缺失很多,而斑马转狮子一样,没有形状细节。
总的来说,这篇文章还是挺有意思的,值得写写笔记!
Unsupervised Attention-guided Image-to-Image Translation的更多相关文章
- (转)Attention
本文转自:http://www.cosmosshadow.com/ml/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/2016/03/08/Attention.ht ...
- CVPR 2017 Paper list
CVPR2017 paper list Machine Learning 1 Spotlight 1-1A Exclusivity-Consistency Regularized Multi-View ...
- 神经机器翻译(NMT)相关资料整理
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统 ...
- Abstractive Summarization
Sequence-to-sequence Framework A Neural Attention Model for Abstractive Sentence Summarization Alexa ...
- MATLAB批量打印输出600PPI的图像且图像不留空白
一 前言 最近收到审稿人的修改意见,其中有三条:一条为<RC: There were only five images evaluated in the experiment, and I re ...
- (原)Show, Attend and Translate: Unsupervised Image Translation with Self-Regularization and Attention
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9333844.html 论文网址:https://arxiv.org/abs/1806.06195 在 ...
- 课程五(Sequence Models),第三周(Sequence models & Attention mechanism) —— 1.Programming assignments:Neural Machine Translation with Attention
Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...
- 论文笔记之:DualGAN: Unsupervised Dual Learning for Image-to-Image Translation
DualGAN: Unsupervised Dual Learning for Image-to-Image Translation 2017-06-12 21:29:06 引言部分: 本文提出 ...
- Unsupervised Image-to-Image Translation Networks --- Reading Writing
Unsupervised Image-to-Image Translation Networks --- Reading Writing 2017.03.03 Motivations: most ex ...
- Phrase-Based & Neural Unsupervised Machine Translation基于短语非监督机器翻译
1. 前言 本文介绍一种无监督的机器翻译的模型.无监督机器翻译最早是<UNSUPERVISED NEURAL MACHINE TRANSLATION>提出.这个模型主要的特点,无需使用平行 ...
随机推荐
- 依赖注入组件 Autofac 的小记
1. 批量给 Service 层自动注入.(支持 ASP.NET Core) builder.RegisterAssemblyTypes(typeof(IProductService).Assemb ...
- NumPy 学习 第四篇:数组的基本操作
在数组中,用axis(轴)表示维度,对于三维数组,axis参数的取值通常有: 当axis=None时,表示把数组展开为一维数组: 当axis=0时,表示按照行(第一维)进行计算: 当axis=1时,表 ...
- C# read dll config
public static SqlConnection GetSqlConnection() { Configuration myDllConfig = ConfigurationManager.Op ...
- 二叉查找树的实现与讲解(C++)
注:这篇文章源于:https://mp.csdn.net/postedit/99710904, 无需怀疑抄袭,同一个作者,这是我在博客园的账号. 在二叉树中,有两种非常重要的条件,分别是两类数据结构的 ...
- 读Xamarin文档记录
//怎样判断Wifi是否连接if (Connectivity.NetworkAccess == NetworkAccess.None) { ... } 连接改变的事件,判断事件改变后是否还处于连接状态 ...
- Docker关于镜像、容器的基本命令
镜像 1.获取镜像 docker pull 服务器:端口/仓库名称:镜像 ➜ ~ docker pull python Using default tag: latest 2.查看镜像信息 列出本机所 ...
- Django和前端用ajax传输json等数据
需要传输的是下图中所有的input中客户端设置的数据 整个页面是用js生成,代码不长,但是用了许多拼接,看起来开比较乱,页面的核心就是下面的部分,有一些关键参数部分就不放了,可以跳过这个 下面开始重点 ...
- Hibernate Validator Engine的用法
一.引入架包 maven地址 点击即可. <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-v ...
- Mysql—数据导入与导出
数据导入 作用:把文件系统里的内容导入到数据库表中. 语法: mysql> load data infile "文件名" into table 表名 fields termi ...
- 大话IdentityServer4之使用 IdentityServer4 保护 ASP.NET Core 应用
这几天一直在研究IdentityServer4在asp.net core3.0中的应用,下面说说我的理解: 我们每一个.net core 项目大家可以理解为我新建了一个动物园或者植物园等,注册用户想要 ...