深度学习(6)——基于卷积神经网络的图像样式转换

基于卷积神经网络的图像样式转换

Image Style Transfer Using Convolutional Neural Networks
Mr. Gatys有三篇关于风格迁移的文章,这是第三篇,其余两篇请看下两篇译文
其中有详细的公式推导
译文,未校对
如有错误请见谅

摘要

以不同风格呈现图像的语义内容是困难的图像处理任务。 可以说,先前方法的主要限制因素是缺乏明确表示语义信息的图像表示,不能将图像内容与样式分离。 在这里,我们使用从针对对象识别优化的卷积神经网络导出的图像表示,这使得高级图像信息显式化。 我们介绍了一种艺术风格的神经算法,可以分离和重新组合图像内容和自然图像的风格。 该算法允许我们产生高感知质量的新图像,其将任意照片的内容与众多众所周知的艺术品的外观相结合。 我们的结果为卷积神经网络学习的深度图像表示提供了新的见解,并展示了它们在高级图像合成和操作方面的潜力。

1.引言

将样式从一个图像转移到另一个图像可以被认为是纹理转移的问题。在纹理转移中,目标是在限制纹理合成的同时从源图像合成纹理以便保留目标图像的语义内容。对于纹理合成,存在大量强大的非参数算法,它们可以通过对给定源纹理的像素重新采样来合成逼真的自然纹理[7,30,8,20]。先前大多数的纹理转移算法依赖于这些非参数方法进行纹理合成,同时使用不同的方法来保留目标图像的结构。例如,Efros和Freeman引入了一个对应图,其中包括目标图像的特征,如图像强度,以约束纹理合成过程[8]。赫兹曼等人使用图像类比将纹理从已经风格化的图像转移到目标图像上[13]。 Ashikhmin专注于传输高频纹理信息,同时保留目标图像的粗略尺度[1]。李等人通过另外通过边缘方向信息通知纹理转移来改进该算法[22]。

尽管这些算法取得了显着的成果,但它们都受到相同的基本限制:它们仅使用目标图像的低级图像特征来通知纹理转移。 然而,理想情况下,样式转移算法应该能够从目标图像(例如,对象和一般场景)中提取语义图像内容,然后在纹理转移过程中以源图像的样式呈现目标图像的语义内容。 因此,基本的先决条件是找到独立地模拟语义图像内容的变化和其呈现方式的图像表示。 以前仅针对自然图像的受控子集实现此类分解表示,例如不同照明条件下的面部和不同字体样式的字符[29]或手写数字和门牌号[17]。

通常将内容与自然图像中的样式分开仍然是一个非常困难的问题。 然而,深度卷积神经网络[18]的最新进展已经产生了强大的计算机视觉系统,学习从自然训练中提取高级语义信息,并在特定任务(如对象识别)上获得足够的标记数据,在通用特征表示中学习提取高级图像内容,可以概括数据集[6]甚至是其他视觉信息处理任务[19,4,2,9,23],包括纹理识别[5]和艺术风格分类[15]。

在这项工作中,我们展示了如何通过高性能卷积神经网络学习的通用特征表示来独立处理和操纵自然图像的内容和风格。我们介绍了一种艺术风格的神经算法,一种执行图像样式转换的新算法。从概念上讲,它是一种纹理转移算法,通过来自最先进的卷积神经网络的特征表示来约束纹理合成方法。由于纹理模型也基于深度图像表示,因此样式转移方法优雅地简化为单个神经网络内的优化问题。通过执行预图像搜索来生成新图像以匹配示例图像的特征表示。这种一般方法之前已经在纹理合成[12,25,10]背景下使用过,并且用于改善对深度图像表示的理解[27,24]。实际上,我们的样式转换算法结合了基于卷积神经网络的参数化纹理模型[10]和反转其图像表示的方法[24]。

2.深度图像表示

