私的AI研究会 > DLFS

人間の年齢による顔の変化:DLFS

07.gif

 AI技術「DLFS(Disentangled Lifespan Face Synthesis)」で人間の年齢による顔の変化をシミュレーションする。

ai_face_m.jpg
※ 最終更新:2023/11/17 

動作環境の準備と設定

事前準備

Google Colaboratory を使用する

20230910_000000_001m.jpg
  1. Google の「Colaboratory へようこそ」 ページを開く
  2. Googleアカウントにログインしていなければログインする
  3. 「ファイル」メニューまたはダイアログのボタンから「ノートブックを新規作成」を選択
  4. 左上のタイトル(Untitled*)を「DLFS」に変更する

Google Colaboratory の実行環境を設定する

20230910_000012_001m.jpg
  1. メニューから「ランタイム」→「ランタイムのタイプを変更」を選ぶ
  2. 表示されたダイアログから「GPU」を選ぶ

Google Colaboratory に Googleドライブをマウントする

20230910_000020_001m.jpg
  1. Colaboratory ページの左「ファイル」①を押す
  2. 左上の「ドライブをマウント」②を押す
  3. ダイアログが表示された場合「Googleドライブに接続」を押す
  4. マウントが完了すると「drive」フォルダ③が表示される
    「MyDrive」直下に「try」フォルダが表示されることを確認する(なければ作成する)

DLFS をセットアップする

  1. セルに次のコマンドを入力して実行(セル左の三角ボタンをクリック)する
    ### セットアップ~
    
    # カレントディレクトリを「MyDrive/try」へ移動する
    %cd /content/drive/MyDrive/try
    
    # githubのコードをコピー
    !git clone https://github.com/SenHe/DLFS.git
    %cd DLFS/
     
    # ライブラリーのインストール
    !pip3 install -r requirements.txt
     
    # 補助モデルのダウンロード
    !python download_models.py
     
    # 学習済みモデルのダウンロード
    import gdown
    !mkdir checkpoints
    %cd checkpoints
     
    gdown.download('https://drive.google.com/u/0/uc?id=1pB4mufFtzbJSxxv_2iFrBPD3vp_Ef-n3&export=download', 'males_model.zip', quiet=False)
    !unzip males_model.zip
    gdown.download('https://drive.google.com/u/0/uc?id=1z0s_j3Khs7-352bMvz8RSnrR53vvdbiI&export=download', 'females_model.zip', quiet=False)
    !unzip females_model.zip
    %cd ..
     
    # サンプル画像ダウンロード
    gdown.download('https://drive.google.com/uc?id=1ruwDizjnzd3scR1QvpXGWLXywY8_W0yj', './images.zip', quiet=False)
    !unzip images.zip
    ▼ - log - GoogleColab Tesla T4

  2. 追加のプロジェクト・データをアップロードする
    (1) プロジェクトファイルをダウンロードして解凍する(「CycleGAN」プロジェクトに同梱)
     update_20231117.zip (18.3MB) <アップデート・データ>

    (2) 解凍した「update/work/DLFS/」を Google Drive「マイドライブ/try/DLFS/」にアップロードする
    マイドライブ
      ┗ try
          ┗ DLFS
              ┠ images
              ┃  ┠ f_tsuchiya_1.jpg
              ┃  ┠ izutsu_m2.jpg
              ┃  ┃      :
              ┃
              ┗ dlfs.test.py

DLFS の実行

DLFS 設定

  1. カレントディレクトリを「MyDrive/try/DLFS」へ移動する
    ・セルに次のコマンドを入力して実行(セル左の三角ボタンをクリック)する
    cd /content/drive/MyDrive/try/DLFS
    ・結果表示
    /content/drive/MyDrive/try/DLFS

  2. ライブラリーのインストール
    ・セルに次のコマンドを入力して実行(セル左の三角ボタンをクリック)する
    !pip install unidecode dominate
    ▼ - log - GoogleColab Tesla T4

年齢による顔アニメーション作成

  1. 顔アニメーション・ファイル作成する
    ・セルに次のコマンドを入力して実行(セル左の三角ボタンをクリック)する
    !python dlfs_test.py
    ▼ - log - GoogleColab Tesla T4

  2. できた動画を再生する
    ・セルに次のコマンドを入力して実行(セル左の三角ボタンをクリック)する
    ### 結果表示
    
    # mp4動画の再生
    from IPython.display import HTML
    from base64 import b64encode
    
    mp4 = open('./output.mp4', 'rb').read()
    data_url = 'data:video/mp4;base64,' + b64encode(mp4).decode()
    HTML(f"""<video width="50%" height="50%" controls><source src="{data_url}" type="video/mp4"></video>""")

コマンド「dlfs_test.py」の使い方

  1. 入力画像をアップロードする
    ・「DFLS/images/」フォルダにアップロードすればディレクトリ指定は不要

  2. オプションを追加してコマンドを入力「!python dlfs_test.py --input_img <画像ファイル名>」
    ・画像が女性の場合は「--model females_model」オプションを追加する

    ・コマンド例
    !python dlfs_test.py --input_img okegawa_m1.jpg
    !python dlfs_test.py --input_img yaoi_m1.jpg
    !python dlfs_test.py --input_img nitta_m2.jpg
    !python dlfs_test.py --input_img izutsu_m2.jpg
    ・結果画像(「DLFS/results」フォルダに作成される)

      

    ▼「dlfs_test.py」ソースコード

その他の実行例

更新履歴

参考資料