Mega と ARKit/ARCore の機能比較
EasyAR Mega は Apple の ARKit および Google の ARCore と関連がありながら、異なる点もあります。それらの関係とそれぞれの利点を理解することは、開発者が Mega の動作メカニズムを把握するうえで非常に重要です。簡単に言えば、Mega は ARKit/ARCore の motion tracking 能力を十分に活用しつつ、ARKit/ARCore では満たせない large-scale spatial localization のニーズを拡張します。
中核的な関係
ARKit/ARCore (基盤レイヤー):
- これらはデバイスの OS (iOS/Android) が提供する AR development frameworks です。
- 中核的な役割は、デバイスレベル の environment perception と tracking です。たとえば、デバイス camera と IMU を利用して simultaneous localization and mapping (SLAM)、plane detection、lighting estimation、image/object recognition などを実現します。
- 上位アプリケーションに、安定した低遅延の 6DoF pose data stream を提供します。
EasyAR Mega (アプリケーション/プラットフォームレイヤー):
- これは 超大規模空間コンピューティングプラットフォーム です。
- 中核的な役割は、事前に構築された高精度 3D データと先進的な visual localization 技術を組み合わせ、都市スケール、センチメートル級 の persistent localization を実現することです。ARKit/ARCore が提供する基盤 6DoF データを利用して fused motion tracking を実現します。
- Mega は ARKit/ARCore を置き換えるものではありません。むしろ、それらを利用して物理世界におけるデバイスの初期運動データを取得し、そのデータを Mega マップと照合して、統一された高精度な座標系に「アンカー」します。
機能比較と Mega の利点
ARKit/ARCore も、ARKit の ARWorldMap や ARCore の Cloud Anchors/Geospatial API など、一定の spatial recognition と localization 能力を提供しています。これらの機能は Mega が提供する ultra-large-scale spatial localization 能力と一部似ていますが、根本的に異なります。以下は詳細な技術比較です。
| 機能 | ARWorldMap | Cloud Anchors/Geospatial API | EasyAR Mega |
|---|---|---|---|
| Localization 範囲 | 周辺環境をスキャンして localization 可能 | 周辺環境をスキャンして localization 可能 | 都市級の空間環境をスキャンして localization 可能 |
| Localization 特性 | 環境変化に対応可能 | 環境変化に対応可能 | 環境変化や昼夜の変化に対応可能 |
| Map 構築 | デバイス側で収集・構築し、local area network で共有 | デバイス側で収集・構築し、Google Cloud にホストされた endpoints で共有 | 専用デバイスで収集して cloud で構築し、cloud localization services を通じて任意のデバイス端で共有 |
| Virtual-real occlusion | LiDAR でスキャンした Mesh による geometric occlusion | Depth API による depth ベースの occlusion | LOD と豊富な詳細を持つ 3D モデルを提供し、正確な geometric occlusion を実現 |
| クロスデバイス体験 | iOS デバイス間でのみ共有と体験をサポート | Google Cloud endpoints により Android と iOS デバイス間で共有と体験を実現 | 統一 cloud localization services または on-device deployment により、ほぼすべてのデバイス (Android、iOS、XR headsets) 間で共有と体験を実現 |
| 技術依存 | ARKit 搭載デバイスでのみ動作し、一部機能には追加の hardware または software 要件 (LiDAR など) がある | ARKit、ARCore 搭載デバイスで動作 | 幅広いデバイスと互換性があり、ARKit または ARCore の搭載を必須要件としない |
ARKit/ARCore と同時に使用する
EasyAR Mega を統合する際、通常は ARKit または ARCore の API を直接呼び出す必要はありません。これは非常に重要な概念です。
- Mega アプリケーションは、実行端末に応じて利用可能な ARKit/ARCore の 6DoF data stream を自動的に取得します。
- localization services の管理と pose data の取得には、統一された
MegaTrackerまたはMegaGoTrackerAPI を使用するだけです。内部では ARKit/ARCore の raw data が自動的に融合計算され、最終的に統一された高精度で継続 tracking される spatial localization 結果を提供します。 - この設計により、開発プロセスが大幅に簡素化されます。異なるプラットフォーム向けに 2 セットのコードを書いて保守する必要も、ARKit/ARCore の複雑な API を深く理解する必要もありません。EasyAR Mega の機能を使ってアプリケーションロジックを構築することに集中できます。
ヒント
例外: Mega localization を使用しながら、ARKit の People Occlusion など ARKit/ARCore の特定機能も利用したい場合は、アプリケーション内で native API を組み合わせて呼び出す必要がある場合があります。
EasyAR Mega は ARKit/ARCore と競合したり置き換えたりするものではなく、相互補完し協調するものです。ARKit/ARCore は「デバイスが環境内でどのように動くか」という問題を解決し、EasyAR Mega は「すべてのデバイスが同じ巨大空間内でどのように正確に localization するか」という問題を解決します。両者を組み合わせることで、大規模空間共有と persistent localization 能力を備えた、これまでにない AR アプリケーションを構築できます。