18
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-02-14

三次元姿勢推定

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のリンクの変更が行われたので、修正を行いました。

18
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?