Awesome
3d-pose-baseline-vmd
このプログラムは、3d-pose-baseline (ArashHosseini様) を miu(miu200521358) がfork して、改造しました。
動作詳細等は上記URL、または README-ArashHosseini.md をご確認ください。
機能概要
- OpenPose で検出された人体の骨格構造から、3Dの人体モデルを生成します。
- 3Dの人体モデルを生成する際に、関節データを出力します
- 関節データを VMD-3d-pose-baseline-multi で読み込む事で、vmd(MMDモーションデータ)ファイルを生成できます
- 複数人数のOpenPoseデータを解析できます。
2018/05/07 時点では正確に解析できません。1人のみの解析を試してください。- ver1.00(2019/02/13) で複数人数のトレースに対応しました。詳細は、FCRN-DepthPrediction-vmd を確認してください。
準備
詳細は、Qiitaを参照して下さい。
依存関係
python3系 で以下をインストールして下さい
- h5py
- tensorflow 1.0 or later
H36Mデータ
3D骨格情報は、Human3.6M に基づいて作成されます。
以下より圧縮ファイルをダウンロードして、解凍後、data
以下に配置して下さい。
学習データ
オリジナルの学習データは、Windowsの260文字パス制限にひっかかるため、パスを簡略化して再生成しました。
以下より圧縮ファイルをダウンロードして、解凍後、experiments
以下に配置して下さい。
実行方法
- Openpose簡易起動バッチ で データを解析する
- 深度推定で 深度推定と人物インデックス別のデータを生成する
- OpenposeTo3D.bat を実行する
- OpenposeTo3D_en.bat is in English. !! The logs remain in Japanese.
INDEX別ディレクトリパス
が聞かれるので、2.の人物インデックス別パス
のフルパスを指定する{動画ファイル名}_json_{実行日時}_index{0F目の左からの順番}
- 複数人数のトレースの場合、別々に実行が必要
詳細なログを出すか
聞かれるので、出す場合、yes
を入力する- 未指定 もしくは
no
の場合、通常ログ(各パラメータファイルと3D化アニメーションGIF) warn
の場合、3D化アニメーションGIFも生成しない(その分早い)yes
の場合、詳細ログを出力し、ログメッセージの他、デバッグ用画像も出力される(その分遅い)
- 未指定 もしくは
- 処理開始
- 処理が終了すると、3. の
人物インデックス別パス
内に、以下の結果が出力される。- pos.txt … 全フレームの関節データ(VMD-3d-pose-baseline-multi に必要) 詳細:Output
- start_frame.txt … 開始フレームインデックス(VMD-3d-pose-baseline-multi に必要)
- smoothed.txt … 全フレームの2D位置データ(VMD-3d-pose-baseline-multi に必要) 詳細:Output
- movie_smoothing.gif … フレームごとの姿勢を結合したアニメーションGIF
- smooth_plot.png … 移動量をなめらかにしたグラフ
- frame3d/tmp_0000000000xx.png … 各フレームの3D姿勢
- frame3d/tmp_0000000000xx_xxx.png … 各フレームの角度別3D姿勢(詳細ログyes時のみ)
注意点
- Openpose のjson任意ファイル名に12桁の数字列は使わないで下さい。
short02_000000000000_keypoints.json
のように、{任意ファイル名}_{フレーム番号}_keypoints.json
というファイル名のうち、12桁の数字をフレーム番号として抽出するため
ライセンス
MIT
MMD自動トレースの結果を公開・配布する場合は、必ずライセンスのご確認と明記をお願い致します。Unity等、他のアプリケーションの場合も同様です。