ホロラボ R&D チームの技術(ホロラボカンファレンス 2022 発表スライド)

8K Views

May 13, 22

スライド概要

ホロラボカンファレンス 2022 「ホロラボ R&D チームの技術」のスライドです。

ホロラボカンファレンス 2022 イベントページ
https://hololab.connpass.com/event/241174/

ホロラボカンファレンス 2022 タイムテーブル
https://confengine.com/conferences/hololab-conference-2022/schedule/rich

profile-image

ホロラボです Unityを使用したHoloLensのアプリ開発を中心にしています。 最近では建設業でのBIMデータ、製造業でのCAD データ、空間の3Dスキャン(点群データやメッシュデータ)も扱っています。 物理世界とデジタル世界をどのように連携するか。ということを日々考えています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

ホロラボ R&D チームの技術

2.

自己紹介 古田裕介 たるこす (@tarukosu) 株式会社ホロラボ Researcher 2

3.

自己紹介 上吉川 大貴 (Kamiyoshikawa Hiroki) 株式会社ホロラボ ソフトウェアエンジニア Copyright© HoloLab Inc. 2022 All rights reserved 3

4.

R&D チームの主な業務 • 技術調査、研究開発 • 社内ツールの開発 • 社内ライブラリの開発 • OSS 活動 • 社内勉強会の開催 • 受託開発、開発支援 Copyright© HoloLab Inc. 2022 All rights reserved 4

5.

本日のセッションに含まれる部分 • 技術調査、研究開発 • 社内ツールの開発 • 社内ライブラリの開発 • OSS 活動 • 社内勉強会の開催 • 受託開発、開発支援 ← セッション後半 ← セッション前半 ← セッション前半 Copyright© HoloLab Inc. 2022 All rights reserved 5

6.

目次 • 社内ライブラリ, OSS • HoloLabToolkit • PLATEAU データ活用 • IFC インポーター • 位置合わせライブラリ • Unity Editor 上でのAR アプリ動作確認ツール • 機械学習 • Project Spirare (社内の研究開発プロジェクト) • 概要 • Spirare Editor デモ • デモ動画紹介 • Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 6

7.

目次 • 社内ライブラリ, OSS • HoloLabToolkit • PLATEAU データ活用 • IFC インポーター • 位置合わせライブラリ • Unity Editor 上でのAR アプリ動作確認ツール • 機械学習 • Project Spirare (社内の研究開発プロジェクト) • 概要 • Spirare Editor デモ • デモ動画紹介 • Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 7

8.

社内ライブラリ, OSS Copyright© HoloLab Inc. 2022 All rights reserved 8

9.

ライブラリ開発の目的 • 同じ時間をかけるならより良いものを作れるように • 同じものを作るならより短期間で作れるように アプリケーション固有のコード MRTK その他 ライブラリ ホロラボ製 ライブラリ Unity HoloLens 2 Copyright© HoloLab Inc. 2022 All rights reserved 9

10.

HoloLab Toolkit Copyright© HoloLab Inc. 2022 All rights reserved 10

11.

HoloLab Toolkit • 2019年6月から開発を開始 • Unity アプリケーション開発用 ライブラリ • 開発用ツール: 8種類 • アプリ用モジュール: 20種類 DocFX 製のドキュメントページ Copyright© HoloLab Inc. 2022 All rights reserved 11

12.

HoloLab Toolkit • 開発用ツール(エディタ拡張)を使い 必要なモジュールをインポート • OSS モジュール: 17種類 • ホロラボ製モジュール: 38種類 • プロジェクトセットアップ機能: 5種類 Copyright© HoloLab Inc. 2022 All rights reserved 12

13.

Toolkit の機能を組み合わせたデモアプリ Copyright© HoloLab Inc. 2022 All rights reserved 13

14.

MRTK-Ja • MRTK-Unity の UI コンポーネントの日本語対応バージョン • https://github.com/HoloLabInc/MixedRealityToolkit-Unity-Ja Copyright© HoloLab Inc. 2022 All rights reserved 14

15.

