File size: 4,354 Bytes
3ef0208
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# Pyramid Attention for Image Restoration
This repository is for PANet and PA-EDSR introduced in the following paper

[Yiqun Mei](http://yiqunm2.web.illinois.edu/), [Yuchen Fan](https://scholar.google.com/citations?user=BlfdYL0AAAAJ&hl=en), [Yulun Zhang](http://yulunzhang.com/), [Jiahui Yu](https://jiahuiyu.com/), [Yuqian Zhou](https://yzhouas.github.io/), [Ding Liu](https://scholar.google.com/citations?user=PGtHUI0AAAAJ&hl=en), [Yun Fu](http://www1.ece.neu.edu/~yunfu/), [Thomas S. Huang](http://ifp-uiuc.github.io/) and [Honghui Shi](https://www.humphreyshi.com/) "Pyramid Attention for Image Restoration", [[Arxiv]](https://arxiv.org/abs/2004.13824) 

The code is built on [EDSR (PyTorch)](https://github.com/thstkdgus35/EDSR-PyTorch) & [RNAN](https://github.com/yulunzhang/RNAN) and tested on Ubuntu 18.04 environment (Python3.6, PyTorch_1.1) with Titan X/1080Ti/V100 GPUs.



## Contents

1. [Train](#train)

2. [Test](#test)

3. [Results](#results)

4. [Citation](#citation)

5. [Acknowledgements](#acknowledgements)



## Train

### Prepare training data 



1. Download DIV2K training data (800 training + 100 validtion images) from [DIV2K dataset](https://data.vision.ee.ethz.ch/cvl/DIV2K/) or [SNU_CVLab](https://cv.snu.ac.kr/research/EDSR/DIV2K.tar).



2. Specify '--dir_data' based on the HR and LR images path.

3. Organize training data like:
```bash

DIV2K/

β”œβ”€β”€ DIV2K_train_HR

β”œβ”€β”€ DIV2K_train_LR_bicubic

β”‚   └── X10

β”‚   └── X20

β”‚   └── X30

β”‚   └── X40

β”œβ”€β”€ DIV2K_valid_HR

└── DIV2K_valid_LR_bicubic

    └── X10

    └── X20

    └── X30

    └── X40

```
For more informaiton, please refer to [EDSR(PyTorch)](https://github.com/thstkdgus35/EDSR-PyTorch).

### Begin to train

1. (optional) All the pretrained models and visual results can be downloaded from [Google Drive](https://drive.google.com/open?id=1q9iUzqYX0fVRzDu4J6fvSPRosgOZoJJE).

2. Cd to 'PANet-PyTorch/[Task]/code', run the following scripts to train models.

    **You can use scripts in file 'demo.sb' to train and test models for our paper.**


    ```bash

    # Example Usage: Q=10 

    python main.py --n_GPUs 2 --batch_size 16 --lr 1e-4 --decay 200-400-600-800 --save_models --n_resblocks 80 --model PANET --scale 10 --patch_size 48 --save PANET_Q10 --n_feats 64 --data_train DIV2K --chop

    ```

## Test

### Quick start


1. Cd to 'PANet-PyTorch/[Task]/code', run the following scripts.

    **You can use scripts in file 'demo.sb' to produce results for our paper.**


    ```bash

    # No self-ensemble, use different testsets (Classic5, LIVE1) to reproduce the results in the paper.

    # Example Usage: Q=40

    python main.py --model PANET --save_results --n_GPUs 1 --chop --data_test classic5+LIVE1 --scale 40 --n_resblocks 80 --n_feats 64 --pre_train ../Q40.pt --test_only


    ```


### The whole test pipeline
1. Prepare test data. Organize training data like:
```bash

benchmark/

β”œβ”€β”€ testset1

β”‚   └── HR 

β”‚   └── LR_bicubic

β”‚   	└── X10

β”‚   	└── ..

β”œβ”€β”€ testset2

```

2. Conduct image CAR. 

    See **Quick start**

3. Evaluate the results.


    Run 'Evaluate_PSNR_SSIM.m' to obtain PSNR/SSIM values for paper.


## Citation
If you find the code helpful in your resarch or work, please cite the following papers.
```

@article{mei2020pyramid,

  title={Pyramid Attention Networks for Image Restoration},

  author={Mei, Yiqun and Fan, Yuchen and Zhang, Yulun and Yu, Jiahui and Zhou, Yuqian and Liu, Ding and Fu, Yun and Huang, Thomas S and Shi, Honghui},

  journal={arXiv preprint arXiv:2004.13824},

  year={2020}

}

@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}

}

```
## Acknowledgements
This code is built on [EDSR (PyTorch)](https://github.com/thstkdgus35/EDSR-PyTorch), [RNAN](https://github.com/yulunzhang/RNAN) and [generative-inpainting-pytorch](https://github.com/daa233/generative-inpainting-pytorch). We thank the authors for sharing their codes.