风格迁移训练模版仅支持 MNN 工作台 v1.3.1 版本及以上使用
风格迁移训练模版仅支持 MNN 工作台 v1.3.1 版本及以上使用
风格迁移训练模版仅支持 MNN 工作台 v1.3.1 版本及以上使用

1. 概述

MNN 工作台风格迁移模板提供图片风格迁移训练能力,能够实现任意图片的风格迁移。如下图所示,给定一张目标图片,工作台能够训练出一个模型,该模型能够将任意图片的风格迁移到目标图片。

截屏2021-02-26 上午11.20.09.png
图例 1. 图片风格迁移示意图

MNN 工作台在该训练能力下提供了两种训练方案:一种是1 vs 1风格迁移方案,通过训练优化 1 张源图片到 1 张目标图片的风格差异,得到风格迁移结果图片。该方案能够实现 1 分钟内完成训练,达到风格迁移效果,可以用来理解图片风格迁移过程,同时便于调试训练相关的参数;另一种为 1vsN 的风格迁移方案,该方案通过 N 张训练图片以及 1 张目标图片训练得到一个模型,该模型能够实现任意图片到目标图片的风格迁移。

本方案产出的MNN模型大小为709k,能够实现在移动端图片实时风格迁移。

2 训练步骤

2.1. 准备数据

风格迁移训练相关数据主要包括三种数据,一种是目标图片,即图片要迁移的目标风格图片;一种是验证图片,用于验证训练过程中模型产生的图片的风格效果;一种是用于训练模型参数的训练图片,该训练图片至少 500 张,可以是任意图片。训练图片数量越多,图片内容差异性越大,训练得到的模型效果越好。

2.2. 训练流程

  1. 打开 MNN 工作台,进入工作台主界面。

image.png
图例 2. MNN 工作台主界面

  1. 点击 Train a deep learning model,进入模型训练页面。

截屏2020-08-10上午10.07.09.png
图例 3. MNN 工作台模型训练模版选择界面

  1. 图片分类工程在 Image 分类下,点击Image栏,找到并点击Style Transfer

    首次/更新使用需联网,MNN 工作台会不定期更新最好用的训练模版

截屏2021-02-26 上午11.44.15.png
图例 4. MNN 工作台图像相关训练能力模型展示

  1. (首次使用)需要下载 MNN 工作台风格迁移训练模版,点击 Download 进行下载,如下图所示。其中FastStyleTransfer能够训练产生任意图片风格迁移的模型,该方案训练耗时一般在 30 分钟左右,用于产生目标图片风格迁移相关的 MNN 模型; StyleTransfer1vs1用于 1 张源图片到 1 张目标图片的训练,该方案训练耗时在 1 分钟之内,用于风格效果验证以及训练相关参数调试。

截屏2021-02-26 上午11.48.21.png
图例 5. MNN 工作台图片风格迁移模型下载

以下我们将分别对两个方案的训练流程展开进行介绍。

2.2.1 StyleTransfer1vs1 训练流程

  1. 下载StyleTransfer1vs1训练工程,点击 Next 进入项目配置页面,在Project Name上出入项目名称,比如MyStyleTransfer1vs1,点击Next

截屏2021-02-26 上午11.59.42.png
图例 6. MNN 工作台图像分类工程配置

  1. 选择目标文件夹,对工程进行保存。

截屏2021-02-26 下午12.00.48.png
图例 7. MNN 工作台选择工程保存路径

  1. 点击Next,进入训练工程界面。工作台会自动配置训练环境,首次使用需联网加载相关配置,请耐心等候

截屏2021-02-26 下午12.01.36.png
图例 8. MNN 工作台训练工程初始化

StyleTransfer1vs1 训练工程页面中存在两个配置模块:

  • Data Inputs,数据选择模块,主要进行数据相关操作。
    • Style Image,选择目标风格图片。
    • Validation Image,选择验证图片。
    • Content Image,选择训练数据集。本方案下该栏可以不选。

**

  • Parameters,参数设置模块,用于调节模型训练的相关参数。
    • Max epoch, 用于训练迭代的周期数,默认值为 5,该值越大,训练次数越多,训练时间越长。
    • StyleStrength, 用于控制风格迁移中目标风格的强度,默认值为 3,该值越大,训练产生的图片目标风格越强;反之,训练产生的图片目标风格越弱。
    • contentStength,用于控制风格迁移中源图片内容的强度,默认值为3,该值越大,保留源图片的信息就越多;反之,保留源图片的信息就越少。
  1. 点击Style Image中的Select Files,选择目标风格图片;点击Validation Image中的Select Files,选择验证图片

截屏2021-02-26 下午1.59.27.png
图例 9. MNN 工作台训练工程数据集选择界面

  1. 点击Train按键,模型开始训练,其中Validation image in progress 栏会实时显示模型训练效果图,如下图所示。

截屏2021-02-26 下午2.07.16.png
图例 10. MNN 工作台训练中

  1. 训练完成后,在Training一栏会显示训练过程,损失函数值得变化曲线。

截屏2021-02-26 下午2.11.28.png
图例 11. MNN 工作台训练 Training Loss 图形化界面

  1. 在验证图片所在同目录中,有训练得到的风格迁移效果图,本例效果图如下所示。截屏2021-02-26 下午2.22.20.png

图例 12. 1vs1 风格迁移效果

  1. 至此,完成 StyleTransfer1vs1 训练流程介绍。


