From 9ca7b96253d4614ad96f75a7f7d54accfe893a9b Mon Sep 17 00:00:00 2001
From: YixinKristy <48054808+YixinKristy@users.noreply.github.com>
Date: Tue, 24 Aug 2021 13:04:25 +0800
Subject: [PATCH] Add the instruction of using configs and optimize the
tutorials of fom, lapstyle and data preparation (#407)
* revise video restore docs
* delete photos
* Update README.md
* Update install.md
* update readme
* Update README.md
* Update get_started.md
* Update get_started.md
* Update readme en
* Update get_started.md
* Update photo_color_en.md
* add wechaty demo
* Update README.md
* Update README_cn.md
* Update README_cn.md
* Update README_cn.md
* Update README_cn.md
* Update README_cn.md
* Update motion_driving.md
* Update README_cn.md
* Update README_cn.md
* Update README.md
* Update README.md
* Add paint transfer from vis
* Update README.md
* Create README.md
* update readme
* Update README_cn.md
* Update lap_style.md
---
README_cn.md | 3 +-
docs/zh_CN/config_doc.md | 77 ++++++++++++++++++++++++++
docs/zh_CN/data_prepare.md | 68 +++++++++++++++--------
docs/zh_CN/tutorials/lap_style.md | 44 +++++++++++----
docs/zh_CN/tutorials/motion_driving.md | 16 +++---
5 files changed, 163 insertions(+), 45 deletions(-)
create mode 100644 docs/zh_CN/config_doc.md
diff --git a/README_cn.md b/README_cn.md
index 65840d4..2b55a8f 100644
--- a/README_cn.md
+++ b/README_cn.md
@@ -71,8 +71,6 @@ GAN--生成对抗网络,被“卷积网络之父”**Yann LeCun(杨立昆)
-##
-
## 文档教程
### 安装
@@ -88,6 +86,7 @@ GAN--生成对抗网络,被“卷积网络之父”**Yann LeCun(杨立昆)
- [快速开始](./docs/zh_CN/get_started.md)
- [数据准备](./docs/zh_CN/data_prepare.md)
- [API接口使用文档](./docs/zh_CN/apis/apps.md)
+- [配置文件/Config使用说明](./docs/zh_CN/config_doc.md)
## 模型库
diff --git a/docs/zh_CN/config_doc.md b/docs/zh_CN/config_doc.md
new file mode 100644
index 0000000..3f8eded
--- /dev/null
+++ b/docs/zh_CN/config_doc.md
@@ -0,0 +1,77 @@
+# 配置文件说明文档
+
+## Config文件参数介绍
+
+以`lapstyle_rev_first.yaml`为例。
+
+### Global
+
+| 字段 | 用途 | 默认值 |
+| ------------------------- | -------------------------- | --------------- |
+| total_iters | 设置总训练步数 | 30000 |
+| min_max | tensor数值范围(存图像时使用) | (0., 1.) |
+| output_dir | 设置输出结果所在的文件路径 | ./output_dir |
+| snapshot_config: interval | 设置保存模型参数的间隔 | 5000 |
+
+### Model
+
+| 字段 | 用途 | 默认值 |
+| :---------------------- | -------- | ------ |
+| name | 模型名称 | LapStyleRevFirstModel |
+| revnet_generator | 设置revnet生成器 | RevisionNet |
+| revnet_discriminator | 设置revnet判别器 | LapStyleDiscriminator |
+| draftnet_encode | 设置draftnet编码器 | Encoder |
+| draftnet_decode | 设置draftnet解码器 | DecoderNet |
+| calc_style_emd_loss | 设置style损失1 | CalcStyleEmdLoss |
+| calc_content_relt_loss | 设置content损失1 | CalcContentReltLoss |
+| calc_content_loss | 设置content损失2 | CalcContentLoss |
+| calc_style_loss | 设置style损失2 | CalcStyleLoss |
+| gan_criterion: name | 设置GAN损失 | GANLoss |
+| gan_criterion: gan_mode | 设置GAN损失模态参数 | vanilla |
+| content_layers | 设置计算content损失2的网络层 |['r11', 'r21', 'r31', 'r41', 'r51']|
+| style_layers | 设置计算style损失2的网络层 | ['r11', 'r21', 'r31', 'r41', 'r51'] |
+| content_weight | 设置content总损失权重 | 1.0 |
+| style_weigh | 设置style总损失权重 | 3.0 |
+
+### Dataset (train & test)
+
+| 字段 | 用途 | 默认值 |
+| :----------- | -------------------- | -------------------- |
+| name | 数据集名称 | LapStyleDataset |
+| content_root | 数据集所在路径 | data/coco/train2017/ |
+| style_root | 目标风格图片所在路径 | data/starrynew.png |
+| load_size | 输入图像resize后图像大小 | 280 |
+| crop_size | 随机剪裁图像后图像大小 | 256 |
+| num_workers | 设置工作进程个数 | 16 |
+| batch_size | 设置一次训练所抓取的数据样本数量 | 5 |
+
+### Lr_scheduler
+
+| 字段 | 用途 | 默认值 |
+| :------------ | ---------------- | -------------- |
+| name | 学习策略名称 | NonLinearDecay |
+| learning_rate | 设置初始学习率 | 1e-4 |
+| lr_decay | 设置学习率衰减率 | 5e-5 |
+
+### Optimizer
+
+| 字段 | 用途 | 默认值 |
+| :-------- | ---------- | ------- |
+| name | 优化器类名 | Adam |
+| net_names | 优化器作用的网络 | net_rev |
+| beta1 | 设置优化器参数beta1 | 0.9 |
+| beta2 | 设置优化器参数beta2 | 0.999 |
+
+### Validate
+
+| 字段 | 用途 | 默认值 |
+| :------- | ---- | ------ |
+| interval | 设置验证间隔 | 500 |
+| save_img | 验证时是否保存图像 | false |
+
+### Log_config
+
+| 字段 | 用途 | 默认值 |
+| :--------------- | ---- | ------ |
+| interval | 设置打印log间隔 | 10 |
+| visiual_interval | 设置训练过程中保存生成图像的间隔 | 500 |
diff --git a/docs/zh_CN/data_prepare.md b/docs/zh_CN/data_prepare.md
index 3b46138..08f9dc3 100644
--- a/docs/zh_CN/data_prepare.md
+++ b/docs/zh_CN/data_prepare.md
@@ -1,4 +1,6 @@
-## 数据准备
+# 数据准备
+
+## 1. 数据集路径配置
现有的配置默认数据集的路径是在`$PaddleGAN/data`下,目录结构如下图所示。如果你已经下载好数据集了,建议将数据集软链接到 `$PaddleGAN/data`。
@@ -39,16 +41,24 @@ dataset:
num_workers: 4
```
-### CycleGAN模型相关的数据集下载
+## 2. 准备数据集
+
+### 2.1 下载数据集
+
+#### 2.1.1 CycleGAN模型相关的数据集下载
+
+- #### 从网页下载
-#### 从网页下载
-cyclgan模型相关的数据集可以在[这里](https://people.eecs.berkeley.edu/~taesung_park/CycleGAN/datasets/)下载
+CycleGAN模型相关的数据集可以在[这里](https://people.eecs.berkeley.edu/~taesung_park/CycleGAN/datasets/)下载,下载后记得软连接到 ```PaddleGAN/data/``` 下。
+
+- #### 使用脚本下载
-#### 使用脚本下载
我们在 ```PaddleGAN/data``` 文件夹下提供了一个脚本 ```download_cyclegan_data.py``` 方便下载CycleGAN相关的
-数据集。执行如下命令可以下载相关的数据集,目前支持的数据集名称有:apple2orange, summer2winter_yosemite,horse2zebra, monet2photo, cezanne2photo, ukiyoe2photo, vangogh2photo, maps, cityscapes, facades, iphone2dslr_flower, ae_photos, cityscapes。
+数据集。
+
+目前支持下载的数据集名称有:apple2orange, summer2winter_yosemite,horse2zebra, monet2photo, cezanne2photo, ukiyoe2photo, vangogh2photo, maps, cityscapes, facades, iphone2dslr_flower, ae_photos, cityscapes
执行如下命令,可以下载对应的数据集到 ```~/.cache/ppgan``` 并软连接到 ```PaddleGAN/data/``` 下。
@@ -56,35 +66,47 @@ cyclgan模型相关的数据集可以在[这里](https://people.eecs.berkeley.ed
python data/download_cyclegan_data.py --name horse2zebra
```
-#### 使用自己的数据集
-如果你使用自己的数据集,需要构造成如下目录的格式。注意 ```xxxA```,```xxxB```文件数量,文件内容无需一一对应。
-```
-custom_datasets
-├── testA
-├── testB
-├── trainA
-└── trainB
-```
+#### 2.1.2 Pix2Pix相关的数据集下载
-### Pix2Pix相关的数据集下载
+- #### 从网页下载
-#### 从网页下载
-pixel2pixel模型相关的数据集可以在[这里](https://people.eecs.berkeley.edu/~tinghuiz/projects/pix2pix/datasets/)下载
+pixel2pixel模型相关的数据集可以在[这里](https://people.eecs.berkeley.edu/~tinghuiz/projects/pix2pix/datasets/)下载,下载后记得软连接到 ```PaddleGAN/data/``` 下。
-#### 使用脚本下载
+- #### 使用脚本下载
-我们在 ```PaddleGAN/data``` 文件夹下提供了一个脚本 ```download_pix2pix_data.py``` 方便下载pix2pix模型相关的数据集。执行如下命令可以下载相关的数据集,目前支持的数据集名称有:apple2orange, summer2winter_yosemite,horse2zebra, monet2photo, cezanne2photo, ukiyoe2photo, vangogh2photo, maps, cityscapes, facades, iphone2dslr_flower, ae_photos, cityscapes。
-执行如下命令,可以下载对应的数据集到 ```~/.cache/ppgan``` 并软连接到 ```PaddleGAN/data/``` 下。
+我们在 ```PaddleGAN/data``` 文件夹下提供了一个脚本 ```download_pix2pix_data.py``` 方便下载pix2pix模型相关的数据集。
+
+目前支持下载的数据集名称有:apple2orange, summer2winter_yosemite,horse2zebra, monet2photo, cezanne2photo, ukiyoe2photo, vangogh2photo, maps, cityscapes, facades, iphone2dslr_flower, ae_photos, cityscapes。
+
+同理,执行如下命令,可以下载对应的数据集到 ```~/.cache/ppgan``` 并软连接到 ```PaddleGAN/data/``` 下。
```
python data/download_pix2pix_data.py --name cityscapes
```
-#### 使用自己的数据集
+### 2.2 自制数据集
+
+#### 2.2.1非成对数据集构建
+
+针对不需成对数据训练的模型,如CycleGAN等,如需使用自己的数据集,需要构造成如下目录的格式。
+
+注意 ```xxxA```,```xxxB```文件数量,文件内容无需一一对应。
+
+```
+custom_datasets
+├── testA
+├── testB
+├── trainA
+└── trainB
+```
+
+### 2.2.2 成对数据集构建
+
+针对需要成对数据训练的模型,如Pixel2Pixel等,如需使用自己的数据集,需要构造成如下目录的格式。
-如果你使用自己的数据集,需要构造成如下目录的格式。同时图片应该制作成下图的样式,即左边为一种风格,另一边为相应转换的风格。
+注意图片应该制作成下图的样式,即左边为一种风格,另一边为相应转换的风格。
```
facades
diff --git a/docs/zh_CN/tutorials/lap_style.md b/docs/zh_CN/tutorials/lap_style.md
index 3e4a7fb..d57389f 100644
--- a/docs/zh_CN/tutorials/lap_style.md
+++ b/docs/zh_CN/tutorials/lap_style.md
@@ -1,18 +1,30 @@
# LapStyle
- 这个repo提供CVPR2021论文"Drafting and Revision: Laplacian Pyramid Network for Fast High-Quality Artistic Style Transfer"的官方代码。
+ **LapStyle--拉普拉斯金字塔风格化网络**,是一种能够生成高质量风格化图的快速前馈风格化网络,能渐进地生成复杂的纹理迁移效果,同时能够在**512分辨率**下达到**100fps**的速度。可实现多种不同艺术风格的快速迁移,在艺术图像生成、滤镜等领域有广泛的应用。
-## 1 论文介绍
+本文档提供CVPR2021论文"Drafting and Revision: Laplacian Pyramid Network for Fast High-Quality Artistic Style Transfer"的官方代码。
+
+## 1. 论文介绍
艺术风格迁移的目的是将一个实例图像的艺术风格迁移到一个内容图像。目前,基于优化的方法已经取得了很好的合成质量,但昂贵的时间成本限制了其实际应用。
+
同时,前馈方法仍然不能合成复杂风格,特别是存在全局和局部模式时。受绘制草图和修改细节这一常见绘画过程的启发,[论文](https://arxiv.org/pdf/2104.05376.pdf) 提出了一种新的前馈方法拉普拉斯金字塔网络(LapStyle)。
+
LapStyle首先通过绘图网络(Drafting Network)传输低分辨率的全局风格模式。然后通过修正网络(Revision Network)对局部细节进行高分辨率的修正,它根据拉普拉斯滤波提取的图像纹理和草图产生图像残差。通过叠加具有多个拉普拉斯金字塔级别的修订网络,可以很容易地生成更高分辨率的细节。最终的样式化图像是通过聚合所有金字塔级别的输出得到的。论文还引入了一个补丁鉴别器,以更好地对抗的学习局部风格。实验表明,该方法能实时合成高质量的风格化图像,并能正确生成整体风格模式。
![lapstyle_overview](https://user-images.githubusercontent.com/79366697/118654987-b24dc100-b81b-11eb-9430-d84630f80511.png)
+## 2. 快速体验
+
+PaddleGAN为大家提供了四种不同艺术风格的预训练模型,风格预览如下:
+
+| 原图 | StarryNew | Stars | Ocean | Circuit |
+| :----------------------------------------------------------: | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+|
|
|
|
|
|
+
+只需运行下面的代码即可迁移至指定风格:
-## 2 快速体验
```
python applications/tools/lapstyle.py --content_img ${PATH_OF_CONTENT_IMG}
```
@@ -24,7 +36,9 @@ python applications/tools/lapstyle.py --content_img ${PATH_OF_CONTENT_IMG}
- `--style (str)`: 生成图像风格,当`weight_path`为`None`时,可以在`starrynew`, `circuit`, `ocean` 和 `stars`中选择,默认为`starrynew`。
- `--style_image_path (str)`: 输入的风格图像路径,当`weight_path`不为`None`时需要输入,默认为`None`。
-## 3 如何使用
+## 3. 模型训练
+
+配置文件参数详情:[Config文件使用说明](../config_doc.md)
### 3.1 数据准备
@@ -34,24 +48,30 @@ python applications/tools/lapstyle.py --content_img ${PATH_OF_CONTENT_IMG}
示例以COCO数据为例。如果您想使用自己的数据集,可以在配置文件中修改数据集为您自己的数据集。
-注意,LapStyle模型训练暂时不支持Windows系统。
+