2017年9月18日月曜日

Tokyo HoloLens ミートアップ vol.5 に参加

お疲れ様です。ZuQ9->Nnです。
2017/09/18(日) Tokyo HoloLens Meetup vol.5 が開催されたので参加しました。
場所は、日本マイクロソフト株式会社セミナールーム

イベントの詳細内容は、おそらくほかの方が詳しく、
わかりやすくまとめてくれると期待して。
今回は自分のLTについてのみです。
前から気になっていた椅子の検知にチャレンジ です。


なんとかサンプルが実機でも動きました。

今回はプロジェクトもGitHubに公開しましたので、参考にしてください。
ZuQ9Nn/ChairDetection
LTは残念ながら5分をオーバーしてしまいました。。orz..
プレゼンや動画の操作に戸惑いましたね。。事前に準備はしてたつもりでしたが
まだまだ努力も必要だったようです。

LTではいきなりコードを出してしまい詳細な説明しきれなかった、
椅子の定義について。ポイントは下記の部分です。

SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_SurfaceHeight_Between(0.25f, 0.6f),
...
SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_RectangleLength_Between(0.1f, 0.5f),
SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_RectangleWidth_Between(0.1f, 0.4f),
こんな感じで図解すると多少はわかりやすいでしょうか? ?(;^_^A アセアセ・・・


UnityでのScaleの1は、HoloLensで見て現実世界の1m
つまり幅が0.1m~0.4m、長さが0.1m~0.5m、床からの高さが0.25m~0.6mの
条件に当てはまった矩形を椅子として扱う感じです。

GitHubでのサンプルプロジェクトはUnityだけでも動くように作っています。
こんな感じで実行した後、ゲームシーンでマウスをぐりぐりと動かして
空間情報を読み込んでみてください。ある程度読み込むとユニティちゃんがでてきます。


結構時間がかかりますので、面倒な方は、
ChairDetection.csのpublicのプロパティ
Min Area For Complete、Min Horiz Area For Complete、Min Wall Area For Completeの値を
小さくしてみてください。実機ではある程度空間情報が必要ですが
Unity上ではそれぞれの値を半分くらいにしても大丈夫だと思います。
SpatialUnderstandingのサンプルは、全部の機能がてんこ盛りにされているため
逆に、やりたいことだけを抜き出すのにかなり苦労します。
今回、かなりコードが短くできたので
他の開発者さんの理解の助けになれば幸いです。