All Projects → msmsajjadi → Enhancenet Code

msmsajjadi / Enhancenet Code

Licence: other
EnhanceNet: Single Image Super-Resolution Through Automated Texture Synthesis (official repository)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Enhancenet Code

Anime4k
A High-Quality Real Time Upscaler for Anime Video
Stars: ✭ 14,083 (+9817.61%)
Mutual labels:  neural-networks, super-resolution
Frvsr
Frame-Recurrent Video Super-Resolution (official repository)
Stars: ✭ 157 (+10.56%)
Mutual labels:  neural-networks, super-resolution
Hep ml
Machine Learning for High Energy Physics.
Stars: ✭ 133 (-6.34%)
Mutual labels:  neural-networks
Remo Python
🐰 Python lib for remo - the app for annotations and images management in Computer Vision
Stars: ✭ 138 (-2.82%)
Mutual labels:  neural-networks
Ncrfpp
NCRF++, a Neural Sequence Labeling Toolkit. Easy use to any sequence labeling tasks (e.g. NER, POS, Segmentation). It includes character LSTM/CNN, word LSTM/CNN and softmax/CRF components.
Stars: ✭ 1,767 (+1144.37%)
Mutual labels:  neural-networks
Ed4
Computational Cognitive Neuroscience, Fourth Edition
Stars: ✭ 133 (-6.34%)
Mutual labels:  neural-networks
Bnaf
Pytorch implementation of Block Neural Autoregressive Flow
Stars: ✭ 138 (-2.82%)
Mutual labels:  neural-networks
3pu
Patch-base progressive 3D Point Set Upsampling
Stars: ✭ 131 (-7.75%)
Mutual labels:  super-resolution
Algorithms
A collection of common algorithms and data structures implemented in java, c++, and python.
Stars: ✭ 142 (+0%)
Mutual labels:  neural-networks
Rdn Tensorflow
A TensorFlow implementation of CVPR 2018 paper "Residual Dense Network for Image Super-Resolution".
Stars: ✭ 136 (-4.23%)
Mutual labels:  super-resolution
Brain Bits
A P300 online spelling mechanism for Emotiv headsets. It's completely written in Node.js, and the GUI is based on Electron and Vue.
Stars: ✭ 138 (-2.82%)
Mutual labels:  neural-networks
Pytorch 101 Tutorial Series
PyTorch 101 series covering everything from the basic building blocks all the way to building custom architectures.
Stars: ✭ 136 (-4.23%)
Mutual labels:  neural-networks
Deep Learning With Python
Example projects I completed to understand Deep Learning techniques with Tensorflow. Please note that I do no longer maintain this repository.
Stars: ✭ 134 (-5.63%)
Mutual labels:  neural-networks
Paddlex
PaddlePaddle End-to-End Development Toolkit(『飞桨』深度学习全流程开发工具)
Stars: ✭ 3,399 (+2293.66%)
Mutual labels:  neural-networks
Dnw
Discovering Neural Wirings (https://arxiv.org/abs/1906.00586)
Stars: ✭ 133 (-6.34%)
Mutual labels:  neural-networks
Bender
Easily craft fast Neural Networks on iOS! Use TensorFlow models. Metal under the hood.
Stars: ✭ 1,728 (+1116.9%)
Mutual labels:  neural-networks
Robin
RObust document image BINarization
Stars: ✭ 131 (-7.75%)
Mutual labels:  neural-networks
Ml Agents
Unity Machine Learning Agents Toolkit
Stars: ✭ 12,134 (+8445.07%)
Mutual labels:  neural-networks
Flowpp
Code for reproducing Flow ++ experiments
Stars: ✭ 137 (-3.52%)
Mutual labels:  neural-networks
Lacmus
Lacmus is a cross-platform application that helps to find people who are lost in the forest using computer vision and neural networks.
Stars: ✭ 142 (+0%)
Mutual labels:  neural-networks

EnhanceNet

This is a pre-trained reference implementation of ENet-PAT from "EnhanceNet: Single Image Super-Resolution through Automated Texture Synthesis" for a magnification ratio of 4.

It comes with a script which takes care of installing all necessary packages inside a virtual environment, i.e. all installations take place inside the folder and can be simply uninstalled by deleting the folder. Advanced users may install the packages directly (see FAQ section).

If you use this code as part of a publication, please cite:

@inproceedings{enhancenet,
  title={{EnhanceNet: Single Image Super-Resolution through Automated Texture Synthesis}},
  author={Sajjadi, Mehdi S. M. and Sch{\"o}lkopf, Bernhard and Hirsch, Michael},
  booktitle={Computer Vision (ICCV), 2017 IEEE International Conference on},
  pages={4501--4510},
  year={2017},
  organization={IEEE},
  url={https://arxiv.org/abs/1612.07919/}
}

How-To

Upscale images 4x

  • Copy all high-resolution images to the input directory.
  • Enter the following into a terminal window: ./run.sh

The images will be first downscaled and then upscaled with EnhanceNet.

Requirements:

Notes

  • All images in the input folder are downscaled 4x and then upscaled via bicubic interpolation and EnhanceNet-PAT.

  • Existing files in the output directory will not be replaced.

  • The first run may take a while, since all necessary packages are installed. Subsequent runs are much faster and do not necessitate an internet connection.

  • For compatibility reasons, the CPU version of TensorFlow is used and the TF computation graph is rebuilt for each image, so this reference implementation does not reflect the runtime performance of our model and is not suitable for runtime benchmarks.

FAQ

  • Upon calling ./run.sh, the message Permission denied appears.

    Solution: Enter chmod 544 run.sh enhancenet.py, then retry the run command.

  • I already have TensorFlow and/or don't want to run the virtualenv script.

    Solution: Install the necessary packages (see run.sh), then run python enhancenet.py

  • I have CUDA and want this to be faster for large images.

    Solution: In run.sh, add "-gpu" to the line with tensorflow: tensorflow-gpu=0.12.0

  • I don't want to downscale the images before upscaling, I want the actual upscaled version of 4x the size of the input images.

    Solution: In enhancenet.py, set the scaling factor to 1:

    imgs = loadimg('input/'+fn, 1)
    

    Please note that the model was specifically trained on input images downsampled with PIL, i.e. it won't perform as well on images downscaled with another method. Furthermore, it is not suitable for upscaling noisy or compressed images, since artifacts in the input will be heavily amplified. For comparisons on such images, the model needs to be trained on such a dataset.

  • I get the error message std::bad_alloc.

    Solution: You are likely running out of memory! Please note that even 1000x1000 input images need a lot of RAM (when the input is not downsampled).

  • Something goes wrong and I am left with an error message.

    Solution: Please email us, see below (even if you solved it, so we can add it to the FAQ).

For any questions, comments or help to get it to run, please don't hesitate to mail us: [email protected]

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