モーショントレースプログラムOpenPoseで遊んでみる
表題の通り。オタク界隈御用達のMMD関係だと結構有名みたいで、Github上で開発が進んでいるモーショントレースするためのプログラムでかなり精度が高く、ドキュメントを読むと3D情報まで処理できるみたいです。
また、MMDで扱うための情報が大量にあるため、それらを参考に個人用のツールに使っていきたいと考えていますよ!!
windows準拠で作業を進めていこうと思います。
openposeのGithub
導入参考。ちょっと情報が古いので公式のreadmeも読み進めつつ。
ここからダウンロードできます。CPU版とGPU版があって、推奨されているのはGPU版ですね。私はおすすめされたものをそのまま入れます。
quiitaの導入記事では色々なものが必要とありますが、公式readmeでは特になにも言及されていないので、早速実行してみようと思います。exampleには様々な動画、画像が含まれているのが確認できます。これでテストできるんですね。ふむふむ。
cmdでファイルをダウンロードした場所に移動して、デモのコマンドを実行します。
D:
cd D:\download\openpose-1.6.0-binaries-win64-gpu-python-flir-3d_recommended\openpose
bin\OpenPoseDemo.exe --video examples\media\video.avi
ずらずらずらっとメッセージが出てきます。できたのかな?
Error occurred on a thread. OpenPose closed all its threads and then propagated the error to the main thread. Error description:
Caffe trained model file not found: models\pose/body_25/pose_iter_584000.caffemodel.
Possible causes:
1. Not downloading the OpenPose trained models.
2. Not running OpenPose from the same directory where the `model` folder is located.
3. Using paths with spaces.
エラーが出ました。モデルがねえよ!? って言われてます。指定されたディレクトリにいくと確かにない。なるほど? modelsディレクトリにあるgetModels.batを起動ししばらくまちます。
ファイルがダウンロードされてきました。こいつを使うのね。座して待ちます。
再度実行。
おお・・??おおーできてますできてます。すごーい。私のPCでモーショントレースができてるう!!
おもろいっすねえこれ!!
私の環境では特に問題なさそうです。このままこのdemo.exeを使って作業していこうと思います。各種フラグはgithubに乗っています。さっと見た感じjson保存だけで良い・・・かな? 他のもやると重たくなりそうだし。
出力するとyml形式とか色々出てくる。
これを解析するのだな?なるほど?
---
pose_0: !!opencv-matrix
rows: 1
cols: 25
dt: "3f"
data: [ 3.68689209e+02, 2.00991013e+02, 9.10846174e-01,
3.70117767e+02, 2.32336899e+02, 9.61018503e-01, 3.43468842e+02,
2.32402679e+02, 8.85421157e-01, 3.34145416e+02, 2.90272400e+02,
8.59988809e-01, 3.27911835e+02, 3.31018158e+02, 8.90977025e-01,
3.96801849e+02, 2.32282166e+02, 9.08751070e-01, 4.06222839e+02,
2.85587494e+02, 8.81238580e-01, 4.17165710e+02, 3.29440704e+02,
8.69094312e-01, 3.70203888e+02, 3.29421722e+02, 7.92353392e-01,
3.54509155e+02, 3.29433929e+02, 7.54691541e-01, 3.57728607e+02,
4.04673126e+02, 8.95295143e-01, 3.59206329e+02, 4.71991333e+02,
8.63932788e-01, 3.90506683e+02, 3.29433685e+02, 7.30214775e-01,
3.81196899e+02, 4.06160187e+02, 9.42360282e-01, 3.78041565e+02,
4.72022736e+02, 8.23188961e-01, 3.63896454e+02, 1.94693024e+02,
9.06506717e-01, 3.73359009e+02, 1.93232422e+02, 8.96408200e-01,
3.54527863e+02, 1.94669861e+02, 7.81982243e-01, 3.82757874e+02,
1.93160629e+02, 8.39485645e-01, 3.73342438e+02, 4.90814941e+02,
7.06135571e-01, 3.82725800e+02, 4.87694916e+02, 7.70759284e-01,
3.74887726e+02, 4.79832184e+02, 6.08104110e-01, 3.63920166e+02,
4.90796631e+02, 7.64472485e-01, 3.56046997e+02, 4.89225708e+02,
7.60732114e-01, 3.62343964e+02, 4.79815765e+02, 6.78032279e-01 ]
試しに1つ開いてみる。おっふ。
・・・・おっふ。ちょっとよくわからないですねえ。誰か解説してれませんか。ちょっと間違えてたのでjsonで出力。よし。
nこういうのは先人がいるもの。ありがとう!!
なんとなくわかった!!rubyでこりこりやってみます。プログラムに大切あなのは・・・フィーリング!!!
この際前から気になってたelectronでアプリ化して使おうかなあ。画像表示とかもできそうだし。しばらく試行錯誤しそうなのでnote分けようと思います。ではな!!!
この記事が気に入ったらサポートをしてみませんか?