本記事では、Lifespan Age Transformation Synthesisと呼ばれる機械学習手法を使って人の顔の年齢を自然に変更してみたいと思います。
Lifespan Age Transformation Synthesisとは
Lifespan Age Transformation Synthesisとは、人の顔が過去どのような顔であったのか、また、未来ではどのような顔になるのかを予測するgenerative adversarial network architecture(GAN)です。
従来技術が顔のテクスチャの予測に留まっていたのに対し、本手法では頭の形状の予測も可能となっています。
これによって従来手法が成人の頭の形状に、予測された幼児のテクスチャが生成されたものが、
本手法では、幼児の頭の形状に、予測された幼児のテクスチャが生成されるため、より自然な質の高い出力が得られるようになります。
|
出典: https://github.com/royorel/Lifespan_Age_Transformation_Synthesis |
上図はLifespan Age Transformation Synthesisの出力結果です。
幼児期には、頭が小さく予測され自然な出力結果が得られていることが分かります。
Lifespan Age Transformation Synthesisの導入手順
セットアップ
それでは早速、開発環境にLifespan Age Transformation
Synthesisをセットアップしていきます。
動作確認は下記の環境で行っています。
OS: Ubuntu 18.04.3 LTS
GPU: GeForce GTX 1080
なお、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
それでは、Lifespan Age Transformation
Synthesisをインストールしていきます。他の機械学習環境に影響を与えないためにMinicondaの仮想環境上に構築していきます。Minicondaのインストール手順は公式ドキュメントをご参照ください。
以上で、セットアップは完了です。
年齢変換
年齢の変換を行っていきます。
はじめに学習済みモデルをダウンロードします。
/Lifespan_Age_Transformation_Synthesis/checkpoints
にmodelがダウンロードされます。
次に顔画像を用意します。
本記事では、ロイヤリティフリーの画像を使って顔周辺を256x256ピクセルに切り出した以下の2画像を使用します。
この2画像を任意のディレクトリに格納します。
その後Lifespan_Age_Transformation_Synthesis
直下にmales_image_list.txt
とfemales_image_list.txt
を作成し
先ほど格納したファイルのパスを以下のように記述します。
最後に以下のコマンドで年齢変換を実行します。
もしRuntimeError: CUDA out of memory.
が発生する場合は、
--interp_step 0.05
を--interp_step 0.06
に変更してください。
いかがでしょうか?
欧米の方のような出力結果ですね。これは提供されている学習済みモデルがFFHQ-Aging Datasetを元に学習されているモデルのため欧米の方に寄っていってしまっていると考えられます。
このため、より自然に変換するためには人種ごとにモデルを生成した方が精度が向上すると考えられます。
まとめ
本記事では、Lifespan Age Transformation
Synthesisで顔画像の年齢変換する方法を紹介しました。
GANの画像生成技術は視覚的にはっきりとした結果が出力されるため楽しさが増しますね。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
0 件のコメント :
コメントを投稿