神经网络纹理合成和损失函数风格转移

稳定可控的神经网络纹理合成和采用直方图损失函数的风格转移
Stable and Controllable Neural Texture Synthesis and Style Transfer Using Histogram Losses

摘要

最近,出现了用卷积神经网络做纹理合成和风格转移的方法。这些方法令人激动,它们可以生成最新最好的质量。然而,我们发现这些方法在纹理质量,稳定性,参数调整,无需用户控制上面都有一些限制。本文提供了卷积神经网络的多尺度合成方法可以改善这些问题。我们对之前很多方法的不稳定的来源做了数学解释。我们使用直方图损失函数合成纹理改善这些不稳定性,更好地统计概率上匹配这些实例。我们还展示了如何在我们的多尺度框架中整合定位后的风格损失。这些损失函数可改善大特征的质量,增强内容和风格的分离,提供了艺术性控制,比如绘画。我们还展示了我们的方法对质量进行改进,在很少迭代中收敛,优化过程中更稳定。

1. 简介

最近几年,深度卷积神经网络在计算机视觉任务中展示了巨大的性能改进,比如物体分类,检测和分割。因为这些模型的成功,在图和计算图形处理中采用这些架构用于纹理合成任务。比如,在计算图像学中,深度学习架构可以用于多种任务,包括图像编辑,物体编辑,图像风格转移,纹理合成,新图像合成和图像修复。

本文主要关注卷积神经网络在风格转移和纹理合成中的应用。最近,Gatys提出了参数化合成模型,使用了卷积神经网络。对某些输入,尤其对于风格转移,这些模型可以生成相当成功,最新的结果(如图9-12)。然而,这些方法在深度上有限制。这些限制包括稳定性,克隆人工,需要每个图像调参,复制大尺度特征遇到挑战。还有,这些方法不能整合艺术控制,比如绘画的数量。

图9. 我们的风格转移方法的结果。

图10. 我们的风格转移方法的结果。图像来自于Flickr。

图11. 我们的风格转移方法的结果。

图12. 我们的风格转移方法的结果。图像来源于NASA。

本文第一个贡献是演示了神经网络纹理合成中不稳定性是如何和为什么发生的?(如4.2节)。不稳定的案例如图2所示。在神经网络纹理合成方法中,我们发现每个图像都仔细调参可以获得高质量的结果,迭代优化通常都不稳定,随着输出图像尺寸的增大合成过程就变得更不稳定。

图2. Gatys方法中纹理合成的不稳定性。输入纹理为(a)。(b)是合成的较大的纹理,显示出大量的不稳定性,亮度和对比度变化剧烈。艰难调参后,参数的设置可以生成比较满意的结果(c)。然而,我们仍然可以观察到人为处理的痕迹,主要是因为小程度的不稳定性。

4.3节演示了用直方图损失函数表达这种不稳定性。这些损失项不仅匹配均值还匹配卷积神经网络中激活函数的统计分布。并有效地最小化这种直方图损失项。直方图损失项可以增强质量,减少克隆痕迹,减速收敛。先对纹理合成的直方图损失进行建模,然后在4.4节中讨论如何在风格转移中扩展它们。

接着在第5章中演示在多尺度纹理合成框架中用局部损失如何改进质量和控制。5.2节,演示了局部风格损失如何整合进艺术风格控制,比如按序号的绘画,同时增强对内容和风格的分离,更好的复制大特征。第6章中,解释如何自动选择参数,使人不需要再手动调参。

这些贡献使得我们可以获得神经网络风格转移和参数化纹理合成的最新质量进展。

2. 相关工作

参数化纹理合成。早期的纹理合成方法使用的是参数化方法。1995年Heeger和Bergen用带有拉普拉斯和方向金字塔的直方图匹配合成纹理。我们收到启发采用了直方图匹配。2000年Portilla和Simoncelli在不同的位置,方向和尺度上将很多小波统计整合到一个复杂的参数化纹理合成方法中。包括滤波器响应之间的互相关性。

