waifu2x-caffe (for Windows)
----------

  : lltcggie

{\tǵA摜ϊ\tgEFAu[waifu2x](https://github.com/nagadomi/waifu2x)v̕ϊ@\݂̂A
[Caffe](http://caffe.berkeleyvision.org/)pďAWindowsɃrh\tgłB
CPUŕϊ邱Ƃo܂ACUDA(邢cuDNN)gCPU荂ɕϊ邱Ƃo܂B
GitHub|Wg[](https://github.com/lltcggie/waifu2x-caffe)ɂȂ܂B


 v
----------

̃\tg𓮍삳ɂ͍Œłȉ̊KvłB

 * OS : Windows Vistaȍ~ 64bit (32bitpexe͂܂)
 *  : 󂫃1GBȏ (Aϊ摜TCYɂ)
 * GPU : CUDANVIDIAGPU(CPUŕϊꍇ͕sv)
 * Visual C++ 2013 ĔЕz\pbP[WCXg[Ă邱(K{)
    - LpbP[W[](https://www.microsoft.com/ja-jp/download/details.aspx?id=40784)
    - `_E[h` {^A`vcredist_x64.exe`IA_E[hECXg[sĉB
    - Ȃꍇ́AuVisual C++ 2013 ĔЕz\pbP[WvŌĂ݂ĉB

cuDNNŕϊꍇ͂

 * GPU : Compute Capability 3.0 ȏNVIDIAGPU

GPUCompute Capabilitym肽ꍇ[̃y[W](https://developer.nvidia.com/cuda-gpus)ŒׂĉB


 cuDNNɂ
--------

cuDNNNVIDIAGPUł݂̂鍂ȋ@BwK̃CułB
cuDNNgȂĂCUDAŕϊo܂AcuDNNgƈȉ̂悤ȗ_܂B

 * GPUƕTCY̐ݒɂĂ͑傫ȉ摜ɕϊ邱Ƃo(GPUɂĂ(ŐVɋ߂GPUقǁH)CUDAƑS)
 * VRAM̎gpʂ炷Ƃo(CUDÂ悻91)

̂悤ȗ_cuDNNłACZX̊֌W㓮ɕKvȃt@Czz邱Ƃo܂B
Ȃ̂ŁAcuDNNgl[̃y[W](https://developer.nvidia.com/cuDNN)WindowsoCi(v2ȍ~)_E[hA
ucudnn64_65.dllvwaifu2x-caffẽtH_ɓĉB
(cuDNN_E[hɂNVIDIA Developerւ̓o^CUDA Registered Developersւ̓o^KvłB
 CUDA Registered Developers͂炭(ȒP)Rۂ̂œo^ĂcuDNN_E[ho킯ł͂܂B)

҂̊ł̏xAVRAMgpʂ̌vʂ͈ȉ̒ʂłB
(Ԃ1񂵂vĂȂ̂ł܂łBVRAMgpʂ̕ɂډ)

GPU : GTX 660
VRAM : 2GB
e : 600*600̉摜ŃmCYƊgAJPEGmCYx1Ag嗦2.00

CUDA

| TCY |      | VRAMgp(MB) |
|:-----------|:-------------|:---------------|
| 100        | 00:00:02.590 | 373            |
| 120        | 00:00:02.500 | 529            |
| 150        | 00:00:02.733 | 816            |
| 200        | 00:00:05.110 | 1229           |

cuDNN

| TCY |      | VRAMgp(MB) |
|:-----------|:-------------|:---------------|
| 100        | 00:00:02.532 | 42             |
| 120        | 00:00:02.423 | 58             |
| 150        | 00:00:02.343 | 87             |
| 200        | 00:00:02.331 | 149            |


 g(GUI)
--------

uwaifu2x-caffe.exevGUI\tgłB_uNbNŋN܂B

u̓pXvɉ摜tH_hbO&hbvŕ荞ނƁuo̓pXvŐݒ肳܂B
o͐ςꍇ́uo̓pXvύXĉB

D݂ɍ킹ĕϊݒύX邱Ƃo܂B


###uϊ[hv
     ϊ[hw肵܂B
      * mCY : mCYs܂
      * g : gs܂
      * mCYƊg : mCYƊgs܂ 
      * mCY()Ɗg : gs܂B͂JPEG摜̏ꍇ̂݃mCYs܂

###uJPEGmCYxv
    mCYxw肵܂B

###ug嗦v
    g嗦w肵܂B

###uo͊gqv
    o͊gqw肵܂B

###uvZbT[v
    ϊsvZbT[w肵܂B
      * CPU : CPÛ݂gĕϊs܂
      * CUDA(gcuDNN) : CUDA(GPU)gĕϊs܂(cuDNNgȂcuDNNg܂)

###ufv
    gp郂fw肵܂B
      * RGB : RGBׂĂϊ2摜pf
      * Y(Px̂) : Px݂̂ϊ2摜pf
      * ʐ^ : ʐ^pf(g傷郂f̂ݕtĂ܂BmCY͏o܂)

###uTCYv
    ŕďsۂ̕isNZPʁjw肵܂B
    œK(őŏI)ľߕ́uTCYv̍Ő܂B
    u-------vŋ؂Ă͓͂̕ꂽ摜̏cTCY̖񐔁A
    ́̕ucrop_size_list.txtvǂݏoėpIȕTCYłB
    摜TCỶ摜tH_wőʂɕϊƂ́AœKȕTCY𒲂ׂĂϊ邱Ƃ߂܂B

ucuDNN`FbNv{^cuDNNg邩ׂ邱Ƃo܂B
cuDNNgȂꍇ͗R\܂B

usv{^ƕϊn܂܂B
rŃLZꍇ́uLZv{^܂B
Aۂɒ~܂Ń^CO܂B


 g(CUI)
--------

uwaifu2x-caffe-cui.exev̓R}hCc[łB
`R}hvvg` 𗧂グÂ悤ɃR}hł݁AgpĉB


ȉ̃R}h́Agʂɏo͂܂B
```
waifu2x-caffe-cui.exe --help
```

ȉ̃R}h́A摜ϊsR}h̗łB
```
waifu2x-caffe-cui.exe -i mywaifu.png -m noise_scale --scale_ratio 1.6 --noise_level 2
```
ȏsƁA`mywaifu(noise_scale)(Level2)(x1.600000).png`ɕϊʂۑ܂B


{\tgł́Aȉ̃IvVw肷邱Ƃo܂B

###-i <>,  --input_file <>
     (K{)  ϊ摜ւ̃pX
     tH_w肵ꍇÃtH_ȉ̉摜t@CSĕϊoutput_fileŎw肵tH_֏o͂܂B

###-o <string>,  --output_file <string>
     ϊꂽ摜ۑt@Cւ̃pX
     (input_filetH_̏ꍇ)ϊꂽ摜ۑtH_ւ̃pX
     (input_file摜t@C̏ꍇ)gq(Ō.pngȂ)͕K͂悤ɂĉB
     w肵Ȃꍇ͎Ńt@C肵Ãt@Cɕۑ܂B
     t@Č胋[́A
     `[̉摜t@C]``([h)``(mCYx(mCY[h̏ꍇ))``(g嗦(g僂[h̏ꍇ))``.o͊gq`
     ̂悤ɂȂĂ܂B
     ۑꏊ́A{Iɂ͓͉摜ƓfBNgɂȂ܂B

###-l <>,  --input_extention_list <>
     input_filetH_̏ꍇ́AtH_̕ϊ摜̊gqw肵܂B
     ftHgl`png:jpg:jpeg:tif:tiff:bmp:tga`łB
     ܂A؂蕶`:`łB
     . png:jpg:jpeg:tif:tiff:bmp:tga

###-e <>,  --output_extention <>
     input_filetH_̏ꍇ́Ao͉摜̊gqw肵܂B
     ftHgl`png`łB

###-m <noise|scale|noise_scale>,  --mode <noise|scale|noise_scale>
     ϊ[hw肵܂Bw肵Ȃꍇ`noise_scale`I܂B
      * noise : mCYs܂ (mɂ́AmCYp̃fpĉ摜ϊs܂)
      * scale : gs܂ (mɂ́AASYŊg債ɁAg摜⊮p̃fpĉ摜ϊs܂)
      * noise_scale : mCYƊgs܂ (mCYsɁAg又s܂)
      * auto_scale : gs܂B͂JPEG摜̏ꍇ̂݃mCYs܂

###-s <_tl>, --scale_ratio <_tl>
     {Ɋg傷邩w肵܂BftHgl`2.0`łA2.0{ȊOwł܂B
     2.0ȊO̐lw肷ƁÂ悤ȏs܂B
      * ܂Aw肳ꂽ{Kv\ɃJo[悤ɁA2{gJԂs܂B
      * 2̗ݏȊO̐lĂĂꍇ́Aw{ɂȂ悤Ɋg債摜`tB^ŏk܂B

###-n <1|2>, --noise_level <1|2>
     mCYxw肵܂BmCYp̃f̓x1ƃx2̂ݗpӂĂ̂ŁA
      1  2 w肵ĉB
     ftHgl`1`łB

###--model_dir <>
     fi[ĂfBNgւ̃pXw肵܂BftHgl`models/anime_style_art_rgb`łB
     Wł͈ȉ̃ftĂ܂B
      * `models/anime_style_art_rgb` : RGBׂĂϊ2摜pf
      * `models/anime_style_art` : Px݂̂ϊ2摜pf
      * `models/ukbench` : ʐ^pf(g傷郂f̂ݕtĂ܂BmCY͏o܂)
     {Iɂ͎w肵ȂĂvłBftHgȊÕf⎩̃fgp鎞ȂǂɎw肵ĉB

###-p <cpu|gpu|cudnn>, --process <cpu|gpu|cudnn>
     ɎgvZbT[w肵܂BftHgl`gpu`łB
      * cpu : CPUgĕϊs܂B
      * gpu : CUDA(GPU)gĕϊs܂BWindowsłł̂݁AcuDNNgȂcuDNNg܂B
      * cudnn : cuDNNgĕϊs܂B

###-c <>, --crop_size <>
     TCYw肵܂BftHgl`128`łB

###-b <>, --batch_size <>
     mini-batchTCYw肵܂BftHgl`1`łB
     mini-batchTCY͉摜uTCYvŕubN𓯎ɏ鐔̂ƂłBႦ`2`w肵ꍇA2ubNϊĂ܂B
     mini-batchTCY傫ƕTCY傫Ƃ̓lGPU̎gpȂ܂AvƕTCY傫ʂłB
     (ႦΕTCY`64`Amini-batchTCY`4`ɂATCY`128`Amini-batchTCY`1`ɂI)

###--,  --ignore_rest
     ̃IvVw肳ꂽ̑SẴIvV𖳎܂B
     XNvgEob`t@CpłB

###--version
     o[Wo͂AI܂B

###-h,  --help
     g\AI܂B
     yɎgmFȂǂɂǂB


 TCY
--------

waifu2x-caffe(waifu2xł)͉摜ϊ鎞A
摜̃TCYɕĈϊsAŌɌĈꖇ̉摜ɖ߂AƂĂ܂B
TCY(crop_size)Ƃ́Ả摜𕪊ۂ̕isNZPʁj̎łB

CUDAŕϊłGPUg؂ĂȂiGPU̎gp100%߂܂łĂȂjꍇA
̐l傫邱ƂŁiGPUg؂邱ƂolɂȂ邽߁jI\܂B
[GPU-Z](http://www.techpowerup.com/gpuz/)ȂǂGPU Load(GPUgp)Memory Used(VRAMgp)Ȃ璲߂Ă݂ĉB
܂Aȉ̗lȓ̂ŎQlɂĉB

 * l傫Α傫قǑȂ킯ł͖
 * TCY摜̏cTCY̖񐔁i邢͊Ƃɗ]肪ȂjƁAʂɉZʂđȂB (̏ɂ܂蓖Ă͂܂ȂlőɂȂP[X炵H)
 * l2{ɂꍇAgp郁ʂ4{ɂȂ(ۂ3`4{ƂƂ)̂Ń\tgȂ悤ɒӁBCUDAcuDNNɔׂă̏ʂƂĂ̂ŋC邱


Ƃ
------------

{\tg͖ۏ؂łB
p҂̔f̉ɎgpĉB
҂͂Ȃ`Ȃ̂Ƃ܂B


ӎ
------
IWi[waifu2x](https://github.com/nagadomi/waifu2x)Ayуf̐sAMITCZX̉ŌJĉ [ultraist](https://twitter.com/ultraistter)A
IWiwaifu2x[waifu2x-converter](https://github.com/WL-Amigo/waifu2x-converter-cpp)쐬ĉ [A~[S](https://twitter.com/WL_Amigo)(READMELICENSE.txt̏AOpenCV̎gȂQlɂĂ܂)
ɁAӂ܂B


XV
------------

 * ver 1.0.6.1
    - input_extention_listtgaǉ
 * ver 1.0.6
    - tga`ǂݏo悤ɂ
    - At@`lt̉摜ϊƃA`GCAXɃWM[oĂ܂̂C
 * ver 1.0.5
    - RGBŃfAʐ^pfǉ
    - CUDA Toolkit7.0.28ɍXV(ĂdllXV)
    - TCYɎw肵ĂʂɂȂ悤ɂ
    - 
 * ver 1.0.4
    - CaffeXV(Compute Capability 5.2̐ݒǉ)
    - CUDAhCo[̃o[W`FbN悤ɂ
    - GUIŃftHg̕TCY傫lɂȂĂ܂ƂoOC
 * ver 1.0.3
    - CaffeXV
    - CUDA Toolkit6.5.19ɍXV(ĂdllXV)
    - GPUCPUւ̃]
    - crop_size(TCY)Abatch_size(CUIł̂)wo悤ɂ
    - v2OcuDNN͓Ȃ悤ɂ(oO)
    - GUIcuDNN`FbNŎsƂ͗R\悤ɂ
    - README.txtwaifu2x-caffe-cui.exe̎sɑ݂Ȃu-jvIvVĂ̂C
    - README.txtFXǋL
    - ̂GPUƂ\̈ꕔCUDAɕύX
 * ver 1.0.2
    - At@`lt摜ϊƂȏo͂ɂȂoOC
    - GUIŃmCYxςĂo͂̃t@CςȂoOC
    - ϊvZbT[gpuw肵ꍇAcuDNNgĂȂoOC
    - GUI̎ݒõ͖tH[}bgCUIƈႤ̂C
    - GUIŏԂƎgpvZbT[\悤ɂĂ݂
 * ver 1.0.1
    - CUIȂoOC
 * ver 1.0.0
    - J
