人物の顔を綺麗(高画質)にするGFPGANのインストール | ジコログ

人物の顔を綺麗(高画質)にするGFPGANのインストール

人物の顔を綺麗(高画質)にするGFPGANのインストール 機械学習

「画質が悪くて、人の顔が見えにくい」
「AIで画像生成した人物の顔を綺麗に修正したい」

このような場合には、GFPGANがオススメです。
この記事では、GFPGANのインストールについて解説しています。

本記事の内容

  • GFPGANとは?
  • GFPGANのシステム要件
  • GFPGANのインストール
  • GFPGANの動作確認

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

GFPGANとは?

GFPGANは、顔面修復のアルゴリズムのことを言います。
顔面修復を簡単に言うと、顔を綺麗にすることです。

次の画像を見れば、GFPGAN(一番右)のできることがわかるでしょう。

上の比較画像から言えることは、GFPGAN最高ということですね。
PULSEのようにやり過ぎず、画質を上げることに成功しています。

また、GFPGANは顔画像を高画質化するだけではありません。
全体を高画質化することも可能です。

そのためには、Real-ESRGANのインストールが必要となります。

よって、GFPGANとReal-ESRGANはセットで導入を考えましょう。

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

GFPGANのシステム要件

現時点(2022年9月)でのGFPGANの最新バージョンは、1.3.7となります。
この最新バージョンは、2022年9月12日にリリースされています。

GFPGANのシステム要件は、以下をポイントにして説明します。

  • OS
  • Pythonバージョン
  • PyTorch

それぞれを以下で説明します。

OS

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

  • Windows
  • macOS
  • Linux

Pythonバージョン

サポート対象となるPythonのバージョンは、Python 3.7以降となります。
これは、以下の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 3.6は、2021年末でサポート期限が切れています。

PyTorch

PyTorchのインストールは、次の記事で説明しています。

ただ、GFPGANでは画像処理を行います。
そうであれば、どうしてもCPUだけの処理では頼りないです。
そのため、GPU版PyTorchのインストールを推奨しておきます。

以上、GFPGANのシステム要件を説明しました。
次は、GFPGANのインストールを説明します。

GFPGANのインストール

検証は、次のバージョンのPythonで行います。

> python -V
Python 3.10.4

GFPGANのインストールを行う前に、PyTorchのインストールは確実に済ませておきます。
特にGPUでGFPGANを動かしたい場合は、必須とさえ言えます。

あと、gitコマンドの利用も前提とします。
Windowsの場合であれば、次の記事を参考にしてインストールしておきましょう。

では、GFPGANのインストールを始めます。
まずは、GitHubからGFPGANのソースをダウンロードします。

git clone https://github.com/TencentARC/GFPGAN.git

ダウンロードできたら、ディレクトリを移動します。
基本的には、移動先のディレクトリでインストール・動作確認を行います。

cd GFPGAN

移動したら、次のコマンドを実行しましょう。
「realesrgan」のReal-ESRGANのことです。
コマンド実行は、次の順番通りにしてください。

pip install -r requirements.txt
pip install realesrgan
python setup.py develop

実行して、次のように表示されたらインストールは完了です。

Finished processing dependencies for gfpgan==1.3.7

以上、GFPGANのインストールを説明しました。
次は、GFPGANの動作確認を説明します。

GFPGANの動作確認

GFPGANの動作確認を行います。
動作確認を行う前に、学習済みモデルを取得しましょう。

GFPGANv1.3.pth
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth

学習済みモデルは、上記URLよりダウンロードが可能です。
ダウンロードできたら、次の場所にファイルを設置します。

モデルが用意できれば、GFPGANを動かすことができます。
では、サンプル画像を対象にして処理を実行してみましょう。

そのためのコマンドは、以下となります。

python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2

動作確認で行う処理を説明しておきます。
「inputs/whole_imgs」ディレクトリには、次の画像が用意されています。

これらの画像を対象にして、処理を行うことになります。
その処理によって作成される画像が、「results」ディレクトリ以下に保存されます。
(※ディレクトリ「results」は自動的に作成されます)

「results」は、次のような構成となります。

「cropped_faces」には、元画像から切り出した顔画像が保存されています。
まだ、この時点では顔面修復(高画質化)はされていません。

「restored_faces」には、顔面修復(高画質化)された顔画像が保存されています。
サムネイルとして見ると、高画質化されているのはわかりませんけどね。

「cmp」には、それぞれの処理前と処理後の比較画像が保存されています。

「cmp」には、それぞれの処理前と処理後の比較画像が保存されています。
この中から、一つ画像をピックアップします。
このサイズで比較すると、GFPGANの効果を実感できます。

「restored_imgs」には、全体を修復(高画質化)した画像が保存されています。
画像サイズは、2倍になっています。

全体画像の処理前(上)と処理後(下)の比較画像は、以下。

ノイズを除去しただけではありませんね。
全体的に明るくして、綺麗に見えるようにも処理されています。

なお、コマンドの詳細はヘルプで確認できます。

> python inference_gfpgan.py -h
usage: inference_gfpgan.py [-h] [-i INPUT] [-o OUTPUT] [-v VERSION] [-s UPSCALE] [--bg_upsampler BG_UPSAMPLER] [--bg_tile BG_TILE] [--suffix SUFFIX] [--only_center_face]
                           [--aligned] [--ext EXT] [-w WEIGHT]
options:
  -h, --help            show this help message and exit
  -i INPUT, --input INPUT
                        Input image or folder. Default: inputs/whole_imgs
  -o OUTPUT, --output OUTPUT
                        Output folder. Default: results
  -v VERSION, --version VERSION
                        GFPGAN model version. Option: 1 | 1.2 | 1.3. Default: 1.3
  -s UPSCALE, --upscale UPSCALE
                        The final upsampling scale of the image. Default: 2
  --bg_upsampler BG_UPSAMPLER
                        background upsampler. Default: realesrgan
  --bg_tile BG_TILE     Tile size for background sampler, 0 for no tile during testing. Default: 400
  --suffix SUFFIX       Suffix of the restored faces
  --only_center_face    Only restore the center face
  --aligned             Input are aligned faces
  --ext EXT             Image extension. Options: auto | jpg | png, auto means using the same extension as inputs. Default: auto
  -w WEIGHT, --weight WEIGHT
                        Adjustable weights for CodeFormer.

以上、GFPGANの動作確認を説明しました。

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