cedro-blog

TensorFlow OpenPose でモーションキャプチャをやってみる

今回は、TensorlFlow の OpenPoseのサンプルプログラムでモーションキャプチャをやってみます。

こんにちは cedro です。

モーションキャプチャってご存知ですか。モーションキャプチャとは、人物や物体の動きをデジタル的に記録する技術です。

以前は、写真の様にマーカーを取り付けた専用スーツを着て複数のカメラで撮影し、三角測量の原理でそれぞれのマーカーまでの距離を計算することで、位置と姿勢を記録していました。

その後、マーカースーツを着なくても専用の3Dカメラで撮影することによって出来る様になり、昨年には、普通のカメラ映像からディープラーニングを使ってモーションキャプチャができるところまで進歩しています。

今回は、こないだ MacbookAir にインストールした TensorlFlow を使って、OpenPoseのサンプルプログラムで、モーションキャプチャをやってみます。

サンプルプログラムの準備

Github からプログラムをダウンロードします。

tf-pose-estimation フォルダーに移動し、ライブラリをインストールします。

続けて、swig をインストールします。

tf_pose/parfprocess フォルダーに移動し、C++のライブラリーをビルドします。

tf-pose-estimation フォルダーに戻り、パッケージをインストールします。

models/graph/cmu フォルダーに移動し、モデルファイルをダウンロードします。

tf-pose-estimation フォルダーに戻り、上記コマンドでサンプル画像のモーションキャプチャを実行します。

見事に2人の人物のモーションキャプチャができていますね。

 

そして、上記コマンドを入力すると、MacbookAir の内蔵カメラで、リアルタイムのモーションキャプチャができます。

 

かなりカクカクしますが、なんとCPUだけで、リアルタイムモーションキャプチャができてしまいます。凄い!

 

色々やってみます

せっかく生成した画像は単独で保存したいので、run.py58行目にコードを追加します。これで、pic.jpgというファイル名で保存されます。

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

 

メッシ!

 

オグシオ!

 

パフューム!

アン・シネ!

 

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

 

 

最後に、Kayaの恋ダンス を静止画で切り出してモーションキャプチャし、GIF動画にしてみました。

では、また。