All Projects → ravisvi → Super Resolution Videos

ravisvi / Super Resolution Videos

Licence: unlicense
Applying SRGAN technique implemented in https://github.com/zsdonghao/SRGAN on videos to super resolve them.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Super Resolution Videos

Srgan
Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
Stars: ✭ 2,641 (+2802.2%)
Mutual labels:  super-resolution, tensorlayer
Cfsrcnn
Coarse-to-Fine CNN for Image Super-Resolution (IEEE Transactions on Multimedia,2020)
Stars: ✭ 84 (-7.69%)
Mutual labels:  super-resolution
Hyperpose
HyperPose: A Collection of Real-time Human Pose Estimation
Stars: ✭ 961 (+956.04%)
Mutual labels:  tensorlayer
Videosuperresolution
A collection of state-of-the-art video or single-image super-resolution architectures, reimplemented in tensorflow.
Stars: ✭ 1,118 (+1128.57%)
Mutual labels:  super-resolution
Hyperspectral Image Spatial Super Resolution Via 3d Full Convolutional Neural Network
Hyperspectral Image Spatial Super-Resolution via 3D-Full-Convolutional-Neural-Network
Stars: ✭ 41 (-54.95%)
Mutual labels:  super-resolution
Scn matlab
Matlab reimplementation of SCNSR
Stars: ✭ 70 (-23.08%)
Mutual labels:  super-resolution
Super Resolution cnn
Implementation of 'Image Super-Resolution using Deep Convolutional Network'
Stars: ✭ 27 (-70.33%)
Mutual labels:  super-resolution
Cyclegan tensorlayer
Re-implement CycleGAN in Tensorlayer
Stars: ✭ 86 (-5.49%)
Mutual labels:  tensorlayer
Seranet
Super Resolution of picture images using deep learning
Stars: ✭ 79 (-13.19%)
Mutual labels:  super-resolution
Imitation Learning Dagger Torcs
A Simple Example for Imitation Learning with Dataset Aggregation (DAGGER) on Torcs Env
Stars: ✭ 60 (-34.07%)
Mutual labels:  tensorlayer
Tensorflow Espcn
TensorFlow implementation of the Efficient Sub-Pixel Convolutional Neural Network
Stars: ✭ 49 (-46.15%)
Mutual labels:  super-resolution
Jsi Gan
Official repository of JSI-GAN (Accepted at AAAI 2020).
Stars: ✭ 42 (-53.85%)
Mutual labels:  super-resolution
Ilo
Official implementation: Intermediate Layer Optimization for Inverse Problems using Deep Generative Models
Stars: ✭ 71 (-21.98%)
Mutual labels:  super-resolution
Tensorflow Srgan
Tensorflow implementation of "Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network" (Ledig et al. 2017)
Stars: ✭ 33 (-63.74%)
Mutual labels:  super-resolution
Pytoflow
The py version of toflow → https://github.com/anchen1011/toflow
Stars: ✭ 83 (-8.79%)
Mutual labels:  super-resolution
Super Resolution
Tensorflow 2.x based implementation of EDSR, WDSR and SRGAN for single image super-resolution
Stars: ✭ 952 (+946.15%)
Mutual labels:  super-resolution
Srrescgan
Code repo for "Deep Generative Adversarial Residual Convolutional Networks for Real-World Super-Resolution" (CVPRW NTIRE2020).
Stars: ✭ 44 (-51.65%)
Mutual labels:  super-resolution
Esrgan Tf2
ESRGAN (Enhanced Super-Resolution Generative Adversarial Networks, published in ECCV 2018) implemented in Tensorflow 2.0+. This is an unofficial implementation. With Colab.
Stars: ✭ 61 (-32.97%)
Mutual labels:  super-resolution
Awesome Computer Vision
Awesome Resources for Advanced Computer Vision Topics
Stars: ✭ 92 (+1.1%)
Mutual labels:  super-resolution
Adaptive Style Transfer
Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization
Stars: ✭ 85 (-6.59%)
Mutual labels:  tensorlayer

Super resolve videos

Applying SRGAN technique implemented in https://github.com/zsdonghao/SRGAN on videos to super resolve them. You can find some of our results here- https://www.youtube.com/watch?v=8OY8HFGsbKM . With various modification to the loss methods one can obtain results which match their goals.

Motivation

One of the state of the art techniques at the time of writing, to super resolve an image involves the SRGAN technique as described in the paper. We investigated the effects of trying this technique on videos, and observed that we can super resolve them without major distortions, though some changes to the loss functions were necessary to remove certain flickering effects.

Implementation

This repository gives you a framework to choose any video within the videos folder and super reolve it by 4x. Our code works well for most of the videos we have tested. We have added an L1 loss in the training code to get rid of the flickering frames problem found in videos that were super rewsolved using plain SRGANs.

NOTE: The trained models are present in the folder Generator_Models.

  1. g_srgan.npz: trained model obtained from the original paper without the loss modifications.
  2. g_srgan_L1.npz: trained model with L1 loss to reduce the flickering effect.

Running the script

Provided that the repository has access to the trained model, the entry point to this project would be via the supervideo.py file. This files lists the video files present in the videos folder. The repository as is, is void of any videos. So go ahead and place any number of videos in this folder.

  1. To execute this, please run python supervideo.py
  2. Select the desired video from the list.
  3. Once the operation is successful the video will be present in the same folder with _srgan suffix.

Dependencies

  1. Python environment
  2. Working TensorFlow installation
  3. Working TensorLayer installation
  4. Python skvideo package
  5. ffmpeg tool

FAQs

1. Getting memory errors

Reduce the resolution of the input video. As this code tries to super-resolve the video by 4x, if one tries to super resolve 1080p video, one needs video card memory that can handle 1080x4 pixels. Sometimes, a video might have a high resolution theoretically, but may just contain noise/ pixelated information. Reducing the resolution, reduces the file size without noticeable quality degradation.

2. ffmpeg tool not found. Please have download all the necessary dependencies.

Please install ffmpeg tool/ any other tools that were not found.

3. How do I train my model?

We have not included the code for training the models in this repository. We used https://github.com/tensorlayer/srgan/blob/master/main.py, to train our models as well. Please star their repository if you find this technique useful. :)

4. I have trained my model, how do I use it?

Once you have a trained model, go ahead and place it in the Generator_Models folder. Then go here (line 65) and put your model's name instead of the current "g_srgan.npz." You are all set to super resolve a video using this model now.

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].