SPARK: 自己教師ありパーソナライズドリアルタイム単眼顔キャプチャ
ケリアン・バート · シュリシャ・バラドワジ · ファビアン・カスタン · ブノワ・モージャン · マルク・クリスティ · ビクトリア・フェルナンデス・アブレバヤ · アドナン・ブカイマ
テクニカラー | マックスプランク研究所 | INRIAレンヌ
SIGGRAPH Asia 2024 会議論文
引用
もし私たちのコードや論文がお役に立てましたら、以下のように引用してください:
@inproceedings{baert2024spark,
title = {{SPARK}: Self-supervised Personalized Real-time Monocular Face Capture},
author = {Baert, Kelian and Bharadwaj, Shrisha and Castan, Fabien and Maujean, Benoit and Christie, Marc and Abrevaya, Victoria and Boukhayma, Adnane},
year = {2024},
month = dec,
booktitle = {SIGGRAPH Asia 2024 Conference Proceedings},
articleno = {113},
doi = {10.1145/3680528.3687704},
isbn = {979-8-4007-1131-2/24/12},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
numpages = {12},
url = {https://kelianb.github.io/SPARK/},
}インストール
詳細
- setup.sh を使って環境を作成します。
- TrackerAdaptation/setup_submodules.sh を実行します。数分かかる場合があります。
- MultiFLARE から EMOCA へ FLAME をリンクします:
ln TrackerAdaptation/submodules/EMOCA/assets/FLAME/geometry/generic_model.pkl MultiFLARE/assets/flame/flame2020.pkl - これは FLAME(2020年版)をダウンロードし、解凍して
generic_model.pklを./MultiFLARE/assets/flame/flame2020.pklにコピーするのと同等です。 - Basel Face Model のテクスチャ空間を FLAME に適合させたものを取得します。残念ながらライセンスの関係でテクスチャ空間の配布は許可されていません。そのため、この リポジトリ のツールを使ってテクスチャ空間を FLAME に変換してください。変換後のテクスチャモデルファイルを
TrackerAdaptation/submodules/EMOCA/assets/FLAME/texture/FLAME_albedo_from_BFM.npzに置いてください。
データセット
独自データの前処理については MonoFaceCompute リポジトリを参照してください。
使用方法
SPARK は二段階のアプローチです。まず、MultiFLARE を実行して複数の動画から3Dフェイスアバターを再構築します。次に、TrackerAdaptation を使って既存の3Dフェイストラッカーをアバターに適応させ、転移学習によりリアルタイムトラッキングを行います。
詳細
1. MultiFLARE
cd MultiFLARE
python train.py --config configs/example.txtExport neutral mesh
python export_mesh.py --config configs/example.txt --resume 3000 --out_dir /tmp/example_mesh --tex_type albedo
提供されたサンプル設定ファイルから開始し、input_dir、train_dir、および output_dir を変更することをお勧めします。すべてのパラメータのリストについては、arguments.py または python train.py --help の出力を参照してください。パラメータは設定ファイルまたはコマンドライン引数のいずれかで渡すことができます。2. TrackerAdaptation
cd TrackerAdaptation
DECA encoder + MultiFLARE decoder
python train.py --config configs/example_deca.txt
EMOCA encoder + MultiFLARE decoder
python train.py --config configs/example_emoca.txt
SMIRK encoder + MultiFLARE decoder (recommended!)
python train.py --config configs/example_smirk.txt
EMOCA encoder + EMOCA decoder (baseline)
python train.py --config configs/example_emoca_baseline.txtQuantitative eval
python evaluate.py --config configs/example_smirk.txt --tracker_resume 3000 --frame_interval 5 --num_frames 64Visualization videos
python make_comparison_video.py --config configs/example_smirk.txt --tracker_resume 3000 --test_dirs 5 6 --n_frames 1000 --smooth_crops --framerate 24
python make_overlay_video.py --config configs/example_smirk.txt --tracker_resume 3000 --test_dirs 2 --out test_beard --texture /path/to/texture.png --n_frames 1000 --smooth_crops --framerate 24
ライセンス情報
このリポジトリのコードは複数のライセンスの対象となっています。
- オリジナルコード(Technicolor Group & INRIA Rennes)
- 特に指定のない限り、本リポジトリ内のすべてのコードはCC BY-NC-SA ライセンスの下でライセンスされています。
- サードパーティコード(マックス・プランク知能システム研究所)
- 場所:
./MultiFLARE/flame、./MultiFLARE/flare、./TrackerAdaptation/submodules - これらのディレクトリにはマックス・プランク研究所のコードが含まれており、一部改変が加えられています。MPIライセンスをよくお読みください。これは非営利の科学研究目的にのみ利用可能です。