unet_qrnn3d.pth
XiaoZhang-NN opened this issue · comments
请问您方便把“unet_qrnn3d.pth"这个文件放到对应的文件夹里吗?网上搜不到。谢谢
你好,grunet.pth就是unet_qrnn3d.pth, 给的预训练模型链接里有。顺便问下,你在哪个文件看到了unet_qrnn3d.pth,我改下。
Line 90 in 836a727
已修改
您好,我想请问下,用你的程序跑了set5的数据集python playgrounds/sisr.py, 但是这个单张图像超分辨结果在我改变playgrounds/sisr中的参数sf=2,4,8时,结果分别如下:
sf=2,
(256, 256, 3)
mpsnr(init(low), gt):-28.884476731062165
print(mpsnr(pred, gt)):-41.95516288041326
sf=4,
(256, 256, 3)
-29.089431817092628
-41.954900607212295
sf=8
(256, 256, 3)
-31.4399596815036
-41.954899781828395
SISR.PY整体代码让如下:望您给些建议,麻烦您了
from functools import partial
import torch
import sisr_func as sisr
from sr import GaussianDownsample #as GaussianDownsample
from wrapper import GRUNetDenoiser
from composite import Augment
from metrics import mpsnr
import callbacks
from base import ADMMSolver #as ADMMSolver
from params import admm_log_descent # as admm_log_descent
from utils.io import loadmat
from skimage import io
-------------------------------------
Data
-------------------------------------
path = '/data1/XIAO_XIAO/EDSR-IMPROVE/data/benchmark/Set5/HR/butterfly.png'
def main(path):
gt = io.imread(path) #data['gt']
sf = 8
downsample = GaussianDownsample(sf=sf)
low = downsample(gt)
# ------------------------------------- #
# Init #
# ------------------------------------- #
device = torch.device('cuda:0')
# Create denoiser
model_path = '/data1/XIAO_XIAO/admm_sisr/grunet.pth'
denoiser = GRUNetDenoiser(model_path).to(device)
denoiser = Augment(denoiser)
# Create solver
init = partial(sisr.inits.interpolate, sf=sf, enable_shift_pixel=True)
prox = sisr.proxs.CloseFormedADMM(downsample.kernel, sf=sf).to(device)
denoise = denoiser
solver = ADMMSolver(init, prox, denoise).to(device)
# ------------------------------------- #
# Solve #
# ------------------------------------- #
iter_num = 24
# Genreate parameters for ADMM
rhos, sigmas = admm_log_descent(sigma=max(0.255/255., 0),
iter_num=iter_num,
modelSigma1=35, modelSigma2=10,
w=1)
# Run the iterations
pred = solver.restore(low, iter_num=iter_num, rhos=rhos, sigmas=sigmas,
callbacks=[callbacks.ProgressBar(iter_num)])
# ------------------------------------- #
# Show #
# ------------------------------------- #
print(pred.shape)
print(mpsnr(init(low), gt))
print(mpsnr(pred, gt))
if name == 'main':
main(path)
# Expect: 47.5494
你需要将输入归一化到[0,1]
gt = gt/255
我测了这张图
import scipy.misc
gt = scipy.misc.face()
gt = gt/255.0
结果大概是
(768, 1024, 3)
23.929812801936567
29.740749096806525
GRUNetDenoiser是针对光谱图像的,不过你好像是做RGB的,可以尝试使用FFDNetDenoiser等,可能效果更好。
DPHSIR/dphsir/denoisers/wrapper.py
Line 95 in 836a727
非常感谢你的耐心回复和建议,我测了你的提供的.mat的数据集,才发现是我自己处理数据的问题。
不客气。如果这个工作帮到了你,可以给个star哦
好滴,star已给
如果我用这个去噪 class DRUNetDenoiser(Denoiser2D): in_nc=n_channels=3, out_nc=n_channels=3,那么model_pathwo该调用哪一个预训练模型呢?
这里找名字对应的就行
class DRUNetDenoiser(Denoiser2D):
def __init__(self, n_channels, model_path):
n_channels = 1 对应带 gray 后缀的 model_path
https://onedrive.live.com/?authkey=%21AIrY2IiSf8uOw5o&id=8662E1C1C77AF89%213128&cid=08662E1C1C77AF89
Google drive download link: https://drive.google.com/drive/folders/13kfr3qny7S2xwG9h7v95F5mkWs0OmU0D?usp=sharing
腾讯微云下载链接: https://share.weiyun.com/5qO32s3
您好,想请教您两个问题
1,如果直接用ADMM从低分辨率图像超分到高分辨率图像是不是比去噪后加上admm效果好一些,毕竟这样状态下没有噪声。
2,低分辨率图像利用admm进行超分辨的话,sisr.py不加前面的model_path和denoise过程,这个代码我改了denoiser=gt,但是我看admm的v的更新过程用了denoise,我改了两天,没调试出来,您方便给我一些建议吗?