1
0
Fork 0
mirror of synced 2024-05-20 04:42:19 +12:00
waifu2x/README.md

195 lines
4.8 KiB
Markdown
Raw Normal View History

2015-10-26 14:05:58 +13:00
# v1.0 branch
This branch is under construction. This would break backwards compatibility sometimes.
2015-05-17 18:18:33 +12:00
# waifu2x
2015-06-14 04:58:18 +12:00
Image Super-Resolution for anime-style-art using Deep Convolutional Neural Networks.
2015-05-17 18:18:33 +12:00
Demo-Application can be found at http://waifu2x.udp.jp/ .
## Summary
Click to see the slide show.
![slide](https://raw.githubusercontent.com/nagadomi/waifu2x/master/images/slide.png)
## References
waifu2x is inspired by SRCNN [1]. 2D character picture (HatsuneMiku) is licensed under CC BY-NC by piapro [2].
- [1] Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang, "Image Super-Resolution Using Deep Convolutional Networks", http://arxiv.org/abs/1501.00092
- [2] "For Creators", http://piapro.net/en_for_creators.html
2015-05-19 11:14:08 +12:00
## Public AMI
2015-08-13 02:06:27 +12:00
```
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
```
2015-05-31 23:24:44 +12:00
2015-06-14 04:58:18 +12:00
## Third Party Software
[Third-Party](https://github.com/nagadomi/waifu2x/wiki/Third-Party)
2015-05-17 18:18:33 +12:00
## Dependencies
2015-05-21 12:45:51 +12:00
### Hardware
- NVIDIA GPU
2015-05-21 12:45:51 +12:00
2015-05-17 18:18:33 +12:00
### Platform
- [Torch7](http://torch.ch/)
- [NVIDIA CUDA](https://developer.nvidia.com/cuda-toolkit)
### lualocks packages (excludes torch7's default packages)
2015-05-17 18:18:33 +12:00
- md5
- uuid
- [turbo](https://github.com/kernelsauce/turbo)
2015-05-17 18:18:33 +12:00
2015-05-21 12:45:51 +12:00
## Installation
2015-05-21 12:49:59 +12:00
### Setting Up the Command Line Tool Environment
2015-05-21 12:45:51 +12:00
(on Ubuntu 14.04)
#### Install CUDA
2015-05-21 12:45:51 +12:00
See: [NVIDIA CUDA Getting Started Guide for Linux](http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/#ubuntu-installation)
Download [CUDA](http://developer.nvidia.com/cuda-downloads)
```
sudo dpkg -i cuda-repo-ubuntu1404_7.0-28_amd64.deb
sudo apt-get update
sudo apt-get install cuda
```
2015-05-21 12:45:51 +12:00
#### Install Torch7
2015-05-21 12:45:51 +12:00
See: [Getting started with Torch](http://torch.ch/docs/getting-started.html)
#### Validation
2015-05-21 12:45:51 +12:00
Test the waifu2x command line tool.
2015-05-21 12:45:51 +12:00
```
th waifu2x.lua
```
2015-05-21 12:49:59 +12:00
### Setting Up the Web Application Environment (if you needed)
2015-05-21 12:45:51 +12:00
#### Install packages
```
luarocks install md5
luarocks install uuid
PREFIX=$HOME/torch/install luarocks install turbo
2015-05-21 12:45:51 +12:00
```
2015-05-19 11:14:08 +12:00
## Web Application
2015-05-17 18:18:33 +12:00
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`.
2015-05-25 01:09:42 +12:00
### 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
2015-05-26 03:48:38 +12:00
th waifu2x.lua -m noise -noise_level 1 -resume 1 -l data/frame.txt -o new_frames/%d.png
2015-05-25 01:09:42 +12:00
```
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
```
2015-05-17 18:18:33 +12:00
## 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.)
2015-05-17 18:18:33 +12:00
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
2015-05-17 18:18:33 +12:00
```
You can check the performance of model with `models/my_model/noise1_best.png`.
2015-05-17 18:18:33 +12:00
### 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
2015-05-17 18:18:33 +12:00
```
You can check the performance of model with `models/my_model/noise2_best.png`.
2015-05-17 18:18:33 +12:00
2015-05-26 03:48:38 +12:00
### Training a 2x UpScaling model
2015-05-17 18:18:33 +12:00
```
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
2015-05-17 18:18:33 +12:00
```
You can check the performance of model with `models/my_model/scale2.0x_best.png`.