DiVANet-PyTorch 代码复现
"Single image super-resolution based on directional variance attention network"
代码地址:
GitHub - pbehjatii/DiVANet: PyTorch implementation of Single image super-resolution based on directional variance attention network (Pattern Recognition2022)
论文地址:
https://www.sciencedirect.com/science/article/pii/S0031320322004770?dgcid=author
0 环境搭建:
Python 3
PyTorch (0.4.0), torchvision
Numpy, Scipy
Pillow, Scikit-image
h5py
importlib
adamp # 这个是代码地址没提到的,但是要装上
tensorboardX # 这个是代码地址没提到的,但是要装上
1 数据集制作:
1.1 按照这个模板搭建文件夹,
dataset
└── DIV2K
├── DIV2K_train_HR
├── DIV2K_train_LR_bicubic
├── DIV2K_valid_HR
└── DIV2K_valid_LR_bicubic

数据集HR部分可以直接放HR图片,但是LR部分要按照x2,x3,x4的LR图像大小放,x4代表同一个HR图像对应的4倍小的LR,按照这个设置数据集,下面部分如果跟这个有冲突,以这个为准!

1.2 div2h5.py 修改
按照下图修改即可,注意我只用了x4的LR数据集,如果要用别的大小的数据集,则要改对应的for subdir in ["HR", 改这里!! ]:


1.3 终端(termianl)输入:python div2h5.py
输入完后就出现如下部分,这一部分加载HR图像,然后加载完后会加载LR图像。如果按照1.2部分左边设置数据集的文件夹,就只会加载HR,不会加载LR!!


生成一个h5后缀的文件!!

2.训练
2.1 train.py改代码


2.2 终端输入:python train.py


出现上图错误,把shuffle=false

设置的100次迭代就打印信息并保存权重


3.测试:
3.1 sample.py改代码


改dataset.py的代码并且与测试数据集对应,测试数据集可以改为下图所示:

测试数据集图片添加_HR代码:
import os
folder_path = r"F:\pythondata\DiVANet-main\dataset\Set14\LR" # 指定文件夹路径(改路径就可以了)
for filename in os.listdir(folder_path): # 遍历文件夹下所有文件
if filename.endswith((".jpg", ".png")): # 只处理图片文件
old_path = os.path.join(folder_path, filename) # 构造旧文件路径
# 添加的内容
new_name = filename.split(".")[0] + "_LR." + filename.split(".")[1] # 构造新文件名
new_path = os.path.join(folder_path, new_name) # 构造新文件路径
os.rename(old_path, new_path) # 重命名文件
3.2 终端输入 python sample.py


完结,如果知道咋在训练文件下面验证的麻烦告诉我,感恩!