8.4K Views
May 13, 22
スライド概要
ホロラボカンファレンス 2022 「ホロラボ R&D チームの技術」のスライドです。
ホロラボカンファレンス 2022 イベントページ
https://hololab.connpass.com/event/241174/
ホロラボカンファレンス 2022 タイムテーブル
https://confengine.com/conferences/hololab-conference-2022/schedule/rich
ホロラボ R&D チームの技術
自己紹介 古田裕介 たるこす (@tarukosu) 株式会社ホロラボ Researcher 2
自己紹介 上吉川 大貴 (Kamiyoshikawa Hiroki) 株式会社ホロラボ ソフトウェアエンジニア Copyright© HoloLab Inc. 2022 All rights reserved 3
R&D チームの主な業務 • 技術調査、研究開発 • 社内ツールの開発 • 社内ライブラリの開発 • OSS 活動 • 社内勉強会の開催 • 受託開発、開発支援 Copyright© HoloLab Inc. 2022 All rights reserved 4
本日のセッションに含まれる部分 • 技術調査、研究開発 • 社内ツールの開発 • 社内ライブラリの開発 • OSS 活動 • 社内勉強会の開催 • 受託開発、開発支援 ← セッション後半 ← セッション前半 ← セッション前半 Copyright© HoloLab Inc. 2022 All rights reserved 5
目次 • 社内ライブラリ, OSS • HoloLabToolkit • PLATEAU データ活用 • IFC インポーター • 位置合わせライブラリ • Unity Editor 上でのAR アプリ動作確認ツール • 機械学習 • Project Spirare (社内の研究開発プロジェクト) • 概要 • Spirare Editor デモ • デモ動画紹介 • Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 6
目次 • 社内ライブラリ, OSS • HoloLabToolkit • PLATEAU データ活用 • IFC インポーター • 位置合わせライブラリ • Unity Editor 上でのAR アプリ動作確認ツール • 機械学習 • Project Spirare (社内の研究開発プロジェクト) • 概要 • Spirare Editor デモ • デモ動画紹介 • Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 7
社内ライブラリ, OSS Copyright© HoloLab Inc. 2022 All rights reserved 8
ライブラリ開発の目的 • 同じ時間をかけるならより良いものを作れるように • 同じものを作るならより短期間で作れるように アプリケーション固有のコード MRTK その他 ライブラリ ホロラボ製 ライブラリ Unity HoloLens 2 Copyright© HoloLab Inc. 2022 All rights reserved 9
HoloLab Toolkit Copyright© HoloLab Inc. 2022 All rights reserved 10
HoloLab Toolkit • 2019年6月から開発を開始 • Unity アプリケーション開発用 ライブラリ • 開発用ツール: 8種類 • アプリ用モジュール: 20種類 DocFX 製のドキュメントページ Copyright© HoloLab Inc. 2022 All rights reserved 11
HoloLab Toolkit • 開発用ツール(エディタ拡張)を使い 必要なモジュールをインポート • OSS モジュール: 17種類 • ホロラボ製モジュール: 38種類 • プロジェクトセットアップ機能: 5種類 Copyright© HoloLab Inc. 2022 All rights reserved 12
Toolkit の機能を組み合わせたデモアプリ Copyright© HoloLab Inc. 2022 All rights reserved 13
MRTK-Ja • MRTK-Unity の UI コンポーネントの日本語対応バージョン • https://github.com/HoloLabInc/MixedRealityToolkit-Unity-Ja Copyright© HoloLab Inc. 2022 All rights reserved 14
PLATEAU データ活用 Copyright© HoloLab Inc. 2022 All rights reserved 15
PLATEAU とは • 国土交通省が主導する 3D 都市モデルの整備・活用・ オープンデータ化プロジェクト • 地域により異なっているが、数種類のデータ形式で 都市モデルが公開されている • CityGML • 3D Tiles • FBX • OBJ PLATEAU VIEW Copyright© HoloLab Inc. 2022 All rights reserved 16
PLATEAU CityGML ファイルのインポート Copyright© HoloLab Inc. 2022 All rights reserved 17
PLATEAU CityGML ファイルのインポート 地域区分による色付け Copyright© HoloLab Inc. 2022 All rights reserved 建物と道の表示 18
CityGML インポートの仕組み • Unity の ScriptedImporter を利用 • Unity 標準でサポートされていない拡張子のファイルがプロジェクトにイン ポートされた際、C# スクリプトで定義したインポート処理を実行させられる CityGML C# でオブジェクトにパース Copyright© HoloLab Inc. 2022 All rights reserved Unity の Mesh や GameObject を生成 19
IFC インポーター Copyright© HoloLab Inc. 2022 All rights reserved 20
Unity 用 IFC インポーター • IFC (Industry Foundation Classes) とは • 建物などのモデルデータのためのオープンなフォーマット • Revit, ArchiCAD などの BIM ソフトウェアから出力できる • IFC ファイルを Unity プロジェクトにインポートして 表示できるライブラリを作成 Copyright© HoloLab Inc. 2022 All rights reserved 21
IFC ファイルのインポート Copyright© HoloLab Inc. 2022 All rights reserved 22
ドアの開閉 Copyright© HoloLab Inc. 2022 All rights reserved 23
属性情報の表示 Copyright© HoloLab Inc. 2022 All rights reserved 24
IFC インポートの仕組み • Unity の ScriptedImporter を利用 IFC C# でオブジェクトにパース (GeometryGymIFC を利用) Copyright© HoloLab Inc. 2022 All rights reserved Unity の Mesh や GameObject を生成 25
位置合わせライブラリ Copyright© HoloLab Inc. 2022 All rights reserved 26
HoloLens 用 Immersal ライブラリ https://github.com/HoloLabInc/HoloLab.Immersal Copyright© HoloLab Inc. 2022 All rights reserved 27
GNSS モジュールを利用した位置合わせ Copyright© HoloLab Inc. 2022 All rights reserved 28
Immersal を利用した屋外位置合わせ Copyright© HoloLab Inc. 2022 All rights reserved 29
Immersal によるデバイス地理座標の推定 地球中心 地球固定座標系 (ECEF) 事前に設定 マップ座標系 Immersal による ローカライズ デバイス位置 Unity を用いたマップ位置の設定 Copyright© HoloLab Inc. 2022 All rights reserved 30
Unity Editor 上での AR アプリ動作確認ツール Copyright© HoloLab Inc. 2022 All rights reserved 31
Editor 上での AR アプリの見た目確認 Copyright© HoloLab Inc. 2022 All rights reserved 32
Editor 再生時に Immersal で位置合わせ Copyright© HoloLab Inc. 2022 All rights reserved 33
機械学習 Copyright© HoloLab Inc. 2022 All rights reserved 34
TinyYOLOv2 での物体検出 Copyright© HoloLab Inc. 2022 All rights reserved 35
目次 • 社内ライブラリ, OSS • HoloLabToolkit • PLATEAU データ活用 • IFC インポーター • 位置合わせライブラリ • Unity Editor 上でのAR アプリ動作確認ツール • 機械学習 • Project Spirare (社内の研究開発プロジェクト) • 概要 • Spirare Editor デモ • デモ動画紹介 • Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 36
Project Spirare Copyright© HoloLab Inc. 2022 All rights reserved 37
Project Spirare とは AR コンテンツを記述するための汎用フォーマットを定義、 実装することを目指すプロジェクト • 特定のゲームエンジンやアプリケーションに非依存 • 実行時ロード • 3D モデル・画像などの配置 Copyright© HoloLab Inc. 2022 All rights reserved 38
コンテンツの記述 (poml) • 独自フォーマット • xml による宣言的なコンテンツ記述 • 画像、3Dモデルなどの要素 • 緯度経度による屋外配置 • 基準位置からの相対座標 による屋内配置 Web における html の役割を担う、 AR アプリにおけるコンテンツ記述汎用フォーマット Copyright© HoloLab Inc. 2022 All rights reserved 39
poml の構成要素
(例) 地理座標による屋外での位置合わせ
• <model> 要素
src に指定された3D モデル
(.glb) を表示
• <image> 要素
src に指定された画像
(.png/.jpg/etc...) を表示
• <placement> 要素
対象の要素の位置や方向を指定
• 地理座標情報 (屋外)
• 位置合わせなどの情報 (室内)
<model src="https://spiraresamplecontents.web.app/models/Dolphin.glb"
scale="2.8871,2.8871,2.8871">
<placement latitude="35.56245539083789"
longitude="139.71668882303538"
ellipsoidal-height="59.723061631433666"
enu-rotation="0,0,-0.2366683,0.9715906" />
</model>
<image src="https://hololab.co.jp/assets/img/about/about_logo.png">
<placement latitude="35.56245539083789"
longitude="139.71668882303538"
ellipsoidal-height="59.723061631433666"
enu-rotation="0,0,-0.2366683,0.9715906" />
</image>
屋内ではマップ原点からの相対位置で記述することも可能
Copyright© HoloLab Inc. 2022 All rights reserved
40
Unity での poml 作成とコンテンツ配置 Copyright© HoloLab Inc. 2022 All rights reserved 41
システム構成 Web サーバから poml を配信し、クライアントアプリで表示する Server Side Client Side Data PC Web Server poml mobile AR device Copyright© HoloLab Inc. 2022 All rights reserved 42
サーバーサイド • poml を配信 • React など Web アプリのフレームワークも利用可能 Client Side Server Side Data Web Server poml PC mobile AR device Copyright© HoloLab Inc. 2022 All rights reserved 43
クライアントサイド • poml を解釈してコンテンツを表示 • poml を解釈する任意のアプリで表示可能 Client Side Data Server Side Web Server poml PC mobile AR device Copyright© HoloLab Inc. 2022 All rights reserved 44
Spirare Editor • poml の作成機能と web サーバーの機能を一体化 • GUI で poml を編集、即時配信 • AR デバイスでリアルタイムに確認しつつ編集可能 (ビルド不要) Spirare Editor GUI Client Side Data PC poml Web Server Copyright© HoloLab Inc. 2022 All rights reserved mobile AR device 45
Spirare Editor デモ Spirare Editor デモ実演 (Vuforia Area Target による屋内配置) Copyright© HoloLab Inc. 2022 All rights reserved 46
Spirare Editor デモ Copyright© HoloLab Inc. 2022 All rights reserved 47
PLATEAU データを利用した屋外モデル配置 Copyright© HoloLab Inc. 2022 All rights reserved 48
kml からの poml の生成と表示 Copyright© HoloLab Inc. 2022 All rights reserved 49
複数のコンテンツの同時表示 Copyright© HoloLab Inc. 2022 All rights reserved 50
Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 51
Project Spirare が目指すもの • 汎用的な AR コンテンツのフォーマット定義 • 特定のゲームエンジンやアプリケーションに非依存 • 実行時ロード • 提供元が異なる複数のコンテンツを同時に表示可能 • AR のための Web のような仕組み Web ブラウザで Web ページを表示 Copyright© HoloLab Inc. 2022 All rights reserved 52
Project Spirare と WebAR • WebAR は Web ブラウザを使って AR アプリを実行する仕組み • Project Spirare は AR 用に設計された Web のような仕組み WebAR Project Spirare ・ Web ブラウザで表示可能 ・ poml フォーマットを解釈できるアプリケーションで表示可能 ・ コンテンツ作成には Web AR に対応したライブラリが 必要 ・ AR コンテンツをシンプルに記述できる ・ 複数コンテンツを同時に表示可能 ・ 複数コンテンツの同時表示はできない Copyright© HoloLab Inc. 2022 All rights reserved 53
これからの Project Spirare • 静的な AR コンテンツは 3Dモデル (glb) や画像ファイル (png/jpeg) で表現できる • 動的なコンテンツを作るにはスクリプトが必要 Unity で利用できるスクリプト (C#) Copyright© HoloLab Inc. 2022 All rights reserved 54
WebAssembly • Web ブラウザを含む様々な環境で動作可能なプログラム • WebAssembly からホストアプリケーションの関数を呼び出せる • ホストアプリケーションから WebAssembly の関数を呼び出せる Update (毎フレーム呼び出される) WebAssembly GetPosition (オブジェクト位置の取得) ホストアプリケーション (Spirare クライアントアプリ) SetPosition (オブジェクト位置を更新) Copyright© HoloLab Inc. 2022 All rights reserved WebAssembly ランタイム 55
WebAssembly の動作検証 Rust によるスクリプト Unity アプリケーション内での WebAssembly 動作検証 Copyright© HoloLab Inc. 2022 All rights reserved 56
本日のセッション内容 • 社内ライブラリ, OSS • HoloLabToolkit • PLATEAU データ活用 • IFC インポーター • 位置合わせライブラリ • Unity Editor 上でのAR アプリ動作確認ツール • 機械学習 • Project Spirare (社内の研究開発プロジェクト) • 概要 • Spirare Editor デモ • デモ動画紹介 • Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 57