EasyAR 疎空間マップ
EasyAR 疎空間マップ(Sparse Spatial Map)は、ユーザーの周囲の小規模な環境(部屋レベル)をスキャンし、環境の3次元視覚地図を生成し、視覚的ローカライゼーションとトラッキング機能を提供するために使用されます。持続化可能なARアプリケーションやマルチプレイヤーインタラクティブARアプリケーションの開発に適しています。
EasyAR 疎空間マップの原理
EasyAR 疎空間マップは、モーショントラッキングの基盤上で、デバイス側でコンピュータビジョンアルゴリズムを利用し、カメラデータの特徴を分析して環境の空間的3次元地図を構築します。ユーザーは視覚地図を保存したり、複数のデバイス間でリアルタイムに共有したりできます。他のデバイスが対応する地図をロードし、その地図内でローカライゼーションを通じてデバイスが地図に対する相対的な位置と姿勢を決定すると、持続化可能なARアプリケーションやマルチプレイヤーインタラクティブARアプリケーションを開発できます。
疎空間マップは現在、安定したモーショントラッキングシステム(例:EasyAR Motion Tracker、ARCore、ARKit)が、マッピング中およびローカライゼーション成功後の継続的なトラッキングのために6自由度の位置と姿勢を提供することを必要とします。マッピングプロセスでは、疎空間マップはカメラ画像と対応するポーズを利用して環境の1:1視覚地図を構築します。ローカライゼーション中、視覚的ローカライゼーションが成功すると、デバイスの地図に対する相対的な姿勢はモーショントラッキングシステムを通じて継続的に更新されます。
EasyAR 疎空間マップは複数の地図のロードをサポートし、複数の地図内でローカライズし、対応する地図のIDとデバイスがその地図に対する相対的な位置と姿勢を返します。

マッピングのベストプラクティス
疎空間マップを作成する際には、ユーザーがどこで、どの視点からローカライズを行うかを十分に考慮し、マッピングプロセスを最適化する必要があります。マッピング時には、観察角度や距離を含む、すべての潜在的なローカライゼーションビューポイントをカバーするように努めてください。
以下はマッピング効果を向上させるベストプラクティスです:
- スキャン対象のエリアやシーンに対して、並進運動またはゆっくりとした回転運動を行うようにしてください。
- ユーザーがローカライズする可能性のある位置をカバーするよう、可能な限り十分に移動しながらスキャンしてください。
- 視覚的特徴が豊富で安定しており、静止した領域でマッピングを行うようにしてください。
- 単一の地図の範囲は1000平方メートルを超えないようにしてください。
- マッピングデバイスからシーンまでの距離は10メートル未満に保ってください。
スキャンおよびマッピング時には以下の状況を避けてください:
- 白い壁など、視覚的特徴のない広大な領域でのマッピングを避けてください。
- ガラスや鏡面物体など、反射性素材の広大な領域でのマッピングを避けてください。
- 繰り返しパターンのテクスチャ領域でのマッピングを避けてください。
マッピング完了後、構築した疎空間マップ内でローカライゼーションをテストし、その成功率と精度を確認してください。効果が思わしくない場合は、より完全な地図を再構築することを検討してください。
ローカライゼーションのベストプラクティス
ユーザーが疎空間マップを利用したローカライゼーションの効果を確実にするため、以下のプラクティスに従うことで成功率を高め、ユーザーエクスペリエンスを向上させることができます。
- ユーザーを地図に対応するシーン内でローカライズするよう誘導してください。例えば、対象シーンのプレビュー画像を提供し、ユーザーが対象シーンを見つけるのを助けてください。
- ユーザーにデバイスをゆっくりと動かし、複数の角度からローカライゼーションを試みるよう促してください。
- 視覚的特徴のない領域、鏡面、繰り返しパターンのテクスチャを含む領域でのローカライゼーションを避けてください。
ローカライゼーション失敗の一般的な原因
ユーザーがローカライズしようとする環境が、マップ構築時の環境と大きく異なる場合、ローカライゼーションが失敗する可能性があります。例:
視点の変化 潜在的なローカライゼーション角度を可能な限りカバーするようにマッピングしてください。ローカライズ時の角度がマッピング時の最も近い角度と45°以上異なる場合、成功率は大幅に低下します。
照明の差異 マッピング時の照明とローカライゼーション時の照明が近い場合、成功率が最も高くなります。例えば、昼間にマッピングした後、真っ暗な夜間にローカライズしようとするのは避けてください。
距離の変化 マッピング時にはデバイスを動かし、異なる距離の位置をカバーしてください。例えば、対象から1メートル付近でマッピングした後、10メートル離れた場所でローカライズを試みると失敗しやすくなります。