Image-to-Image Translation with Conditional Adversarial Networks
论文主要内容:
1.提出了一种对于gan的理解
对于很多任务,我们都需要自己设计目标函数,来使得网络达到我们想要的任务和目的。而gan网络的出现,使得我们无需再手工设计我们的目标函数,而是利用gan网络来通过数据来“自动生成”我们想要的损失目标。文中提到,对于cnn 网络,能够应用在分类或者检测上,但是依然需要去设计高效的损失去达到目的。如果能够设定一个高级的目标,诸如“生成一张以假乱真的图片”,然后让网络自己学习损失,是文中想要表述的目的。
2.提出了一种image-to-image 的通用框架
类比于语言翻译,这里可以引用到任何的图像之间的翻译转换。
3.提出了Conditional gan 网络
1.逐像素的分类和回归,中对于结构是“看不见的”,这些方法只会认为每一个像素都是条件独立的,彼此之间的联系没有考虑进来。
2.c gan 能够看见结构之间的差异,对于毗连的结构能够起到监督和惩罚作用
3.在生成网络上,提出一种新的网络,U-Net ,
区别:
encoder-decoder : 输入网络,逐渐下采样,然后到了bottomneck,不断上采样,输入和输出,共享的是抽象的特征
U-Net:通过将 第 i层 和第 n-i 层的网络之间进行concatentes ,其中n为总共的网络层数,有助于低级特征,就是更细节的特征进行前后的传输。
4.在判别器网络上,提出一种PatchGan的分类器,能够对缩放的图片进行结构上的监督和惩罚
5.普通gan和cgan之间的差异
c gan公式
其中 x 是输入图像,z 是噪声向量, y是最终的输出的fake 图像
c gan 的训练流程
其中cgan 的训练流程和普通gan 的区别在与,cgan的生成器和判别器都能看见输入图像的边界图,也就是上图的x
普通gan的公式如下:
可以看到,这里的判别器只看见 最终丢给他的真图或者生成的假图
另外,文中提出,使用L1损失,对于图像生成的模糊的程度,相比L2损失来说,降低了很多
L1损失公式如下:
最终的目标公式:
如果没有加入噪声z 的问题在于,原先的gan网络会生成确定的输出,因此不能匹配除函数以外的任何分布。
6.patchGan的特点
L1损失专注于低频结构,而patchGan的损失专注于高频结构
做法:将图像最后进行缩放成N*N大小的patch,然后对这N*N个单元,进行逐个元素的 real or fack 的判断。判断形式就是二分类的损失函数,对于每一个单元做二分类的交叉损失,来确定,每一个每一个块是不是对应的这么图和假图,因为这样能确认缩放的每一块是不是最终的真图和假图。
patchGan可以认为是一种风格损失,将图像建模为一种马尔科夫随机场,并假设像素之间的独立距离大于一个斑块的直径。
4.实验部分:
L1损失:倾向于使用条件概率密度的中间值来给图片上色
cGan:使颜色分布向着更正确的方向进行激励
cgan的匹配性质的颜色分布,这里的颜色分布是基于Lab色彩空间,分别含有L,a,b分量,(https://zh.wikipedia.org/wiki/Lab%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4)可以看到 L1 损失更加倾向于平均的,灰度的的颜色生成,而增加了cgan的作用在于,使得颜色分布更加接近于真实图像
基于语义分割的实验
将复杂的图输入,生成对应的map图,然后丢给分类器进行分类进行定量分析,结果发现L1损失的效果更好,
实验猜测:对于某些更确定的目的。比如说判断输出是不是更接近于ground truth ,而不是绘图方面,在这方面的的L1损失可能会比cgan要有效。