こんにちは!みやしんです。
今回は「解像度が低い画像」から「解像度の高い画像」を生成する技術「超解像」をPythonで行う方法をご紹介します!
この記事で出来る事 (高解像度化)
「低解像度の画像 → 高解像度の画像」に変換できます。


GithubからSwinIRをダウンロード
Githubからコードやモデルをダウンロード

下記のようなzipファイルをダウンロードできますので解凍しましょう。

解凍するとこんな感じです。

実行環境構築
Pythonバージョン
Python3.10.6
ライブラリのインストール
pip install timm
pip install opencv-python
学習済みモデルのダウンロード
下記へアクセスします。
下記の学習済みモデルをダウンロードします。
003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth

.pthの拡張子のファイルをダウンロードできます。

続いて、この学習済みモデルのファイルを先程ダウンロードした「SwinIR-main」フォルダ内に保存します。

SwimIRによる超解像の実行
フォルダ「testsets/RealSRSet+5images」 の中にたくさんのサンプル画像が入っているので、これを使って高解像度に変換する処理を行いたいと思います。
python main_test_swinir.py --task real_sr --model_path 003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth --folder_lq testsets/RealSRSet+5images --scale 4 --large_model
python main_test_swinir.py
→実行するpythonスクリプト
–task real_sr
→Real World Image Super Resolution(実世界画像の超解像)
–model_path 003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth
→モデルのパス
–folder_lq testsets/RealSRSet+5images
→処理前画像のフォルダ
–scale 4
→4倍の超解像
–large_model
→大きなモデル
実行すると、results/swinir_real_sr_x4_large に超解像後の画像が出力されます。
漫画にも適応できます!

自前の画像で超解像化
SwinIR-mainフォルダ内に「sample」フォルダを作成し、その中に自前の画像を入れます。

さっきと同様にコマンドを実行します。
処理前の画像を入れたフォルダ部分だけ「testsets/RealSRSet+5images」→「sample」に変えます。
python main_test_swinir.py --task real_sr --model_path 003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth --folder_lq sample --scale 4 --large_model
実行結果

めっちゃキレイになった!笑

コメント