This project aims to implement a Unet-like model that performs the super resolution task of receiving an input image of 64x64 size and outputting an image of the same content with the size increases by 4 times (256x256). The dataset we use can be downloaded here.
To reproduce our result, simply clone the repository using
git clone https://github.com/quocviethere/unet-super-resolution
Then run:
python main.py
By default, when you run the code, it will train the UNet model with Skip Connection, to train the model without Skip Connection, you can modify main.py
as follows:
from model import SR_Unet_NoSkip
SR_unet_model, metrics = train_model(
SR_Unet_NoSkip,
'SR_Unet_NoSkip',
save_model,
optimizer,
criterion,
train_loader,
test_loader,
EPOCHS,
device
)
The Colab Notebook is available here:
We provide the model checkpoints for both version:
Description | Link |
---|---|
w/o Skip Connection | SR_unet_model_noskip.pt |
w/ Skip Connecion | SR_unet_model.pt |
@INPROCEEDINGS{7780459,
author={He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian},
booktitle={2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
title={Deep Residual Learning for Image Recognition},
year={2016},
volume={},
number={},
pages={770-778},
doi={10.1109/CVPR.2016.90}}
@misc{ronneberger2015unet,
title={U-Net: Convolutional Networks for Biomedical Image Segmentation},
author={Olaf Ronneberger and Philipp Fischer and Thomas Brox},
year={2015},
eprint={1505.04597},
archivePrefix={arXiv},
primaryClass={cs.CV}
}