OpenMMLab の MMagic を使って超解像。え、たったの3行?

はじめに

以前から超解像の記事はいくつも書いてきました。

超解像(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




このエントリーをはてなブックマークに追加