2.2.2 FastStyleTransfer 训练流程

  1. 下载FastStyleTransfer训练工程,点击 Next 进入项目配置页面,在Project Name上出入项目名称,比如MyStyleTransfer,点击Next

截屏2021-02-26 下午2.31.12.png
图例 13. MNN 工作台图像分类工程配置

  1. 选择目标文件夹,对工程进行保存。

截屏2021-02-26 下午2.32.01.png
图例 14. MNN 工作台选择工程保存路径

  1. 点击Next,进入训练工程界面。工作台会自动配置训练环境,首次使用需联网加载相关配置,请耐心等候

截屏2021-02-26 下午2.33.42.png
图例 15. MNN 工作台训练工程初始化

FastStyleTransfer 训练工程页面中存在两个配置模块:

  • Data Inputs,数据选择模块,主要进行数据相关操作。

    • Style Image,选择目标风格图片。
    • Validation Image,选择验证图片。
    • Content Image,选择训练数据集。
  • Parameters,参数设置模块,用于调节模型训练的相关参数。

    • Max epoch, 用于训练迭代的周期数,默认值为 20,该值越大,训练次数越多,训练时间越长。
    • Quantization, 是否对模型进行权值量化,MNN工作台提供的权值量化能力能够实现模型4倍体积压缩。
    • StyleStrength, 用于控制风格迁移中目标风格的强度,默认值为 3,该值越大,训练产生的图片目标风格越强;反之,训练产生的图片目标风格越弱。
    • contentStength,用于控制风格迁移中源图片内容的强度,默认值为3,该值越大,保留源图片的信息就越多;反之,保留源图片的信息就越少。
  1. 点击Style Image中的Select Files,选择目标风格图片;点击Validation Image中的Select Files,选择验证图片;点击Content Images中的Select Files,选择训练数据文件夹,工作台会自动读入该文件夹下面的所有图片数据。

截屏2021-02-26 下午2.36.23.png图例 16. MNN 工作台训练工程数据集选择界面

  1. 点击Train按键,模型开始训练,其中 Validation image in progress 栏会实时显示模型训练效果图,如下图所示。

截屏2021-02-26 下午3.03.31.png
图例 17. MNN 工作台训练中

  1. 训练完成后,在Training一栏会显示训练过程,损失函数值得变化曲线。

截屏2021-02-26 下午4.13.14.png
图例 18. MNN 工作台训练 Training Loss 图形化界面

  1. Validation一栏会显示模型在验证图片上的损失值变化曲线,如下图所示。

截屏2021-02-26 下午4.15.26.png
图例 19. MNN工作台验证损失值变化示意图

  1. Output一栏会显示已经生成的模型信息,可以发现,该模型大小为709k。

截屏2021-02-26 下午4.16.26.png
图例 20. FastStyleTransfer模型信息图

  1. 至此,完成关于FastStyleTransfer的训练流程介绍。

3. 模型输出和测试

3.1. 模型输出和单项测试

  1. 点击上方 tab 页的Output项,进入以下界面:
  • Output项中显示当前模型大小(如下图中为709K)。
  • 右侧信息栏显示当前模型的详细信息截屏2021-02-26 下午4.16.26.png

图例 21. MNN 工作台训练结果界面

  1. 将测试图片拖入左边栏,点击图片,即可显示预测结果。该示例左侧为原图,右侧为风格迁移效果图。

截屏2021-02-26 下午4.52.10.png
图例 22. MNN 工作台训练结果所见即所得验证界面

3.2. 批量测试

  1. MNN 工作台也提供了批量测试的功能,点击tab页的Testing项,进入以下界面:

截屏2021-02-26 下午4.55.23.png
图例 23. MNN 工作台批量结果验证界面

  1. 点击Select,选中需要测试的图片所在文件夹,文件夹中支持jpgjpegpng格式的图片。点击Test Model开始测试,页面显示测试进度条。

截屏2021-02-26 下午4.57.06.png
图例 24. MNN 工作台批量结果验证中

  1. 测试完成后,测试结果以表格形式展示。
  • Transfered列,该图片风格迁移效果图。
  • Oringin列,原图片
  • File列,图片的地址。点击地址打开图片所在的文件夹。

截屏2021-02-26 下午4.59.03.png
图例 25. MNN 工作台批量验证结果

3.3 Try in Playground

MNN 工作台图像训练模版在训练完成得到 MNN 模型后,可以通过点击训练结果界面的 Try in Playground 进入三端一体的 Playground 体验环节。具体请阅读4.1 Playground 整体介绍
截屏2021-02-26 下午4.16.26.png
图例 26. MNN 工作台结果页 Try in Playground

点击进入MNN 工作台三段一体应用界面,如下图所示。
截屏2021-02-26 下午5.01.42.png
图例 27. MNN工作台三段一体界面

4. 迭代式训练

可以通过 MNN 工作台打开一个已有的工程,继续优化迭代之前的训练结果。

在首页主页面中点击open an existing project,选择之前保存的工程文件。
image.png
图例 28. MNN 工作台主界面

点击打开,就可以直接进入工程界面,如下图所示,根据需求再进行操作。

  • 可以在已经得到训练结果的基础上,继续迭代,增加更多的训练数据和迭代次数,增加模型的学习和泛化能力,让模型对于图像的分类结果判断更准确。

  • 可以点击左上角 + 号按钮,创建一个全新的训练流程,与之前的流程完全独立。

截屏2021-02-26 下午5.03.14.png
图例 29. MNN工作台继续训练示意图

5. 训练数据及附件

风格数据:style.zip
训练数据: train_data.zip