本記事では、SC-FEGANと呼ばれる機械学習手法を使って人の顔画像を自然に編集する方法をご紹介します。
SC-FEGANとは
SC-FEGANは、マスク、スケッチ、色などの自由な入力に対して、画像を生成する画像編集システムです。
このシステムは、End to
Endの畳み込みニューラルネットワークで構成されています。
従来技術と異なり、ユーザーの自由形式の入力に対して画像を生成する点が特徴となります。
これにより、直感的なユーザーの入力を使用して高品質な合成画像を生成することを得意としています。
出典: https://github.com/run-youngjoo/SC-FEGAN |
見ると一目瞭然ですが、ユーザーの入力に対して、自然で高品質な画像を生成しています。
GFPGANの導入手順
セットアップ
それでは早速、開発環境にSC-FEGANをセットアップしていきます。
動作確認は下記の環境で行っています。
OS: Windows 10
CPU: Intel(R) Core(TM) i5-7300U CPU @ 2.60GHz
GPU: なし
SC-FEGANをインストールしていきます。他の機械学習環境に影響を与えないためにMinicondaの仮想環境上に構築していきます。Minicondaのインストール手順は公式ドキュメントをご参照ください。
次に、SC-FEGAN/demo.yaml
の設定を行います。
GPU_NUM:
にお手持ちの環境のGPU数を記載します。
次の設定は下記エラーが発生する場合のみ行います。
Traceback (most recent call last): File "demo.py", line 229, in
<module> config = Config('demo.yaml') File "SC-FEGAN\utils\config.py",
line 13, in __init__ self._cfg_dict = yaml.load(f) TypeError: load() missing
1 required positional argument: 'Loader'
このエラーが発生する場合はSC-FEGAN/utils/config.py
を編集します。
以上で、セットアップは完了です。
顔の編集(Face Editing)
いよいよ顔の編集を行っていきます。
本記事ではロイヤリティフリーのこちらの画像を使用します。
はじめに、画像を512x512ピクセルに切り出します。
切り出さずに画像を取り込むことも可能ですが、自動で512x512にリサイズされます。
このため、正方形の画像でない場合歪みが生じるため注意が必要です。
この画像を使って顔編集していきます。
早速ツールを起動します。
上図のようなツールが起動したら「Open Image」を選択し、リサイズした画像をロードします。
次に「Mask」を選択し、編集したい領域を塗りつぶします。
ここでは、髪から耳が出ていますが、耳を髪に隠してみます。
いかがでしょうか?「Mask」を選択し耳を塗りつぶし「Complete」を選択しただけで自然に髪型を編集できました。
次に、髪色を変えてみます。「Mask」を選択し、髪の毛を塗りつぶし「Palette」で緑を選択し「Color」で描いていきます。
マウスで適当に書いただけですが、やや自然に変換されました。細かい作業はペンタブがあった方が良さそうです。
最後に、顔の輪郭を変えてみます。「Mask」を選択し、輪郭を塗りつぶし、「Sketches」で輪郭を描くだけです。
いかがでしょうか。入力に対して柔軟に画像を生成できることの強力さが見て頂けたかと思います。
まとめ
本記事では、SC-FEGANで、顔編集する方法をご紹介しました。
本手法のように、入力に柔軟なモデルは利便性を向上させ、使いやすい技術の見本となります。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
参考文献
1. SC-FEGAN: Face Editing Generative Adversarial Network with User’s Sketch and Color
0 件のコメント :
コメントを投稿