PLATEAU データ活用 Copyright© HoloLab Inc. 2022 All rights reserved 15

16.

PLATEAU とは • 国土交通省が主導する 3D 都市モデルの整備・活用・ オープンデータ化プロジェクト • 地域により異なっているが、数種類のデータ形式で 都市モデルが公開されている • CityGML • 3D Tiles • FBX • OBJ PLATEAU VIEW Copyright© HoloLab Inc. 2022 All rights reserved 16

17.

PLATEAU CityGML ファイルのインポート Copyright© HoloLab Inc. 2022 All rights reserved 17

18.

PLATEAU CityGML ファイルのインポート 地域区分による色付け Copyright© HoloLab Inc. 2022 All rights reserved 建物と道の表示 18

19.

CityGML インポートの仕組み • Unity の ScriptedImporter を利用 • Unity 標準でサポートされていない拡張子のファイルがプロジェクトにイン ポートされた際、C# スクリプトで定義したインポート処理を実行させられる CityGML C# でオブジェクトにパース Copyright© HoloLab Inc. 2022 All rights reserved Unity の Mesh や GameObject を生成 19

20.

IFC インポーター Copyright© HoloLab Inc. 2022 All rights reserved 20

21.

Unity 用 IFC インポーター • IFC (Industry Foundation Classes) とは • 建物などのモデルデータのためのオープンなフォーマット • Revit, ArchiCAD などの BIM ソフトウェアから出力できる • IFC ファイルを Unity プロジェクトにインポートして 表示できるライブラリを作成 Copyright© HoloLab Inc. 2022 All rights reserved 21

22.

IFC ファイルのインポート Copyright© HoloLab Inc. 2022 All rights reserved 22

23.

ドアの開閉 Copyright© HoloLab Inc. 2022 All rights reserved 23

24.

属性情報の表示 Copyright© HoloLab Inc. 2022 All rights reserved 24

25.

IFC インポートの仕組み • Unity の ScriptedImporter を利用 IFC C# でオブジェクトにパース (GeometryGymIFC を利用) Copyright© HoloLab Inc. 2022 All rights reserved Unity の Mesh や GameObject を生成 25

26.

位置合わせライブラリ Copyright© HoloLab Inc. 2022 All rights reserved 26

27.

HoloLens 用 Immersal ライブラリ https://github.com/HoloLabInc/HoloLab.Immersal Copyright© HoloLab Inc. 2022 All rights reserved 27

28.

GNSS モジュールを利用した位置合わせ Copyright© HoloLab Inc. 2022 All rights reserved 28

29.

Immersal を利用した屋外位置合わせ Copyright© HoloLab Inc. 2022 All rights reserved 29

30.

Immersal によるデバイス地理座標の推定 地球中心 地球固定座標系 (ECEF) 事前に設定 マップ座標系 Immersal による ローカライズ デバイス位置 Unity を用いたマップ位置の設定 Copyright© HoloLab Inc. 2022 All rights reserved 30

31.

Unity Editor 上での AR アプリ動作確認ツール Copyright© HoloLab Inc. 2022 All rights reserved 31

32.

Editor 上での AR アプリの見た目確認 Copyright© HoloLab Inc. 2022 All rights reserved 32

33.

Editor 再生時に Immersal で位置合わせ Copyright© HoloLab Inc. 2022 All rights reserved 33

34.

機械学習 Copyright© HoloLab Inc. 2022 All rights reserved 34

35.

TinyYOLOv2 での物体検出 Copyright© HoloLab Inc. 2022 All rights reserved 35

36.

目次 • 社内ライブラリ, OSS • HoloLabToolkit • PLATEAU データ活用 • IFC インポーター • 位置合わせライブラリ • Unity Editor 上でのAR アプリ動作確認ツール • 機械学習 • Project Spirare (社内の研究開発プロジェクト) • 概要 • Spirare Editor デモ • デモ動画紹介 • Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 36

37.

Project Spirare Copyright© HoloLab Inc. 2022 All rights reserved 37

38.

