Help us understand the problem. What is going on with this article?

Windows への 3dpose-gan の導入手順【2/17更新】

More than 1 year has passed since last update.

この記事は【目次】MMDモーショントレース自動化への挑戦の為の導入手順になります。
ver1.01のリリースに伴い、導入が不要になりました。ご注意下さい

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

※githubからダウンロードする場合、上記サイトの「Raw」ボタンを押下すると、生ファイルが表示されます。その状態で、保存(Ctrl+Sとか右クリックして「名前をつけて保存」とか)すると、ファイルがダウンロードできます。(1/14追記)

http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/coco/pose_iter_440000.caffemodel

capture001466.jpg

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

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

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

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

2018/12/10現在、リンク切れが発生しているようです。私のGoogleドライブからダウンロードしてください。
https://drive.google.com/open?id=1xY9-0vkeGoMN8nYv2Nz0N5lDV7YqdlGs

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関節データ (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桁の数字をフレーム番号として抽出するため
miu200521358
「手を抜く為の手間は惜しまない」がモットー。 MMD, 画像認識, ディープラーニング等。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away