图像风格迁移基础入门及实践案例总结

目录

1图像的不同风格

2何为图像风格迁移

2.1基础概念及方法

2.2示例

3图像风格迁移的典型研究成果

3.1deep-photo-styletransfer

3.2CycleGAN

3.3U-GAT-IT

4风格迁移演进趋势

5.使用训练好的模型来生成图像

5.1环境

5.2模型下载

5.3使用训练好的模型

6.训练一个新的模型

6.1下载VGG16模型

6.2下载COCO数据集

6.3创建新的yml文件

6.4训练新的图像风格

7.优秀的参考项目

1图像的不同风格

 不同风格的图像

上面每一张图都是一种不同的艺术风格。艺术风格是什么,每个人都有每个人的见解,有些东西大概艺术界也没明确的定义。如何要把一个图像的风格变成另一种风格更是难以定义的问题。

2何为图像风格迁移

2.1基础概念及方法

所谓风格迁移,其实就是提供一幅画(Reference style image),将任意一张照片转化成这个风格,并尽量保留原照的内容(Content),在通俗一点就是:图像风格迁移就是把一种图像风格转变为另一种图像风格。

深度学习的图像风格迁移方法主要包括:

(1)基于图像迭代。该方法合成图像的质量高、可控性好,易于调参,无需训练数据,也无生成模型。但每次生成图片都需重新训练,十分耗时。
(2)基于模型迭代。计算速度快,可用于视频快速风格化,目前工业应用软件的主流技术。图像生成质量有待进一步提高,需要大量的训练数据。

2.2示例

风格迁移示意图

一张内容图片和两张风格图片的融合 

在神经网络之前,图像风格迁移的程序有一个共同的思路:分析某一种风格的图像,给那一种风格建立一个数学或者统计模型,再改变要做迁移的图像让它能更好的符合建立的模型。这样做出来效果还是不错的,比如下面的三张图中所示,但一个很大的缺点:一个程序基本只能做某一种风格或者某一个场景。因此基于传统风格迁移研究的实际应用非常有限。

3图像风格迁移的典型研究成果

3.1deep-photo-styletransfer

时间:2017

paper:https://arxiv.org/pdf/1703.07511.pdf

github:https://github.com/luanfujun/deep-photo-styletransfer

亮点:

使用深度卷积网络来进行摄影风格转换,在 Neural Style algorithm 的基础上进行改进的,主要是在目标函数进行了修改,加了一项正则化,修改了一项损失函数引入 semantic segmentation 信息使其在转换风格时保持图像结构。

实现效果:

3.2CycleGAN

时间:2017(ICCV)

paper:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

github:https://github.com/junyanz/CycleGAN(pytorch)

https://github.com/architrathore/CycleGAN(tensorflow)

官方介绍:https://junyanz.github.io/CycleGAN/

亮点:传统的GAN是单向生成,而CycleGAN是互相生成,网络是个环形,所以命名为Cycle。并且CycleGAN一个非常实用的地方就是输入的两张图片可以是任意的两张图片,也就是unpaired。

实现效果:

3.3U-GAT-IT

时间:2020(ICLR)

paper:https://arxiv.org/pdf/1907.10830.pdf

github:https://github.com/taki0112/UGATIT

或者https://github.com/znxlwm/UGATIT-pytorch

亮点:

  • 提出了一种新的无监督图像到图像转换方法,它具有新的注意力模块和新的归一化函数AdaLIN。
  • 提出的注意力模块通过基于辅助分类器获得的注意力图,区分源域和目标域,帮助模型知道在何处进行密集转换。
  • AdaLIN函数帮助我们的注意力引导模型灵活地控制形状和纹理的变化量,而无需修改模型架构或超参数。

实现效果:

4风格迁移演进趋势

图像风格迁移当前演进主要4个大的方向,简要概括分别为:

  1. 单风格慢速迁移;

  2. 单风格快速迁移(同时实现了实时迁移和视频风格迁移);

  3. 多风格快速迁移(同时实现了多风格融合,支持实时迁移和视频风格迁移);

  4. 任意风格快速迁移(同时实现了风格和内容权重的调节,支持多风格融合和实时迁移、视频迁移);

这四个方向的网络模型,最大的区别就是速度越来越快,功能越来越强大。

.使用训练好的模型来生成图像

5.1环境

Python

Tensorflow

5.2模型下载

模型的百度云地址

密码:35pg

5.3使用训练好的模型

在项目根目录下执行:

python eval.py --model_file <your path to wave.ckpt-done> --image_file img/test.jpg

--modelfile 是模型的路径,可以选择7个模型中的一个 --imagefile是原始图片的路径

新的图片会存放在项目根目录下:generated/res.jpg

6.训练一个新的模型

6.1下载VGG16模型

如果要训练一种新的图像风格,可以先下载VGG16的模型: VGG16模型 密码:ykfy

然后在项目根目录下新建一个名为pretrained的文件夹,把vgg16的模型文件放入pretrained文件夹中。

6.2下载COCO数据集

下载地址 把解压后的train2014文件夹放在项目根目录下。

6.3创建新的yml文件

找一个新的风格的图片,比如找一个火的图片,路径在img/fire.jpg。复制conf文件夹中wave.yml文件,然后改名fire.yml。把fire.yml中的: styleimage: img/wave.jpg naming: "wave" 改为 styleimage: img/fire.jpg naming: "fire"

6.4训练新的图像风格

python train.py -c conf/fire.yml

7.优秀的参考项目

下载地址:

Qinbf/tf-model-zoo

  • 3
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
基于深度学习图像风格迁移是一种能够将一幅图像的风格转移到另外一幅图像上的技术。它使用了深度神经网络来实现图像的风格化。Python作为一种流行的编程语言,也提供了许多库和框架来实现图像风格迁移。 实现图像风格迁移的一种常用方法是使用卷积神经网络(CNN)。CNN可以从图像中提取各种特征,包括颜色、纹理和形状等。通过训练一个CNN模型,我们可以用于捕捉图像风格的特征,比如一幅画作的风格。 在Python中,有许多流行的深度学习框架可以使用,比如TensorFlow、PyTorch和Keras等。这些框架提供了许多预训练的模型,包括一些用于图像风格迁移的模型,如VGG19、ResNet等。这些模型可以很方便地用来提取图像的特征,并用于图像的风格化。 图像风格迁移的核心思想是将输入图像的内容和风格分离开来,然后将风格迁移到目标图像上。为了实现这个过程,我们需要定义一个损失函数来衡量输入图像和目标图像之间的差异,并使用梯度下降算法来最小化这个损失,从而产生一个风格化的图像。 在Python中,我们可以使用CNN模型来提取输入图像和目标图像的特征,并通过梯度下降算法调整输入图像,使其与目标图像的特征尽可能地接近。通过迭代多次训练,我们可以得到一个具有目标图像风格的风格化图像。 总之,Python提供了许多工具和库来实现基于深度学习图像风格迁移。通过使用CNN模型和梯度下降算法,我们可以将一幅图像的风格迁移到另外一幅图像上,从而实现图像的风格化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小米-罗冰

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值