本記事では、GFPGANと呼ばれる機械学習手法を使って昔の写真を鮮明にしてみたいと思います。
GFPGANとは
GFPGANは、GenerativeFacial Prior GANの略称です。
Blind
faceの復元を実現するGANであり、従来技術と比較し優れたパフォーマンスと、復元能力を誇ります。
出典: https://arxiv.org/pdf/2101.04061.pdf |
1列目の入力画像に対して、従来技術の復元結果と、GFPGANの復元結果(赤枠)が比較されています。GFPGANの結果が最も自然で鮮明に復元されていることが見て取れます。
GFPGANの導入手順
セットアップ
それでは早速、開発環境にGFPGANをセットアップしていきます。
動作確認は下記の環境で行っています。
OS: Ubuntu 18.04.3 LTS
GPU: GeForce GTX 1080
なお、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
それでは、GFPGANをインストールしていきます。他の機械学習環境に影響を与えないためにMinicondaの仮想環境上に構築していきます。Minicondaのインストール手順は公式ドキュメントをご参照ください。
以上で、セットアップは完了です。
ブラインドフェイスの復元
ブラインドフェイスの復元では、昔の不鮮明な画像から鮮明な画像を生成します。
本記事では、下記の坂本龍馬の写真を使用します。
画像復元が完了するとresults
に復元画像が出力されます。
results
には以下4種の画像が出力されます。
-
cmp
: cropped_facesとrestored_facesの画像を結合した比較画像 cropped_faces
: 復元前の画像から顔部分を切り出した画像restored_faces
: cropped_facesの復元後画像restored_imgs
: 復元後の全体画像
先ほどの坂本龍馬の出力結果は以下です。
cmp画像 |
restored_imgs画像 |
ブラインドフェイスの復元(カラー化)
続いて、高精細化かつ、カラー化を行います。
カラー化の実行結果は以下です。
いかがでしょうか。なかなか良好な結果ではないでしょうか?
余談までに、岩倉具視でも試してみました。
入力画像
画像復元の実行結果は以下です。
はっきり二重に復元されているところや、毛髪の一本一本がはっきり視認できるよう復元されていることが確認できます。
トラブルシューティング
NameError: name 'fused_act_ext' is not defined
export BASICSR_JIT='True'
を環境変数に設定することで解決
RuntimeError: Ninja is required to load C++ extensions
ninjaをインストールすることで解決
IndexError: list index out of range
エラー全文は以下
/gfpgan/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line
1606, in _get_cuda_arch_flags arch_list[-1] += '+PTX' IndexError: list index
out of range
cudatoolkitが正しくインストールされていないことが原因のため、cudatoolkitをインストールし直す。
まとめ
本記事では、GFPGANで、不鮮明な昔の写真を鮮明な写真に復元する方法をご紹介しました。
本手法のように学習データの確保が難しい場合にどのように精度を確保するか。
このアプローチは非常に勉強になります。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
参考文献
1. Towards Real-World Blind Face Restoration with Generative Facial Prior
0 件のコメント :
コメントを投稿