DiVANet-PyTorch 代碼復(fù)現(xiàn)
"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 環(huán)境搭建:
Python 3
PyTorch?(0.4.0),?torchvision
Numpy, Scipy
Pillow, Scikit-image
h5py
importlib
adamp? # 這個(gè)是代碼地址沒(méi)提到的,但是要裝上
tensorboardX??# 這個(gè)是代碼地址沒(méi)提到的,但是要裝上
1 數(shù)據(jù)集制作:
1.1 按照這個(gè)模板搭建文件夾,
dataset
└── DIV2K
? ? ├── DIV2K_train_HR
? ? ├── DIV2K_train_LR_bicubic
? ? ├── DIV2K_valid_HR
? ? └── DIV2K_valid_LR_bicubic

? 數(shù)據(jù)集HR部分可以直接放HR圖片,但是LR部分要按照x2,x3,x4的LR圖像大小放,x4代表同一個(gè)HR圖像對(duì)應(yīng)的4倍小的LR,按照這個(gè)設(shè)置數(shù)據(jù)集,下面部分如果跟這個(gè)有沖突,以這個(gè)為準(zhǔn)!

1.2 div2h5.py 修改
? 按照下圖修改即可,注意我只用了x4的LR數(shù)據(jù)集,如果要用別的大小的數(shù)據(jù)集,則要改對(duì)應(yīng)的for subdir in ["HR",? 改這里!! ]:


1.3?終端(termianl)輸入:python div2h5.py
? 輸入完后就出現(xiàn)如下部分,這一部分加載HR圖像,然后加載完后會(huì)加載LR圖像。如果按照1.2部分左邊設(shè)置數(shù)據(jù)集的文件夾,就只會(huì)加載HR,不會(huì)加載LR??!


? 生成一個(gè)h5后綴的文件??!

2.訓(xùn)練
2.1?train.py改代碼


2.2 終端輸入:python train.py


出現(xiàn)上圖錯(cuò)誤,把shuffle=false

設(shè)置的100次迭代就打印信息并保存權(quán)重


3.測(cè)試:
3.1 sample.py改代碼


改dataset.py的代碼并且與測(cè)試數(shù)據(jù)集對(duì)應(yīng),測(cè)試數(shù)據(jù)集可以改為下圖所示:

測(cè)試數(shù)據(jù)集圖片添加_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) ?# 構(gòu)造舊文件路徑
? ? ? ?# 添加的內(nèi)容
? ? ? ?new_name = filename.split(".")[0] + "_LR." + filename.split(".")[1] ?# 構(gòu)造新文件名
? ? ? ?new_path = os.path.join(folder_path, new_name) ?# 構(gòu)造新文件路徑
? ? ? ?os.rename(old_path, new_path) ?# 重命名文件
3.2 終端輸入 python sample.py


完結(jié),如果知道咋在訓(xùn)練文件下面驗(yàn)證的麻煩告訴我,感恩!