このリポジトリには、Talking Head(?)アニメのデモプログラムが含まれています。名前が示すように、プロジェクトではアニメキャラクターをアニメーション化することができ、そうするためにそのキャラクターの単一の画像しか必要ありません。 2つのデモプログラムがあります。
manual_poser使用すると、グラフィカルユーザーインターフェイスを介した呼吸によるキャラクターの表情、頭の回転、体の回転、胸の膨張を操作できます。ifacialmocap_puppeteer使用すると、顔の動きをアニメキャラクターに移すことができます。 必要なハードウェアがない場合(以下で説明します)、またはコードをダウンロードして実行する環境を設定したくない場合は、クリックしてGoogle Colabでマニュアルポーザーを実行してみてください。
どちらのプログラムでも、実行するには最近の強力なNvidia GPUが必要です。私は個人的にNvidia Titan RTXでそれらを良い速度で実行することができました。ただし、RTX 2080、RTX 3080などなど、最近のハイエンドゲームGPUも同様に行うと思います。
ifacialmocap_puppeteerには、ビデオフィードの形状パラメーターのブレンドを計算できるiOSデバイスが必要です。これは、デバイスがiOS 11.0以降を実行できる必要があり、真面目な前面カメラを持っている必要があることを意味します。 (詳細については、このページを参照してください。)言い換えれば、iPhone Xなどがある場合は、すべて設定する必要があります。個人的には、iPhone 12 Miniを使用しました。
GPUのデバイスドライバーを更新し、GPUと互換性があり、次のサブセクションにインストールするバージョンよりも新しいCUDAツールキットをインストールしてください。
manual_poserとifacialmocap_puppeteer両方がデスクトップアプリケーションとして利用できます。それらを実行するには、Python言語で書かれたプログラムを実行するための環境を設定する必要があります。環境には、次のソフトウェアパッケージが必要です。
そうする1つの方法は、アナコンダをインストールし、シェルで次のコマンドを実行することです。
> conda create -n talking-head-anime-3-demo python=3.8
> conda activate talking-head-anime-3-demo
> conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
> conda install scipy
> pip install wxpython
> conda install matplotlib
2006年6月現在、WXPYTHONをWindow 3.10で使用することはできません。その結果、このバグが修正されるまでPython 3.10を使用しないでください。これは、上記のリストの最初のcondaコマンドでpython=3.10を設定しないでください。
上記のコマンドによって作成された環境は、Pythonバージョン3.8と、CUDA Toolkitバージョン11.3でコンパイルされたPytorchのインストールを提供します。この特定のセットアップは、この特定のPytorchパッケージが新しいコンピューターで動作しないことがわかる場合があるため、将来機能しない可能性があります。解決策は次のとおりです。

