RL-Restore [project page][paper]
🚩 Support arbitrary input size. Aug 25
🚩 Add Python3 compatibility. Aug 6
🚩 Training code is ready! Jun 15
- Framework
-
Anaconda is highly recommended as you can easily adjust the environment setting.
pip install opencv-python scipy tqdm h5py
-
We have tested our code under the following settings:
Python TensorFlow CUDA cuDNN 2.7 1.3 8.0 5.1 3.5 1.4 8.0 5.1 3.6 1.10 9.0 7.0
-
Start testing on synthetic dataset
python main.py --dataset moderate
dataset
: choose a test set amongmild
,moderate
andsevere
-
❗ Start testing on real-world data (support arbitrary input size)
python main.py --dataset mine
- You may put your own test images in
data/test/mine/
- You may put your own test images in
-
Dataset
-
All test sets can be downloaded at Google Drive or Baidu Cloud.
-
Replace
test_images/
with the downloaded data and play with the whole dataset.
-
-
Naming rules
- Each saved image name refers to a selected toolchain. Please refer to my second reply in this issue.
-
Download training images
-
Download training images (down-sampled DIV2K images) at Google Drive or Baidu Cloud.
-
Move the downloaded file to
data/train/
and unzip.
-
-
Generate training data
-
Run
data/train/generate_train.m
to generate training data in HDF5 format. -
You may generate multiple
.h5
files indata/train/
-
-
Let's train!
python main.py --is_train True
-
When you observe
reward_sum
is increasing, it indicates training is going well. -
You can visualize reward increasing by TensorBoard.
-
The DQN algorithm is modified from DQN-tensorflow.
@inproceedings{yu2018crafting,
author = {Yu, Ke and Dong, Chao and Lin, Liang and Loy, Chen Change},
title = {Crafting a Toolchain for Image Restoration by Deep Reinforcement Learning},
booktitle = {Proceedings of IEEE Conference on Computer Vision and Pattern Recognition},
pages={2443--2452},
year = {2018}
}