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

nagadomi 36a53fa0c5 Update the torch7 install instruction in README преди 9 години
appendix f399b34799 Added support for ru in nginx.conf преди 9 години
assets b35798016e Added support for index.ru.html in web.lua преди 9 години
cache 1273b3609e first commit преди 10 години
data 243e9044cd add slide and appendix преди 10 години
images 95e9d276a3 add new model for photo преди 10 години
lib 306ee3c76d Fix typo преди 9 години
models 95e9d276a3 add new model for photo преди 10 години
.gitignore 2231423056 update training script преди 10 години
LICENSE f2f5c882eb add LICENSE and NOTICE преди 10 години
NOTICE f2f5c882eb add LICENSE and NOTICE преди 10 години
README.md 36a53fa0c5 Update the torch7 install instruction in README преди 9 години
cleanup_model.lua a706892b59 merge develop repo преди 10 години
convert_data.lua a706892b59 merge develop repo преди 10 години
cudnn2cunn.lua 5b4d692f03 add support for RGB color space reconstruction преди 10 години
export_model.lua a706892b59 merge develop repo преди 10 години
train.lua 5b4d692f03 add support for RGB color space reconstruction преди 10 години
train.sh 5b4d692f03 add support for RGB color space reconstruction преди 10 години
waifu2x.lua 5b4d692f03 add support for RGB color space reconstruction преди 10 години
web.lua b35798016e Added support for index.ru.html in web.lua преди 9 години

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

AMI ID: ami-0be01e4f
AMI NAME: waifu2x-server
Instance Type: g2.2xlarge
Region: US West (N.California)
OS: Ubuntu 14.04
User: ubuntu
Created at: 2015-08-12

Third Party Software

Third-Party

Dependencies

Hardware

  • NVIDIA GPU

Platform

lualocks packages (excludes torch7's default packages)

Installation

Setting Up the Command Line Tool Environment

(on Ubuntu 14.04)

Install CUDA

See: NVIDIA CUDA Getting Started Guide for Linux

Download CUDA

sudo dpkg -i cuda-repo-ubuntu1404_7.0-28_amd64.deb
sudo apt-get update
sudo apt-get install cuda

Install Torch7

See: Getting started with Torch

Validation

Test the waifu2x command line tool.

th waifu2x.lua

Setting Up the Web Application Environment (if you needed)

Install packages

luarocks install md5
luarocks install uuid
PREFIX=$HOME/torch/install 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.