像素到像素的预测
每次写一篇都为了自己更深的思考,也希望大家能读懂,一丢丢都不难。这篇论文解决的问题是使用通用框架解决像素到像素的预测,按照从上到下,从做到右说明:上图的第一幅分割街景图恢复成真是街景图,第二幅使用不同颜色的块生成真实建筑,第三幅图是常见的灰度变彩色,第四幅是将空中照片生成地图(谷歌地图),第五幅是图片的风格转移,第六幅图是通过简单的草图生成真实物体。综上,这些任务都是将一张输入图片翻译成另一张与之对应的图片,而且是一个通用网络来做到的,训练数据肯定不一样的。实例——戳一下,这里可以看看。
根据之前那个Gan网络的意义,我们要明白实际上这篇论文框架可以通用的原因是Gan可以学习到loss,自己理解下的话大概是这个意思,判别网络的目的就是判定得到的图片是否符合要求是吧? 普通网络loss函数的本质也是要求最终得到的图片尽最大可能的得到符合要求的图片。实际上本质上判别网络做的事情就是loss做的事情。
Gan可以生成复杂清晰(分辨率高)的图片,这是其他网络办不到的,生成不清晰的图片会被判别网络认为是假的。一个有趣的例子,面临一个选择,既可以画一只绿色的鹦鹉,也可以画一只蓝色的鹦鹉,但是你画的必须是其中之一。一个没有对抗方的监督网络接受了真实鹦鹉的识别训练,会倾向于画出某种掺杂蓝色或绿色的平均色,导致其线条模糊不清。而一个对抗式网络则可以画出蓝色或绿色的鹦鹉,也可以在利用鹦鹉的{蓝,绿}概率分布随机地选择一种颜色。但它绝不会画出某种自然鹦鹉不存在的中间色。这篇论文使用的是一个条件对抗生成网络(Conditional Adversarial network), 区别与Gan的话,就是可以加约束条件。例如类别信息,或者其他模态的数据。假设下图中的表示的y类别信息是猫,鉴别器的鉴别前提就是生成的图片内容得有猫,在此基础上判别其他条件。
图像到图像转换问题的一个特征定义是将高分辨率输入网格映射到高分辨率输出网格。输入和输出的表面外观虽不同,但两者都是相同底层结构的渲染。因此,使用Gan的生成器中输入的结构大致与输出的结构对齐。判别器如果只使用Gan同样也是判别图片的结构,L1范数计算的是两个像素值的距离,判别的是图片的大致颜色。所以gan+L1是一个较好的结合。
条件判别模型CGan
它做的是去最大化D的区分度,最小化G(U-net)和real数据集的数据分布,在最小化损失函数时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数,和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。本篇论文使用最小化和最大化函数是minibatch SGD和Adam。顺便提一嘴,网站里面的猫,边->鞋,或者包,可能是利用了条件对抗生成模型中那个条件,就是cgan上面图的y变量。
此篇论文生成网络是U_Net(作者自己的网络,用于医学图像的分割网络),下面看看U-Net 的结构:
U-Net
U-Gan中的保留浅层结构的做法实际上较好的保留的边界,角点等高频的内容,U-Net对提升细节的效果非常明显。这里可以用更好的方法,分割方法有多种,能保留浅层信息的方法也很多,segnet,refinenet等。本文网络名同其结构U型。
这个大家要看清楚奥!不是一张图的一小部分那种~ 判别器使用提出的patchGan,用来判别感受野是N×N的局部patch是真是假。这个感受野举个例子,1*1大小的patch他的感受野表示的是原图,感受野是什么意思呢?戳一下就知道 用判别器对整个N*N大小图像进行卷积,也就是同一层的feature map 们,如下图,并平均所有的响应来得到最终的输出D。其中,N可以比图像的全尺寸小得多,毕竟是要产生高层的特征,也仍能产生高质量的结果。这是因为更小的PatchGAN有着更少的参数,跑得更快。
四个蓝箭头所指的feature map
假定距离大于patch块直径的元素间是相互独立的,这样的判别器有效地将图像建模为一个马尔可夫随机场,马尔可夫随机场是通过像素值的局部碎片区域描绘图像特征的。PatchGAN可以被理解为纹理/风格损失的一种形式。在看过文中提到的【25】这篇论文后,patch这个含义以及为什么叫做马尔科夫判别器,【25】这个论文的patch和马尔科夫性体现在固定层的featuremap作为patch输入到判别网络看是否为‘真’,神经网络本身是有向图,每一个节点的取值只取决于前一级的节点,而与更前面的节点无关,也就是说遵从马尔科夫性。本篇论文,patch是一整图片的一小块,马尔可夫性是论文作者假设出来的。
说到这里这篇论文的结构已经讲好了,那大家会不会好奇,如何评价生成图片好不好呢?论文中提出了两个策略,Amazon Mechanical Turk (AMT),大概就是一些人提出要求并付费,一些人有偿接受要求,有一丢丢那啥,比如图像标注啦~另一种fcn-score,属于语义分割中的,看图理解下。
融合了好几层得到的map
他有计算公式的,图像分割文章里有的奥!
融合的越多得到的效果越好