Python
Windows
MMD

Windows への 3dpose-gan の導入手順

この記事は【目次】MMDモーショントレース自動化への挑戦の為の導入手順になります。
ノンエンジニアの方向けに、できるだけ平易に記載した…つもりです。

miu200521358/3dpose_gan_vmd

2Dの骨格位置情報から3Dの関節情報に変換するライブラリの私的改変版。

form元

学習に3Dデータセットを用いない3D姿勢推定 (DwangoMediaVillage様)

前提

このライブラリは、これまでのMMDモーショントレース自動化の各ライブラリの後に追加されました。
そのため、既に他のライブラリが導入されている前提で話を進めます。
これだけを導入する場合、適宜読み替えて下さい。

1. 3dpose_gan_vmd の導入

capture001465.jpg

1. miu200521358/3dpose_gan_vmd のトップページから「Clone or Download」>「Download ZIP」を順に押下

2. ダウンロードした圧縮ファイルを、空白のないパス以下に解凍。私は以下に配置しました。

C:\MMD\3dpose_gan_vmd

2. 学習データの導入

1. 3dpose_gan_vmdディレクトリ配下 に openpose ディレクトリを作成する

2. 以下2ファイルをダウンロードする

https://github.com/opencv/opencv_extra/blob/3.4.1/testdata/dnn/openpose_pose_coco.prototxt
http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/coco/pose_iter_440000.caffemodel

capture001466.jpg

3. ダウンロードしたファイルを、openposeディレクトリ配下に設定する

4. 3dpose_gan_vmdディレクトリ配下 に train ディレクトリを作成する

5. 以下2ファイルをダウンロードする

https://github.com/DwangoMediaVillage/3dpose_gan/blob/master/sample/gen_epoch_500.npz?raw=true

6. ダウンロードしたファイルを、trainディレクトリ配下に設定する
capture001468.jpg

3. 必要ライブラリのインストール

pip install chainer.jpg

1. 「Aanaconda Prompt」で、1.で作成したディレクトリに移動

※新しくプロンプトを立ち上げた場合には、「activate tensorflow」で、必ず自分が作成した環境に移動すること
 コマンド入力行の先頭に (tensorflow) と、環境名が出ていればOK。

cd C:\MMD\3dpose_gan_vmd

2. 必要ライブラリをインストール。以下コマンドを一行ずつ「Aanaconda Prompt」に入力してEnter。

pip install chainer

4. 3dpose_gan_vmd 実行

1. 「Aanaconda Prompt」を起動し、(tensorflow)を有効にして、「3dpose_gan_vmd」のインストールディレクトリに移動

cd C:\MMD\3dpose_gan_vmd

capture001467.jpg

実行方法

  1. Openpose簡易起動バッチ で データを解析する
  2. miu200521358/3d-pose-baseline-vmd で生成された2D関節データ (pos.txt, smoothed.txt) を用意する
  3. OpenposeTo3DGan.bat を実行する
  4. 解析結果JSONディレクトリパス が聞かれるので、1.のjson出力ディレクトリパスのフルパスを指定する
  5. 3D解析結果ディレクトリパス が聞かれるので、2.の結果ディレクトリパスを指定する
  6. 出力対象人物INDEX が聞かれるので、Openposeで読み取った人物のうち、何番目の人物を出力したいか、1始まりで指定する。
    • 未指定の場合、デフォルトで1が設定される(1人目の解析)
  7. 詳細なログを出すか 聞かれるので、出す場合、yes を入力する
    • 未指定 もしくは no の場合、通常ログ(各パラメータファイルと3D化アニメーションGIF)
    • warn の場合、3D化アニメーションGIFも生成しない(その分早い)
    • yesの場合、詳細ログを出力し、ログメッセージの他、デバッグ用画像も出力される(その分遅い)
  8. 処理開始
  9. 処理が終了すると、2.の結果ディレクトリパスに、以下の結果が出力される。
    • 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桁の数字をフレーム番号として抽出するため