MRが楽しい

MRやVRについて学習したことを書き残す

AzureKinectをBlenderから直接実行して点群データを取り込んでみた

本日は AzureKinect と Blender の調査枠です。
この記事は 3D Sensor Advent Calendar 2019 の8日目の記事になります。
qiita.com

今回はこれまで AzureKinect と Blender について学んだ技術を利用して、AzureKinectをBlenderから直接実行して点群データを取り込んでみます。
f:id:bluebirdofoz:20191208105811j:plain

AzureKinectをBlenderから直接実行する

自作のBlenderアドオンを作成し、AzureKinect の実行と点群データの取り込みを行う UI を追加しました。
実行方法は空の Blender プロジェクトを用意して、アドオンの[Capture]ボタンをクリックするだけです。
f:id:bluebirdofoz:20191208105847j:plain

すると PC に接続されている AzureKinect が実行され、以下の通り、キャプチャ結果の点群データが Blender に自動的に取り込まれます。
f:id:bluebirdofoz:20191208105914j:plain

斜めから見ると、こんな感じです。
死角の部分は粗くなっていますが、それ以外は綺麗に点群が読み込まれています。
メートルサイズに補正しているため、サイズ感も合っています。
f:id:bluebirdofoz:20191208110012j:plain

他のソフトを立ち上げることなく、3D編集ソフトに点群データを読み込めるため、点群を編集したい場合は便利……かもです。
以下は今回利用した技術要素です。

作成アドオンのスクリプトコード

今回作成した Python スクリプトを記述します。
以下の3つのスクリプトを作成しました。

__init__.py:アドオンの情報設定やUI/関数の登録を行う。アドオンは本スクリプトから実行される。
azure_kinect_capture.py:AzureKinectの操作を行う。AzureKinectSDKのサンプルをPythonモジュール化したもの。
ply_visualizer.py:点群の読み込みや表示を行う。Point Cloud Visualizerアドオンが必要。

f:id:bluebirdofoz:20191208110147j:plain

・__init__.py

・azure_kinect_capture.py

・ply_visualizer.py

BlenderからAzureKinectを実行する方法

Blender から AzureKinect を実行する方法には以下のサンプルプログラムの Python モジュール化の技術を利用しています。
bluebirdofoz.hatenablog.com

こちらの手順で作成した pyd ファイルと参照ライブラリを Blender アドオンの一部として利用しています。
f:id:bluebirdofoz:20191208110348j:plain

アドオンのインストールとパネルの表示

pyd ファイルを参照するアドオンの作成方法とインストール手順は以下により詳しく記事にしています。
bluebirdofoz.hatenablog.com

Blender の UI にパネルを追加する方法は以下の記事の手順を利用しています。
bluebirdofoz.hatenablog.com

点群データの表示

Blender で点群データを表示するため、Point Cloud Visualizer アドオンを利用しています。
本アドオンを利用することで点群の様々な表示や編集が行えるようになります。
以下の記事でアドオンの利用方法とインストール手順を紹介しています。
bluebirdofoz.hatenablog.com

最後に

明日の 3D Sensor Advent Calendar 2019 は @UnagiHuman さんの「Realsenseと再帰性反射材で簡易モーショントラッキングを作ってみた話をします」です。
qiita.com