この記事は【目次】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 のインストール
1. Downloads | Anaconda ページから、Python 3.6用(左側)のインストーラをダウンロードする。
※2/17現在、Python 3.7となっていますが、3.xならば大丈夫です。
※メアドの入力が求められますが、「No Thanks」でキャンセルできます。
2. 「Next >
」押下
3. 「I Agree
」押下
4. 「Just Me
」のチェックボックスのまま、「Next >
」押下
5. インストール先のパスを設定して、「Next >
」押下
6. オプションはそのままで、「Install
」押下
7. しばし待つ
8. 完了したら、「Next >
」押下
9. VSCode(コードエディタ)のインストールはお好きに。私は既に入っていたので、「Skip
」しました。
10. 「Finish
」押下
1.2. TensorFlow のインストール
1. スタートメニューから、「Aanaconda Prompt」を起動する
2. tensorflow 用環境を作成
※これは、他の開発環境と切り分けするための箱を作るようなものです。
「conda create -n tensorflow pip python=3.7
」
3. Proceed は 「y
」で実行継続
4. しばし待つ
5. tensorflow環境を有効化する
「activate tensorflow
」
6. tensorflow(CPU版 or GPU版)をインストールする
- CPU版:「
conda install tensorflow
」 - GPU版:「
conda install tensorflow-gpu
」※GPU版要件参照
7. しばし待つ
8. 完了したら、「python
」コマンド入力。「>>>
」と先頭に出ていたらOK。
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 の導入
1. miu200521358/FCRN-DepthPrediction-vmd のトップページから「Clone or Download
」>「Download ZIP
」を順に押下
2. ダウンロードした圧縮ファイルを、空白のないパス以下に解凍。私は以下に配置しました。
「C:\MMD\FCRN-DepthPrediction-vmd
」
3. モデルデータ の導入
1. 上記ディレクトリ>「tensorflow
」ディレクトリ>「data
」ディレクトリを作成する
2. tensorflow用モデルデータzip(.ckpt) をダウンロードする
3. ダウンロードした圧縮ファイルを解凍して、1. の「data
」ディレクトリ以下に配置する
「C:\MMD\FCRN-DepthPrediction-vmd\tensorflow\data
」
4. 必要ライブラリの導入
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
実行方法
- Openpose簡易起動バッチ で データを解析する
-
VideoToDepth.bat を実行する
- VideoToDepth_en.bat is in English. !! The logs remain in Japanese.
-
解析対象映像ファイルパス
が聞かれるので、動画のファイルフルパスを入力する -
解析結果JSONディレクトリパス
が聞かれるので、1.の結果ディレクトリパスを指定する-
{動画パス}/{動画ファイル名}_{実行年月日}/{動画ファイル名}_json
が対象ディレクトリパス
-
-
深度推定間隔
が聞かれるので、深度推定を行うフレームの間隔(整数のみ)を指定する- 指定された間隔ごとに深度推定を行う
- 未指定の場合、デフォルトで「10」とする
- 値が小さいほど細かく深度推定を行うが、その分処理が遅くなる
-
反転フレームリスト
が聞かれるので、Openposeが裏表を誤認識しているフレーム範囲を指定する。- ここで指定されたフレーム範囲内のみ、反転判定を行う。
-
10,20
のように、カンマで区切って複数フレーム指定可能。 -
10-15
のように、ハイフンで区切った場合、その範囲内のフレームが指定可能。
-
順番指定リスト
が聞かれるので、交差後に人物追跡が間違っている場合に、フレームNoと人物インデックスの順番を指定する。- 人物インデックスは、0F目の左から0番目、1番目、と数える。
-
[12:1,0]
と指定された場合、12F目は、画面左から、0F目の1番目、0F目の0番目と並び替える、とする。 -
[12-15:1,0]
と指定された場合、12~15F目の範囲で、1番目・0番目と並び替える。
-
詳細なログを出すか
聞かれるので、出す場合、yes
を入力する- 未指定 もしくは
no
の場合、通常ログ
- 未指定 もしくは
- 処理開始
- 処理が終了すると、
解析結果JSONディレクトリパス
と同階層に以下結果が出力される-
{動画ファイル名}_json_{実行日時}_depth
- depth.txt … 各関節位置の深度推定値リスト
- message.log … 出力順番等、パラメーター指定情報の出力ログ
- movie_depth.gif … 深度推定の合成アニメーションGIF
- 白い点が関節位置として取得したポイントになる
- depth/depth_0000000000xx.png … 各フレームの深度推定結果
- ※複数人数のトレースを行った場合、全員分の深度情報が出力される
-
{動画ファイル名}_json_{実行日時}_index{0F目の左からの順番}
- depth.txt … 該当人物の各関節位置の深度推定値リスト
-
- 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の出力順番が反転される
- 5254F目では、1, 0の順番に割り当てられた
- ※※03329F目 順番指定あり [1, 0]
- 3229F目を、
順番指定リスト
で、[1,0]と指定してあり、それに準じて出力された
- 3229F目を、
- ※※04220F目 1番目の人物、下半身反転 [4220:1]
- 4220F目を、
反転フレームリスト
で指定してあり、かつ反転判定された場合に反転出力された
- 4220F目を、
- **05254F目の出力順番: [5254:1,0], 位置: {0: [552.915, 259.182], 1: [654.837, 268.902]}