MMEditing是OpenMMLab 项目中开源的工具包。这是一个图像和视频编辑的工具箱,它目前包含了常见的编辑任务,比如图像修复,图像抠图,超分辨率和生成模型。在编辑图像或者视频的时候,我们往往是需要组合使用以上任务的,因此作者把它们整理到一个统一的框架下,方便大家使用。
GITHUB主页:mmediting主页
mmediting环境要求:
Linux (Windows is not officially supported) Python 3.6+ PyTorch 1.3 or higher CUDA 9.0 or higher NCCL 2 GCC 4.9 or higher mmcv
更加具体的过程参见mmediting安装步骤:官方安装步骤
以及官方网站:mmediting官网
安装完成后,打开安装路径,大致有以下文件夹:
其中的data是我创建的,用来存放数据的。
首先我们可以进行测试,来验证我们是否安装成功,官方也放了demo,以cycleGAN为例:
对于pix2pix可以使用:
python demo/generation_demo.py configs/example_config.py work_dirs/example_exp/example_model_20200202.pth demo/demo.jpg demo/demo_out.jpg
对于cycleGAN使用:
python demo/generation_demo.py configs/example_config.py work_dirs/example_exp/example_model_20200202.pth demo/demo.jpg demo/demo_out.jpg --unpaired_path demo/demo_unpaired.jpg --imshow
其中的generation_demo.py调用了gan的生成网络,传入图片,生成另一种风格的图片。
example_config.py储存着GAN网络的参数,初始化网络。example_model_20200202.pth是gan得到的训练文件,注意需要传入两张图片。
以summer2winter举例,一张夏天的,一张冬天的。
demo.jpg是夏天的路径,demo_out.jpg是输出路径,demo_unpaired.jpg是冬天的照片。
官方给出的模型文件为:下载链接
下载后放在work_dirs/example_exp路径下。
下载一张夏天的照片 并下载一张冬天的照片当作demo。
而我在终端中执行的代码为:
python demo/generation_demo.py configs/synthesizers/cyclegan/cyclegan_lsgan_resnet_in_1x1_246200_summer2winter.py work_dirs/cyclegan_lsgan_resnet_in_1x1_summer2winter/cyclegan_lsgan_resnet_in_1x1_246200_summer2winter_20200524-0baeaff6.pth demo/gt.jpg demo/summer2winter2.jpg --unpaired_path demo/snow1.jpg --imshow
从官方的数据准备可知:
mmediting
├── mmedit
├── tools
├── configs
├── data
│ ├── paired
│ │ ├── facades
│ │ ├── maps
| | ├── edges2shoes
| | | ├── train
| | | ├── test
│ ├── unpaired
│ │ ├── facades
| | ├── horse2zebra
| | ├── summer2winter_yosemite
| | | ├── trainA
| | | ├── trainB
| | | ├── testA
| | | ├── testB
文件夹要满足这样的关系。
cyclegan分为trainA trainB testA testB四个文件夹,再把相应的数据放到文件夹中。
根据官方文档的介绍,训练模型的指令为:
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]
CONFIG_FILE为config文件,决定了模型以及相应的文件夹。
dist_train.sh为所有模型训练的启动文件,或许说的不够准确。
这里给出我的训练命令:
./tools/dist_train.sh ./configs/synthesizers/cyclegan/cyclegan_lsgan_resnet_in_1x1_246200_summer2winter.py 1
正常启动会输出以下信息:
> 2020-11-07 16:53:08,416 - mmedit - INFO - Environment info:
------------------------------------------------------------
sys.platform: linux
Python: 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0]
CUDA available: True
GPU 0: GeForce GTX 1050
CUDA_HOME: /usr/local/cuda-10.1
NVCC: Cuda compilation tools, release 10.1, V10.1.243
GCC: gcc (Ubuntu 7.5.0-6ubuntu2) 7.5.0
PyTorch: 1.5.0+cu101
PyTorch compiling details: PyTorch built with:
- GCC 7.3
- C++ Version: 201402
- Intel(R) Math Kernel Library Version 2019.0.5 Product Build 20190808 for Intel(R) 64 architecture applications
- Intel(R) MKL-DNN v0.21.1 (Git Hash 7d2fd500bc78936d1d648ca713b901012f470dbc)
- OpenMP 201511 (a.k.a. OpenMP 4.5)
- NNPACK is enabled
- CPU capability usage: AVX2
- CUDA Runtime 10.1
- NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_37,code=compute_37
- CuDNN 7.6.3
- Magma 2.5.2
在启动的时候,我遇到了一些问题:
python 未找到命令
解决办法参考:
python 未找到命令解决办法