Git Product home page Git Product logo

oisr-pytorch's Introduction

OISR-PyTorch

PyTorch implementation of "ODE-inspired Network Design for Single Image Super-Resolution". This code is built on EDSR (PyTorch). We would like to thank the authors for sharing their codes!

Dependencies :

  • Python 3.7
  • PyTorch 0.4.1
  • numpy
  • skimage
  • imageio
  • matplotlib
  • tqdm

How to use ?

The code structure of this project is the same as EDSR, except that we change the definition of residual block (src/model/common.py) to Leapfrog / Heun / 3-stage Runge-Kutta blocks and reset the number of residual blocks. The training and testing scripts remain relatively unchanged. All datasets used in this work can be found here [1,2].

Pretrained models :

model Param Set5 Set14 B100 Urban100 OneDrive Baidu Pan
RK2-s 1.52M 32.21 28.63 27.58 26.14 Link Link (u26w)
LF-s 1.52M 32.14 28.63 27.60 26.17 Link Link (b971)
RK2 5.50M 32.32 28.72 27.66 26.37 Link Link (88f7)
LF 5.50M 32.33 28.73 27.66 26.38 Link Link (19qt)
RK3 44.27M 32.53 28.86 27.75 26.79 Link Link (xc1h)

We report the 4x PSNR(dB) results on benckmark datasets.

Model Structures :

Representative images (4x) :

  • LR

  • OISR-RK3

  • LR

  • OISR-RK3

  • LR

  • OISR-RK3

  • Urban100

  • B100

You can download some results from here. This link contains RK3-x3/x4 Urban100 and B100 results. You can easily generate result images with demo.sh scripts.

Q&A :

  1. The improvement of OISR is limited, compared with NTIRE2018 top rankers.

We admit that the ODE-inspired network design remains experimental, so far it just gives us a different point of view to understand SR problems. It could be a new direction and deserves more attentions of the community (e.g., Neural Ordinary Differential Equations in NeurIPS2018 is encouraging).

  1. More diverse comparative experiments should be involved, since there are many numerical ODE methods.

Due to the limited computing resources, we only evaluate a few network structures at the present time. It is possible that there exists another better architecture, or, more likely, many attempts may not even converge. Note that we only focus on the order of numerical ODE methods intuitively. It is only one of the central concepts in numerical analysis (also includes convergence and stability). To the best of our knowledge, there is no correspondence strictly between numerical ODEs and deep neural networks in numerical analysis, but utlizing convergence, consistency and order, and stability and stiffness may further explain the emprical success of the existing methods and the potential failures.

References :

@InProceedings{Lim_2017_CVPR_Workshops,
  author    = {Lim, Bee and Son, Sanghyun and Kim, Heewon and Nah, Seungjun and Lee, Kyoung Mu},
  title     = {Enhanced Deep Residual Networks for Single Image Super-Resolution},
  booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
  month     = {July},
  year      = {2017}
}

@InProceedings{OISR,
  author    = {Xiangyu He and Zitao Mo and Peisong Wang and Yang Liu and Mingyuan Yang and Jian Cheng},
  title     = {ODE-inspired Network Design for Single Image Super-Resolution},
  booktitle = {2019 {IEEE} Conference on Computer Vision and Pattern Recognition},
  month     = {July},
  year      = {2019}
}

oisr-pytorch's People

Contributors

holmesshuan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

oisr-pytorch's Issues

About n_feats=?

(NTIRE2019)In train.sh the n_feats=64, when I use pre_trained params the n_feats=512, why?

mismatch dimension

i tried to run RK3/main.py with RK3 pretrained models but below error occurred:

D:\Artificial Intelligence\SuperResolution\New folder\RK3>python main.py --test_only --save_results
Making model...
Load the model from weight/x4.pt
Traceback (most recent call last):
  File "D:\Artificial Intelligence\SuperResolution\New folder\RK3\model\edsr.py", line 60, in load_state_dict
    own_state[name].copy_(param)
RuntimeError: The expanded size of the tensor (64) must match the existing size (256) at non-singleton dimension 0.  Target sizes: [64, 3, 3, 3].  Tensor sizes: [256, 3, 3, 3]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main.py", line 21, in <module>
    model = model.Model(args, checkpoint)
  File "D:\Artificial Intelligence\SuperResolution\New folder\RK3\model\__init__.py", line 35, in __init__
    cpu=args.cpu
  File "D:\Artificial Intelligence\SuperResolution\New folder\RK3\model\__init__.py", line 109, in load
    if load_from: self.get_model().load_state_dict(load_from, strict=False)
  File "D:\Artificial Intelligence\SuperResolution\New folder\RK3\model\edsr.py", line 66, in load_state_dict
    .format(name, own_state[name].size(), param.size()))
RuntimeError: While copying the parameter named head.0.weight, whose dimensions in the model are torch.Size([64, 3, 3, 3]) and whose dimensions in the checkpoint are torch.Size([256, 3, 3, 3]).

cant run dataloader.py

I am facing an implementation error in import _DataLoaderIter from torch.utils.data.dataloader in dataloader.py
Im using pytorch 1.4.0 and python 3.7
I tried to change _DataLoaderIter to DataLoaderIter. Even that doesn't work.
I tried many ways to debug the error. However, I get the error:

ImportError Traceback (most recent call last)
in ()
4 from torch._C import _set_worker_signal_handlers, _set_worker_pids, _remove_worker_pids, _error_if_any_worker_fails
5 from torch.utils.data.dataloader import DataLoader
----> 6 from torch.utils.data.dataloader import DataLoaderIter

ImportError: cannot import name 'DataLoaderIter'

ResBlock中数值问题

论文中图片中你提出的block都是固定值,为什么代码不是固定值,而是可学习的呢
self.scale1 = nn.Parameter(torch.FloatTensor([0.5]), requires_grad=True)
参数requires_grad=Ture 是自动学习权重吗?

about the log.txt

In NTIRE2019/OISR/experiment/log.txt,a record 1600/15960 , could you tell me how to get the 15960 please?

about test path

Thanks for your sharing.、

python main.py --data_test Set5+Set14+B100+Urban100+DIV2K --data_range 801-900 --scale 2 --test_only --ext bin --dir_data /home/data/ --n_resblocks 8 --n_feats 122 --pre_train ./RK2-m/x2.pt --gpu-id 4,5,6,7 --chop --n_GPUs 4 --save_results

Is the dataset Set5 path format supposed to be /home/data/benchmark/Set5/HR and /home/data/benchmark/Set5/LR_bicubic/X2?

extraction code error.

When I download the training dataset, the system prompts the extraction code(ij6f) error.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.