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个大的方向,简要概括分别为:
- 单风格慢速迁移;
- 单风格快速迁移(同时实现了实时迁移和视频风格迁移);
- 多风格快速迁移(同时实现了多风格融合,支持实时迁移和视频风格迁移);
- 任意风格快速迁移(同时实现了风格和内容权重的调节,支持多风格融合和实时迁移、视频迁移);
这四个方向的网络模型,最大的区别就是速度越来越快,功能越来越强大。
5**.使用训练好的模型来生成图像**
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
版权归原作者 珠和 所有, 如有侵权,请联系我们删除。