如何使用神经风格迁移制作艺术图像

使用 python 实现将著名绘图的风格转换为图像——机器学习的深度学习子域在图像处理中特别有用。卷积神经网络是深度学习的子单元之一,它通过使用卷积层为用户提供灵活的访问,它呈现图像内容的几个特征。这些功能可以由开发人员配置以供使用……

如何使用神经风格迁移制作艺术图像

用python实现将名画风格转换为图像

机器学习的深度学习子领域在图像处理中特别有用。卷积神经网络是深度学习的子单元之一,它通过使用卷积层为用户提供灵活的访问,它呈现图像内容的几个特征。开发人员可以配置这些功能,用于图像分类和识别标题下的对象检测和图像分割等许多领域。这篇文章解释了神经风格转移,它指的是在使用预训练模型 VGG-19 保留图像内容的同时转移图像的风格。图 1 是使用文森特梵高的名画《星夜》和作者的照片创作的。

神经风格迁移

为了使主题更容易理解,最好提醒CNN一些基本的知识。顾名思义,卷积神经网络 (CNN) 使用卷积过程通过基本的数学像素运算过滤图像。这种过滤揭示了图像的各种特征(边缘、纹理、颜色等),从而为模型提供了更有意义和更容易的学习过程。

构建的 CNN 架构根据其遵循的层次结构提取图像的特征,换句话说,网络分层学习特征。这些提取的特征还提供有关图像细节的信息。例如,当低层移除边缘、像素和纹理时,高层学习图像的形状和更多技术特征。

足球运动员的活力,1913 年意大利画家翁贝托·博乔尼(Umberto Boccioni)未来主义年代的最佳作品之一。根据博乔尼的说法,为了在画中描绘一个人,没有必要画一个人。出于这个原因,他通过描绘演员来专注于动作,以便只看到他的腿。

使用上述方法将神经网络传输与以下过程混合:

Images:

两个图像,内容图像和样式图像被导入。内容图像,顾名思义就是受风格图像影响的主要图像。样式图像是提供内容图像的图像。需要低层特征,因为样式图像是一个馈线。另一方面,内容图像需要网络的更高层特征来维护其属性。

Network:

VGG-19 预训练模型是使用 imagenet 权重构建的。原始论文中的作者建议使用 VGG-19。通过尝试/构建不同的模型也可以获得独特的结果。特征图必须提供最佳结果,因为这里研究提取图像的特征。建议将 VGG-19 作为标准配置。使用该网络提取内容图像和样式图像属性。

提取更高层的特征,以便保留内容图像的主要属性。这些层可以是 conv4_2 和/或 conv5_2。当然,在这里尝试各种组合会产生截然不同的视觉效果。对于风格图像,利用低特征得到各种视觉效果,即conv1_1、conv2_1、conv3_1、conv4_1、conv5_1多种方式组合。

Losses

Content Loss:指通过网络从内容图像和生成图像中提取的特征之间的相似性。

风格损失:风格损失表示风格损失风格图像和生成图像之间激活层相关性的相似性。这里生成的图像和风格图像之间的相关性是用 gram 矩阵找到的。

Gram Matrix:相关值,表示风格图像与生成图像的相似度,是主题的关键点之一。使用卷积层提取图像的各种特征。这些特征是边缘、点、曲线、线条、纹理、颜色分布等。相关性决定了这些特征之间的关系,并且更新样式损失值以在样式图像和生成的图像中保留这种关系。更具体地说,如图 1 所示,Starry Night 表中的太阳(黄色圆圈)在生成的图像中也被视为黄色圆圈。已经确定黄色和带有 gram 矩阵的圆圈之间存在关系,并且已经尝试通过减少样式损失将其转移到生成的图像中。

Total Loss:Total Loss 的计算方法是样式损失 + 内容损失,如上所示。

图 3 显示了原始论文的风格迁移算法(计算损失)。可以从下面的参考部分访问该文章。以下代码块包括在 Python 中使用 Tensorflow 实现神经风格迁移:

Conclusion

神经风格迁移最令人愉快的方面是,通过超参数调整获得了各种视觉结果,而不是结果的一致性。这里得到的各种结果是通过改变

  • content_weight=1e4,
  • style_weight=1e2,
  • content_layers = [‘block5_conv2’]
  • style_layers = [‘block1_conv1’, ‘block2_conv1’, ‘block3_conv1’, ‘block4_conv1’, ‘block5_conv1’]

上面代码块中的超参数,结果如图4和图5所示。可以看出,以高风格损失权重开始的图像纹理更倾向于内容图像。另一方面,图 5 中显示的图像以低风格损失权重开始,趋向于风格图像,这意味着与图 4 相比,从风格图像中提取的特征转移得更好。

如上所述,损失值的初始值(表示生成的图像与内容和风格图像之间的相似度)发生了变化,并以学习率完成了梯度下降的训练过程。虽然图像传输的波段范围设置为初始损失​​值,但传输速度由 learning_rate 决定。此外,如上所述,从中提取特征的内容层和样式层也显示图像的属性有多少(哪些特征)被转移。

通过使用各种值尝试这些超参数,可以使用上面的代码块直观地观察每个 epoch 的进度。

References

  • L. A. Gatys、A. S. Ecker 和 M. Bethge,“使用卷积神经网络进行图像风格转换”。
  • L. A. Gatys、A. S. Ecker 和 M. Bethge,“艺术风格的神经算法”,2015 年。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年4月24日 下午5:31
下一篇 2022年4月24日 下午5:52

相关推荐