GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com β€” GitHub - tensorlayer/SRGAN: Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network

BranchesTags
Open more actions menu

Latest commit

 

History

133 Commits
133 Commits

Folders and files

NameName
Last commit message
Last commit date
img
img
 
 
.gitignore
.gitignore
 
 
.style.yapf
.style.yapf
 
 
README.md
README.md
 
 
config.py
config.py
 
 
requirements.txt
requirements.txt
 
 
srgan.py
srgan.py
 
 
train.py
train.py
 
 
vgg.py
vgg.py
 
 

Repository files navigation

Super Resolution Examples

  • Implementation of "Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network"

  • For earlier version, please check srgan release and tensorlayer.

  • For more computer vision applications, check TLXCV

SRGAN Architecture

Prepare Data and Pre-trained VGG

    1. You need to download the pretrained VGG19 model weights in here.
    1. You need to have the high resolution images for training.
    • In this experiment, I used images from DIV2K - bicubic downscaling x4 competition, so the hyper-paremeters in config.py (like number of epochs) are seleted basic on that dataset, if you change a larger dataset you can reduce the number of epochs.
    • If you dont want to use DIV2K dataset, you can also use Yahoo MirFlickr25k, just simply download it using train_hr_imgs = tl.files.load_flickr25k_dataset(tag=None) in main.py.
    • If you want to use your own images, you can set the path to your image folder via config.TRAIN.hr_img_path in config.py.

Run

πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ You need install TensorLayerX at first!

πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ Please install TensorLayerX via source

pip install git+https://github.com/tensorlayer/tensorlayerx.git 

Train

  • Set your image folder in config.py, if you download DIV2K - bicubic downscaling x4 competition dataset, you don't need to change it.
  • Other links for DIV2K, in case you can't find it : test_LR_bicubic_X4, train_HR, train_LR_bicubic_X4, valid_HR, valid_LR_bicubic_X4.
config.TRAIN.img_path = "your_image_folder/"

Your directory structure should look like this:

srgan/
    └── config.py
    └── srgan.py
    └── train.py
    └── vgg.py
    └── model
          └── vgg19.npy
    └── DIV2K
          └── DIV2K_train_HR
          β”œβ”€β”€ DIV2K_train_LR_bicubic
          β”œβ”€β”€ DIV2K_valid_HR
          └── DIV2K_valid_LR_bicubic

  • Start training.
python train.py

πŸ”₯Modify a line of code in train.py, easily switch to any framework!

import os
os.environ['TL_BACKEND'] = 'tensorflow'
# os.environ['TL_BACKEND'] = 'mindspore'
# os.environ['TL_BACKEND'] = 'paddle'
# os.environ['TL_BACKEND'] = 'pytorch'

🚧 We will support PyTorch as Backend soon.

Evaluation.

πŸ”₯ We have trained SRGAN on DIV2K dataset. πŸ”₯ Download model weights as follows.

SRGAN_g SRGAN_d
TensorFlow Baidu, Googledrive Baidu, Googledrive
PaddlePaddle Baidu, Googledrive Baidu, Googledrive
MindSpore 🚧Coming soon! 🚧Coming soon!
PyTorch 🚧Coming soon! 🚧Coming soon!

Download weights file and put weights under the folder srgan/models/.

Your directory structure should look like this:

srgan/
    └── config.py
    └── srgan.py
    └── train.py
    └── vgg.py
    └── model
          └── vgg19.npy
    └── DIV2K
          β”œβ”€β”€ DIV2K_train_HR
          β”œβ”€β”€ DIV2K_train_LR_bicubic
          β”œβ”€β”€ DIV2K_valid_HR
          └── DIV2K_valid_LR_bicubic
    └── models
          β”œβ”€β”€ g.npz  # You should rename the weigths file. 
          └── d.npz  # If you set os.environ['TL_BACKEND'] = 'tensorflow',you should rename srgan-g-tensorflow.npz to g.npz .

  • Start evaluation.
python train.py --mode=eval

Results will be saved under the folder srgan/samples/.

Results

Reference

  • [1] Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
  • [2] Is the deconvolution layer the same as a convolutional layer ?

Citation

If you find this project useful, we would be grateful if you cite the TensorLayer paper:

@article{tensorlayer2017,
author = {Dong, Hao and Supratak, Akara and Mai, Luo and Liu, Fangde and Oehmichen, Axel and Yu, Simiao and Guo, Yike},
journal = {ACM Multimedia},
title = {{TensorLayer: A Versatile Library for Efficient Deep Learning Development}},
url = {http://tensorlayer.org},
year = {2017}
}

@inproceedings{tensorlayer2021,
  title={TensorLayer 3.0: A Deep Learning Library Compatible With Multiple Backends},
  author={Lai, Cheng and Han, Jiarong and Dong, Hao},
  booktitle={2021 IEEE International Conference on Multimedia \& Expo Workshops (ICMEW)},
  pages={1--3},
  year={2021},
  organization={IEEE}
}

Other Projects

  • Style Transfer
  • Pose Estimation

Discussion

  • TensorLayer Slack
  • TensorLayer WeChat

License

  • For academic and non-commercial use only.
  • For commercial use, please contact [email protected].

About

Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network

github.com/tensorlayer/tensorlayerx

Topics

cnngansrgansuper-resolutiontensorflowtensorlayervggvgg16vgg19

Resources

Readme
Activity
Custom properties

Stars

3.5k stars

Watchers

89 watching

Forks

809 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 β€” GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800Γ—600. No cookies required.