Image Super-Resolution for Anime-Style Art
fork from : https://github.com/nagadomi/waifu2x.git

nagadomi e3d3a8355c change training script há 10 anos atrás
appendix 0a683fcb34 multi GPU server há 10 anos atrás
assets ffcb460dfc fix hit há 10 anos atrás
cache 1273b3609e first commit há 10 anos atrás
data 243e9044cd add slide and appendix há 10 anos atrás
images 95e9d276a3 add new model for photo há 10 anos atrás
lib e3d3a8355c change training script há 10 anos atrás
models 95e9d276a3 add new model for photo há 10 anos atrás
.gitignore 2231423056 update training script há 10 anos atrás
LICENSE f2f5c882eb add LICENSE and NOTICE há 10 anos atrás
NOTICE f2f5c882eb add LICENSE and NOTICE há 10 anos atrás
README.md f8112367e5 Update README.md há 10 anos atrás
cleanup_model.lua a706892b59 merge develop repo há 10 anos atrás
convert_data.lua 99db05a753 fix image size validation in convert.lua há 10 anos atrás
cudnn2cunn.lua 5b4d692f03 add support for RGB color space reconstruction há 10 anos atrás
export_model.lua a706892b59 merge develop repo há 10 anos atrás
train.lua e3d3a8355c change training script há 10 anos atrás
train.sh 5b4d692f03 add support for RGB color space reconstruction há 10 anos atrás
waifu2x.lua 5b4d692f03 add support for RGB color space reconstruction há 10 anos atrás
web.lua 6a91d7d3b4 Merge branch 'master' of https://github.com/nagadomi/waifu2x há 10 anos atrás

README.md

waifu2x

Image Super-Resolution for anime-style-art using Deep Convolutional Neural Networks.

Demo-Application can be found at http://waifu2x.udp.jp/ .

Summary

Click to see the slide show.

slide

References

waifu2x is inspired by SRCNN [1]. 2D character picture (HatsuneMiku) is licensed under CC BY-NC by piapro [2].

Public AMI

(maintenance)

Third Party Software

Third-Party

Dependencies

Hardware

  • NVIDIA GPU

Platform

Packages (luarocks)

Installation

Setting Up the Command Line Tool Environment

(on Ubuntu 14.04)

Install Torch7

sudo apt-get install curl
curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | sudo bash 

see Torch (easy) install

Install CUDA

Google! Search keyword: "install cuda ubuntu"

Install packages

sudo luarocks install cutorch
sudo luarocks install cunn
sudo apt-get install graphicsmagick libgraphicsmagick-dev
sudo luarocks install graphicsmagick

Test the waifu2x command line tool.

th waifu2x.lua

Setting Up the Web Application Environment (if you needed)

Install luajit 2.0.4

curl -O http://luajit.org/download/LuaJIT-2.0.4.tar.gz
tar -xzvf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
make
sudo make install

Install packages

Install luarocks packages.

sudo luarocks install md5
sudo luarocks install uuid
sudo luarocks install turbo

Web Application

Run.

th web.lua

View at: http://localhost:8812/

Command line tools

Noise Reduction

th waifu2x.lua -m noise -noise_level 1 -i input_image.png -o output_image.png
th waifu2x.lua -m noise -noise_level 2 -i input_image.png -o output_image.png

2x Upscaling

th waifu2x.lua -m scale -i input_image.png -o output_image.png

Noise Reduction + 2x Upscaling

th waifu2x.lua -m noise_scale -noise_level 1 -i input_image.png -o output_image.png
th waifu2x.lua -m noise_scale -noise_level 2 -i input_image.png -o output_image.png

See also images/gen.sh.

Video Encoding

* avconv is ffmpeg on Ubuntu 14.04.

Extracting images and audio from a video. (range: 00:09:00 ~ 00:12:00)

mkdir frames
avconv -i data/raw.avi -ss 00:09:00 -t 00:03:00 -r 24 -f image2 frames/%06d.png
avconv -i data/raw.avi -ss 00:09:00 -t 00:03:00 audio.mp3

Generating a image list.

find ./frames -name "*.png" |sort > data/frame.txt

waifu2x (for example, noise reduction)

mkdir new_frames
th waifu2x.lua -m noise -noise_level 1 -resume 1 -l data/frame.txt -o new_frames/%d.png

Generating a video from waifu2xed images and audio.

avconv -f image2 -r 24 -i new_frames/%d.png -i audio.mp3 -r 24 -vcodec libx264 -crf 16 video.mp4

Training Your Own Model

Data Preparation

Genrating a file list.

find /path/to/image/dir -name "*.png" > data/image_list.txt

(You should use PNG! In my case, waifu2x is trained with 3000 high-resolution-noise-free-PNG images.)

Converting training data.

th convert_data.lua

Training a Noise Reduction(level1) model

mkdir models/my_model
th train.lua -model_dir models/my_model -method noise -noise_level 1 -test images/miku_noisy.png
th cleanup_model.lua -model models/my_model/noise1_model.t7 -oformat ascii
# usage
th waifu2x.lua -model_dir models/my_model -m noise -noise_level 1 -i images/miku_noisy.png -o output.png

You can check the performance of model with models/my_model/noise1_best.png.

Training a Noise Reduction(level2) model

th train.lua -model_dir models/my_model -method noise -noise_level 2 -test images/miku_noisy.png
th cleanup_model.lua -model models/my_model/noise2_model.t7 -oformat ascii
# usage
th waifu2x.lua -model_dir models/my_model -m noise -noise_level 2 -i images/miku_noisy.png -o output.png

You can check the performance of model with models/my_model/noise2_best.png.

Training a 2x UpScaling model

th train.lua -model_dir models/my_model -method scale -scale 2 -test images/miku_small.png
th cleanup_model.lua -model models/my_model/scale2.0x_model.t7 -oformat ascii
# usage
th waifu2x.lua -model_dir models/my_model -m scale -scale 2 -i images/miku_small.png -o output.png

You can check the performance of model with models/my_model/scale2.0x_best.png.