Advertisement

More Related Content

Slideshows for you(20)

Similar to Immersal を活用した AR クラウドなシステム開発とハンズオン!(18)

Advertisement

Recently uploaded(20)

Advertisement

Immersal を活用した AR クラウドなシステム開発とハンズオン!

  1. 1 Immersal を活用した AR クラウドな システム開発と ハンズオン! Nisho Matsushita | HoloLab Inc. | Magic Leap Ambassador | 2021/04/22 ARヒノボル @liketableteninu
  2. 2 AR クラウド? 00
  3. Hyper Reality, Keiichi Matsuda 3
  4. Magicverse, LEAPCon
  5. AR クラウドの構成要素 1. 現実空間のデジタルツイン ○ 静的な物体(建物など)や動的な物体(人や車など)のメッシュデータや各種センサから得ら れるリアルタイムな情報(天気、運行情報)など 2. 現実空間での自己位置推定 ○ GPSだけではなく、カメラなどのセンサから高精度に位置を特定する技術( VPSなど) 3. 現実空間へのデジタルコンテンツの配置、インタラクションと共有 ○ 同じ場所、時間に同じコンテンツを複数人で視聴、インタラクション 4. 現実空間に情報を重畳表示するディスプレイ ○ デジタルコンテンツを違和感なく現実に重畳させるためのデバイス ■ 各種スマートフォン、 ARグラスなど 参考: “ARKit and ARCore will not usher massive adoption of mobile AR”, Ori Inbar
  6. 6 Immersal とは 01
  7. The Immersal SDK lets you map large, real-world spaces and then augment them with digital content. These environments and scenarios can then be experienced by anyone on an AR-capable mobile device or with glasses. Map Augment Experience https://immersal.com/ より引用 7
  8. Immersal でできること ● 現実空間のスキャン(マッピング) ○ 広い屋外の空間でもスキャンができる(上限はある) ○ スキャンした空間のメッシュが作成できる ○ マップ作成アプリがストアで公開されている ● コンテンツの配置 ○ スキャンした空間のメッシュがダウンロードできる ○ メッシュを参照しつつコンテンツの配置、アプリ制作ができる ● 自己位置推定 ○ スキャンした空間内で自分のデバイスの位置情報を推定できる ○ スマホだけではなく、グラス型デバイスにも対応している 8
  9. AR クラウドから見た Immersal 1. △ 現実空間のデジタルツイン ○ 静的な物体(建物など) や動的な物体(人や車など)のメッシュデータや各種センサから得ら れるリアルタイムな情報(天気、運行情報)など 2. 〇 現実空間での自己位置推定 ○ GPSだけではなく、カメラなどのセンサから高精度に位置を特定する技術( VPSなど) 3. △ 現実空間へのデジタルコンテンツの配置、インタラクションと共有 ○ 同じ場所、時間に同じコンテンツを複数人で視聴、インタラクション 4. 現実空間に情報を重畳表示するディスプレイ ○ デジタルコンテンツを違和感なく現実に重畳させるためのデバイス ■ 各種スマートフォン、 ARグラスなど 参考: “ARKit and ARCore will not usher massive adoption of mobile AR”, Ori Inbar
  10. Immersal SDK の2つの API Immersal’s Cloud Service スキャン 済みマップ ①ここは どこ? ②自己位置 AR端末 Immersal’s Cloud Service スキャン 済みマップ ③自己位置 AR端末 ①マップ 欲しい ②マップ Core Plugin API REST API 10
  11. Immersal SDK の2つの API Immersal’s Cloud Service スキャン 済みマップ ①ここは どこ? ②自己位置 AR端末 Immersal’s Cloud Service スキャン 済みマップ ③自己位置 AR端末 ①マップ 欲しい ②マップ Core Plugin API REST API 11 On-device Localization On-server Localization
  12. プラットフォーム毎のサポート状況 プラットフォーム On-device Localization On-server Localization iOS 〇 〇 Android 〇 〇 Magic Leap 〇 〇 nreal 〇 〇 Huawei AR Engine 〇* 〇* その他カメラ付きデバイス - 〇* * 動作確認は行っていない
  13. 13 使い方入門 02
  14. マップ作成 14
  15. Mapper App ● スキャンしたい場所の写真を色々な方向から 接続的に撮影する ○ 写真上限 300 枚 ● 対象物によって最適な撮影方法が異なる ● 詳細は公式ドキュメントで ● 作成したマップをサーバにアップロードできる 15 撮影の良い例悪い例
  16. Automatic Mapping App ● カメラを向けてキャプチャをスタートすると自 動的に周辺情報を集めてくれる ○ 写真を手動でとる必要はない ● 撮影時に心がけることは同じ ● iOS は Test Flight、 Android は apk ● 制限* ○ 撮影枚数: 40 枚 ○ * Unity プロジェクトが公開されているので、値は調 整可能 ● 同一アプリで作成したマップで Localize を試 すことも可能
  17. スキャンしたマップ情報一覧( map id、緯度経度、マップデータ、空間メッシュ等) サーバとの通信に必要なトークン 17
  18. サーバで生成された空間メッシュ
  19. コンテンツ配置 19
  20. Unity プロジェクトで空間可視化 ● git にサンプルプロジェクトが用意されている ● ダウンロードした点群や空間メッシュは共通の原点が既に設定されている 20
  21. Unity プロジェクトでコンテンツ配置 ● 空間メッシュの下にコンテンツを配置すれば、空間を認識したときに想定通りの位 置に出現させられる 21
  22. 複数のマップ利用 22
  23. 複数のマップを利用する意味 ● Immersal のマップを作成する際に撮影できる上限枚数は 300 枚 a. 作成できるマップの範囲には限りがある ● 複数マップを利用することで、より広範囲で自己位置推定が可能になる 23
  24. 複数のマップの2つの利用方法 1. Unity プロジェクト内でマップ間の位置合わせを行う ○ 対象マップのメッシュを取得し、 Unity 上で手動で位置合わせ ○ 間隔で位置合わせするため、ずれが発生しやすい 2. developer ポータルで対象マップの結合 (Stiching) を行い、一つの巨大なマップを 使う ○ 対象マップを選択後、 Align maps を実行 ○ 結合が失敗する確率が高い(高度なフォトグラメトリ能力を要する) 24
  25. Unity での手動位置合わせ(点群のみ) 25
  26. Unity での手動位置合わせ(点群のみ) 26 人間には無理!!
  27. Unity での手動位置合わせ(メッシュ) 27
  28. Unity での手動位置合わせ(メッシュ) 28 なんとかなりそう...
  29. 実際に位置合わせした例 29 結合部分
  30. 注意点 30 ● 動かすのはメッシュファイル自体ではなく、親の AR Map ○ AR Map の transform が動いていることを確認 これ
  31. 自己位置推定 31
  32. 自己位置推定の流れ 1. 端末のカメラ画像をサーバに送信 2. サーバが端末のマップ内位置を特定 3. 端末にマップ内位置を送信 4. 端末とマップの位置関係に基づき、端末内の マップを再配置 5. 正しい位置にコンテンツが表示される 32 Immersal’s Cloud Service スキャン 済みマップ ①ここは どこ? ②自己位置 AR端末 REST API
  33. 自己位置推定前のコンテンツ表示 コンテンツが正しい位置に 表示されていない 現実の空間 空間の スキャンデータ とコンテンツ
  34. 自己位置推定後のコンテンツ表示 コンテンツが正しい位置に 表示される 現実の空間 空間の スキャンデータ とコンテンツ
  35. 地球上での 位置・方角 35
  36. 地球上での位置の取得方法 36 Y Z X 地球中心・地球固定座標系( ECEF) / 緯度、経度、高度(WGS84) Z X Y Cloud 座標系 PosMapToEcef PosEcefToWgs84
  37. 地球上での方角の取得方法 Z X Y Cloud 座標系 Y Z X 地球中心・地球固定座標系( ECEF) / 緯度、経度、高度(WGS84) CompassHeading デバイスの向き デバイスの方角
  38. 38 位置共有 03
  39. AR クラウドから見た Immersal 1. △ 現実空間のデジタルツイン ○ 静的な物体(建物など) や動的な物体(人や車など)のメッシュデータや各種センサから得ら れるリアルタイムな情報(天気、運行情報)など 2. 〇 現実空間での自己位置推定 ○ GPSだけではなく、カメラなどのセンサから高精度に位置を特定する技術( VPSなど) 3. △ 現実空間へのデジタルコンテンツの配置、インタラクションと共有 ○ 同じ場所、時間に同じコンテンツを複数人で視聴、インタラクション 4. 現実空間に情報を重畳表示するディスプレイ ○ デジタルコンテンツを違和感なく現実に重畳させるためのデバイス ■ 各種スマートフォン、 ARグラスなど 参考: “ARKit and ARCore will not usher massive adoption of mobile AR”, Ori Inbar
  40. AR クラウドから見た Immersal 1. △ 現実空間のデジタルツイン ○ 静的な物体(建物など) や動的な物体(人や車など)のメッシュデータや各種センサから得ら れるリアルタイムな情報(天気、運行情報)など 2. 〇 現実空間での自己位置推定 ○ GPSだけではなく、カメラなどのセンサから高精度に位置を特定する技術( VPSなど) 3. △ 現実空間へのデジタルコンテンツの配置、インタラクションと共有 ○ 同じ場所、時間に同じコンテンツを複数人で視聴、インタラクション 4. 現実空間に情報を重畳表示するディスプレイ ○ デジタルコンテンツを違和感なく現実に重畳させるためのデバイス ■ 各種スマートフォン、 ARグラスなど 参考: “ARKit and ARCore will not usher massive adoption of mobile AR”, Ori Inbar これも実現したい
  41. それぞれのデバイスで自己位置認識 建物周辺マップ CGのクジラ 現実の建物 Immersal’s Cloud Service ②自己位置 ①ここは どこ? Immersal’s Cloud Service ②自己位置 ①ここは どこ? Cloud での 位置認識完了!
  42. コンテンツを同じ位置で見られるようになる 建物周辺マップ CGのクジラ 現実の建物
  43. 片方のデバイスでコンテンツを移動すると? 建物周辺マップ CGのクジラ 現実の建物 動かす
  44. 片方のデバイスでコンテンツを移動すると? 建物周辺マップ CGのクジラ 現実の建物 別の位置に見えてしまう
  45. 片方のデバイスでコンテンツを移動すると? 建物周辺マップ CGのクジラ 現実の建物 原因: 位置共有がされていないから
  46. Immersal で登場する座標系 46 Y Z X Z X Y Cloud 座標系 空間に固有の座標系。 空間に紐づいたコンテンツを 配置するために必要。 Z X Y Tracker 座標系 デバイスに固有の座標系。 デバイス起動時の場所が原 点となる。 地球中心・地球固定座標系( ECEF) / 緯度、経度、高度(WGS84) 地球上での位置や方角が取 得できる
  47. どの座標系で位置を共有すればよいか ● Tracker 座標系 ○ デバイスごとに原点が異なるため、この座標でコンテンツ位置を共有すると、 同じ位置には出ない (1, 1, 1) (1, 1, 1) Z X Y Z X Y 共 有
  48. どの座標系で位置を共有すればよいか ● Cloud 座標系 ○ Cloud 座標系は空間に固有であるため、この座標で位置共有すると、自己位置推定が完了 しているデバイス間で、同じ位置に表示されるようになる Z X Y (1, 1, 1) 共 有 (1, 1, 1)
  49. 49 GMPとの 組み合わせで AR クラウドに 近づく 04
  50. Google Maps Platform Gaming Solution Google Mapのデータで現実世界を舞台にしたゲームを作成できる開発ツール ● できること ○ 世界中の3D化された建物、道路、ランドマーク、公園、川などのデータを利用できる ○ 3Dデータの Material は変更可
  51. Immersal と GMP を組み合わせる理由 建物のオクルージョン
  52. Immersal と GMP を組み合わせる理由
  53. Immersal と GMP を組み合わせる理由 オクルージョンなし 前に出てきてしまう
  54. Immersal と GMP を組み合わせる理由 オクルージョンあり 建物に隠れる!
  55. Immersal と GMP の組み合わせ方 ● GMP で3Dデータを表示させるには、緯度経度と範囲情報が必要 ● Immersal でスキャンした空間には緯度経度が紐づいている(※)ため、その値を利 用する。範囲は適当に ● ※ GPS は数m単位でのずれが発生してしまうので、そもそもスキャン時に紐づいた 緯度経度はずれている。空間原点と緯度経度をずれなく表示させるためには別途 オフセットが必要
  56. GMPの3Dデータによるオクルージョン オクルージョンマテリアル適用時 ※Immersal で自己位置推定済み デフォルトマテリアル適用時
  57. まとめ ● Immersal のような VPS の登場で、 AR クラウドが現実味を帯びてきた ● コンテンツやデバイスの共有の実装や、 GMP の組み合わせで、Immersal では不 足している部分はある程度補える ○ しかし実際は如何に世界規模にスケールさせるかを考えると、共有部分のデータの持ち方や通信 の仕方で改善しなくてはいけないところがたくさん ● AR クラウドの実現のためにみんなで頑張りましょう!
  58. 58 Hands-on
  59. 59 THANK YOU
Advertisement