Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Doc] Add Chinese translation of install.md and 4 super-resolution datasets README.md #424

Merged
merged 8 commits into from
Jul 21, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions docs/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ conda install pytorch torchvision -c pytorch
Note: Make sure that your compilation CUDA version and runtime CUDA version match.
You can check the supported CUDA version for precompiled packages on the [PyTorch website](https://pytorch.org/).

`E.g. 1` If you have CUDA 10.1 installed under `/usr/local/cuda` and would like to install
PyTorch 1.5, you need to install the prebuilt PyTorch with CUDA 10.1.
`E.g. 1` If you have CUDA 10.1 installed under `/usr/local/cuda`, you need to install the prebuilt PyTorch with CUDA 10.1.

```python
conda install pytorch cudatoolkit=10.1 torchvision -c pytorch
Expand Down
113 changes: 109 additions & 4 deletions docs_zh-CN/install.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,116 @@
## 依赖

- Linux (Windows is not officially supported)
- Linux (目前 Windows 暂无官方支持)
- Python 3.6+
- PyTorch 1.3 or higher
- CUDA 9.0 or higher
- PyTorch 1.3 或更高
- CUDA 9.0 或更高
- NCCL 2
- GCC 4.9 or higher
- GCC 4.9 或更高
- [mmcv](https://github.com/open-mmlab/mmcv)

## 安装

a. 创建并激活 conda 虚拟环境,如:

```shell
conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab
```

b. 按照 [PyTorch 官方文档](https://pytorch.org/) 安装 PyTorch 和 torchvision,如:

```shell
conda install pytorch torchvision -c pytorch
```

注:确保 CUDA 编译版本和 CUDA 运行版本相匹配。 用户可以参照 [PyTorch 官网](https://pytorch.org/) 对预编译包所支持的 CUDA 版本进行核对。

`例1`:如果 `/usr/local/cuda` 文件夹下已安装了 CUDA 10.1 版本,则需要安装 CUDA 10.1 下预编译的 PyTorch。

```shell
conda install pytorch cudatoolkit=10.1 torchvision -c pytorch
```

`例2`:如果你在 `/usr/local/cuda` 文件夹下已安装 CUDA 9.2 版本,并且想要安装 PyTorch 1.3.1 版本,则需要安装 CUDA 9.2 下预编译的 PyTorch。
```shell
conda install pytorch=1.3.1 cudatoolkit=9.2 torchvision=0.4.2 -c pytorch
```

如果你从源码编译 PyTorch 而不是安装的预编译版本的话,你可以使用更多 CUDA 版本(例如9.0)。

c. 克隆 MMEditing 仓库

```shell
git clone https://github.com/open-mmlab/mmediting.git
cd mmediting
```

d. 安装相关依赖和 MMEditing

```shell
pip install -r requirements.txt
pip install -v -e . # or "python setup.py develop"
```

如果你是在 macOS 环境下安装,则需将上述命令的最后一行替换为:

```shell
CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e .
```

注:
1. git commit 的 id 将会被写到版本号中,如 0.6.0+2e7045c。这个版本号也会被保存到训练好的模型中。 推荐用户每次在对本地代码和 github 上的源码进行同步后,执行一次步骤 b。如果 C++/CUDA 代码被修改,就必须进行这一步骤。

> 重要:如果你在一个新的 CUDA/PyTorch 版本下重新安装了 mmedit ,请确保删除了`./build`文件夹
```shell
pip uninstall mmedit
rm -rf ./build
find . -name "*.so" | xargs rm
```

2. 根据上述步骤, MMEditing 就会以 `dev` 模式被安装,任何本地的代码修改都会立刻生效,不需要再重新安装一遍(除非用户提交了 commits,并且想更新版本号)。

3. 如果用户想使用 `opencv-python-headless` 而不是 `opencv-python`,可在安装 `MMCV` 前安装 `opencv-python-headless`。

4. 有些模型(例如图像修复任务中的 `EDVR`)依赖于 `mmcv-full` 中的一些 CUDA 算子,具体的依赖可在 `requirements.txt` 中找到。
如需要,请通过 `pip install -r requirements.txt` 命令来安装 `mmcv-full`,安装过程中会在本地编译 CUDA 算子,这个过程大概需要10分钟。
另一种方案是安装预编译版本的 `mmcv-full`,请参考 [MMCV 主页](https://github.com/open-mmlab/mmcv#install-with-pip) 获取具体的安装指令。
此外,如果你要使用的模型不依赖于 CUDA 算子,那么也可以使用 `pip install mmcv`来安装轻量版本的 mmcv,其中 CUDA 算子被移除了。

## CPU 环境下的安装步骤

MMEditing 也可以在只有 CPU 的环境下安装(即无法使用 GPU 的环境)。

然而在该环境下,有些功能将被移除,例如:
- Deformable Convolution(可变形卷积)

因此,如果您尝试使用一些包含可变形卷积的模型进行推理,则会出现错误。

## 利用 Docker 镜像安装 MMEditing

MMEditing 提供了一个 [Dockerfile](https://github.com/open-mmlab/mmediting/blob/master/docker/Dockerfile) 来创建 docker 镜像

```shell
# build an image with PyTorch 1.5, CUDA 10.1
docker build -t mmediting docker/
```

运行以下命令:

```shell
docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/mmediting/data mmediting
```

## 完整的安装脚本

```shell
conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab

# install latest pytorch prebuilt with the default prebuilt CUDA version (usually the latest)
conda install -c pytorch pytorch torchvision -y
git clone https://github.com/open-mmlab/mmediting.git
cd mmediting
pip install -r requirements.txt
pip install -v -e .
```
12 changes: 11 additions & 1 deletion tools/data/super-resolution/README_zh-CN.md
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
# 数据集 - 复原
# 超分辨率数据集

建议将数据集的根目录链接到 `$MMEDITING/data` 下,如果您的文件目录结构不一致,那么可能需要在配置文件中修改对应的文件路径。

MMEditing 支持下列超分辨率数据集:

- 图像超分辨率
- [DIV2K](div2k/README.md) \[ [Homepage](https://data.vision.ee.ethz.ch/cvl/DIV2K/) \]
- 视频超分辨率
- [REDS](reds/README.md) \[ [Homepage](https://seungjunnah.github.io/Datasets/reds.html) \]
- [Vimeo90K](vimeo90k/README.md) \[ [Homepage](http://toflow.csail.mit.edu) \]
82 changes: 82 additions & 0 deletions tools/data/super-resolution/div2k/README_zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,85 @@
year = {2017}
}
```

- 训练集: [DIV2K dataset](https://data.vision.ee.ethz.ch/cvl/DIV2K/).
- 验证集: Set5 and Set14.

```text
mmediting
├── mmedit
├── tools
├── configs
├── data
│ ├── DIV2K
│ │ ├── DIV2K_train_HR
│ │ ├── DIV2K_train_LR_bicubic
│ │ │ ├── X2
│ │ │ ├── X3
│ │ │ ├── X4
│ │ ├── DIV2K_valid_HR
│ │ ├── DIV2K_valid_LR_bicubic
│ │ │ ├── X2
│ │ │ ├── X3
│ │ │ ├── X4
│ ├── val_set5
│ │ ├── Set5_bicLRx2
│ │ ├── Set5_bicLRx3
│ │ ├── Set5_bicLRx4
│ ├── val_set14
│ │ ├── Set14_bicLRx2
│ │ ├── Set14_bicLRx3
│ │ ├── Set14_bicLRx4
```

## 裁剪子图

为了加快 IO,建议将 DIV2K 中的图片裁剪为一系列子图,为此,我们提供了一个脚本:

```shell
python tools/data/super-resolution/div2k/preprocess_div2k_dataset.py --data-root ./data/DIV2K
```

生成的数据保存在 `DIV2K` 目录下,其文件结构如下所示,其中 `_sub` 表示子图:

```text
mmediting
├── mmedit
├── tools
├── configs
├── data
│ ├── DIV2K
│ │ ├── DIV2K_train_HR
│ │ ├── DIV2K_train_HR_sub
│ │ ├── DIV2K_train_LR_bicubic
│ │ │ ├── X2
│ │ │ ├── X3
│ │ │ ├── X4
│ │ │ ├── X2_sub
│ │ │ ├── X3_sub
│ │ │ ├── X4_sub
│ │ ├── DIV2K_valid_HR
│ │ ├── ...
...
```

## 准备标注列表文件

如果您想使用`标注模式`来处理数据集,需要先准备一个 `txt` 格式的标注文件。

标注文件中的每一行包含了图片名以及图片尺寸(这些通常是 ground-truth 图片),这两个字段用空格间隔开。

标注文件示例:

```text
0001_s001.png (480,480,3)
0001_s002.png (480,480,3)
```

## 准备 LMDB 格式的 DIV2K 数据集

如果您想使用 `LMDB` 以获得更快的 IO 速度,可以通过以下脚本来构建 LMDB 文件

```shell
python tools/data/super-resolution/div2k/preprocess_div2k_dataset.py --data-root ./data/DIV2K --make-lmdb
```
41 changes: 41 additions & 0 deletions tools/data/super-resolution/reds/README_zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,44 @@
year = {2019}
}
```

- 训练集: [REDS 数据集](https://seungjunnah.github.io/Datasets/reds.html).
- 验证集: [REDS 数据集](https://seungjunnah.github.io/Datasets/reds.html) 和 Vid4.

请注意,我们合并了 REDS 的训练集和验证集,以便在 REDS4 划分(在 `EDVR` 中会使用到)和官方验证集划分之间切换。

原始验证集的名称被修改了(clip 000 到 029),以避免与训练集发生冲突(总共 240 个 clip)。具体而言,验证集中的 clips 被改名为 240、241、... 269。

可通过运行以下命令来准备 REDS 数据集:

```shell
python tools/data/super-resolution/reds/preprocess_reds_dataset.py ./data/REDS
```

```text
mmediting
├── mmedit
├── tools
├── configs
├── data
│ ├── REDS
│ │ ├── train_sharp
│ │ │ ├── 000
│ │ │ ├── 001
│ │ │ ├── ...
│ │ ├── train_sharp_bicubic
│ │ │ ├── 000
│ │ │ ├── 001
│ │ │ ├── ...
│ ├── REDS4
│ │ ├── GT
│ │ ├── sharp_bicubic
```

## 准备 LMDB 格式的 REDS 数据集

如果您想使用 `LMDB` 以获得更快的 IO 速度,可以通过以下脚本来构建 LMDB 文件:

```shell
python tools/data/super-resolution/reds/preprocess_reds_dataset.py --root-path ./data/REDS --make-lmdb
```
6 changes: 6 additions & 0 deletions tools/data/super-resolution/vid4/README_zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,9 @@
publisher={IEEE}
}
```

可以从 [此处](https://drive.google.com/file/d/1ZuvNNLgR85TV_whJoHM7uVb-XW1y70DW/view?usp=sharing) 下载 Vid4 数据集,
其中包含了由两种下采样方法得到的图片:

1. BIx4 包含了由双线性插值下采样得到的图片
2. BDx4 包含了由 `σ=1.6` 的高斯核模糊,然后每4个像素进行一次采样得到的图片
36 changes: 36 additions & 0 deletions tools/data/super-resolution/vimeo90k/README_zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,39 @@
publisher={Springer}
}
```

训练集和测试集可以从 [此处](http://toflow.csail.mit.edu/) 下载。

Vimeo90K 数据集包含了如下所示的 `clip/sequence/img` 目录结构:

```text
├── GT/LQ
│ ├── 00001
│ │ ├── 0001
│ │ │ ├── im1.png
│ │ │ ├── im2.png
│ │ │ ├── ...
│ │ ├── 0002
│ │ ├── 0003
│ │ ├── ...
│ ├── 00002
│ ├── ...
```

## 准备 Vimeo90K 数据集的标注文件

为了准备好训练所需的标注文件,请先从 Vimeo90K 数据集官网下载训练路径列表,随后执行如下命令:

```shell
python tools/data/super-resolution/vimeo90k/preprocess_vimeo90k_dataset.py ./data/Vimeo90K/official_train_list.txt
```

测试集的标注文件可通过类似方式生成.

## 准备 LMDB 格式的 Vimeo90K 数据集

如果您想使用 `LMDB` 以获得更快的 IO 速度,可以通过以下脚本来构建 LMDB 文件

```shell
python tools/data/super-resolution/vimeo90k/preprocess_vimeo90k_dataset.py ./data/Vimeo90K/official_train_list.txt --gt_path ./data/Vimeo90K/GT --lq_path ./data/Vimeo90K/LQ --make-lmdb
```