神经网络纹理合成和风格转移。本文用神经网络指卷积神经网络。2015年Gaty演示了用ImageNet-pretrained预训练的卷积神经网络做纹理合成,比如VGG。具体来说,对一对特征,2015年Gatys将损失函数强制加到共现的特征统计分布上。这些分布用格莱姆矩阵计算,计算的是卷积神经网络中相同层内的所有成对特征地图的內积。2015年Gatys的纹理合成结果在2000年Portilla和Simoncelli的工作上有明显改进。2016年Gatys将这一方法扩展到风格转移中,在卷积神经网络层内将Frobenius范数的内容损失整合进内容实例图像中,将格莱姆矩阵的风格损失整合进风格实例图像中。我们基于这个框架进行构建,在下一章中对它如何工作进行了概述。与我们的研究相同,2016年Berger也观察到Gatys的纹理规则化可能会在合成过程中丢失,提出了基于特征图像平移之间的共现特征统计分布增强规则化的损失函数。Aittala用神经网络从单一图像的纹理中提取了SVBRDF原料模型。他们的方法主要专注在一个非常特定的问题中,从闪光灯图像中恢复SVBRDF模型。但他们也观察到一些不稳定,比如如果没有使用足够的统计信息,就很容易会生成非静态的纹理。我们发现了这种联系,观察到不稳定性并修复它们。

前馈神经网络纹理合成。最近的几个工作,Ulyanov2016a,b和Johnson,研究了前馈网络的纹理合成的训练,可以在给定的实例纹理或风格上进行预训练,用固定网络权重快速合成结果。前馈网络运行更快,需要更少内存。然而,前馈方法需要在给定的风格或纹理上进行训练,这使得这个方法变得不切实际,预训练需要花费很长时间(预训练需要花2到4个小时)。

非参数纹理合成。非参数纹理合成方法需要根据局部相似度从样例纹理拷贝近邻或区块到一个需要合成的图像上。这一方法也可以用于风格转移。有些方法最近用非参数区块模型融合了参数神经网络模型。

3. 神经网络纹理合成和风格转移简介

本章简要介绍Gatys的纹理合成和风格转移方法。如果需要更详细地了解这些方法,可以阅读论文。本文展示了这些方法的一些结果:图8的神经网络纹理合成,图9-12的风格转移。

图8:纹理合成的结果。Gatys结果来自于Johnson的代码生成的。

纹理合成是给定输入源图像纹理S,希望合成得到一个输出图像纹理O。把S和O传入卷积神经网络中,比如VGG。对前L个卷积层激活值,这会生成特征地图,记为S1 … SL和O1 … OL。然后,最小化层间的损失函数Lgram,用格莱姆矩阵保留了输入图像纹理的一些特性:

其中αl是用户参数,损失函数中的权重项,| . |是元素张量,|| . ||F是Frobenius范数,格莱姆矩阵定义为特征地图F是一个一对特征间的內积得到Nl×Nl的矩阵:

这里Fij是特征地图内特征i的像素j。要合成的输出图像O用白噪声初始化,然后对等式(1)作梯度下降进行优化。具体来说,等式(1)对输出图像O的梯度用反向传播网络进行优化。

风格转移的工作原理是类似的,但是是给定一个内容图像C,风格图像S,需要合成一个风格化的输出图像O。将3个图像传入卷积神经网络,比如VGG,给出前L个卷积层的激活值C1 … CL, S1 … SL,O1 … OL。然后,总风格转移损失函数包含了风格图像的损失函数Lgram和内容图像的损失函数:
Ltransfer=Lgram+Lcontent (3)
内容损失函数是内容图像和输出图像之间的特征间的距离,是要让输出图像和内容图像看起来更相似:


其中,βl是用户权重参数,输出图像O用白噪声初始化,用梯度下降优化。

本文转自:CSDN - 新新大熊,转载此文目的在于传递更多信息,版权归原作者所有。
原文链接:https://blog.csdn.net/cicibabe/article/details/72901721

最新文章