Skip to content

ktcc-ai-sportstrainer/VIBE

 
 

Repository files navigation

VIBE: 人体の姿勢と形状推定のためのビデオ推論 [CVPR-2020]

report Open In Colab PWC

詳細については、以下のYouTubeビデオをご覧ください。

論文解説ビデオ 定性的結果
PaperVideo QualitativeResults

VIBE: ビデオからの人体姿勢・形状推定のための推論,
Muhammed Kocabas, Nikos Athanasiou, Michael J. Black,
IEEE Computer Vision and Pattern Recognition, 2020

特徴

Video Inference for Body Pose and Shape Estimation (VIBE)は、ビデオベースの姿勢・形状推定手法です。 入力ビデオの各フレームに対してSMPL体型モデルのパラメータを予測します。詳細についてはarXivレポートをご参照ください。

この実装の特徴:

  • デモと学習コードがPyTorchで純粋に実装されています
  • 複数人が写る任意のビデオに対応可能です
  • CPUとGPU両方での推論をサポートしています(GPUの方が大幅に高速です)
  • RTX2080Tiで最大30FPSの高速処理が可能です(この表を参照)
  • 3DPWとMPI-INF-3DHPデータセットでSOTAの結果を達成しています
  • Temporal SMPLifyの実装を含みます
  • 学習コードと一からの学習方法の詳細な手順を含みます
  • 主要な3DCGソフトウェアで使用可能なFBX/glTF出力を生成できます

更新情報

  • 2021/05/01: @carlosedubarreto様のご協力により、Windows用インストールチュートリアルが追加されました
  • 2020/10/06: OneEuroFilterによるスムージングをサポート
  • 2020/09/14: FBX/glTF変換スクリプトをリリース

始め方

VIBEはUbuntu 18.04、Python 3.7以上で実装とテストが行われています。GPUとCPU両方での推論をサポートしています。 適切な環境がない場合は、Colabデモの実行をお試しください。

リポジトリのクローン:

git clone https://github.com/mkocabas/VIBE.git

virtualenvまたはcondaを使用して必要なパッケージをインストール:

# pip
source scripts/install_pip.sh

# conda
source scripts/install_conda.sh

デモの実行

任意のビデオでVIBEを実行できる便利なデモコードを用意しています。 まず、必要なデータ(学習済みモデルとSMPLモデルパラメータ)をダウンロードする必要があります:

source scripts/prepare_data.sh

その後、以下のように簡単にデモを実行できます:

# ローカルビデオで実行
python demo.py --vid_file sample_video.mp4 --output_folder output/ --display

# YouTubeビデオで実行
python demo.py --vid_file https://www.youtube.com/watch?v=wPZP8Bwxplo --output_folder output/ --display

デモコードの詳細についてはdoc/demo.mdを参照してください。

--sideviewフラグを使用したデモ出力のサンプル:

FBX・glTF出力(新機能!)

VIBEの出力をBlender、Unityなどの3DCGツールで使用可能なスタンドアローンのFBX/glTFファイルに変換するスクリプトを提供しています。 変換スクリプトを実行するには以下の手順に従ってください:

  • SMPLボディモデルのFBXファイルをダウンロードする必要があります
    • SMPLウェブサイトでアカウントを作成
    • リンクからUnity互換のFBXファイルをダウンロード
    • 解凍したファイルをdata/SMPL_unity_v.1.0.0に配置
  • BlenderのPython APIをインストール
    • このスクリプトはBlender v2.8.0およびv2.8.3でテスト済み
  • 以下のコマンドでVIBE出力をFBXに変換:
python lib/utils/fbx_output.py \
    --input output/sample_video/vibe_output.pkl \
    --output output/sample_video/fbx_output.fbx \ # glTFの場合は拡張子を*.glbに指定
    --fps_source 30 \
    --fps_target 30 \
    --gender <male or female> \
    --person_id <VIBE出力のトラックレットID>

Windowsインストールチュートリアル

@carlosedubarreto様提供のWindowsマシンでのVIBEのインストールと実行手順:

Google Colab

このプロジェクトを実行するための適切な環境がない場合は、Google Colabをお試しください。 無料でクラウド上でプロジェクトを実行できます。用意したノートブックを使用してColabデモを試すことができます: Open In Colab

学習

以下のコマンドで学習を開始します:

source scripts/prepare_training_data.sh
python train.py --cfg configs/config.yaml

データ処理スクリプトを実行する前に、学習用データセットをダウンロードして準備する必要があることに注意してください。 準備方法の詳細についてはdoc/train.mdを参照してください。

評価

ここでは、VIBEと最近の最先端手法を3D姿勢推定データセットで比較します。評価指標は Procrustes Aligned Mean Per Joint Position Error (PA-MPJPE)で、単位はmmです。

モデル 3DPW ↓ MPI-INF-3DHP ↓ H36M ↓
SPIN 59.2 67.5 41.1
Temporal HMR 76.7 89.8 56.8
VIBE 56.5 63.4 41.5

この表の結果を再現するか、事前学習済みモデルを評価するにはdoc/eval.mdを参照してください。

訂正:データセットの前処理のミスにより、論文の表1における3DPWで学習したVIBEの結果は正しくありませんでした。 また、3DPWでの学習は定量的な性能は向上しますが、定性的な結果は良好ではありません。 arXivバージョンは修正された結果で更新される予定です。

引用

@inproceedings{kocabas2019vibe,
  title={VIBE: Video Inference for Human Body Pose and Shape Estimation},
  author={Kocabas, Muhammed and Athanasiou, Nikos and Black, Michael J.},
  booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  month = {June},
  year = {2020}
}

ライセンス

このコードはLICENSEファイルで定義される非商用の科学研究目的でのみ利用可能です。このコードをダウンロードして使用することで、LICENSEの条項に同意したものとみなされます。サードパーティのデータセットとソフトウェアはそれぞれのライセンスに従います。

参考文献

各ファイル内で外部から借用した関数やスクリプトを明記しています。以下は私たちが参考にした素晴らしいリソースです:

  • 事前学習済みHMRと一部の関数はSPINから借用
  • SMPLモデルとレイヤーはSMPL-Xモデルから
  • 一部の関数はTemporal HMRから借用
  • 一部の関数はHMR-pytorchから借用
  • 一部の関数はKorniaから借用
  • ポーズトラッカーはSTAFから

About

Official implementation of CVPR2020 paper "VIBE: Video Inference for Human Body Pose and Shape Estimation"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.5%
  • Shell 0.5%