赞
踩
图像的风格迁移其实就是利用相关算法对一些著名画作的风格进行学习,然后再把这种风格应用到我们熟悉的图片中。并且该技术已经成为人工智能领域内的一个热门的研究主题。本课程将对传统的图像风格迁移算法进行讲解,并且利用 Pytorch 对其进行实现,完成任意两张图片的风格迁移。
分割损失
内容损失
VGG19
模型的训练
图像风格迁移
图像的风格迁移其实就是利用相关算法对一些著名画作的风格进行学习,然后再把这种风格应用到我们熟悉的图片中。该技术最早由 Gatys 等人 提出,并且将算法应用于他们所发布的软件 Prisma 中。由于该技术不像传统的图像处理软件一般,直接对像素进行操作,而是采用神经网络相关算法模拟名家的绘画风格。因此,在软件发布之初,就吸引了上千万的融资。本实验将对该篇论文中的风格迁移技术进行详细的讲解,并且利用 Pytorch 对其进行实现。
下图为本实验最终的结果展示图:
数据的加载
在实验前,还是让我们先来加载所需要的数据集合。在一般的神经网络课程中,需要大量的数据来保证模型的泛化性。而在图像的风格迁移中,只需要两张图片(即内容图像和风格图像)即可。加载这两张图片:
利用 OpenCV 来对这两张图片进行展示:
由于这两张图片的原始大小不同,且为了保证后面放入任何图片都可以对其进行迁移。需要对图片进行预处理操作:
将图片大小缩放为 512×512 512×512。
将其类型转为 Tensor。
代码如下:
来测试一下上面的函数。加载这两张图片,并将其处理成神经网络能够使用的类型:
图像风格迁移算法
该算法主要使用三张图片,一张输入图片 G ,一张内容图片 C 和一张风格图片 S。
为了衡量任意两张图片的差距,还需要定义两个函数式,如下:
计算两张图片内容之间的差距 D_C(即内容损失函数)。
计算两张图片风格的差距 D_S(即风格损失函数)。
图像风格迁移的核心思想:输入图片 G,并且改变这张图片。使输入图片 G 与内容图片 C 之间的内容间距 D_C 最小,进而达到新图片
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。