manual_poser 、Jupyter Nootbookとしても利用できます。ローカルマシンで実行するには、インストールする必要もあります。
場合によっては、 widgetsnbextensionも有効にする必要があります。だから、実行してください
> jupyter nbextension enable --py widgetsnbextension
上記の2つのパッケージをインストールした後。アナコンダを使用して、次のコマンドで上記を行うことができました。
> conda install -c conda-forge notebook
> conda install -c conda-forge ipywidgets
> jupyter nbextension enable --py widgetsnbextension
Anacondaを使用して、すべてのPythonパッケージを1つのコマンドにダウンロードしてインストールすることもできます。シェルを開き、ディレクトリをリポジトリのクローン場所に変更して実行します。
> conda env create -f environment.yml
これにより、必要なすべてのPythonパッケージを含むtalking-head-anime-3-demoと呼ばれる環境が作成されます。
ifacialmocap_puppeteerを使用する場合は、IfacialMocap(App Storeで980円購入)と呼ばれるiOSソフトウェアも必要です。今回はペアのアプリケーションをダウンロードする必要はありません。 iOSとコンピューターは同じネットワークを使用する必要があります。たとえば、それらを同じワイヤレスルーターに接続できます。
プログラムを実行する前に、このDropboxリンクからモデルファイルをダウンロードし、リポジトリのルートディレクトリの下の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
モデルファイルは、Creative Commons Attribution 4.0 Internationalライセンスで配布されています。つまり、商業目的で使用できることを意味します。ただし、それらを配布する場合、とりわけ、私が作成者であると言わなければなりません。
manual_poserデスクトップアプリケーションの実行シェルを開きます。作業ディレクトリをリポジトリのルートディレクトリに変更します。次に、実行:
> python tha3/app/manual_poser.py
上記のコマンドを実行する前に、必要なパッケージを含むPython環境をアクティブにする必要がある場合があることに注意してください。上記で説明したようにアナコンダを使用して環境を作成した場合、実行する必要があります
> conda activate talking-head-anime-3-demo
環境をまだアクティブにしていない場合。
プロジェクトの記事に記載されているように、ニューラルネットワークシステムの4つのバリエーションを作成しました。それらは、 standard_float 、 separable_float 、 standard_half 、およびseparable_halfと呼ばれます。それらはすべて同じ機能を持っていますが、サイズ、RAMの使用、速度、精度が異なります。 manual_poserプログラムが--modelコマンドラインオプションを使用して使用するバリアントを指定できます。
> python tha3/app/manual_poser --model <variant_name>
ここで、 <variant_name>上記の4つの名前の1つでなければなりません。バリアントが指定されていない場合、 standard_floatバリアント(最大、遅い、および最も正確な)が使用されます。
manual_poser Jupyterノートブックの実行シェルを開きます。環境をアクティブにします。作業ディレクトリをリポジトリのルートディレクトリに変更します。次に、実行:
> jupyter notebook
ブラウザウィンドウを開く必要があります。その中で、Open manual_poser.ipynb 。そうしたら、2つのセルがあることがわかります。 2つのセルを順番に実行します。次に、ドキュメントの最後までスクロールすると、そこにGUIが表示されます。
最初のセルのMODEL_NAME変数を変更することにより、使用するシステムバリアントを選択できます。そうする場合は、バリアントをロードし、GUIを適切に更新して使用するために、両方のセルを再実行する必要があります。
ifacialmocap_poserを実行しますまず、iOSデバイスでiFacialMocapを実行します。デバイスのIPアドレスが表示されるはずです。書き留めてください。アプリを開いたままにしてください。

シェルを開きます。 Python環境を有効にします。作業ディレクトリをリポジトリのルートディレクトリに変更します。次に、実行:
> python tha3/app/ifacialmocap_puppeteer.py
ラベル「キャプチャデバイスIP」のテキストボックスが表示されます。そこに書き留めたiOSデバイスのIPアドレスを書きます。

「キャプチャを開始!」をクリックします。右側のボタン。

プログラムが適切に接続されている場合、頭を動かすと、ウィンドウの下部にある数字が変更されます。

これで、キャラクターの画像をロードでき、顔の動きに従う必要があります。
システムがうまく機能するためには、入力画像は次の制約に従わなければなりません。

入力画像の詳細については、プロジェクトの記事をご覧ください。
学術作業がこのリポジトリのコードの恩恵を受ける場合は、次のようにプロジェクトのWebページを引用してください。
プラムック・クンーン。トーキングヘッド(?)単一の画像からのアニメ3:今も体。 http://pkhungurn.github.io/talking-head-anime-3/、2022。アクセス:yyyy-mm-dd。
次のBibtexエントリを使用することもできます。
@misc{Khungurn:2022,
author = {Pramook Khungurn},
title = {Talking Head(?) Anime from a Single Image 3: Now the Body Too},
howpublished = {url{http://pkhungurn.github.io/talking-head-anime-3/}},
year = 2022,
note = {Accessed: YYYY-MM-DD},
}
著者はGoogle Japanの従業員ですが、このソフトウェアはGoogleの製品ではなく、Googleによってサポートされていません。
このソフトウェアの著作権は、IARCプロセスを使用してリクエストしたため、私に属します。ただし、Googleは本発明の知的財産に対する権利を主張するかもしれません。
コードはMITライセンスの下でリリースされます。このモデルは、Creative Commons Attribution 4.0 Internationalライセンスの下でリリースされています。そこにある画像のライセンスについては、 data/imagesディレクトリのreadme.mdファイルを参照してください。