• Stars
    star
    118
  • Rank 299,923 (Top 6 %)
  • Language
    MATLAB
  • Created over 6 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Caffe implementation of "Fast and Accurate Single Image Super-Resolution via Information Distillation Network" (CVPR 2018)

IDN-Caffe

Caffe implementation of "Fast and Accurate Single Image Super-Resolution via Information Distillation Network"

[arXiv] [CVF] [Poster] [TensorFlow version]


The schematics of the proposed Information Distillation Network

The average feature maps of enhancement units
The average feature maps of compression units


Visualization of the output feature maps of the third convolution in each enhancement unit

Testing

  • Install Caffe, Matlab R2013b
  • Run testing:
$ cd ./test
$ matlab
>> test_IDN

Note: Please make sure the matcaffe is complied successfully.

./test/caffemodel/IDN_x2.caffemodel, ./test/caffemodel/IDN_x3.caffmodel and ./test/caffemodel/IDN_x4.caffemodel are obtained by training the model with 291 images, and ./test/caffemodel/IDN_x4_mscoco.caffemodel is got through training the same model with mscoco dataset.

The results are stored in "results" folder, with both reconstructed images and PSNR/SSIM/IFCs.

Training

  • step 1: Compile Caffe with train/include/caffe/layers/l1_loss_layer.hpp, train/src/caffe/layers/l1_loss_layer.cpp and train/src/caffe/layers/l1_loss_layer.cu
  • step 2: Run data_aug.m to augment 291 dataset
  • step 3: Run generate_train_IDN.m to convert training images to hdf5 file
  • step 4: Run generate_test_IDN.m to convert testing images to hdf5 file for valid model during the training phase
  • step 5: Run train.sh to train x2 model (Manually create directory caffemodel_x2)

Results

Set5,Set14,B100,Urban100,Manga109

With regard to the visualization of mean feature maps, you can run test_IDN first and then execute the following code in Matlab.

inspect = cell(4, 1);
for i = 1:4
    inspect{i} = net.blobs(['down' num2str(i)]).get_data();
    figure;
    imagesc(mean(inspect{i}, 3)')
end

Model Parameters

Scale Model Size
×2 552,769
×3 552,769
×4 552,769

Citation

If you find IDN useful in your research, please consider citing:

@inproceedings{Hui-IDN-2018,
  title={Fast and Accurate Single Image Super-Resolution via Information Distillation Network},
  author={Hui, Zheng and Wang, Xiumei and Gao, Xinbo},
  booktitle={CVPR},
  pages = {723--731},
  year={2018}
}