8
Help us understand the problem. What are the problem?

posted at

updated at

Windows への FCRN-DepthPrediction-vmd の導入手順【2/17更新】

この記事は【目次】MMDモーショントレース自動化への挑戦の為の導入手順になります。

v2リリースに伴い、こちらの導入は廃止となりました。クラウド版をご利用ください
クラウド(colab)でMMD自動トレース

miu200521358/FCRN-DepthPrediction-vmd

深度推定のVMD用私的改造版
miu200521358/3d-pose-baseline-vmd の導入が完了している場合、追加インストール等は不要です。

1. TensorFlow の導入

Installing TensorFlow on Windows

Tensorflow には、CPU版とGPU版がありますが、ここでは、CUDAバージョンとの兼ね合いで、CPU版を導入します。(詳しくは上記URL参照)

1.1. Anaconda のインストール

capture001169.jpg

1. Downloads | Anaconda ページから、Python 3.6用(左側)のインストーラをダウンロードする。

※2/17現在、Python 3.7となっていますが、3.xならば大丈夫です。
※メアドの入力が求められますが、「No Thanks」でキャンセルできます。

capture001170.jpg

2. 「Next >」押下

capture001171.jpg

3. 「I Agree」押下

capture001172.jpg

4. 「Just Me」のチェックボックスのまま、「Next >」押下

capture001173.jpg

5. インストール先のパスを設定して、「Next >」押下

capture001174.jpg

6. オプションはそのままで、「Install」押下

capture001175.jpg

7. しばし待つ

capture001176.jpg

8. 完了したら、「Next >」押下

capture001177.jpg

9. VSCode(コードエディタ)のインストールはお好きに。私は既に入っていたので、「Skip」しました。

capture001178.jpg

10. 「Finish」押下

1.2. TensorFlow のインストール

capture001180.jpg

1. スタートメニューから、「Aanaconda Prompt」を起動する

capture001181.jpg

2. tensorflow 用環境を作成
  ※これは、他の開発環境と切り分けするための箱を作るようなものです。

conda create -n tensorflow pip python=3.7

capture001182.jpg

3. Proceed は 「y」で実行継続

capture001183.jpg

4. しばし待つ

capture001185.jpg

5. tensorflow環境を有効化する

activate tensorflow

capture001186.jpg

6. tensorflow(CPU版 or GPU版)をインストールする

  • CPU版:「conda install tensorflow
  • GPU版:「conda install tensorflow-gpu」※GPU版要件参照

capture001745.jpg

7. しばし待つ

capture001189.jpg

8. 完了したら、「python」コマンド入力。「>>>」と先頭に出ていたらOK。

capture001190.jpg

9. 以下コマンドを一行ずつ入力。(先頭の >>> は入力不要です)

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))

最後に「b'Hello, TensorFlow!'」と出力されていればOK。

2. FCRN-DepthPrediction-vmd の導入

capture001325.jpg

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

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

C:\MMD\FCRN-DepthPrediction-vmd

3. モデルデータ の導入

1. 上記ディレクトリ>「tensorflow」ディレクトリ>「data」ディレクトリを作成する

capture001326.jpg

2. tensorflow用モデルデータzip(.ckpt) をダウンロードする

3. ダウンロードした圧縮ファイルを解凍して、1. の「data」ディレクトリ以下に配置する

C:\MMD\FCRN-DepthPrediction-vmd\tensorflow\data

capture001327.jpg

4. 必要ライブラリの導入

capture001221.jpg

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

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

cd C:\MMD\FCRN-DepthPrediction-vmd

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

pip install numpy
pip install python-dateutil
pip install pytz
pip install pyparsing
pip install six
pip install matplotlib
pip install opencv-python
pip install imageio

5. FCRN-DepthPrediction-vmd 実行

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

activate tensorflow
C:\MMD\FCRN-DepthPrediction-vmd

capture001328.jpg

実行方法

  1. Openpose簡易起動バッチ で データを解析する
  2. VideoToDepth.bat を実行する
  3. 解析対象映像ファイルパス が聞かれるので、動画のファイルフルパスを入力する
  4. 解析結果JSONディレクトリパス が聞かれるので、1.の結果ディレクトリパスを指定する
    • {動画パス}/{動画ファイル名}_{実行年月日}/{動画ファイル名}_json が対象ディレクトリパス
  5. 深度推定間隔 が聞かれるので、深度推定を行うフレームの間隔(整数のみ)を指定する
    • 指定された間隔ごとに深度推定を行う
    • 未指定の場合、デフォルトで「10」とする
    • 値が小さいほど細かく深度推定を行うが、その分処理が遅くなる
  6. 反転フレームリストが聞かれるので、Openposeが裏表を誤認識しているフレーム範囲を指定する。
    • ここで指定されたフレーム範囲内のみ、反転判定を行う。
    • 10,20 のように、カンマで区切って複数フレーム指定可能。
    • 10-15 のように、ハイフンで区切った場合、その範囲内のフレームが指定可能。
  7. 順番指定リスト が聞かれるので、交差後に人物追跡が間違っている場合に、フレームNoと人物インデックスの順番を指定する。
    • 人物インデックスは、0F目の左から0番目、1番目、と数える。
    • [12:1,0] と指定された場合、12F目は、画面左から、0F目の1番目、0F目の0番目と並び替える、とする。
    • [12-15:1,0] と指定された場合、12~15F目の範囲で、1番目・0番目と並び替える。
  8. 詳細なログを出すか 聞かれるので、出す場合、yes を入力する
    • 未指定 もしくは no の場合、通常ログ
  9. 処理開始
  10. 処理が終了すると、解析結果JSONディレクトリパスと同階層に以下結果が出力される
    • {動画ファイル名}_json_{実行日時}_depth
      • depth.txt … 各関節位置の深度推定値リスト
      • message.log … 出力順番等、パラメーター指定情報の出力ログ
      • movie_depth.gif … 深度推定の合成アニメーションGIF
        • 白い点が関節位置として取得したポイントになる
      • depth/depth_0000000000xx.png … 各フレームの深度推定結果
      • ※複数人数のトレースを行った場合、全員分の深度情報が出力される
    • {動画ファイル名}_json_{実行日時}_index{0F目の左からの順番}
      • depth.txt … 該当人物の各関節位置の深度推定値リスト
  11. message.log に出力される情報
    • **05254F目の出力順番: [5254:1,0], 位置: {0: [552.915, 259.182], 1: [654.837, 268.902]}
      • 5254F目では、1, 0の順番に割り当てられた
        • 0番目に設定されている1は、[654.837, 268.902]の人物が推定された
        • 1番目に設定されている0は、[552.915, 259.182]の人物が推定された
      • このフレームの人物立ち位置が間違っている場合、[5254:0,1]を、順番指定リストに指定すると、5254Fの出力順番が反転される
    • ※※03329F目 順番指定あり [1, 0]
      • 3229F目を、順番指定リストで、[1,0]と指定してあり、それに準じて出力された
    • ※※04220F目 1番目の人物、下半身反転 [4220:1]
      • 4220F目を、反転フレームリストで指定してあり、かつ反転判定された場合に反転出力された

movie_depth.gif

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
8
Help us understand the problem. What are the problem?