皆さんはwaifu2xというツールをご存じでしょうか。
waifu2xとは…
畳み込みニューラルネットワークを使用し画像を超解像度化するソフトウェアです。
まぁ、要するに簡単に言うとAIを用いて画像を綺麗に拡大します。

例としてはこんな感じです↓
[オリジナル (600×450ピクセル)]

[waifu2x ノイズ除去レベル:2で変換した画像]

[waifu2x ノイズ除去レベル:2 スケール:2倍で変換した画像]

こんな感じで、画像ファイルの画質を綺麗にしつつ、拡大できます。
非常に便利なツールではありますが、筆者はこう思った訳です。
waifu2xで解像度の低い動画ファイルも綺麗に出来るのだろうか?
昔の動画ファイルは特に、解像度が低いので今のFull HDや4Kのモニターで見ていると画質が残念な感じになります。
そこで、waifu2xを使用して動画もアップスケールできればいいと思い、この記事を書いたまでです。
注意としては、GPUで変換するのでGPUがなくCPU内臓のGPUだけでの変換は
動画の長さにもよりますが、非常に遅いというのが難点です。
GPUがない方は注意したほうがいいでしょう。膨大な時間が掛かる恐れがあります。
筆者のPCのスペック
OS: Windows10 Pro 64bit
CPU: Intel Core i9-9900K @ 3.60 GHz
GPU: NVIDIA GeForce GTX 1070Ti
RAM: 32GB
では、早速やっていきましょう。
waifu2xのダウンロード
先ず、waifu2x本体をPCにダウンロードしましょう。
NVIDIA製のGPUを使用している方はこちら
waifu2x-caffe
NVIDIA製GPU/AMD製GPU/内臓GPUでの処理をする方はこちら
waifu2x-ncnn-vulkan
※waifu2x-caffeより速いらしいです。AMD製GPUを使用している方はこちらしか使えないようです。
※自身が作成した waifu2x-ncnn-vulkan GUI Edition というものも存在します。
waifu2x-ncnn-vulkan GUI Edition
万が一、ツールにバグなどあった場合はここから連絡をもらえると幸いです。
ダウンロードしたら、適当なフォルダに解凍しておきます。
注意してほしいのは、waifu2x単体では動画をアップスケールすることはできません。
その為、ffmpegを使用して動画を一旦画像に分解してから処理を行う必要があります。
ffmpegのダウンロード
ダウンロードしたら、同じく適当なフォルダに解凍しておきます。
解凍したら、binフォルダ内に、ffprobe.exe, ffplay.exe, ffmpeg.exeが入っているはずです。

今回、必要なのはffmpegのみですので、ffmpeg.exeをコピーして、どこか別のフォルダに張り付けておきます。

コマンドプロンプトか、バッチファイルで下記のコマンドを実行します。
ffmpeg.exe -hide_banner -i [動画ファイルのパス] -q:v 1 -y "%~dp0\frames\frame-%%06d.png"
そうすると、動画をコマ送りにしたような画像ファイルが大量に生成されます。

次に、動画の音声を取り出します。
ffmpeg.exe -hide_banner -i %1 -map_chapters -1 -map_metadata -1 -vn -sn -dn -c:a pcm_s24le -y "%~dp0\streams\[任意の名前].wav"
こうすると、動画の音声が抽出されます。

アップスケールの実行
waifu2xで動画のアップスケールを行います。
適当なバッチファイルを作成し、以下のコマンドをコピペして保存し、バッチファイルを実行してください。
waifu2x-caffeを使用する場合
set NOISE=2
set SCALE=3
set BLOCKSIZE=200
waifu2x-caffe-cui.exe -i "[ffmpegで生成した画像ファイル群のパス]" -m noise_scale -n %NOISE% -s %SCALE% -p cudnn -c %BLOCKSIZE% -y cunet
waifu2x-ncnn-vulkanを使用する場合
set NOISE=3
set SCALE=2
set BLOCKSIZE=400
waifu2x-ncnn-vulkan.exe -i "[ffmpegで生成した画像ファイル群のパス]" -o "[どこにアップスケールした画像を保存するかのパス]" -n %NOISE% -s %SCALE% -t %BLOCKSIZE%
このコマンドを実行すると、変換が始まります。
かなり長いので、気長に待ちましょう。
変換が終了すると、アップスケールした画像群が大量に保存されています。
ffmpegで結合
次はこの画像群を、ffmpegで結合していきます。
以下のコマンドを実行します。
set FPS=29.97 (これは元動画のfpsを指定する)
set PRESET=veryslow
ffmpeg.exe -framerate %FPS% -hide_banner -strict -2 -i "%~dp0\frames2x\frame-%%06d.png" -i "%~dp0\streams\audio.wav" -r %FPS% -qp 0 -vcodec libx264 -pix_fmt yuv420p -preset %PRESET% -acodec aac -b:a 192k -y "%~dp0\FINAL.mp4"
これで、動画が出力されます。
結論

waifu2xで動画をアップスケールすると、かなり綺麗になります。
一応ですが、下記にアップスケールした動画とそうでない動画を比較したものを載せておきます。
0件のコメント