下面给出的结果是在VGG网络[28]的基础上生成的,该网络经过训练以进行对象识别和定位[26],并在原始工作中进行了广泛的描述[28]。我们使用了VGG-19网络的标准化版本提供的特征空间,它有16个卷积层和5个池化层。我们通过缩放权重来规范化网络,使得每个卷积滤波器在图像和位置上的平均激活等于1。可以在不改变其输出的情况下对VGG网络进行这种重新缩放,因为它仅包含整流线性激活函数并且不对特征映射进行归一化或汇集。我们不使用任何完全连接的层。该模型是公开的,可以在caffe框架中进行探索[14]。对于图像合成,我们发现通过平均合并替换最大合并操作会产生稍微更吸引人的结果,这就是为什么显示的图像是使用平均合并生成的。

2.1 内容表示

通常,网络中的每个层定义为非线性滤波器组,其复杂性随着网络中层的位置而增加。因此,通过对该图像的滤波器响应,在卷积神经网络的每个层中编码给定的输入图像 x ⃗ \vec{x} x 。具有 N l N_l Nl个不同滤波器的层具有尺寸为 M l M_l Ml N l N_l Nl个特征图,其中 M l M_l Ml是高度乘以特征图的宽度。因此, l l l层中的响应可以存储在矩阵 F l ∈ R N l × M l F^l \in R^{N_l×M_l} FlRNl×Ml中,其中 F i j l F^l_{ij} Fijl l l l层中位置 j j j处的第 i i i个滤波器的激活。

1

图1.卷积神经网络(CNN)中的图像表示。

