(ECCV 2020) Interactive Multi-Dimension Modulation with Dynamic Controllable Residual Learning for Image Restoration
By Jingwen He*, Chao Dong*, and Yu Qiao (* indicates equal contribution)
two-dimension modulation
three-dimension modulation
pip install numpy opencv-python lmdb pyyaml
pip install tb-nightly future
pip install tensorboardX
Prepare the test dataset
codes/data_scripts/generate_2D_val.m
, codes/data_scripts/generate_3D_val.m
.Modulation Testing
options/test/modulation_CResMD.yml
.dataroot_GT
, dataroot_LQ
, pretrain_model_G
.cond_init
: The starting point of modulation, usually set to [0, 0].modulation_dim
: The dimension you would like to modulate.modulation_stride
: The stride for modulation process, usually set to 0.1.d codes
ython modulation_CResMD.py -opt options/test/modulation_CResMD.yml
Test CResMD
options/test/test_CResMD.yml
.dataroot_GT
, dataroot_LQ
cond_norm
(This paper uses [40, 50] for 2D modulation, [40, 50, 92] for 3D modulation).mode
(LQGT or LQGT_cond. if it is set to LQGT, you should specify cond
, which is the degradation levels.)ython test.py -opt options/test/test_CResMD.yml
Test base network
options/test/test_Base.yml
.ython test.py -opt options/test/test_Base.yml
CResMD
codes/data
.options/train/train_CResMD.yml
dataroot_GT
, dataroot_LQ
cond_norm
(This paper uses [40, 50] for 2D modulation, [40, 50, 92] for 3D modulation).ython train_CResMD.py -opt options/train/train_CResMD.yml
base network
codes/data
.options/train/train_Base.yml
ython train.py -opt options/train/train_Base.yml