Project Spirare とは AR コンテンツを記述するための汎用フォーマットを定義、 実装することを目指すプロジェクト • 特定のゲームエンジンやアプリケーションに非依存 • 実行時ロード • 3D モデル・画像などの配置 Copyright© HoloLab Inc. 2022 All rights reserved 38

39.

コンテンツの記述 (poml) • 独自フォーマット • xml による宣言的なコンテンツ記述 • 画像、3Dモデルなどの要素 • 緯度経度による屋外配置 • 基準位置からの相対座標 による屋内配置 Web における html の役割を担う、 AR アプリにおけるコンテンツ記述汎用フォーマット Copyright© HoloLab Inc. 2022 All rights reserved 39

40.
[beta]
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

41.

Unity での poml 作成とコンテンツ配置 Copyright© HoloLab Inc. 2022 All rights reserved 41

42.

システム構成 Web サーバから poml を配信し、クライアントアプリで表示する Server Side Client Side Data PC Web Server poml mobile AR device Copyright© HoloLab Inc. 2022 All rights reserved 42

43.

サーバーサイド • poml を配信 • React など Web アプリのフレームワークも利用可能 Client Side Server Side Data Web Server poml PC mobile AR device Copyright© HoloLab Inc. 2022 All rights reserved 43

44.

クライアントサイド • poml を解釈してコンテンツを表示 • poml を解釈する任意のアプリで表示可能 Client Side Data Server Side Web Server poml PC mobile AR device Copyright© HoloLab Inc. 2022 All rights reserved 44

45.

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

46.

Spirare Editor デモ Spirare Editor デモ実演 (Vuforia Area Target による屋内配置) Copyright© HoloLab Inc. 2022 All rights reserved 46

47.

Spirare Editor デモ Copyright© HoloLab Inc. 2022 All rights reserved 47

48.

PLATEAU データを利用した屋外モデル配置 Copyright© HoloLab Inc. 2022 All rights reserved 48

49.

kml からの poml の生成と表示 Copyright© HoloLab Inc. 2022 All rights reserved 49

50.

複数のコンテンツの同時表示 Copyright© HoloLab Inc. 2022 All rights reserved 50

51.

Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 51

52.

Project Spirare が目指すもの • 汎用的な AR コンテンツのフォーマット定義 • 特定のゲームエンジンやアプリケーションに非依存 • 実行時ロード • 提供元が異なる複数のコンテンツを同時に表示可能 • AR のための Web のような仕組み Web ブラウザで Web ページを表示 Copyright© HoloLab Inc. 2022 All rights reserved 52

53.

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

54.

これからの Project Spirare • 静的な AR コンテンツは 3Dモデル (glb) や画像ファイル (png/jpeg) で表現できる • 動的なコンテンツを作るにはスクリプトが必要 Unity で利用できるスクリプト (C#) Copyright© HoloLab Inc. 2022 All rights reserved 54

55.

WebAssembly • Web ブラウザを含む様々な環境で動作可能なプログラム • WebAssembly からホストアプリケーションの関数を呼び出せる • ホストアプリケーションから WebAssembly の関数を呼び出せる Update (毎フレーム呼び出される) WebAssembly GetPosition (オブジェクト位置の取得) ホストアプリケーション (Spirare クライアントアプリ) SetPosition (オブジェクト位置を更新) Copyright© HoloLab Inc. 2022 All rights reserved WebAssembly ランタイム 55

56.

WebAssembly の動作検証 Rust によるスクリプト Unity アプリケーション内での WebAssembly 動作検証 Copyright© HoloLab Inc. 2022 All rights reserved 56

57.

本日のセッション内容 • 社内ライブラリ, OSS • HoloLabToolkit • PLATEAU データ活用 • IFC インポーター • 位置合わせライブラリ • Unity Editor 上でのAR アプリ動作確認ツール • 機械学習 • Project Spirare (社内の研究開発プロジェクト) • 概要 • Spirare Editor デモ • デモ動画紹介 • Project Spirare の今後 Copyright© HoloLab Inc. 2022 All rights reserved 57