Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
15
Help us understand the problem. What is going on with this article?
@Ah_

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で行うことが出来るようになりました。
自身でも動画を撮ってみて推定を行いましたが、とても制度が高かったです。

編集点

2020/05/02
作成者の方のgithubにおけるonnxのリンクの変更が行われたので、修正を行いました。

15
Help us understand the problem. What is going on with this article?
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
Ah_

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
15
Help us understand the problem. What is going on with this article?