【アニメ映像超解像】高画質化AIツールReal-CUGANのインストール

【アニメ映像超解像】高画質化AIツールReal-CUGANのインストール 機械学習

「AIを使って画像を高画質化したい」
「画質を落とさずに画像サイズを拡大したい」
「アニメ画像を最も綺麗に拡大できるツールを探している」

このような場合には、Real-CUGANがオススメです。
この記事では、Real-CUGANについて解説しています。

本記事の内容

  • Real-CUGANとは?
  • Real-CUGANのシステム要件
  • Real-CUGANのインストール
  • Real-CUGANの設定
  • Real-CUGANの動作確認

それでは、上記に沿って解説していきます。

Real-CUGANとは?

Real-CUGANとは、アニメ映像超解像のためのAIツールです。
そして、次のような機能を備えています。

  • 高画質化
  • 拡大
  • ノイズ除去

同じような機能を持つモノとしては、次のツールが存在します。

  • Waifu2x
  • Real-ESRGAN
  • SwinIR

SwinIR以外をReal-CUGANと比較した結果画像に以下のモノがあります。
一番左は、オリジナルになります。

パッと見た感じでは、Waifu2xは脱落です。
そして、Real-ESRGANとReal-CUGANの争いになります。

その争いにおいて、Real-CUGANの勝利がアピールされています。
ここで、画像を良く見てください。

全部アニメですよね。
Real-CUGANは、アニメに特化しています。

だからこそ、比較画像ではReal-ESRGANより優れている結果となっています。
リアルな写真になれば、また結果は変わることになります。

Real-ESRGANについては、次の記事で説明しています。

また、その争いにSwinIRが加わるとどうなるのでしょうかね。

それぞれ、ツールには特徴があり、一概には優劣は語れないかもしれません。
そのような状況において、Real-CUGANはアニメの画像に特化したAI高画質化ツールと言えます。

つまり、アニメの高画質化ならReal-CUGANということですね。

以上、Real-CUGANのついて説明しました。
次は、Real-CUGANのシステム要件を説明します。

Real-CUGANのシステム要件

現時点(2022年9月)でのReal-CUGANの最新バージョンは、20220226となります。
この最新バージョンは、2022年2月26日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応のはずです。

  • Windows
  • macOS
  • Linux

公式を見る限り、明示されてはいません。
ただ、ソースはどのOSでも動くようには見えます。

Windowsで動くことは、実際に確認済みです。

サポート対象となるPythonのバージョンについても、明示はされていません。
そのような場合は、Python公式開発サイクルに従いましょう。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

Python公式開発サイクルに従うと、Python 3.7以降となります。
実際、新しいPythonを利用した方が無難と言えます。

それは、PyTorchも関係してくるからです。
Real-CUGANは、機械学習エンジンとしてPyTorchを採用しています。

そのPyTorchが、新しいPythonに準じるようになっています。
さらには、GPU版を利用するならCUDAのバージョンも関係してきます。

CUDAについては、公式では上記のように記載されています。
上記を見る限り、CUDA 11.1以降を利用するのがベターでしょう。
LightもHeavyもどちらも対応可能ですから。

それ以外では、次のライブラリをインストールしておきましょう。

インストールが必要なモノは、次の記事を参考にしてください。
GPU利用できるなら、GPU版PyTorchのインストールをオススメします。

以上、Real-CUGANのシステム要件について説明しました。
次は、Real-CUGANのインストールを説明します。

Real-CUGANのインストール

Real-CUGANのインストールは、プロジェクトをダウンロードするだけです。
もちろん、必要なライブラリなどはインストール済みとします。

また、Real-CUGANはPython仮想環境にインストールしましょう。

Real-CUGANのインストールを進める前に、インストールされたパッケージを確認しておきます。

> pip list 
Package            Version 
------------------ ------------ 
certifi            2022.6.15 
charset-normalizer 2.1.1 
colorama           0.4.5 
decorator          4.4.2 
idna               3.3 
imageio            2.21.2 
imageio-ffmpeg     0.4.7 
moviepy            1.0.3 
numpy              1.23.2 
opencv-python      4.6.0.66 
Pillow             9.2.0 
pip                22.2.2 
proglog            0.1.10 
requests           2.28.1 
setuptools         65.3.0 
torch              1.12.1+cu113 
torchaudio         0.12.1+cu113 
torchvision        0.13.1+cu113 
tqdm               4.64.1 
typing_extensions  4.3.0 
urllib3            1.26.12 
wheel              0.36.2

