lltcggie / waifu2x-caffe

waifu2xのCaffe版
MIT License
8.04k stars 839 forks source link

本家の凄い新モデル「CUNET」がリリースされました #132

Closed 2ji3150 closed 5 years ago

2ji3150 commented 5 years ago

本家の新しいモデルがリリースされました。 https://github.com/nagadomi/waifu2x/releases/tag/v0.13.2 waifu-caffeの更新をお願い致します。

Yolkis commented 5 years ago

May be we can use it by converting original model to caffe model and replacing existing files?

nagadomi commented 5 years ago

I've confirmed that it works fine with my personally modified waifu2x-caffe. However, Caffe bundled with the original waifu2x-caffe(this repo) is probably very slow because https://github.com/BVLC/caffe/pull/5548 (Changes to speedup CropLayer) have not been merged.

個人的に改変しているwaifu2x-caffeで動作することを確認していますが、オリジナルのwaifu2x-caffeにバンドルされているCaffeは https://github.com/BVLC/caffe/pull/5548 (CropLayerを高速化する変更) がマージされていないため、おそらくかなり遅いです。

拡大付きのモデルはupcunet.prototxtの構造で、拡大なしのノイズ除去モデルはcunet.prototxtの構造になっています。このprototxtは、make_cunet.pyで生成しています。

Yolkis commented 5 years ago

@nagadomi can you share it with us?

nagadomi commented 5 years ago

@Yolkis No, it contains some closed codes. :cry:

lltcggie commented 5 years ago

追加しました。 現在バンドルしているCaffeは最新のmasterをマージしているので BVLC/caffe#5548 もマージされているので速度の問題はないと思われます。

2ji3150 commented 5 years ago

いつもありがとうございます。 軽くベンチしてみましたが、cunetはwaifu2x-caffeではuprestより若干遅いって感じです。 rgb 処理時間: 00:00:04.635 uprgb 処理時間: 00:00:02.095 cunet 処理時間: 00:00:09.802 uprestnet 処理時間: 00:00:08.968

nagadomi commented 5 years ago

@2ji3150 出力から削られるサイズが大きいので分割サイズを大きくしないと遅いかもしれないです。 upresnetと同様に分割サイズによって出力が微妙に変わります。 また分割サイズは4の倍数になっていないとエラーになると思います。

2ji3150 commented 5 years ago

@nagadomi コメントありがとうございます。 もう一度より多くの画像でベンチしました。

テスト画像解像度2560*1290 4枚 format:jpg 分割サイズ: 256 分割サイズとバッチサイズをいじってみましたがやはり大体似たような結果です。 また、それ以上大きくすると落ちます。

環境: Windows 10 1809 + GTX1060 6GB + Cudnn 7.4.1 for CUDA 10

Model Process Time 分割サイズ バッチサイズ
RGB 18.315 s 256 1
UpRGB 9.574 s 256 1
UpResnet10 12.148 s 256 1
CuNET 27.626 s 256 1
nagadomi commented 5 years ago

Torchだと画像変換レベルではvgg_7(RGB)とあまり変わらないですが Crop,Flatten,Eltwiseあたりの実装が違う部分の差があるのかもしれないです。 構造的には確かに遅そうで、そのベンチマークのほうが納得感はあります。 TorchのCUDAやcuDNNまわりはNVIDIAの人が書いてたのでブロックを連続的に変換するところで計算以外のメモリの非同期転送などで謎の速さがあるのかもしれないです。