英语原文共 18 页
基于感知损失函数的实时风格转换和超分辨率重建
摘要:我们考虑的图像转换的问题,即将一个输入图像变换成一个输出图像。最近热门的图像转换的方法通常是训练前馈卷积神经网络,将输出图像与原本图像的逐像素差距作为损失函数。并行的工作表明,高质量的图像可以通过用预训练好的网络提取高级特征、定义并优化感知损失函数来产生。我们组合了一下这两种方法各自的优势,提出采用感知损失函数训练前馈网络进行图像转换的任务。本文给出了图像风格化的结果,训练一个前馈网络去解决实时优化问题(Gatys等人提出的),和基于有优化的方法对比,我们的网络产生质量相当的结果,却能做到三个数量级的提速。我们还实验了单图的超分辨率重建,同样采用感知损失函数来代替求逐像素差距的损失函数。
关键词:风格转换,超分辨率重建,深度学习
一. 简介
许多经典问题可以被分为图像转换任务,即一个系统接收到一些输入图像,将其转化成输出图像。用图像处理来举例,比如图像降噪,超分辨率重建,图像上色,这都是输入一个退化的图像(噪声,低分辨率,灰度),输出一个高质量的彩色图像。从计算机视觉来举例,包括语义分割,深度估计,其中的输入是一个彩色图像,输出是图像对场景的语义或几何信息进行了编码。
一个处理图像转换任务的方法是在有监督模式下训练一个前馈卷积神经网络,用逐像素差距作损失函数来衡量输出图像和输入图像的差距。这个方法被Dong等人用来做了超分辨率重建,被Cheng等人做了图像上色,被Long等人做了图像分割,被Eigen等人做了深度和表面预测。这个方法的优势在于在测试时,只需要一次前馈的通过已训练好的网络。
然而,这些方法都用了逐像素求差的损失函数,这个损失函数无法抓住输入及输出图像在感知上的差距。举个例子,考虑两张一模一样的图像,只有1像素偏移上的差距,尽管从感知上这俩图片一模一样,但用逐像素求差的方法来衡量的话,这俩图片会非常的不一样。
同时,最近的一些工作证明,高质量的图像可以通过建立感知损失函数(不基于逐像素间的差距,取而代之的是从预训练好的CNN中提取高层次的图像特征来求差)图像通过使损失函数最小化来生成,这个策略被应用到了特征倒置[6](Mahendran等),特征可视化[7] (Simonyan等/Yosinski等),纹理综合及图像风格化[9,10] (Gatys等)。这些方法能产生很高质量的图片,不过很慢,因为需要漫长的迭代优化过程。
在这篇论文中,我们结合了两类方法的优势。我们训练一个用于图像转换任务的前馈网络,且不用逐像素求差构造损失函数,转而使用感知损失函数,从预训练好的网络中提取高级特征。在训练的过程中,感知损失函数比逐像素损失函数更适合用来衡量图像之间的相似程度,在测试的过程中,生成器网络能做到实时转换。
我们实验了两个任务,图像风格化和单图的超分辨率重建。这两种都有天生的缺陷:图像风格化没有唯一正确的输出,超分辨率重建的话,我们可以从一个低分辨率图像重建出很多高分辨率的图像。比较好的是,这两个任务都需要对输入的图像进行语义上的理解。图像风格化中,输出图片从语义维度来看必须跟输入图像比较接近,尽管颜色和纹理会发生质的变化。超分辨率重建任务中,必须从视觉上模糊的低分辨率输入来推断出新的细节。原则上,一个为任何任务训练的高质量的神经网络应该能隐式的学习输入图像的相关语义;然而在实践中我们不需要从头开始学习:使用感知损失函数,允许从损失网络直接转移语义信息到转换网络。
图1:我们的结果,第一行是风格化,第二行是4倍的超分辨率重建
对于图像风格化,我们的前馈网络用来解决[10]中的优化问题;我们的结果跟[10]中很相似(无论是质量还是目标函数的值),但能达成3个数量级的速度飞升。对于超分辨率重建,我们证实:把逐像素求差损失函数改成感知损失函数,能带来视觉享受级的4倍和8倍超分辨率重建。
二. 相关工作
前馈图像转换:最近几年前馈图像转换任务应用十分广泛,很多转换任务都用了逐像素求差的方式来训练深度卷积神经网络。
语义分割的方法[3,5,12,13,14,15]产生了密集的场景标签,通过在在输入图像上以完全卷积的方式运行网络,配上逐像素分类的损失函数。[15]跨越了逐像素求差,通过把CRF当作RNN,跟网络的其他部分相加训练。我们的转换网络的结构是受到[3]和[14]的启发,使用了网络中下采样来降低特征图谱的空间范围,其后紧跟一个网络中上采样来产生最终的输出图像。
最近的方法在深度估计[5,4,16]和表面法向量估计[5,17]上是相似的,它们把一张彩色输入图像转换成有几何意义的图像,是用前馈神经网络,用逐像素回归[4,5]或分类[17]的损失函数。一些方法把逐像素求差改换成了惩罚图像梯度或是用CRF损失层来强制促使输出图像具有一致性。[2]中一个前馈模型用逐像素求差的损失函数训练,用于将灰度图像上色。
感知的优化:有一定数量的论文用到了优化的方法来产生图像,它们的对象是具有感知性的,感知性取决于从CNN中提取到的高层次特征。图像可以被生成用于最大限度提升分类预测的分数[7,8],或是个体的特征[8]用来理解训练网络时的函数编码。相似的优化技巧同样可以用于产生高可信度的迷惑图像[18,19]。
Mahendran和Vedaldi从卷积网络中反转特征,通过最小化特征重建损失函数,为了能理解保存在不同网络层中的图像信息;相似的方法也被用来反转局部二进制描述符[20]和HOG特征[21].
Dosovitskiy和Brox的工作是跟我们的最相关的,它们训练了一个前馈神经网络去倒置卷积特征,快速的逼近了[6]提出的优化问题的结局方案,然而他们的前馈网络是用的逐像素重建损失函数来训练,而我们的网络是直接用了[6]用的特征重建损失函数。
风格转换:Gatys等人展示艺术风格转换,结合了一张内容图和另一张风格图,通过最小化根据特征重建的代价函数,风格重建用的代价函数也是基于从预训练模型中提取的高级特征;一个相似的方法之前也被用于做纹理合成。他们的方法产出了很高质量的记过,不过计算代价非常的昂贵因为每一次迭代优化都需要经过前馈、反馈预训练好的整个网络。为了克服这样一个计算量的负担,我们训练了一个前馈神经网络去快速获得可行解。
图2:系统概览。左侧是Generator,右侧是预训练好的vgg16网络(一直固定)
图像超分辨率重建。图像超分辨率重建是一个经典的问题,很多人提出了非常广泛的技术手段来做图像超分辨率重建。Yang等人提供了一个对普通技术的详尽评价,在广泛采用CNN之前,它们把超分辨率重建技术归类成了一种基于预测的方法.(bilinear, bicubic, Lanczos, [24]), 基于边缘的方法[25,26] ,统计的方法[27,28,29],基于块的方法[25,30,31,32,33] ,稀疏字典方法[37, 38]。最近在单图超分辨率放大方向取得成就的表现是用了三层卷积神经网络,用逐像素求差的方式算损失函数。其他一些有艺术感的方法在[39,40,41]
三. 方法
像图2中展示的那样,我们的系统由两部分组成:一个图片转换网络fw和一个损失网络phi;(用来定义一系列损失函数l1, l2, l3),图片转换网络是一个深度残差网络,参数是权重W,它把输入的图片x通过映射y=fw(x)转换成输出图片y,每一个损失函数计算一个标量值li(y,yi), 衡量输出的y和目标图像yi之间的差距。图片转换网络是用SGD训练,使得一系列损失函数的加权和保持下降:
(1) |
为了明确逐像素损失函数的缺点,并确保我们的损失函数能更好的衡量图片感知及语义上的差距,我们从最近的优化迭代生成图片的系列工作中得到了灵感[6,7,8,9,10],这些方法共同的关键点在于CNN是预先训练好用于图像分类的,这个CNN已经学会感知和语义信息编码,这正是我们希望在我们的损失函数中做的。所以我们用了一个预训练好用于图像分类的网络phi;,来定义我们的损失函数。之后使用同样是深度卷积网络的损失函数来训练我们的深度卷积转换网络。
损失网络phi;是能定义一个特征(内容)损失lfeat和一个风格损失lstyle,分别衡量内容和风格上的差距。对于每一张输入的图片x我们有一个内容目标yc一个风格目标ys,对于风格转换,内容目标yc是输入图像x,输出图像y,应该把风格Ys结合到内容x=yc上。我们为每一个目标风格训练一个网络。对于单图超分辨率重建,输入图像x是一个低分辨率的输入,目标内容是一张真实的高分辨率图像,风格重建没有使用。我们为每一个超分辨率因子训练一个网络。
3.1 图像转换网络
我们的图像转换网络结构大致上遵循Radford提出的指导方针[42]。我们不用任何的池化层,取而代之的是用步幅卷积或微步幅卷积做网络内的上采样或者下采样。我们的神经网络有五个残差块[42]组成,用了[44]说的结构。所有的非残差卷积层都跟着一个空间性的batch-normalization[45],和RELU的非线性层,最末的输出层除外。最末层使用一个缩放的Tanh来确保输出图像的像素在[0,255]之间。除开第一个和最后一个层用9x9的kernel,其他所有卷积层都用3x3的kernels,我们的所有网络的精确结构可以在支撑文档中看。
输入和输出:对于风格转换,输入和输出都是彩色图片,大小3times;256times;256。对于超分辨率重建,有一个上采样因子f,输出是一个高分辨率的图像3times;288times;288,输入是一个低分辨率图像 3times; 288/f times; 288/f,因为图像转换网络是完全卷积,所以在测试过程中它可以被应用到任何分辨率的图像中。
下采样和上采样:对于超分辨率重建,有一个上采样因子f,我们用了几个残差块跟着Log2f卷及网络(stride=1/2)。这个处理和[1]中不一样,[1]在把输入放进网络之前使用了双立方插值去上采样这个低分辨率输入。不依赖于任何一个固定的上采样插值函数,微步长卷积允许上采样函数和网络的其他部分一起被训练。
图3,和[6]相似,我们用了优化的方式去找一个图像y,能使得针对某些层的特征(内容)损失最小化,使用了预训练好的vgg16网络,在我们用较高层重建的时候,图像的内容和空间结构被保留了,但是颜色,纹理和精确的形状改变了。
对于图像转换,我们的网络用了两个stride=2的卷积去下采样输入,紧跟着的是几个残差块,接下来是两个卷积层(stride=1/2)来做上采样。虽然输入和输出有着相同的大小,但是先下采样再上采样的过程还是有一些其他好处。
第一个好处是计算复杂性。用一个简单的实现来举例,一个3times;3的卷积有C个fiters,输入尺寸Ctimes; Htimes; W需要9HWC^2 的乘加,这个代价和3times;3卷积有DC个filters,输入尺寸DCtimes;H/Dtimes;W/D是一样的。在下采样之后,我们可以因此在相同计算代价下用一个更大的网络。
第二个好处是有效的感受野大小。高质量的风格转换需要一致的改变图片的一大块地方;因此这个优势就在于在输出中的每个像素都有输入中的大面积有效的感受野。除开下采样,每一个附加的3times;3卷积层都能把感受野的大小增加2倍,在用因子D进行下采样后,每个3times;3的卷积不是增加了感受野的大小到2D,给出了更大的感受野大小但有着相同数量的层。
残差连接:He[43]等人用了残差连接去训练非常深的网络用来做图像分类,它们证明了残差连接能让网络更容易的去学习确定的函数,这在图像转换网络中也是一个很有吸引力的研究,因为在大多数情况下,输出图像应该和输入图像共享结构。因此我们网络的大体由几个残差块组成,每个包含两个3times;3的卷积层,我们用[44]中设计的残差块,在附录中有。
3.2 感知损失函数
我们定义了两个感知损失函数,用来衡量两张图片之间高级的感知及语义差别。要用一个预训练好用于图像分类的网络模型。在我们的试验中这个模型是VGG-16[46],使用Imagenet的数据集来做的预训练。
图4 和
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。