waifu2xで4倍に拡大(オプション:-t 1 -f png --noise-level 3 --scale-ratio 4 -m noise-scale
)
プロセッサ | 変換時間(秒) |
---|---|
CPU: Intel(R) Celeron(R) CPU 3965U @ 2.20GHz(Win10) | 670.023 |
Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz(Ubuntu) | 509.304 |
OpenCL: Intel(R) HD Graphics 610(Win10) | 238.497 |
AMD Ryzen 5 1400 Quad-Core Processor(Ubuntu) | 80.444 |
AMD Ryzen 5 2400G with Radeon Vega Graphics(Ubuntu) | 75.327 |
CPU: AMD Ryzen 5 3600 6-Core Processor(Win10) | 36.114 |
CPU: Intel(R) Core(TM) i3-9100F CPU @ 3.60GHz(Ubuntu) | 35.166 |
Radeon RX 560(Ubuntu) | 27.945 |
CUDA: GeForce GTX 1650(Win10) | 8.447 |
OpenCL: GeForce GTX 1070 Ti(Ubuntu) | 7.083 |
CUDA: GeForce GTX 1070 Ti(Ubuntu) | 6.678 |
waifu2xで拡大処理すると自動で結構きれいに拡大されます。特にエッジの部分がしっかりと出ているのが特徴的です。
GIMPなどの一般的な拡大処理は今日日のPCであれば、処理時間を感じさせることはないですが、waifu2xの場合かなり処理時間を要します。
その処理時間は、CPUやGPUによって異なります。数パターンのCPU(GPU)を試してみましたが、計測方法が悪いのかかなり極端な結果になりました。
実用的にはGTX1070Tiが圧倒的といった感じです。持て余していたGTX1070Tiが有効活用できそうです。
追記20201019
ベンチマークとして楽しそうなのでWin10版のwaifu2x-converter-cppも試してみました。
Intel(R) Celeron(R) CPU 3965Uと内蔵GPUのHD Graphics 610で実行してみました。
GPUのHD Graphics610はCPUよりは早いですが、グラフィックボードのGPUと比べると圧倒的に遅いことになります。
CPUとしての結果はCore i5-7500より遅いというある意味順当な結果です。Core i5-7500の数値自体計測ミスだと思っていたのですが、あながちミスでもなさそうです。そうしてみるとIntel系のCPUはAMDのそれと比べてwaifu2xを動かすには向かない仕様なのかもしれません。
まぁAMDのCPUにしてもグラフィックボードのGPUと比べると圧倒的に遅いわけですが…
Win10版のwaifu2x-conberter-cppが使えることを知りましたので、手持ちの他のパソコンで実行してみたいと思います。
追記20201020
Ryzen5 3600とGTX1650も試してみました。
我が家で一番処理能力があると思われるCPU、Ryzen5 3600をもってしてもRX560にはかないませんでした。やはり安価でもよいのでグラフィックボードのGPUを使うべき処理のようです。
またGTX1650の結果がGTX1070Tiの1秒落ちぐらいです。世代の差もありますが、新品価格差から考えるとGTX1650のコストパフォーマンスの良さが光ります。
もっと上のクラスのGPUでも試したい気もしますが、数万円の投資で後数秒タイムが削れたとしても出費に見合うかというと個人的にはビミョーな気がします。とわいえCUDAコア数やGPUの世代で結果がどう変化するかは興味はあります。
追記20201022
Core i3-9100FとGTX 1070 Tiの組み合わせでUbuntuで実行してみました。GTX 1070 Tiの結果が前回より伸びておりGTX1650より約2秒ほど早いタイムになりました。CPUのi3-9100FがRyzen 5 3600を超えてきているあたり一般的な評価と逆転しています。OSやバージョンの違いもあるのでしょうがそれでもコア数から考えてもちょっと怪しい結果が出ています。機会があればWin10に入れ替えて再計測してみたいと思います。
多量の画像を一括処理するためにバッチスクリプトを用意すると便利です。
PowerShell(Windows10)
$ErrorActionPreference = "STOP"
$waifu2x_path = "C:UserskaretToolswaifu2x-converterwaifu2x-converter-cpp.exe"
$src_dir = "D:targetpng"
$dst_dir = "D:targetx2"
cd "C:UserskaretToolswaifu2x-converter"
ls $src_dir -Filter "*.png" | % {
$src_file = $_.FullName
$dst_file = Join-Path $dst_dir $_.Name
$rate = 2
$arglist = @( "-f", "png", "-c", "9", "-t", "1", "--scale-ratio","${rate}","--noise-level","3","-m","noise-scale","-o",$dst_file,"-i",$src_file)
$proc = Start-Process -FilePath $waifu2x_path -ArgumentList $arglist -NoNewWindow -Wait -PassThru
Write-Host $proc.StandardErr
Write-Host $proc.StandardOutput
Write-Host $dst_file
}
$rate
に拡大する倍率をセット
bash(Ubuntu)
#!/bin/bash
infiles="/var/share/work/o/*.png"
outdir="/var/share/work/b4/"
for filepath in $infiles; do
filename="${filepath##*/}"
basename="${filename%%.*}"
outpath="${outdir}${basename}.png"
echo $outpath
waifu2x-converter-cpp -t 1 -f png --noise-level 3 --scale-ratio 4 -m noise-scale -i $filepath -o $outpath
done
コメント