この状態でGitHubからプロジェクトをダウンロードします。

git clone https://github.com/bilibili/ailab.git

ZIPファイルをダウンロードしても構いませんが、どうせならgitコマンドを使いましょう。
Windowsの場合であれば、次の記事をご覧ください。

gitコマンドでダウンロードできたら、次のようなディレクトリ構成となっています。

以上、Real-CUGANのインストールを説明しました。
次は、Real-CUGANの設定を説明します。

Real-CUGANの設定

Real-CUGANの設定を行います。
まずは、Real-CUGANディレクトリまで移動します。

次の作業を順番に行っていきます。

  • ディレクトリの作成
  • 学習済みモデルのダウンロード
  • 設定ファイルの確認・編集

ディレクトリの作成

ディレクトリを二つ作成します。

mkdir inputs
mkdir outputs

「inputs」は、高画質化する元画像を設置する場所です。
「outputs」は、Real-CUGANで処理した画像を保存する場所になります。

二つのディレクトリを作成した後の状況は、次の構成になっているはずです。

学習済みモデルのダウンロード

学習済みモデルは、別途ダウンロードする必要があります。

次のURLから、学習済みモデルをダウンロードできます。
https://drive.google.com/drive/folders/1jAJyBf2qKe2povySwsGXsVMnzVyQzqDD

ファイルは、最初からある「weights_v3」ディレクトリに保存します。
全部ダウンロードできたら、次のようになります。

設定ファイルの確認・編集

config.pyが、設定ファイルとして用意されています。

CPUでReal-CUGANを動かす場合のみ、修正しないといけません。
それ以外の場合は、デフォルトのまま行きましょう。

CPUでの起動にするには、「cuda:0」を「cpu」に変更します。

#如果要用CPU跑,""里填cpu 
device="cuda:0"

以上、Real-CUGANの設定を説明しました。
次は、Real-CUGANの動作確認を説明します。

Real-CUGANの動作確認

Real-CUGANの動作確認を行います。
その前に、高画質化したい画像を「inputs」に設置しましょう。

0014.jpg(179 x 179)

そして、Real-CUGANの直下に次のスクリプトファイルを設置します。

test.py

from config import * 
from inference_video import * 
from upcunet_v3 import * 
import cv2 
from time import time as ttime

scale = 4 
input_dir = "inputs" 
output_dir = "outputs"

upscaler2x = RealWaifuUpScaler(scale, eval("model_path%s" % scale), half=half, device=device) 
os.makedirs(output_dir, exist_ok=True)

for name in os.listdir(input_dir): 
    print("Processing " + name) 
    splitName = name.split(".") 
    inp_path = os.path.join(input_dir, name) 
    suffix = splitName[-1] 
    prefix = ".".join(splitName[:-1]) 
    frame = cv2.imread(inp_path)[:, :, [2, 1, 0]] 
    t0 = ttime() 
    result = upscaler2x(frame, tile_mode=tile, alpha=alpha, cache_mode=cache_mode)[:, :, ::-1] 
    t1 = ttime() 
    print(prefix, "done", t1 - t0) 
    final_opt_path = os.path.join(output_dir, prefix + '.' + suffix) 
    cv2.imwrite(final_opt_path, result)

その状態でスクリプトを実行。
そうすると、コンソールに次のように表示されます。

Processing 0014.jpg 
0014 done 1.8281385898590088

処理が終わったら、「outputs」を確認します。

次のファイルが作成されていることを確認できます。

0014_out.jpg(716 x 716)

元画像の4倍サイズに拡大しています。
拡大しているけれども、画質は劣化していません。

無事に、Real-CUGANで高画質化が成功しています。
なお、拡大サイズは2~4倍で設定できます。

config.pyを修正するか、もしくはスクリプトを変更します。
スクリプトにおける次の値を変更することで対応できます。

scale = 4

以上、Real-ESRGANの動作確認を説明しました。

タイトルとURLをコピーしました