Help us understand the problem. What is going on with this article?

3次元姿勢推定の導入方法

三次元姿勢推定

Twitterにおいてこの方@yukihiko_aのツイートを拝見し、自分のPCでやってみた際の導入方法について説明します。

自身のPCの環境

CPU : Ryzen 7 1700
GPU : GeForce GTX1070
メモリ : 16GB
において実際において三次元姿勢推定を行いました。

導入方法

英語での導入方法に関しては以下のgithubのREADME.mdにおいて詳しく説明していただいています。
なので、今回は日本語での説明及び、自分の環境においてつまずいた点を記載したいと思います。


パフォーマンスのレポートとして以下のようになっています。
GeForce RTX2060 SUPER ⇒ About 30 FPS
GeForce GTX1070 ⇒ About 20 FPS
(GithubにおけるプロジェクトのREADME.mdに記載されていました。)

必要なプロジェクト及びファイルのダウンロード

  1. githubから自身のPCにプロジェクトのダウンロードももしくはクローンを行います。Githubのリンク

  2. 次にonnxを以下のURLをクリックすることによってダウンロードを行います。
     onnx

Unity側での設定

  1. Unity Editorを用いてUnityのプロジェクトを開きます。そして、Unityにおいて/Assets/Scripts/Model/ の位置に先ほどダウンロードを行ったonnx ファイルを置きます(画像の位置)。この作業によって自動的にNNModel Typeへの変換も自動的に行なわれます。
    unity Model 保存場所.png

  2. そして、Sceneフォルダの中にあるSampleSceneを開きます。その際にダイアログが表示されたら"Don't save"を選択してください。

  3. モデルの設定を行います。先ほどAssets/Scripts/Model/の位置に置いたNNNModelをGameobjectの"BarracudaRunner"におけるInspector viewの中のNN Model に置きます。(Unity側での作業1における画像の右側)
    コメント 2020-02-14 150734.pngコメント 2020-02-14 150720.png

4.デバックを行うことによって実際に三次元姿勢推定を行うことが出来ます。

動画の変更

Unityのプロジェクト内のAssets/Video/から動画を選択してHierarchyのVideo Player内のVideo Clipに置くことによって推定を行う動画の変更も行うことが出来ます。
コメント 2020-02-14 154140.png
コメント 2020-02-14 153946.pngコメント 2020-02-14 153959.png

ウェブカメラを用いる方法

MainTexrureのVideo Captureにおける"Use Web Cam"にチェックを入れることによってWebカメラを用いたリアルタイムでの推定を行うことが出来ます。
コメント 2020-02-14 154349.pngコメント 2020-02-14 154336.png

アバターの変更方法について

まず二種類のアバターが前もって用意されています。それらのアバターをinspector viewを用いて簡単に変更を行うことが出来ます。
1. まずゲームオブジェクト内の"Tait"ををactivateします。GameObjectの"Tait"のinspector viewにおける"Tait"の横にチェックマークを有効にします。
Tait.png
2. 現在activeになっているunitychanをdeactiveにします。GameObjectの"unitychan"のInspector viewにおける"unitychan"の横のチェックマークを外します。
unitychan.png

3.最後に、ゲームオブジェクトの"BarracudaRunner"におけるInspector viewの"V Nect Model"に対して先ほどactiveにしたGameObjectの"Tait"を置きます。
Tait put.png

自身の環境においてはこれで実行を押すとアバターが映らず、動画のみが流れるという状況になりました。
その際に以下のようにしてアバターも表示させました。
まず、"Tait"アバターのPositionを確認します。自身の環境では次のようになっていました。
Tait pos.png
そのため、Positionの値をunitychanのPositionと同じ値にしました。(x=0,y=0,z=0にしました)
tait pos2.png
この状態で実行することでちゃんと画面にアバターが表示されました。

自分がつまづいた点について

今回自分の環境において導入する際に少しつまづいた点として挙げられるのが、Unityのバージョンについてです。
自分の使っていたバージョンでは、動作することが出来ませんした。
今回のプロジェクトに合わせて、Unity 2019.2.12f1を用いることによって導入することが出来るようになりました。

まとめ

Webカメラや動画を用いた三次元姿勢推定をPC及びUnityで行うことが出来るようになりました。
自身でも動画を撮ってみて推定を行いましたが、とても制度が高かったです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした