「画質が悪くて、人の顔が見えにくい」
「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.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年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の動作確認を説明しました。