plasmasphere.net -プラズマスフィア ドットネット-

Diary

SwinIR(Python)を使って画像をAI高画質化する

2022/12/13(Tue) 22:12

Pythonで動くSwinIRという画像の高解像度化をしてくれるツールをインストールしてみました。手順を書いておきます。
大まかには CodeFormer のインストールと似てるので、そちらも参照していただければと。

Python のインストール
対応したバージョン(3.10系)のpythonを入れます。
非公式Pythonダウンロードリンクがおすすめです。

PyTorch のインストール
https://pytorch.org/
PyTorch を使うには CUDA も必要です。公式サイトに対応した CUDA のバージョンが書かれてますので、環境にあったバージョンをインストールしてください。
pip でインストールしたいので、私はこうしました。pipのインストールコマンドがでてますので、これを入力します。
CUDA Toolkit は Archive ページから 11.6.2 をダウンロードしました。

SwinIR のインストール
git コマンドが使える場合は以下を。
git clone https://github.com/JingyunLiang/SwinIR.git
使えない場合は、GitHub から直接 Download Zip して、解凍したらOKです。
必要なライブラリが揃っていれば、解凍したフォルダに移動すれば使えるようになります。

必要なライブラリ
PyTorchのみインストールしている状態だと、他に必要なのは以下だと思います。
pip install opencv-python tqdm timm ipython

SwinIR を動かす
以下のコマンドで画像の解像度が上がります。CodeFormerは顔の解像度だけですが、こちらは画像自体が高解像度化します。
python main_test_swinir.py --task classical_sr --scale 2 --training_patch_size 48 --model_path model_zoo/swinir/001_classicalSR_DIV2K_s48w8_SwinIR-M_x2.pth --folder_lq testsets/Set5/LR_bicubic/X2 --folder_gt testsets/Set5/HR
--folder_gt 引数のフォルダ以下にある画像をターゲットにして処理します。
他のコマンドはGitHubのREADME.mdに書いてあるので、そちらを参照してください。
入力画像のサイズ(容量ではなく横x高さ)が大きいとエラー出しますので注意。あと、相当マシンパワー使います…。
処理されたファイルは SwinIR/results 以下に保存されます。

拡大結果
入力した画像は昔撮ったうちのにゃんこです(かわいい)
アップスケール後の画像は大きすぎるので少し縮小して表示させてます。クリックすると原寸が見れます。

これが(かわいい)

こうじゃ(かわいい)

waifu2x-caffee との比較
waifu2x-cafee との画像比較です。
SwinIR

waifu2x-cafee

ん-、どちらもかわいいですが、SwinIRの方がよりかわいいですね。
waifu2xも相当綺麗になると思ってたんですが、ちょっとレベルが違いましたねこれは…。

今回みたいに、昔撮った解像度の低い写真をアップスケールするのには丁度いいんじゃないでしょうか。
しかし、waifu2xよりも綺麗になるのはちょっとびっくりしました。
処理速度やマシン負荷でいうとwaifu2xの方が軽いですが、綺麗さでいうとSwinIRが圧倒的です。


似てるっぽいネタ


 
© 1999- plasmasphere.net All rights reserved.