Image Super-Resolution Using Deep Convolutional Networks 图像超分辨----SRCNN测试及训练
本文详细介绍了图像超分辨方法–SRCNN代码测试及训练
论文地址:https://ieeexplore.ieee.org/document/7115171?arnumber=7115171
代码地址:https://github.com/yjn870/srcnn-pytorch
1、SRCNN测试:
(Window10系统下进行)
(1)创建虚拟环境
(2)安装python3.6
,pytorch1.7.0
,cuda11.0
以及必要的安装包
h5py
、tqdm
(3)安装pytorch1.7.0
和对应版本的cuda11.0
:终端输入如下命令
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0 -c pytorch
(4)将下载的预训练模型拷贝到项目文件model
文件夹下。
本次测试使用的模型为srcnn_x3.pth
,也可以使用其他模型。
运行测试命令:
python test.py --weights-file model/srcnn_x3.pth --image-file data/butterfly_GT.bmp --scale 3
结果图片和原始图片都保存在data文件夹下,运行结果显示峰值信噪比为27.53
原始图片为:
下面结果分别为butterfly_GT_bicubic_x3(双三次插值)和butterfly_GT_srcnn_x3(SRCNN)
可以更改scale参数,改变规模,进行测试以及峰值信噪比的计算。
改变规模进行测试,scale为2,3,4时对应的PSNR分别为34.69,35.82,38.34
也可以对自己的数据进行测试,将需要测试的图片放在data文件夹下,运行命令的时候,将图片的名称改为自己测试图片的名称。
也可以更改相应的参数。
2、SRCNN训练:
(Window10系统下进行)
(1)在代码地址中下载用于训练的数据集,如下:
(2)在项目工程文件夹下创建数据集文件夹,如下:
文件夹名称分别为train_data
、eval_data
、outputs
并将数据集和评估文件放到如下文件夹下,本次训练使用91-image_x3.h5
和Set5_x3.h5
,也可以使用其他数据文件。
(3)接下来需要设置train.py
文件中的参数,如下:
图中①②③分别为训练数据、评估文件、输出模型保存文件夹,可以自己进行创建,修改此处即可。
图中④⑤⑥分别为训练的batch_size
、num_epochs
、num_workers
,如果显存不够可以适当改小batch_size
;需要简单测试,节省时间,可以将num_epochs
减少;windows下训练,需要将num_workers
改成0。
输入命令:python train.py
开始训练,并同时输出此周期下的psnr
,loss
等指标。(注:本次训练10个周期)
训练结束,模型会保存在outputs
文件夹下。同时会生成最好的模型,也就是峰值信噪比最高的模型。之后,可以使用best.pth
进行测试。
以上就是SRCNN测试及训练的全过程了,希望对大家有所帮助!