华为发布开源底层视觉套件 MindSporeEditing
华为发布开源底层视觉套件 MindSporeEditingMindEditing是基于MindSpore的开源工具包,包含开源或华为技术有限公司最先进的图像和视频任务模型 ,例如 IPT, FSRCNN, BasicVSR 等模型。这些模型主要用于底层的视觉任务,如超分辨率,去噪,去雨,修复。MindEditing还支持多种平台,包括CPU/GPU/Ascend。当然,在Ascend设备上你会得到更优的体验。
MindEditing底层视觉算法能够在像素级别进行视觉信号处理,完成图像和视频的修复复原、质量提升、风格变换任务,计算机视觉领域的一类应用场景。
华为诺亚方舟实验室基于昇思 MindSpore AI 框架打造了 MindSporeEditing 底层视觉套件,针对主流底层视觉任务 SOTA 算法及模型进行实现和统一设计,提供易用的训练、推理接口。
MindSporeEditing 已在昇思开源社区正式发布 1.0 版本,面向广大开发者开放使用。
主要特性
[*]易于使用我们采用统一的入口,您只需指定支持的模型名称并在参数yaml文件中配置参数即可启动任务。
[*]支持多种任务MindEditing支持多种当前流行的底层视觉任务如 :去模糊, 去噪音, 超分辨率, 和修复.
[*]SOTAMindEditing 在 去模糊, 去噪音, 超分辨率, 和 修复 任务中提供最先进的算法。
多任务有这么多的任务,是否有这样一个模型可以处理多个任务?当然,预训练模型,即图像处理transformer(IPT)。IPT模型是一种新的预训练模型,它是在多头多尾图像上进行训练的。 此外,还引入了对比学习,以适应不同的图像处理任务。 因此,经过优化后的预训练模型可以有效地用于预期的任务。由于只有一个预训练的模型,IPT在各种底层基准测试中优于当前最先进的方法。优秀的性能
[*]与目前最先进的图像处理模型相比,IPT模型在不同任务下的表现更好
https://github.com/mindspore-lab/mindediting/raw/master/docs/image/performance_on_different_tasks.png
[*]刷榜多个底层视觉任务与目前最先进的方法相比,IPT模型取得了最好的性能。
https://github.com/mindspore-lab/mindediting/raw/master/docs/image/quantitative_results.png
[*]泛化能力IPT模型对不同噪声水平彩色图像去噪的生成能力(table 4)。
[*]CNN和IPT模型使用不同百分比数据的性能在预训练数据有限的情况下,CNN模型可以获得更好的性能。随着数据量的增加,基于Transformer模块的IPT模型获得了显著的性能提升,从曲线(table 5)趋势也可以看出IPT模型很有潜力。
[*]惊人的实际图像推理结果
[*]图像超分辨率任务
下图显示了来自Urban100数据集的双三次下采样(×4)的超分辨率结果。提出的IPT模型恢复了更多的细节。
[*]图像去噪任务
必须指出的是,IPT获得了CVPR2023 NTIRE图像去噪赛道冠军。下图为噪声级σ = 50时彩色图像去噪结果。https://github.com/mindspore-lab/mindediting/raw/master/docs/image/IPT_Denoising_task.png
[*]图像去雨任务
下图显示了Rain100L数据集上的图像去雨结果。https://github.com/mindspore-lab/mindediting/raw/master/docs/image/IPT_Deraining_task.png
依赖
[*]mindspore >=1.9
[*]numpy =1.19.5
[*]scikit-image =0.19.3
[*]pyyaml =5.1
[*]pillow =9.3.0
[*]lmdb =1.3.0
[*]h5py =3.7.0
[*]imageio =2.25.1
[*]munch =2.5.0
Python可以通过Conda安装。安装 Miniconda:cd /tmp
curl -O https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py37_4.10.3-Linux-$(arch).sh
bash Miniconda3-py37_4.10.3-Linux-$(arch).sh -b
cd -
. ~/miniconda3/etc/profile.d/conda.sh
conda init bash
创建一个虚拟环境,以Python 3.7.5为例:conda create -n mindspore_py37 python=3.7.5 -y
conda activate mindspore_py37
检查Python版本。python --version
要安装依赖项,请运行:pip install -r requirements.txt
MindSpore(>=1.9)可以通过遵循官方说明轻松安装,在那里您可以选择您最适合的硬件平台。要在分布式模式下运行,需要安装openmpi开始我们提供了训练和验证的启动文件,选择不同的模型配置启动。关于MindEditing的更多基本使用方法请看 文档 。python3 train.py --config_path ./configs/basicvsr/train.yaml
# or
python3 val.py --config_path ./configs/basicvsr/val.yaml
[*]Graph Mode and Pynative Mode图模式使用编译静态图来优化效率和并行计算。相比之下,pynative模式的优势在于灵活性和易于开发。你可以改变模型配置文件中的参数system.context_mode切换到纯pynative模式进行开发。
新闻MindEditing目前分支是0.x,后续将继续推出1.x分支。将发现更多特性在1.x分支中,请继续关注。
[*]2023年4月6日
基于多平面特征表示的高效视图合成和3d多帧去噪模型(MPFER)即将推出,敬请期待。
[*]2023年3月15日
(docs/ tunable_convv .md)的推理代码和演示已经作为测试用例加入,您可以在./tests/中找到它们。此外,训练代码很快就会出来。Tunable Conv有4个模型用于演示,NAFNet用于调节图像去噪,SwinIR用于调节图像去噪和感知超分辨率,EDSR用于调节联合图像去噪和去模糊,StyleNet用于调节风格转移。并行性能增加并行工作数可以加快训练速度,下面是示例模型在CPU 16核 GPU 2xP100上的实验:num_parallel_workers: 8
epoch 1/100 step 1/133, loss = 0.045729052, duration_time = 00:01:07, step_time_avg = 0.00 secs, eta = 00:00:00
epoch 1/100 step 2/133, loss = 0.027709303, duration_time = 00:01:20, step_time_avg = 6.66 secs, eta = 1 day(s) 00:36:02
epoch 1/100 step 3/133, loss = 0.027135072, duration_time = 00:01:33, step_time_avg = 8.74 secs, eta = 1 day(s) 08:17:56
num_parallel_workers: 16
epoch 1/100 step 1/133, loss = 0.04535071, duration_time = 00:00:47, step_time_avg = 0.00 secs, eta = 00:00:00
epoch 1/100 step 2/133, loss = 0.032363698, duration_time = 00:01:00, step_time_avg = 6.74 secs, eta = 1 day(s) 00:54:38
epoch 1/100 step 3/133, loss = 0.02718924, duration_time = 00:01:13, step_time_avg = 8.83 secs, eta = 1 day(s) 08:36:07
教程以下教程将帮助用户学习使用MindEditing。
[*]文档
模型列表
模型名任务会议支持平台下载
IPT多任务CVPR 2021Ascend/GPUckpt
BasicVSR视频超分辨率CVPR 2021Ascend/GPUckpt
BasicVSR++Light视频超分辨率CVPR 2022Ascend/GPUckpt
NOAHTCV图像去噪CVPR 2021(MAI Challenge)Ascend/GPUckpt
RRDB图像超分辨率Ascend/GPUckpt
FSRCNN图像超分辨率ECCV 2016Ascend/GPUckpt
SRDiff图像超分辨率Neurocomputing 2022Ascend/GPUckpt
VRT多任务arXiv(2022.01)Ascend/GPUckpt
RVRT多任务arXiv(2022.06)Ascend/GPUckpt
TTVSR视频超分辨率CVPR 2022Ascend/GPUckpt
MIMO-Unet图像去模糊ICCV 2021Ascend/GPUckpt
NAFNet图像去模糊arXiv(2022.04)Ascend/GPUckpt
CTSDG图像修复ICCV 2021Ascend/GPUckpt
EMVD视频去噪CVPR 2021Ascend/GPUckpt
Tunable_Conv可调任务(图像处理)arXiv(2023.04)Ascend/GPUckpt
IFR+视频帧插值CVPR 2022Ascend/GPUckpt
MPFER基于3d的多帧去噪(即将推出)arXiv(2023.04)GPUckpt
下载事项: 模型文件有.ckpt和.om两种格式,您可以下载相应的文件进行研究工作。
[*]点击上表下载栏中的相应链接即可下载.ckpt文件。
[*].om文件可以在这里找到 here。关于如何使用.om文件的详细信息,请参见 deploy。
[*]多任务模型可以根据任务划分下载相应的模型文件,模型文件的选择参考configs文件夹中不同模型的yaml文件。
[*]对于需要spynet或vgg预训练权重的模型,也可以在相应的模型链接中下载。
关于模型的更多信息请看 ModelZoo Homepage 或者 docs文件夹下的模型文档。
许可证本项目遵循 Apache License 2.0 开源许可证。
github开源地址:
https://github.com/mindspore-lab/mindediting/
页:
[1]