Talking Head Anime from a Single Image 3 で フェイストラッキング
「Talking Head Anime from a Single Image 3」で フェイストラッキングを試したので、まとめました。
前回
1. Talking Head Anime from a Single Image 3
「Talking Head Anime from a Single Image 3」は、1枚の2Dキャラクター画像をアニメーションさせるAIモデルです。バージョン3からは、上半身もアニメーションさせることができるようになりました。
「Talking Head Anime from a Single Image 3」では、2つのデモプログラムが提供されています。
今回は、ローカルのWindowsマシンで、「ifiacialmocap_puppeteer」を試してみます。
2. ハードウェア要件
ローカルマシンで「ifiacialmocap_puppeteer」を動かすには、NvidiaのGPU が必要です。Nvidia Titan RTXで動作確認されています。RTX 2080、RTX 3080、それ以上のGPU でも同様に機能すると思われます。
また、「ifacialmocap_puppeteer」は、iPhone端末からBlendShapeの情報をPCに送って貰う必要があります。TrueDepthカメラを持つiPhoneX以降の端末が必要になります。
3. インストール
PCでの「ifacialmocap_puppeteer」のインストール手順は、次のとおりです。
(1) 「Miniconda」のインストール。
「Miniconda」は、Anacondaの最小構成版のインストーラーです。
(2) リポジトリのクローンとカレントフォルダへの移動。
$ git clone https://github.com/pkhungurn/talking-head-anime-3-demo
$ cd talking-head-anime-3-demo
(3) パッケージのインストール。
Anacondaの仮想環境が生成されます。
$ conda env create -f environment.yml
(4) Anacondaの仮想環境にアクティブ化。
$ conda activate talking-head-anime-3-demo
(5) ここからモデルをダウンロードし、解凍し、以下のように「data/models」に配置。
+ data
+ images
- crypko_00.png
- crypko_01.png
:
- crypko_07.png
- lambda_00.png
- lambda_01.png
+ models
+ separable_float
- editor.pt
- eyebrow_decomposer.pt
- eyebrow_morphing_combiner.pt
- face_morpher.pt
- two_algo_face_body_rotator.pt
+ separable_half
- editor.pt
:
- two_algo_face_body_rotator.pt
+ standard_float
- editor.pt
:
- two_algo_face_body_rotator.pt
+ standard_half
- editor.pt
:
- two_algo_face_body_rotator.pt
4. iFacialMocapの実行
iFacialMocapは、iPhoneのカメラで表情をキャプチャし、PC上のソフトウェアに通知するiPhoneアプリです。有料で1000円になります。
(1) iPhoneにiFacialMocapをインストール。
(2) iFacialMocapを起動。
画面上に表示されているIPが、PCからの接続先になります。
5. ifacialmocap_puppeteerの実行
「ifacialmocap_puppeteer」の実行手順は、次のとおりです。
(1) Anacondaの仮想環境で以下のコマンドを実行。
$ python tha3/app/ifacialmocap_puppeteer.py
(2) ウィンドウが起動したら、上のテキストフィールドに「iFacialMocap」(を実行しているiPhone)のIPを入力し、「START CAPTURE!」ボタンを押す。
成功すると、画面下端のパラメータの数値が動きます。
うまく接続されない時は、以下を確認してください。
自分の場合は、「Windows Defender」を使ってたので、パブリックネットワークではUDP受信できなかったため、プライベートネットワークに切り替える必要がありました。
(3) 「Load Image」ボタンでイメージを読み込み。
前回と同じ画像を読み込みます。
成功すると、自分の顔と上半身の動きにあわせて、キャラクターが動きます。