快速风格迁移在Colab上的实践

60次阅读

共计 1836 个字符,预计需要花费 5 分钟才能阅读完成。

〇、快速风格迁移

风格迁移是 CV 的一个应用,通过融合风格图片和内容图片,实现图片的风格变换,“人人都是艺术家”
最早在论文《A Neural Algorithm of Artistic Style》中提出,但是这种方法是用“训练”的思想来做风格迁移,每次都要单独训练,速度很慢
快速风格迁移由《Perceptual Losses for Real-Time Style Transfer Super-Resolution》提出,主要是将风格迁移的训练和应用分离,可以快速应用
引用自:https://blog.csdn.net/jianbin…

本文是对 Github 项目 fast-neural-style-tensorflow 在 Google Colab 上的实践。

一、在计算机上实践

前期准备

  1. clone 该 GitHub 项目并解压。
  2. 在该目录新建 pretrained 文件夹、generated文件夹、models文件夹和 train2014 文件夹。
  3. 如需体验直接应用模型的过程,可以在 百度网盘 下载原作者已训练好的七个模型到 models 文件夹中。
  4. 下载 VGG16 模型并解压到 pretrained 文件夹中。下载 COCO 数据集到 train2014 文件夹中。
  5. 使用 pip 安装 tensorflow 等所需包,这里我不再列出。(我的环境是 Python3.6,请不要使用 Python3.7,我在另一篇文章中提到了原因)

实践过程

  1. 将你的风格图片放在 img 文件夹中。下面我以 lu.jpg 这张图片为例。
  2. 配置 yml 文件:复制 conf 文件夹中的任一 yml 文件并重命名为 风格图片名.yml(例如我重命名为lu.yml
  3. 将第 2 行、第 3 行的绿框处改为你的风格图片名。将第 8 行的红框处改为你的风格权重。(风格权重的数值需要自行测试得出最佳。)
  4. 以上你就配置好了 yml 文件,可以开始训练了。
  5. 开始训练:在该项目所在目录打开命令行,使用 python train.py -c conf/ 风格图片名.yml 进行训练。(如果你同时安装了 Python3.6、Python3.7 两个版本,可参考我在另一篇文章中的办法,将 python.exe 重命名。我训练时使用的命令是python36 train.py -c conf/lu.yml.)
  6. 经过漫长漫长的等待(我用了足足两天,经历了 12120 个 step),在你 models/ 风格图片名 目录下出现了 fast-style-model.ckpt-done 文件,这就是训练好的模型了。(如果你等不及你也可以在整千个 step 的时候使用以下命令,将 done 替换为你当前的 step 即可。)
  7. 应用模型:在该项目所在目录打开命令行,使用 python eval.py --model_file 模型路径 --image_file 内容图片路径 即可应用该模型(如我:python36 eval.py --model_file ./models/lu/fast-style-model.ckpt-done --image_file img/test.jpg)。该过程只需十秒左右。
  8. generated 文件夹中将生成res.jpg,就是你本次应用输出的图片了。

二、在 Colab 上的实践

由于在自己的计算机上训练真是太漫长太漫长太漫长了,所以我推荐在 Google Colab 上运行,训练时间大概只需 6 个小时。

前期准备

可参考我的文章:Google Colab 的使用方法

实践过程

1. 将所需文件(fast-neural-style-tensorflow-master 文件夹 )存于 Google 硬盘中。
2. 使用以下代码 装载 Google 硬盘

from google.colab import drive
drive.mount('/content/drive')

3. 使用以下代码 更改运行目录

import os
os.chdir("/content/drive/fast-neural-style-tensorflow-master") // 替换为你文件夹存放的目录

4. 使用以下代码 训练模型,该过程需约六个小时:

! python train.py -c conf/lu.yml // 替换为你配置的 yml 文件

5. 使用以下代码 应用模型,该过程仅需几秒:

! python eval.py --model_file ./models/lu/fast-style-model.ckpt-done --image_file img/test.jpg // 与计算机中运行命令一致

6. 在 generated 文件夹中将生成res.jpg,就是你本次应用输出的图片了。

正文完
 0