1,论文题目
2,内容简介
3,论文背景
图像到图像的风格转化,在这之前就有比较出名的cyclegan。那么之后为什么会有stargan的发现呢?stargan的出发点又有什么不同呢?
为了回答这个问题,我们先介绍cyclegan
cyclegan能做把图片的斑马变成马,实现简单的风格迁移
cyclegan能实现简单的两个图像间的风格转移。那么问题来了.
当我有一个目标图像,想把他转换为N种风格,那我是不是得有N个cyclegan得模型呢?我们能不能用一种模型来实现目标图像的多种风格转化呢?
由此,就有我们今天要讲的STARGAN
下图左边(a)表示的是cyclegan的结构模型,如果他要实现四种风格迁移的话,他需要43个模型(K种风格就需要k(k-i)个模型)。如下图右边是stargan的结构模型,他要实现五种风格迁移的话,他只需要一个模型就能实现五种风格迁移。接下来介绍stargan是怎么运作的
4,stargan运行原理
第一步G(ab);首先输入input图片(提供整体结构),在输入内容图像(提供风格),把内容图像经过one-hot编码生成标签(如11111代表女人,00000代表男人)。在这个过程,我们已经,告诉计算机我们想要的目标及他的风格,在通过生成器生成一张fake image,这个过程简称G(ab)。
第二步G(ba);具体意义就是,我这张fake image 能还原为input图片吗?因为,我只要做风格转化,你生成器别把我的input图片整体框架也改变了。
像如图所示,我想要把input转化为黄头发。但是蓝色箭头,红色箭头都能生成你要的黄头发的风格,但是红色箭头把我input的图像框架给改变了,所以说,我们最后通过G(ba)这个过程,让G(ab)生成的fake image,能还原为iuput,确保目标不变,仅风格变。
第三步判别,我们把fake image通过判别器,看这个图片的解码标签是否与我的需求风格标签一致,是的话输出,否的话,重复上面循环。
5,stargan是否还有改进的地步呢?
我们知道,我们给风格定义,用的是标签(00000/11111之类的one-hot编码),标签它本身与它图片之间是没有任何联系的,他只是我们人为的,把这两者相联系(就像每个人都有一个名字一样,这个名字本身就没有意义,名字只是一个标签而已)
那么问题来了;怎么加强这两者(标签与风格图片)之间的联系呢?
我们可以把标签换成向量,这个向量是通过风格图片得到的
如图所示
这个改进,成就了后来的stargan v2版本
参考链接