当前位置:   article > 正文

python风格迁移_图像风格迁移实战(附Python实战) 原创:

python画风迁移教案设计

原标题:图像风格迁移实战(附Python实战) 原创:

be7c68d792a5486094b150f0f2f44a1b.jpg

作者 | 小韩

编辑 | 安可

出品 | 磐创AI技术团队

在今天的文章中,我们会建立一个很棒的风格迁移网络。为了做到这一点,我们需要深入地了解 CNN 和卷积层的工作原理。在文章结束时,你将会创建一个风格迁移网络,这个网络能够在保留原始图像的同时将新样式应用到它上面。

1b526aca52b5441ca64d12c91c036b77.jpg波士顿天际线和梵高的繁星之夜混合效果

风格迁移

在开始之前,先明确一下我们的目标。

我们将风格迁移定义为改变图像风格同时保留它的内容的过程。

给定一张输入图像和样式图像,我们就可以得到既有原始内容又有新样式的输出图像。在 Leon A. Gaty 的论文 A Neural Algorithm of Artistic Style 中有所描述。

输入图像 + 样式图像 -> 输出图像(风格化)

工作方式

准备输入图像和风格图像并将它们调整为相同的大小。

加载预训练的卷积神经网络(VGG16)。

区分负责样式的卷积(基本形状,颜色等)和负责内容的卷积(特定于图像的特征),将卷积分开可以单独地处理内容和样式。

优化问题,也就是最小化:

内容损失(输入和输出图像之间的距离 - 尽力保留内容)

风格损失(风格和输出图像之间的距离 - 尽力应用新风格)

总变差损失(正则化 - 对输出图像进行去噪的空间平滑度)

最后设置梯度并使用 L-BFGS 算法进行优化。

实现

输入

1# 旧金山

2san_francisco_image_path = "https://www.economist.com/sites/default/files/images/print-edition/20180602_USP001_0.jpg"

3

4# 输入可视化

5input_image = Image.open(BytesIO(requests.get(san_francisco_image_path).content))

6input_image = input_image.resize((IMAGE_WIDTH, IMAGE_HEIGHT))

7input_image.save(input_image_path)

8input_image

这就是旧金山的天际线

d210a5ed13914572bc69f6c2c42502f3.jpg

风格

然后定义一个风格图像。

1# Tytus Brzozowski

2tytus_image_path = "http://meetingbenches.com/wp-content/flagallery/tytus-brzozowski-polish-architect-and-watercolorist-a-fairy-tale-in-warsaw/tytus_brzozowski_13.jpg"

3

4# 风格图像可视化

5style_image = Image.open(BytesIO(requests.get(tytus_image_path).content))

6style_image = style_image.resize((IMAGE_WIDTH, IMAGE_HEIGHT))

7style_image.save(style_image_path)

8style_image

这是Tytus Brzozowski的景色。返回搜狐,查看更多

责任编辑:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/530285
推荐阅读
相关标签
  

闽ICP备14008679号