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

目录

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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

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

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年11月3日
下一篇 2023年11月3日

相关推荐