今回は、TensorlFlow の OpenPoseのサンプルプログラムでモーションキャプチャをやってみます。
こんにちは cedro です。
モーションキャプチャってご存知ですか。モーションキャプチャとは、人物や物体の動きをデジタル的に記録する技術です。

以前は、写真の様にマーカーを取り付けた専用スーツを着て複数のカメラで撮影し、三角測量の原理でそれぞれのマーカーまでの距離を計算することで、位置と姿勢を記録していました。
その後、マーカースーツを着なくても専用の3Dカメラで撮影することによって出来る様になり、昨年には、普通のカメラ映像からディープラーニングを使ってモーションキャプチャができるところまで進歩しています。
今回は、こないだ MacbookAir にインストールした TensorlFlow を使って、OpenPoseのサンプルプログラムで、モーションキャプチャをやってみます。
サンプルプログラムの準備
Github からプログラムをダウンロードします。
1 2 3 |
pip install -r requirements.txt |
tf-pose-estimation フォルダーに移動し、ライブラリをインストールします。
1 2 3 |
conda install swig |
続けて、swig をインストールします。
1 2 3 4 |
cd tf_pose/pafprocess swig -python -c++ pafprocess.i && python3 setup.py build_ext --inplace |
tf_pose/parfprocess フォルダーに移動し、C++のライブラリーをビルドします。
1 2 3 |
python setup.py install |
tf-pose-estimation フォルダーに戻り、パッケージをインストールします。
1 2 3 4 |
cd models/graph/cmu bash download.sh |
models/graph/cmu フォルダーに移動し、モデルファイルをダウンロードします。
1 2 3 |
python run.py --model=mobilenet_thin --resize=432x368 --image=./images/p2.jpg |
tf-pose-estimation フォルダーに戻り、上記コマンドでサンプル画像のモーションキャプチャを実行します。

見事に2人の人物のモーションキャプチャができていますね。
1 2 3 |
python run_webcam.py --model=mobilenet_thin --resize=432x368 --camera=0 |
そして、上記コマンドを入力すると、MacbookAir の内蔵カメラで、リアルタイムのモーションキャプチャができます。

かなりカクカクしますが、なんとCPUだけで、リアルタイムモーションキャプチャができてしまいます。凄い!
色々やってみます
1 2 3 4 5 6 7 |
fig = plt.figure() a = fig.add_subplot(2, 2, 1) a.set_title('Result') plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) cv2.imwrite('./pic.jpg', image) ### 画像を保存 |

そうすると、こんな感じで画像を保存できる様になります。それでは、色々やってみます。

メッシ!

オグシオ!

パフューム!

アン・シネ!

女子高生のダンスグループ!

最後に、Kayaの恋ダンス を静止画で切り出してモーションキャプチャし、GIF動画にしてみました。
では、また。
はじめまして、私は近畿大学の学生です。
今卒業研究でOpenPoseについて学んでいますがインストールして動かすこともできません。
もしよろしければインストール方法、簡単な操作の仕方を教えていただけますでしょうか。
連絡お持ちしています。
えりさん
コメントありがとうございます!
えりさんがインストールしたいのは、このブログにある様なライトなCPUバージョンではなく、GPUを使った本格的なやつですね。例えば、CMU-Perceptual-Computing-Lab/openpose とか。
確かに、このレベルになると、インストールはかなりヘビーで半日がかりかもしれません。
機会があれば、そのインストールも記事にしたいと思いますが、とりあえずは下記のリンクを参考にトライしてみて下さい。
https://qiita.com/kinkin0204/items/5db5c2b06c258c9adec9