给定输入图像在CNN中的每个处理阶段表示为一组滤波图像。虽然不同过滤器的数量沿着处理层级增加,但是过滤图像的大小通过一些下采样机制(例如,最大池化)而减小,导致每层网络的单元总数减少。内容重建。我们可以通过仅知道网络在特定层中的响应来重建输入图像,从而在CNN中的不同处理阶段可视化信息。我们从原始层’conv1_2’(a),‘conv2_2’(b),‘conv3_2’(c),‘conv4_2’(d)和’conv5_2’(e)重建输入图像VGG的网络。我们发现从较低层重建几乎是完美的(a-c)。在网络的较高层中,丢失详细的像素信息,同时保留图像的高级内容(d,e)。风格重建。在原始CNN激活之上,我们使用一个捕获输入图像纹理信息的特征空间。样式表示计算CNN的不同层中的不同特征之间的相关性。我们从构建在CNN层的不同子集上的样式表示重建输入图像的样式(‘conv1_1’(a),‘conv1_1’和’conv2_1’(b),‘conv1_1’,‘conv2_1’和’conv3_1’(c),‘conv1_1’,‘conv2_1’,‘conv3_1’和’conv4_1’(d),‘conv1_1’,‘conv2_1’,‘conv3_1’,'conv4_1 ‘和’conv5_1’(e)。这将创建与增加规模的给定图像的样式匹配的图像,同时丢弃场景的全局排列的信息。

为了可视化在层次结构的不同层处编码的图像信息,可以在白噪声图像上执行梯度下降以找到与原始图像的特征响应匹配的另一图像(图1,内容重建)[24]。令 p ⃗ \vec{p} p x ⃗ \vec{x} x 是原始图像和生成的图像,并且 P l P_l Pl F l F_l Fl是它们在 l l l层中的相应特征表示。然后我们定义两个特征表示之间的平方误差损失
KaTeX parse error: Expected '}', got '\cal' at position 3: {\̲c̲a̲l̲ ̲L}_{content}(\v…
相对于层 l l l中的激活,该损失的导数等于
KaTeX parse error: Expected '}', got '\cal' at position 19: …frac{\partial {\̲c̲a̲l̲ ̲L}_{content}}{\…
从中可以使用标准反向传播计算关于图像 x ⃗ \vec{x} x 的梯度(图2,右)。因此,我们可以该改变最初的随机图像 x ⃗ \vec{x} x ,直至它在卷积神经网络的某一层产生于原始图像 p ⃗ \vec{p} p 相同的响应。
2

图2.样式传输算法。

提取并存储第一个内容和样式特征。样式图像 a ⃗ \vec{a} a 通过网络传递,并且在所有层上的样式表示 A l A^l Al被计算和存储(左)。内容图像 p ⃗ \vec{p} p 通过网络并且存储其中某一层(本文使用conv4_2 层)中的内容表示 P l P^l Pl(右)。然后,随机白噪声图像 x ⃗ \vec{x} x 通过网络并且计算其样式特征 G l G^l Gl和内容特征 F l F^l Fl。在每个层上的样式表示中,计算 G l G^l Gl A l A^l Al之间的元素均方差,以给出样式损失KaTeX parse error: Expected '}', got '\cal' at position 2: {\̲c̲a̲l̲ ̲L}_{style}(左)。此外,计算 F l F^l Fl P l P^l Pl之间的均方差以给出内容损失KaTeX parse error: Expected '}', got '\cal' at position 2: {\̲c̲a̲l̲ ̲L}_{content}(右)。总损失KaTeX parse error: Expected '}', got '\cal' at position 2: {\̲c̲a̲l̲ ̲L}_{total}则是内容和样式损失之间的线性组合。可以使用误差反向传播(中间)来计算其关于像素值的导数。该梯度用于迭代地更新图像 x ⃗ \vec{x} x ,直到它同时匹配样式图像的样式特征 a ⃗ \vec{a} a 和内容图像的内容特征 p ⃗ \vec{p} p (中间,底部)。

当卷积神经网络在训练物体识别时,它们会形成图像表示,使对象信息沿着处理层次越来越明显[10]。 因此,随着网络的层层深入,相对于实际图像内容,输入图像的图像表示越来越敏感,但是对其精确外观变得相对不变。 因此,网络中的较高层可以捕获图像内容及空间位置的高级内容,但不会非常大地限制重建的确切像素值(图1,内容重建d,e)。 相反,来自较低层的重建简单地再现原始图像的精确像素值(图1,内容重建a-c)。 因此,我们将网络的较高层中的特征响应称为内容表示。

2.2 样式表示

为了获得输入图像样式的表示,我们使用了一个用于捕获纹理信息的特征空间[10]。 此功能空间可以构建在网络任何层的过滤器响应之上。 它由不同滤波器响应之间的相关性组成,其中期望取自特征映射的空间范围。 这些特征相关性由Gram矩阵 G l ∈ R N l × N l G^l\in R^{N^l×N^l} GlRNl×Nl给出,其中 G i j l G^l_{ij} Gijl是层 l l l中的矢量化特征映射 i i i j j j之间的内积:
(3) G i j l = ∑ k F i k l F j k l G^l_{ij} = \sum_k F^l_{ik}F^l_{jk} \tag{3} Gijl=kFiklFjkl(3)
通过包括多个层的特征相关性,我们获得输入图像的静态多尺度表示,其捕获的是纹理信息而不是全局布置。 同样,我们可以通过构建与给定输入图像样式相匹配的图像,从而可视化这些构建在网络不同层上的样式特征空间(图1,样式重建)。 这是通过使用来自白噪声图像的梯度下降来最小化原始图像的Gram矩阵和要生成的图像的Gram矩阵之间的均方误差完成的[10,25]。

a ⃗ \vec{a} a x ⃗ \vec{x} x 是原始图像和生成的图像,并且 A l A^l Al G l G^l Gl是它们在 l l l层中的相应样式表示。 然后,第 l l l层对总损失的贡献
(4) E l = 1 4 N l 2 M l 2 ∑ i , j ( G i j l − A i j l ) 2 E_l = \frac{1}{4N^2_lM^2_l}\sum_{i,j} (G^l_{ij} - A^l_{ij})^2 \tag{4} El=4Nl2Ml21i,j(GijlAijl)2(4)
总的样式损失是
KaTeX parse error: Expected '}', got '\cal' at position 3: {\̲c̲a̲l̲ ̲L}_{style}(\vec…
其中 w l w_l wl是每层对总损失的贡献的加权因子(参见下面我们的结果中 w l w_l wl的具体值)。 关于 l l l层中的激活的 E l E_l El的导数可以通过分析计算:
(6) ∂ E l ∂ F i j l = { 1 N l 2 M l 2 ( ( F l ) T ( G l − A l ) ) j i , if  F i j l &gt; 0 0 , if  F i j l &lt; 0 \frac{\partial E_l}{\partial F^l_{ij}} = \begin{cases} \frac{1}{N^2_lM^2_l}((F^l)^T(G^l-A^l))_{ji}, &amp; \text {if $F^l_{ij}&gt;0$} \\ 0, &amp; \text{if $F^l_{ij}&lt;0$} \end{cases} \tag{6} FijlEl={Nl2Ml21((Fl)T(GlAl))ji,0,if Fijl>0if Fijl<0(6)
可以使用标准误差反向传播容易地计算 E l E_l El相对于像素值 x ⃗ \vec{x} x 的梯度(图2,左)。

2.3 样式转移

为了将艺术品的风格转移到照片上,我们合成了一个新的图像,它同时匹配了 p ⃗ \vec{p} p 的内容表示和 a ⃗ \vec{a} a 的样式表示(图2)。 因此,我们共同最小化白噪声图像的特征表示与某一层(本文使用conv4_2 层)中的照片的内容表示的距离以及在卷积神经网络的多个层上定义的绘画的样式表示。 我们最小化的损失函数是:
KaTeX parse error: Expected '}', got '\cal' at position 3: {\̲c̲a̲l̲ ̲L}_{total}(\vec…
其中 α \alpha α β \beta β分别是内容和样式重建的加权因子。 关于像素值KaTeX parse error: Expected '}', got '\cal' at position 17: …frac{\partial {\̲c̲a̲l̲ ̲L}_{total}}{\pa…的梯度可以用作一些数值优化策略的输入。 在这里我们使用L-BFGS数值优化算法 [32],我们发现它最适合图像合成。 为了在可比较的比例上提取图像信息,我们总是在计算其特征表示之前将样式图像的大小调整为与内容图像相同的大小。 最后,请注意,与[24]不同,我们没有使用图像先验来规范我们的综合结果。 但可以说,网络中较低层的纹理特征充当了样式图像之前的特定图像。 此外,由于我们使用的网络架构和优化算法不同,预计图像合成会有一些差异。

3. 结果

3

图3.将照片内容与几种着名艺术品的风格相结合的图像。

通过找到同时匹配照片的内容表示和艺术品的样式表示的图像来创建图像。A(照片:Andreas Praefcke)为描绘德国图宾根的Neckarfront的原始照片。 为每个生成的图像提供样式的绘画显示在每个面板的左下角。 图B为J.M.W.Turner的牛头怪残骸(1805),图C为文森特梵高的星光之夜(1889),图D为Der Schrei的Edvard Munch(1893),图E为Pablo Picasso的Femme nue assise(1910),图F为Wassily Kandinsky的Composition VII(1913)。

本文的主要发现是卷积神经网络中内容和风格的表征是可以很好地分离的。也就是说,我们可以独立地操纵两个表示以产生新的,感知上有意义的图像。为了证明这一发现,我们生成了来自两个不同源图像的内容和样式表示的混合图像。特别是,我们匹配描绘德国图宾根内卡河河畔的照片的内容表现以及从不同艺术时期拍摄的几件著名艺术品的风格表示(图3)。通过匹配层’conv4_2’上的内容表示和 层’conv1_1’,‘conv2_1’,‘conv3_1’,'conv4_1’和’conv5_1’上的样式表示来合成图3中所示的图像(在这些层中 w l w_l wl = 1/5,在所有其他层中 w l w_l wl = 0)。比率 α / β \alpha/\beta α/β 1 × 1 0 − 3 1×10^{-3} 1×103(图3B), 8 × 1 0 − 4 8×10^{-4} 8×104(图3C), 5 × 1 0 − 3 5×10^{-3} 5×103(图3D)或 5 × 1 0 − 4 5×10^{-4} 5×104(图3E,F)。

3.1 内容和风格匹配之间的权衡

当然,图像内容和风格不能完全解开。当合成将一个图像的内容与另一个图像的样式的组合图像时,通常不存在同时完全匹配两个约束的图像。然而,由于我们在图像合成期间最小化的损失函数是内容和样式的损失函数之间的线性组合,我们可以平滑地调整重构内容或样式的重点(图4)。对样式的强调将导致图像与艺术品的外观相匹配,有效地给出了它的纹理版本,但几乎没有显示任何照片的内容( α / β = 1 × 1 0 − 4 \alpha/\beta= 1 ×10^{-4} α/β=1×104,图4,左上) 。当强调内容时,可以清楚地识别照片,但是绘画的风格不是很匹配( α / β = 1 × 1 0 − 1 \alpha/\beta= 1 ×10^{-1} α/β=1×101,图4,右下)。对于特定的一对内容和样式图像,可以调整内容和样式之间的权衡以创建视觉上吸引人的图像。。

4

图4.匹配内容的相对权重和各个源图像的样式。

匹配内容和匹配样式之间的比率α/β从左上到右下增加。 高度强调风格有效地产生了样式图像的纹理化版本(左上)。 高度重视内容会产生只有少量风格化的图像(右下角)。 在实践中,可以在两个极端之间平滑地插值。

3.2 卷积神经网络不同层次的影响

图像合成过程中的另一个重要因素是选择与内容和样式表示相匹配的图层。 如上所述,样式表示是包括神经网络的多个层的多尺度表示。 这些网络层的数量和位置决定了样式匹配的局部比例,从而产生不同的视觉体验(图1,样式重建)。 我们发现,将样式表示与网络中较高层相匹配可以保持局部图像结构的规模越来越大,从而产生更平滑,更连续的视觉体验。 因此,通常通过将样式表示与网络中的高层匹配来创建视觉上最吸引人的图像,这就是为什么所示的所有图像都匹配网络’conv1_1’,‘conv2_1’, 'conv3_1‘,'conv4_1’和’conv5_1’层中的样式特征的原因。

5

图5.匹配网络不同层中的内容表示的效果。

匹配网络层’conv2_2’上的内容保留了原始照片的大部分精细结构,并且合成图像看起来好像绘画的纹理简单地混合在照片(中间)上。 当匹配网络层’conv4_2’上的内容时,绘画的纹理和照片的内容合并在一起,使得照片的内容以绘画的风格(底部)显示。 使用相同的参数选择( α / β = 1 × 1 0 − 3 \alpha/\beta= 1 ×10^{-3} α/β=1×103)生成两个图像。 作为风格图像的画作显示在左下角,由Lyonel Feininger于1915年命名为Jesuiten III。

为了分析使用不同网络层来匹配内容特征的效果,我们提出了通过使用相同的图形和参数配置( α / β = 1 × 1 0 − 3 \alpha/\beta= 1 ×10^{-3} α/β=1×103)对照片进行样式化而获得的样式转移结果,不同的是,匹配的内容特征分别在’conv2_2’层’conv4_2’层(图5)。当匹配网络的较低层上的内容时,该算法匹配照片中的大部分详细像素信息,并且生成的图像看起来好像艺术品的纹理仅仅混合在照片上(图5,中间)。相反,当在网络的较高层上匹配内容特征时,照片的详细像素信息不是强烈约束的,并且艺术品的纹理和照片的内容被适当地合并。也就是说,改变图像的精细结构,例如边缘和颜色图,使得它在显示照片内容的同时与艺术品的风格一致(图5,底部)。

3.3 梯度下降的初始化

6

图6.梯度下降的初始化。

A从内容图像初始化。 B从样式图像初始化。 C从不同的白噪声图像初始化的四个图像样本。 对于所有图像,比率 α / β = 1 × 1 0 − 3 \alpha/\beta= 1 ×10^{-3} α/β=1×103

我们已经用白噪声初始化了到目前为止显示的所有图像。 但是,也可以使用内容图像或样式图像初始化图像合成。 我们探索了这两种替代方案(图6A,B):尽管它们将最终图像偏向于初始化的空间结构,但是不同的初始化似乎对合成过程的结果没有强烈影响。 应该注意,仅用噪声初始化允许产生任意数量的新图像(图6C)。 用固定图像初始化总是确定性地导致相同的结果(直到梯度下降过程中的随机性)。

3.4 逼真的风格转移

7

图7.逼真的样式转移。

这种风格从夜间显示纽约的照片转移到白天显示伦敦的照片上。 从内容图像初始化图像合成,比率 α / β = 1 × 1 0 − 2 \alpha/\beta= 1 ×10^{-2} α/β=1×102

到目前为止,本文的重点是艺术风格转移。 通常,算法可以在任意图像之间传递样式。 作为一个例子,我们将夜间纽约照片的风格转移到白天的伦敦图像上(图7)。 尽管照片写实并未完全保留,但合成图像类似于风格图像的大部分颜色和闪电,并且在某种程度上显示了伦敦夜间的图像。

4.讨论

在这里,我们演示如何使用高性能卷积神经网络的特征表示来在任意图像之间传输图像样式。虽然我们能够显示高感知质量的结果,但算法仍然存在一些技术限制。

可能最大的限制因素是合成图像的分辨率。优化问题的维度以及卷积神经网络中的单元数量随像素数量线性增长。因此,合成过程的速度在很大程度上取决于图像分辨率。本文中呈现的图像以大约512×512像素的分辨率合成,并且在Nvidia K40 GPU上合成过程可能需要长达一个小时(取决于确切的图像大小和梯度下降的停止标准)。虽然这种性能目前不允许我们的样式转换算法在线和交互式应用,但深度学习的未来改进很可能也会提高该方法的性能。

另一个问题是合成图像有时会受到一些低级噪声的影响。 虽然这在艺术风格转移中不是问题,但是当内容和风格图像都是照片并且合成图像的照片写实感受到影响时,问题变得更加明显。 然而,噪声非常有特征,并且看起来类似于网络中的单元滤波器。 因此,有可能构建有效的去噪技术以在优化过程之后对图像进行后处理。

传统上,在非真实感渲染的标签下,在计算机图形学中研究图像的艺术风格化。 除了纹理转移的工作之外,常见的方法在概念上与我们的工作完全不同,因为它们提供专门的算法来以一种特定的样式呈现源图像。 对于该领域的最新评论,我们向读者推荐[21]。

图像内容与样式的分离不一定是明确定义的问题。 这主要是因为尚不清楚究竟是什么定义了图像的样式。 它可能是绘画中的笔触,颜色贴图,某些主要形式和形状,也可能是场景的构图和图像主题的选择 - 可能它是所有这些的混合物以及更多。 因此,通常不清楚图像内容和样式是否可以完全分离 - 如果是,如何。 例如,如果没有类似星星的图像结构,就不可能以梵高的“星光之夜”的风格渲染图像。 在我们的工作中,如果生成的图像“看起来像”样式图像但显示内容图像的对象和场景,我们认为样式转移是成功的。 我们完全清楚这个评价标准既不是数学上的精确,也不是普遍认同的。

然而,我们发现真正令人着迷的是,经过训练以执行生物视觉的核心计算任务之一的神经系统自动学习图像表示,其允许( 至少在某种程度上) 图像内容与风格的分离。 一种解释可能是,当学习对象识别时,网络必须对保留对象身份的所有图像变化不变。 将图像内容的变化及其外观变化分解的表示对于该任务是非常实用的。 鉴于性能优化的人工神经网络与生物视觉之间惊人的相似性[11,31,3,19,16],因此很有可能推测人类从风格中抽象内容的能力( 我们创造和享受艺术的能力)也可能主要是我们视觉系统强大的推理功能的卓越签名。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值