【二次元狂喜】U-GAT-IT:具有AdaLIN的无监督风格转换GAN【论文复现】【飞桨】

1 篇文章 0 订阅
1 篇文章 0 订阅

文章标题解释

本文描述的是一个用于图像-图像转换的生成对抗网络(GAN),并且其应用了可改善转换效果的AdaLin函数(自适应正则化函数)。AdaLin的细节在文章中陈述。

图像风格转换

图像与图像的相互转换,实际上是对不同“域”图像的转换,转换模型认为两个图像域之间存在一定的映射关系,并通过数据学习这一关系。被转换的图像属于源域(source domain,通常用小写字母s表示,在论文的公式中一般出现在下标上),目标图像则应属于目标域(target domain通常用小写字母t表示)。例如将马转换为斑马,图-图转换模型就是在学习马到斑马的映射,将属于“马”域的图片映射到“斑马”域。
在这里插入图片描述
这篇文章比较有意思的一点是有很大一部分实验是在普通头像-二次元头像之间进行风格转换,老二次元福音!!!!(本人就是因为这一点入坑)这可能和论文发布方包含游戏公司有一定的关系。本篇论文作者均为韩国人,并且均来自企业而非学校,包含Clova(人工智能公司),NAVER(韩国最大搜索网站),NCSOFT(韩国游戏公司)。

U-GAT-IT

本篇文章提出的模型是一个图像到图像的生成网络(Image-to-Image Translation),用于风格迁移,它可以实现两种风格图像的互相转换。具体效果如下所示,其中(a)一列是原图像,(b)一列是U-GAN-IT(即本文模型),(c-g)是其他文章风格迁移方法的效果,可以看出在以下几张图片的测试中,U-GAN-IT方法的效果最佳。摘要中提到,本文方法的优势在于可以改善以前的基于注意力的模型无法处理不同域的几何变化的问题,本文的注意力机制可以处理图像需要整体变化或有较大形状变化的情况。

在这里插入图片描述

下面我从一个GAN初学者视角解读一下这篇文章。
在介绍单元中,作者陈述本篇论文的贡献主要有以下几点:
(1) 本文整体来讲是一个具有新的注意力模块和新的正则化函数AdaLIN的无监督图像到图像的转换方法;
(2) 本文的注意力模块根据辅助分类器(Auxiliary Classifier)得到的注意力图(Attention Map),通过区分源域和目标域,帮助模型知道在哪里集中转换。
(3) AdaLIN正则化函数帮助模型在不修改模型架构或超参数的情况下灵活地控制更改形状和纹理的数目。

本文的源码已经有Tensorflow和Pytorch两版官方源码公布:
https://github.com/taki0112/UGATIT
https://github.com/znxlwm/UGATIT-pytorch

作为GAN的一种,整个模型自然有一个生成器和一个判别器,除此之外,本文引入了一个特殊的注意力模型,注意力模块可以加强更重要的特征图的权重,减小作用较小的特征图的权重。模型整体架构如下:
在这里插入图片描述
生成器(用符号G表示)为编码器-解码器架构,并且对不同层次的特征图引入注意力。并且在残差块(Residual block)中引入AdaLIN(Adaptive Layer-Instance Normalization)可提升模型效果。其中γ和β需要利用来自注意力图的全连接层计算得出,如Figure1所示。
在这里插入图片描述
判别器(用符号D表示)由编码器-分类器组成结构相对简单,没有引入AdaLIN函数。但同样引入了注意力,也是对编码阶段不同层次的特征图通过一定的权重形成注意力机制。

注意生成器和判别器均引入了辅助分类器,根据Figure1所示,辅助分类器利用解码出的特征图结合全连接层进行辅助分类,全连接层给出各个特征图的权重,用于注意力机制,进行注意力图的提取。

损失函数结合了四种Loss
(1) 对抗Loss
GAN网络常用的均方误差Loss。
在这里插入图片描述
(2) Cycle Loss
本文的风格转换网络实际上可以采用类似CycleGAN的方法进行源域和目标域的相互转换。
在这里插入图片描述

可以应用CycleGAN的损失函数:
在这里插入图片描述
(3) Identity Loss
为了保证颜色分布大致相同,还应用了所谓的身份Loss,意图让生成图像和原图像保持一定的相似性。
在这里插入图片描述
(4) CAM Loss
这也是本篇文章方法的特色之一,是实验模型中除AdaLIN以外的重要关注点之一,本文后面的实验有是否应用CAM Loss的效果对比。该Loss可以训练辅助分类器,对注意力机制产生影响进而起到对生成器和判别器的帮助。
在这里插入图片描述
最后将四种损失函数结合在一起,对GAN进行训练,最后取得了良好的效果。
在这里插入图片描述
在实验部分中,作者也给出了不同模型间的对比,并且进一步对CAM Loss和AdaLIN进行了分析。个人认为,本文最大的创新点是AdaLIN正则化函数的应用、利用辅助分类器的注意力机制和CAM Loss的应用,这些方法对模型效果的提升起了很大的帮助。
有兴趣的可以参考论文原文:
https://arxiv.org/abs/1907.10830

初识GAN,如果本文有理解偏差的地方,还望大家指出。
Pytorch代码工程并不复杂,可以自己部署并且生成你自己专属的二次元头像啦!在Github仓库里的issue里面有提到预训练模型和数据集的下载方法,详情请参见
(Tensorflow)https://github.com/taki0112/UGATIT/issues/6
(Pytorch)https://github.com/znxlwm/UGATIT-pytorch/issues/24

之后还会对本篇文章利用百度深度学习框架飞桨PaddlePaddle对本文进行复现,欢迎关注。

最后,欢迎大家加入百度顶会论文复现营,在这里可以进行GAN相关内容的学习,个人觉得有一定深度学习入门知识的同学可以通过此项目获得一定的能力提升。链接如下:
https://aistudio.baidu.com/aistudio/education/group/info/1340

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值