公開日: 最終更新日:

OpenPose for Unity で人の動きを二次元に落とし込む

関連記事

Ubuntu18.10にopenposeをインストール(環境構築)
 OpenPoseのJSON形式をCSVに変換する

前提条件および目的

上記のようにOpenPoseがインストールされている状態が前提.

この記事が参考になる

【2019.4最新】UnityでOpenPoseが使えるまでのインストール(約2時間)

今回はWindows 10での環境となる.Ubuntu(Linux)向けのUnityは試験的なものであるっぽいので今回は試していない.

今回の目的はOpenPose for Unity を使ってUnityで動画の解析を行い,二次元的な棒人間を表示させ,それのGIFを手に入れる

このような棒人間のGIFを手に入れる

WindowsへのUnityインストール

普通にUnityのサイトからインストールした.

ただ,この際にバージョンの指定があるので注意.

openpose unity plugin のドキュメントをきちんと読めば書いてあるが,2019/09/15現在ではUnityのバージョンは  2018.3, 2018.4 が対応になっている.2019の最新版では動かなかったので注意.

OpenPose Unity Plugin のインストール

GitHubのページからcloneしてくる.

……と書きたいところだが,2019/06/24現在ではそれがうまくいかない.batファイルを実行すると学習データがダウンロードされる仕様になっているはずが,リンク切れなのかダウンロードされずうまく動かない.

冒頭にも書いた 【2019.4最新】UnityでOpenPoseが使えるまでのインストール(約2時間) のページの下の方にOneDriveのデータが上がっているのでそちらを拝借した.最新版ではないが,こちらは確実に動く.

2019/09/15現在はModels.batのバグが修正され,正常に学習データがダウンロードできるようになっている.普通にGithubのデータをcloneし,plugins.batとmodels.batを実行すれば良い.

起動

こんな感じのスタートアップ画面が出てくる(すでに2018.4.2f1をインストール済み)ので右上のOpenを押す

最新のUnity Hubでは若干これと画面が異なるが,Openprojectからフォルダを選択してやれば良い.

masterの下にあるOpenPosePluginのフォルダを選択して開く.

しばらく待つと次のような画面が出る.

それで下半分にあるProjectタブをクリックし,ディレクトリの中のScenesをクリック.

そこからDemoをダブルクリック.

そして左上のHierarchyタブのOpenPoseをクリック

すると右側がこのようになる

若干すでにパラメータをいじってある

これを基本的にいじっていくことになる.

OpenPose for Unity plugin を試す

ここからが本題.

先の画像のパラメータを基本的にいじっていけばいい.

WebCameraでのデモはいろいろ行われているが,動画ファイルからこれを行っている例が見当たらなかったので今回はInput typeはVideo(mp4)で行う.

実際行うときは手元にWebCameraがあるならば手軽に試せるのでWebcamのまま実行してみると良い.これで出来なかったら設定がうまくいっていないのでもう一度手順やドキュメントをよく読むべし.

さて,Videoから読み込む方法だが,まずInspectorタブの Input TypeWebcamからVideoに変更する.

次にその下にある Producer String に解析対象の動画ファイルの絶対パスを入力する.

これだけで基本的にVideoからOpenposeを試すことができる.(このやり方にかなりの時間を費やした……)

Max Peopleは画面に映る最大人数を予め入力しておくことによって誤検知を減らすことができる上に軽くなる.

Hand や Face Enabled は顔や手の指の検知を行うかどうか.チェックを入れると検知するようになる(重いが).

Render Backgrounds Image は元の動画を表示するかどうか.チェックを外すと灰色の背景に棒人間が浮かび上がっているだけの動画が表示される.

あとは自分の欲しいままのパラメータを設定して画面中央上部の再生ボタン(実行ボタン)をクリック.

これでとりあえずは実行できるはずだ.

実行結果を出力(録画)する

このPluginは出力機能がまだついていない(アルファ版なのでまだ開発途中).

そこでUnityのアセットで出力画面を録画するというものを使う.

https://assetstore.unity.com/packages/essentials/unity-recorder-94079

こちらのアセットをインストールし,実行.

かなり重くなるが,録画できる.

保存先はOpenPosePluginフォルダの下,Recordingsというフォルダの中.

これにてとりあえずOpenpose Unity Plugin を試すことができた.

3件のコメント

  1. ピンバック:Ubuntu18.10にopenposeをインストール(環境構築) - Kim Biology & Informatics

  2. ピンバック:【Python】GPyでガウス過程回帰と予測をやってみる - Kim Biology & Informatics

  3. ピンバック:OpenPoseのJson形式をCSVに変換する - Kim Biology & Informatics

コメントを残す

メールアドレスが公開されることはありません。