この記事は【目次】MMDモーショントレース自動化への挑戦の為の導入手順になります。
ver1.01のリリースに伴い、導入が不要になりました。ご注意下さい
miu200521358/3dpose_gan_vmd
2Dの骨格位置情報から3Dの関節情報に変換するライブラリの私的改変版。
form元
学習に3Dデータセットを用いない3D姿勢推定 (DwangoMediaVillage様)
前提
このライブラリは、これまでのMMDモーショントレース自動化の各ライブラリの後に追加されました。
そのため、既に他のライブラリが導入されている前提で話を進めます。
これだけを導入する場合、適宜読み替えて下さい。
1. 3dpose_gan_vmd の導入
1. miu200521358/3dpose_gan_vmd のトップページから「Clone or Download
」>「Download ZIP
」を順に押下
2. ダウンロードした圧縮ファイルを、空白のないパス以下に解凍。私は以下に配置しました。
「C:\MMD\3dpose_gan_vmd
」
2. 学習データの導入
1. 3dpose_gan_vmd
ディレクトリ配下 に openpose
ディレクトリを作成する
2. 以下2ファイルをダウンロードする
※githubからダウンロードする場合、上記サイトの「Raw」ボタンを押下すると、生ファイルが表示されます。その状態で、保存(Ctrl+Sとか右クリックして「名前をつけて保存」とか)すると、ファイルがダウンロードできます。(1/14追記)
3. ダウンロードしたファイルを、openpose
ディレクトリ配下に設定する
4. 3dpose_gan_vmd
ディレクトリ配下 に train
ディレクトリを作成する
5. 以下1ファイルをダウンロードする
2018/12/10現在、リンク切れが発生しているようです。私のGoogleドライブからダウンロードしてください。
https://drive.google.com/open?id=1xY9-0vkeGoMN8nYv2Nz0N5lDV7YqdlGs
6. ダウンロードしたファイルを、train
ディレクトリ配下に設定する
3. 必要ライブラリのインストール
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
」
実行方法
- Openpose簡易起動バッチ で データを解析する
- miu200521358/3d-pose-baseline-vmd で生成された2D関節データ (smoothed.txt) を用意する
- 深度推定で 深度推定と人物インデックス別のデータを生成する
-
OpenposeTo3DGan.bat を実行する
- OpenposeTo3DGan_en.bat is in English. !! The logs remain in Japanese.
-
INDEX別ディレクトリパス
が聞かれるので、3.の人物インデックス別パス
のフルパスを指定する{動画ファイル名}_json_{実行日時}_index{0F目の左からの順番}
- 複数人数のトレースの場合、別々に実行が必要
-
詳細なログを出すか
聞かれるので、出す場合、yes
を入力する- 未指定 もしくは
no
の場合、通常ログ(各パラメータファイルと3D化アニメーションGIF) -
warn
の場合、3D化アニメーションGIFも生成しない(その分早い) -
yes
の場合、詳細ログを出力し、ログメッセージの他、デバッグ用画像も出力される(その分遅い)
- 未指定 もしくは
- 処理開始
- 処理が終了すると、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桁の数字をフレーム番号として抽出するため
-