Pythonで画像高画質化:ESRGAN×Tkinter

画像高解像化技術「Real-ESRGAN」をPython標準のGUIライブラリ「Tkinter」と組み合わせてみました。

Real-ESRGANはディープラーニングを使って画像を高画質化(超解像)するオープンソースのAIモデルです。
これを用いたアプリはすでにたくさんありますが、有料だったり他の機能が多彩だったりするので自分で気軽に使えるようにしたいなと。
ただWebアプリ化はどうも無理そうなので、Pythonということになりますが、そうなると若干気になるのがコマンドベースが基本となってしまうことです。

そこでTkinterを用いて簡単なUIを持たせてみることにしました。
TkinterはPython標準搭載のGUIライブラリです。
作ったのはごくシンプルに「画像選択→AIアップスケール→保存」という流れでファイル名の先頭に「ESR_」を付けて同じフォルダに保存するだけです。
ちなみにMPS判定を入れてApple Siliconにも自動対応させています。

必要なものは以下の程度です。

・Python 3.x
・pip install realesrgan pillow(事前にpip install –upgrade setuptools wheel Cythonでビルドツールも最新版に)
・モデル重みファイル(weights/RealESRGAN_x4plus.pth)

そこまで大きな問題はなかったですが、ちょっと引っかかったのは以下のあたりです。

・PyPI版は`RealESRGANer`を使う必要あり
・MacでTkinterで画像ファイルが選べない(filetypes指定の区切り文字に注意)
・PIL.Imageにshape属性がないのでNumPy配列に変換
・Image.fromarrayでPIL.Imageに変換してから保存

アップスケール倍率の選択やプレビュー機能、複数画像のバッチ処理もTkinterのウィジェットを追加すれば可能ですが、気軽に使えるのが良いでしょう。
実際のアップスケールの結果は下のような感じです。

[ 元画像 ]

[ アップスケール画像 ]

実はこの後、これをMacアプリにできないかというところでまあまあ手こずったのですが、それはまた別記事でご紹介します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)