神经风格转移是一种技术,它允许我们生成与基本图像具有相同“内容”的图像,但具有我们选择的图片的“风格”。了解它的工作原理以及它的实际应用。
想象一下,您可以将毕加索的风格转移到您自己的艺术作品中。你的画看起来就像是巴勃罗毕加索实际上是创造它们的人一样。
事实上,如果并排呈现,它们将如此难以区分,以至于没有人能分辨出来。
听起来很疯狂,对吧?
好吧,如果我们讨论的是机器学习,那就不是了。
你看,有一类卷积神经网络提供了一个有趣的解决方案,这使得使用深度学习和神经网络可以实现这一点——
认识神经风格迁移。
什么是神经风格迁移?
神经风格转移是将风格从一张图像混合到另一张图像中保持其内容完整的技术。唯一的变化是图像的样式配置,为您的图像赋予艺术气息。
内容图像描述了布局或草图,风格是绘画或颜色。它是与图像处理技术和深度卷积神经网络相关的计算机视觉应用
神经风格转移处理两组图像:内容图像和风格图像。
此技术有助于以参考图像的样式重新创建内容图像。它使用神经网络将艺术风格从一幅图像应用到另一幅图像。
神经风格迁移为设计、内容生成和创意工具的开发开辟了无限可能。
风格转移如何工作?
现在,让我们探索 NST 的工作原理。
神经风格迁移的目的是让深度学习模型能够区分风格表示和内容图像。
NST 采用预训练的卷积神经网络,添加了损失函数,将风格从一张图像转移到另一张图像,并将新生成的图像与我们想要添加的特征合成。
风格转移通过以特定方式激活神经元来工作,使得输出图像和内容图像应该在内容上特别匹配,而风格图像和期望的输出图像应该在纹理上匹配,并在图像中捕获相同的风格特征激活图。
这两个目标结合在一个损失公式中,我们可以控制我们对样式重建和内容重建的关心程度。
以下是图像风格转换模型所需的输入:
- 内容图像——我们想要将样式转移到的图像
- A Style Image – 我们想要转移到内容图像的样式
- 输入图像(生成)——内容和风格图像的最终融合
神经风格迁移基本结构
训练风格迁移模型需要两个网络:一个预训练的特征提取器和一个迁移网络。
NST 使用在 TensorFlow 中的 ImageNet-VGG 上训练的预训练模型。
图像本身对模型没有意义。这些必须转换为原始像素并提供给模型以将其转换为一组特征,这就是卷积神经网络所负责的。
因此,在将图像输入模型的层和提供输出的层之间的某个位置,模型用作复杂的特征提取器。我们需要从模型中利用的只是它的中间层,然后用它们来描述输入图像的内容和风格。
输入图像被转换为具有关于图像内容的更多信息的表示,而不是详细的像素值。
我们从模型的更高层次得到的特征可以被认为与图像的内容更相关。
为了获得参考图像风格的表示,我们使用不同滤波器响应之间的相关性。
它有助于在内容图像和生成的图像之间建立相似性。
直观的是,模型的更高层更多地关注图像中存在的特征,即图像的整体内容。
内容损失是通过输入图像 ( x ) 和第l 层的内容图像 ( p )的相应中间高级特征表示之间的欧几里德距离计算的。
模型在存在不同对象的情况下在更高层中生成不同的特征图是很自然的。
这有助于我们推断具有相同内容的图像在更高层也应该具有相似的激活。
风格损失
风格损失在概念上与内容损失不同。
我们不能只比较两幅图像的中间特征并得到风格损失。
这就是为什么我们引入一个名为 Gram 矩阵的新术语。
Gram 矩阵是一种解释图像中样式信息的方法,因为它显示了给定层中特征的整体分布。它被测量为给定层中特征图之间存在的相关性。
样式损失是通过生成图像的 gram 矩阵(或者,换句话说,样式表示)与样式参考图像之间的距离来计算的。
各层在样式信息中的贡献由下式计算:
因此,每一层的总风格损失表示为:
其中每一层在风格损失中的贡献由某个因子wl 描述。
模型架构概述
NST 的架构可以这样设计,从在图像中应用单一样式到允许混合和匹配多种样式。
让我们来看看不同的可能性。
每个型号的单一样式
神经网络用于在单个前馈通道中重新创建样式化图像。例如,使用在 ImageNet 上预训练的 VGG16 模型。每个模型在模型的深度和大小方面都是小而紧凑的,并且在特定通道中针对单一样式混合进行了训练。
每个型号有多种款式
单个传输网络可以创建各种风格的图像并将它们合并在一起。
风格转移网络接收内容图像和带有附加向量的风格图像,指示每种风格应应用到图像的程度。
这是一种混合多种风格的好技术,并且消除了为不同风格训练和存储各种模型的开销。
每个模型的任意样式
上述两个模型仅限于以他们在训练期间已经看到的样式生成图像的用例。
上述型号无法适应风格的一些随机变化。
具有任意风格转移模型的 NST 获取内容图像和风格图像,并学习提取风格的任何变化并将其应用于图像。
样式迁移优化和扩展
NST 在训练时的稳定性非常重要,尤其是在视频中的一系列帧中混合风格时。
样式在连续帧中应该是恒定的,以避免在颜色、对比度方面的闪烁效果以及在对象放置方面的不一致。对两个连续的帧进行样式化并相互比较,以便模型在对象通过帧时学会为对象生成相同的样式。
为了确保这一点,在模型的训练中添加了一个额外的“时间相干性”损失项。
在考虑参考图像中的笔触/风格颜料时,应额外注意内容图像颜色的持久性。
神经风格迁移用例
最后,让我们看看神经风格迁移的一些实际应用。
照片和视频编辑器
风格转换广泛用于照片和视频编辑软件。
这些深度学习方法和专业的风格迁移模型可以很容易地应用于手机等设备,并为用户提供实时的图像和视频风格设计能力。
艺术和娱乐
风格转移还提供了可以改变我们看待和处理艺术方式的新技术。
它使高评价和高价的艺术作品可用于办公室和家居装饰或广告。转移模型可以帮助我们将艺术商业化。
游戏和虚拟现实
有许多使用图像样式传输的云驱动的视频游戏流。
这些模型帮助开发人员为用户提供具有定制艺术风格的交互环境。这为游戏提供了 3D 触感,并有助于丰富每个开发人员内部的艺术家。
与游戏非常相似,VR 应用程序有助于通过其应用程序、游戏、电影等来讲述视觉故事。