/3dpose_gan_vmd

Openposeの2D人間骨格データから3D関節データを生成し、その関節データを出力します。

Primary LanguagePythonMIT LicenseMIT

3dpose_gan_vmd

このプログラムは、3dpose_gan (DwangoMediaVillage様) を miu(miu200521358) がfork して、改造しました。

動作詳細等は上記URL、または README-original.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系 で以下をインストールして下さい

学習データ

openposeディレクトリを作成し、以下の学習データをダウンロードして配置して下さい。

trainディレクトリを作成し、以下の学習データをダウンロードして配置して下さい。

実行方法

  1. Openpose簡易起動バッチ で データを解析する
  2. miu200521358/3d-pose-baseline-vmd で生成された2D関節データ (smoothed.txt) を用意する
  3. 深度推定で 深度推定と人物インデックス別のデータを生成する
  4. OpenposeTo3DGan.bat を実行する
  5. INDEX別ディレクトリパス が聞かれるので、3.の人物インデックス別パスのフルパスを指定する
    • {動画ファイル名}_json_{実行日時}_index{0F目の左からの順番}
    • 複数人数のトレースの場合、別々に実行が必要
  6. 詳細なログを出すか 聞かれるので、出す場合、yes を入力する
    • 未指定 もしくは no の場合、通常ログ(各パラメータファイルと3D化アニメーションGIF)
    • warn の場合、3D化アニメーションGIFも生成しない(その分早い)
    • yesの場合、詳細ログを出力し、ログメッセージの他、デバッグ用画像も出力される(その分遅い)
  7. 処理開始
  8. 処理が終了すると、3. の人物インデックス別パス内に、以下の結果が出力される。
    • pos_gan.txt … 全フレームの関節データ(VMD-3d-pose-baseline-multi に必要) 詳細:Output
    • smoothed_gan.txt … 全フレームの2D位置データ(VMD-3d-pose-baseline-multi に必要) 詳細:Output
    • movie_smoothing_gan.gif … フレームごとの姿勢を結合したアニメーションGIF
    • frame3d_gan/gan_0000000000xx.png … 各フレームの3D姿勢
    • frame3d_gan/gan_0000000000xx_xxx.png … 各フレームの角度別3D姿勢(詳細ログyes時のみ)

注意点

  • Openpose のjson任意ファイル名に12桁の数字列は使わないで下さい。
    • short02_000000000000_keypoints.json のように、{任意ファイル名}_{フレーム番号}_keypoints.json というファイル名のうち、12桁の数字をフレーム番号として抽出するため

ライセンス

MIT

MMD自動トレースの結果を公開・配布する場合は、必ずライセンスのご確認と明記をお願い致します。Unity等、他のアプリケーションの場合も同様です。

MMDモーショントレース自動化キットライセンス