はじめに
以前から超解像の記事はいくつも書いてきました。超解像(Super Resolution)とは画像の解像度を上げることです。「アップスケール」と言われているものとほぼ同じだと思います。今まではOpenMMLabのMMEditingを使うことが多かったのですが、いつのまにかMMEditingがMMagicに吸収されました。今回MMagicで超解像に挑戦したのですが、Pythonスクリプトはたったの3行でした。Pythonスクリプト
from mmagic.apis import MMagicInferencer editor = MMagicInferencer('esrgan') editor.infer(img = "test.png", result_out_dir = "result.png")
2行目で使用するモデルを指定します。
これだけでモデルのダウンロードも自動で行われます。
3行目で元画像のファイル名と結果を保存するファイル名を指定します。
本当にこれだけです。
GitHubのリポジトリをクローン(またはダウンロード)しておく必要もありません。
補足①
以下の2行で使えるモデルが表示されます。from mmagic.apis import MMagicInferencer print(MMagicInferencer.inference_supported_models)
こんな結果が返ってきました。(超解像以外のモデルも含まれています)
['inst_colorization', 'biggan', 'sngan_proj', 'sagan', 'dcgan', 'deblurganv2', 'wgan-gp', 'lsgan', 'ggan', 'pggan', 'styleganv1', 'styleganv2', 'styleganv3', 'dim', 'indexnet', 'gca', 'aot_gan', 'deepfillv1', 'deepfillv2', 'global_local', 'partial_conv', 'pix2pix', 'cyclegan', 'srcnn', 'srgan_resnet', 'edsr', 'esrgan', 'rdn', 'dic', 'ttsr', 'glean', 'real_esrgan', 'flavr', 'cain', 'edvr', 'tdan', 'basicvsr', 'iconvsr', 'basicvsr_pp', 'real_basicvsr', 'nafnet', 'swinir', 'restormer', 'controlnet', 'disco_diffusion', 'stable_diffusion', 'eg3d', 'controlnet_animation']
補足②
特定の学習済みパラメーターを使いたい時には以下のように先にダウンロードしてそれらを指定することができます。import os from mim.commands.download import download from mmagic.apis import MMagicInferencer checkpoint_name = 'realesrnet_c64b23g32_4xb12-lr2e-4-1000k_df2k-ost' config_fname = checkpoint_name + '.py' checkpoint = download(package="mmagic", configs=[checkpoint_name], dest_root="models")[0] editor = MMagicInferencer( "real_esrgan", model_config=os.path.join('models', config_fname), model_ckpt=os.path.join('models', checkpoint) ) editor.infer(img = "test.png", result_out_dir = "result.png")
感想
数年前は超解像だけで本が1冊書かれる時代でした。実際そういった本もあったと思います。それが今や、たったの3行で実行できてしまいます。恐ろしい進歩です。この先どういう時代になるのでしょうか。環境
WIndows 11 CUDA 11.7 Python 3.10.11
Python 3.11.5でも問題なく動作しました。
Python環境構築
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 --index-url https://download.pytorch.org/whl/cu117 pip install mmcv==2.0.1 -f https://download.openmmlab.com/mmcv/dist/cu117/torch2.0.0/index.html pip install openmim==0.3.9 pip install mmagic==1.0.2 pip install albumentations==1.3.1