Multi-Stage Progressive Image Restoration 图像恢复----MPRNet测试步骤及测试过程中遇到问题的解决办法

Multi-Stage Progressive Image Restoration 图像恢复----MPRNet测试及测试过程中遇到问题的解决办法。

本文详细介绍了图像恢复方法-MPRNet代码测试及训练,记录下学习笔记。
论文地址https://arxiv.org/abs/2102.02808
代码地址https://github.com/swz30/MPRNet
CVPR2021

1、MPRNet测试

一、 搭建环境:创建虚拟环境

本次测试系统Windows10(建议在ubuntu16.04系统下进行测试)
安装pytorch1.1.0
Python3.7 CUDA9.0 cuDNN7.5
下载链接https://pytorch.org/get-started/previous-versions/
安装命令conda install pytorch=1.1 torchvision=0.3 cudatoolkit=9.0 -c pytorch

虚拟环境中可以直接安装需要的cuda和cudnn
先查看电脑支持的版本

conda search cudatoolkit  --info
conda search cudnn  --info

直接安装命令:
(Windows 10下)

conda install cudatoolkit=9.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/cudatoolkit-9.0-1.conda
conda install cudnn=7.6.5 -c https://repo.anaconda.com/pkgs/main/win-64/cudnn-7.6.5-cuda9.0_0.conda

装好后conda list查看是否成功!如下图:
在这里插入图片描述
(Linux下)

conda install cudatoolkit=9.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
conda install cudnn=7.1.4 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/

安装必须的软件包:

pip install matplotlib scikit-image opencv-python yacs joblib natsort h5py tqdm

二、 调试代码(针对Deblurring)

将预训练模型加载到项目文件夹pretrained_models下,
下载地址:https://github.com/swz30/MPRNet/tree/main/Deblurring
新建文件夹/samples/input/samples/output,将测试数据集拷贝在MPRNet-main/samples/input目录下
测试结果将保存在output文件夹下

测试运行命令:

python demo.py --task Deblurring --input_dir ./samples/input/ --result_dir ./samples/output

运行出错:
在这里插入图片描述
解决办法:
修改conv.py文件第11行

import torch
torch.backends.cudnn.enabled = False

这句话的意思是不用 cudnn 加速了。
GPU,CUDA,cudnn 的关系是
• CUDA 是 NVIDIA 推出的用于自家 GPU 的并行计算框架,只能在 NVIDIA 的GPU 上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥 CUDA 的作用。
• CUDNN 是 NVIDIA 打造的针对深度神经网络的加速库,是一个用于深层神经网络的 GPU 加速库。如果你要用 GPU 训练模型,CUDNN 不是必须的,但是一般会采用这个加速库。
CUDNN默认会使用,既然目前解决不了匹配问题,就先不用了。这样 GPU 照样能工作,但可能没有用上 CUDNN 那么快。

运行出错:
在这里插入图片描述
分析原因:

原因1、将pytorch cuda cudnn下载源更新到同一个,比如都用清华源。
下载pytorch时,将命令
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0
注意:-c pytorch 这个去掉,这个是强制使用官网下载
参考链接:https://www.pythonf.cn/read/150171

更新结束后,还是出现这个错误,接着更新pytorch、cuda、cudnn版本
在这里插入图片描述

原因2、RTX2000以上显卡,需要安装cuda10.0版本以上,可能由于cuda版本太低的缘故,本电脑使用的显卡是RTX3080,所以需要使用cuda11.0及以上的版本
解决办法:将pytorchcudacudnn重新安装对应的版本
参考链接:https://blog.csdn.net/a529975125/article/details/89644841
https://www.pianshen.com/article/7440670417/

安装命令:conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch

重新安装pytorchcudacudnn,因为本电脑查询cuda11.0没有对应的cudnn8.0.5版本,所以使用cudnn8.2.1代替cudnn8.0.5
Cudnn安装命令为:

conda install cudnn=8.2.1 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/cudnn-8.2.1-cuda11.3_0.conda

运行结果如下:
在这里插入图片描述
发现测试成功!测试结果保存在了output文件夹下。

三、 测试数据

测试结果如下:
原始模糊图像
在这里插入图片描述
去模糊之后的图像
在这里插入图片描述
结果分析:整体看,本次去模糊的效果比较好,无论是图片背景还是图片主体,都可以明显的看出来去运动模糊的效果!

去模糊效果比较(with DeblurGANv2 )
DeblurGANv2结果
在这里插入图片描述

MPRNet结果
在这里插入图片描述
两者比较结果分析:MPRNet去模糊的效果比DeblurGANv2效果好!尤其是在图片背景文字,轮廓,图像主体细节较好!但是这两个网络结构都是针对RGB彩色图像进行去模糊,MPRNet在黑白图像上、图像小目标边缘、多个小目标轮廓细节去模糊的效果有待检验!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值