Keras深度学习实战(21)——神经风格迁移详解
0. 前言
在 DeepDream 图像生成算法的学习中,我们通过修改像素值试图使神经网络中卷积核的激活最大化。但是,这并不具备灵活生成指定风格图像的功能,因此,本节我们继续学习神经风格迁移算法。在神经风格迁移中,我们需要一个内容图像和一个风格图像,我们的目标是保持内容图像的同时融和风格图像中的风格样式,以组合这两个图像生成全新图像。
1. 神经风格迁移原理
在进行实战前,我们首先了解神经风格迁移的相关原理。我们以与 DeepDream 算法类似的方式修改原始图像,但是,不同的是,在神经风格迁移模型中需要将损失值分为内容损失和风格损失。内容损失用于衡量生成的图像与内容图像之间的差异程度。风格损失用于衡量风格图像与生成的图像之间的关联程度。
尽管上述损失可以根据图像间的差异进行计算,但实际上,我们使用图像在网络层中的激活而不是原始图像来计算损失值。例如,第 2 层的内容损失是内容图像和生成的图像通过第 2 层神经网络层得到的激活之间的平方差。
计算内容损失较为简单,接下来我们继续学习如何计算生成图像和风格图像之间的相似度。我们将使用一种称为 gram 矩阵的技术,gram 矩阵用于计算生成图像和风格图像之间的相似度,相似度的计算方法如下:
本文详细介绍了神经风格迁移的原理和Keras实现过程,通过结合内容图像与风格图像,生成融合两者特点的新图像。内容损失与风格损失在预训练模型的特定层上计算,通过优化总损失函数,最终达到内容与风格的平衡。
订阅专栏 解锁全文
875

被折叠的 条评论
为什么被折叠?



