All Projects → jmiller656 → Edsr Tensorflow

jmiller656 / Edsr Tensorflow

Licence: mit
Tensorflow implementation of Enhanced Deep Residual Networks for Single Image Super-Resolution

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Edsr Tensorflow

Real-ESRGAN-colab
A Real-ESRGAN model trained on a custom dataset
Stars: ✭ 18 (-94.27%)
Mutual labels:  super-resolution
GSOC
Repository for Google Summer of Code 2019 https://summerofcode.withgoogle.com/projects/#4662790671826944
Stars: ✭ 61 (-80.57%)
Mutual labels:  super-resolution
Spsr
Pytorch implementation of Structure-Preserving Super Resolution with Gradient Guidance (CVPR 2020)
Stars: ✭ 280 (-10.83%)
Mutual labels:  super-resolution
RAMS
Official TensorFlow code for paper "Multi-Image Super Resolution of Remotely Sensed Images Using Residual Attention Deep Neural Networks".
Stars: ✭ 55 (-82.48%)
Mutual labels:  super-resolution
traiNNer
traiNNer: Deep learning framework for image and video super-resolution, restoration and image-to-image translation, for training and testing.
Stars: ✭ 130 (-58.6%)
Mutual labels:  super-resolution
Video2x
A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley 2, 2018.
Stars: ✭ 3,760 (+1097.45%)
Mutual labels:  super-resolution
tensorrt-examples
TensorRT Examples (TensorRT, Jetson Nano, Python, C++)
Stars: ✭ 31 (-90.13%)
Mutual labels:  super-resolution
Toflow
TOFlow: Video Enhancement with Task-Oriented Flow
Stars: ✭ 314 (+0%)
Mutual labels:  super-resolution
Awesome-ICCV2021-Low-Level-Vision
A Collection of Papers and Codes for ICCV2021 Low Level Vision and Image Generation
Stars: ✭ 163 (-48.09%)
Mutual labels:  super-resolution
Tdan Vsr Cvpr 2020
TDAN: Temporally-Deformable Alignment Network for Video Super-Resolution, CVPR 2020
Stars: ✭ 277 (-11.78%)
Mutual labels:  super-resolution
DLSS
Deep Learning Super Sampling with Deep Convolutional Generative Adversarial Networks.
Stars: ✭ 88 (-71.97%)
Mutual labels:  super-resolution
SwinIR
SwinIR: Image Restoration Using Swin Transformer (official repository)
Stars: ✭ 1,260 (+301.27%)
Mutual labels:  super-resolution
Singan
Official pytorch implementation of the paper: "SinGAN: Learning a Generative Model from a Single Natural Image"
Stars: ✭ 2,983 (+850%)
Mutual labels:  super-resolution
srVAE
VAE with RealNVP prior and Super-Resolution VAE in PyTorch. Code release for https://arxiv.org/abs/2006.05218.
Stars: ✭ 56 (-82.17%)
Mutual labels:  super-resolution
Pytorch Srgan
A modern PyTorch implementation of SRGAN
Stars: ✭ 289 (-7.96%)
Mutual labels:  super-resolution
TMNet
The official pytorch implemention of the CVPR paper "Temporal Modulation Network for Controllable Space-Time Video Super-Resolution".
Stars: ✭ 77 (-75.48%)
Mutual labels:  super-resolution
Mirnet
Official repository for "Learning Enriched Features for Real Image Restoration and Enhancement" (ECCV 2020). SOTA results for image denoising, super-resolution, and image enhancement.
Stars: ✭ 247 (-21.34%)
Mutual labels:  super-resolution
Pytorch Vdsr
VDSR (CVPR2016) pytorch implementation
Stars: ✭ 313 (-0.32%)
Mutual labels:  super-resolution
Sewar
All image quality metrics you need in one package.
Stars: ✭ 299 (-4.78%)
Mutual labels:  super-resolution
Caffe Vdsr
A Caffe-based implementation of very deep convolution network for image super-resolution
Stars: ✭ 273 (-13.06%)
Mutual labels:  super-resolution

EDSR Tensorflow Implementation

An implementation of Enhanced Deep Residual Networks for Single Image Super-Resolution written in tensorflow.

Requirements

  • Tensorflow
  • scipy
  • tqdm
  • argparse

Installation

pip install -r requirements.txt

Training

In order to train, you'll have to do a few things...

  • Download a dataset of images (due to my computational limitations, I've used General-100)
  • Place all the images from that dataset into a directory under this one
  • run python train.py --dataset data_dir where data_dir is the directory containing your images
  • In order to view stats during training (image previews, scalar for loss), simply run tensorboard --logdir your_save_directory where your_save_directory is the directory you passed in as the save directory argument for training (saved_models by default)

Training Details

As I've mentioned before, I'm currently faced with some computational limitations, so this caused me to do a few things differently than what is mentioned in the paper. One of the more important changes I've made was using the General-100 dataset, because it's much smaller. I've also trained a network with less layers than the original baseline model as was described in the paper. This, however, can still be done using my code by adjusting some training parameters. I've trained by taking the center 100x100 pixels of each image in General-100, and shrinking them down to 50x50. I then trained an EDSR to resize the 50x50 pixel images back to 100x100. Currently, I use 80% of the dataset as a training set and 20% as a testing set. I trained the EDSR over 1000 iterations using Adam optimizer

Using Trained Network

In order to use trained weights you just have to run this command python test.py. By default, this will take a random sample of five images from your dataset, compute their output, and save it in the out directory. If you'd like to just run superresolution on one image, you can run python test.py --image your_picture where your_picture is the image file you'd like to run superresolution on.

Results

These results were computed on a network using 3 layers, and a feature size of 16. The network was trained to scale 50x50px images to 100x100px for 1000 iterations.

Updates coming soon.......

Original image Shrunk image EDSR Output
alt-text alt-text alt-text
alt-text alt-text alt-text
alt-text alt-text alt-text
alt-text alt-text alt-text
alt-text alt-text alt-text

Future Work

  • Add MDSR implementation
  • Train and post results on a larger model and dataset

Pre-trained model

There is a pre-trained model that I have made for the baseline model (default params) using my machine. If you'd like to use it, download the files here. In order to run, create a directory called saved_models and place the files in there. Then you can use test.py to resize images.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].