EasyAR 平面検出
EasyAR 平面検出は、EasyAR モーショントラッキングを実行する際に、環境中の水平面を自動的に検出し、仮想物体の配置などの機能を提供します。
EasyAR 平面検出の原理
EasyAR 平面検出(Plane Detection)は、EasyAR モーショントラッキング(Motion Tracker)の実行中に同期して自動的に行われる、簡単な環境理解機能です。システムは、デバイスのカメラと慣性センサーから取得した時空間情報に基づいて、実環境を連続的にモデリングし、環境中の水平面を識別して追跡し、仮想物体の配置、インタラクションの位置合わせ、空間理解に基本的なサポートを提供します。

具体的な流れは以下の通りです。
モーショントラッキング
モーショントラッキングの実行中、EasyAR は以下の 2 種類の核心データを継続的に取得します。RGB カメラからの連続した画像フレーム、加速度計とジャイロスコープのデータです。システムは、視覚 - 慣性融合アルゴリズムを使用して、デバイスの世界座標系における連続した 6 自由度の位置と姿勢を推定し、後続の空間モデリングと平面分析に安定した低ドリフトのカメラ軌跡を提供します。
特徴点検出と三角測量
姿勢推定の結果を基に、EasyAR は画像シーケンスから安定した視覚特徴点(コーナー点やテクスチャの顕著な領域など)を抽出して追跡し、多視幾何学的方法を使用してこれらの特徴点を三角測量し、それらの 3 次元空間での位置を復元し、局所的な 3 次元点群を形成します。
平面候補領域の生成
3 次元点群を取得した後、システムは点群に幾何学的分析を行い、同一平面に属する可能性のある点の集合を見つけます。重力方向との関係を判断することで、システムは水平面候補、すなわち法線ベクトルが重力方向とほぼ平行な平面(地面、机の面など)を区別することができます。
平面の追跡と検出
EasyAR は、連続するフレームで検出された平面を検証して更新します。
- 新しく観測された 3 次元点が既存の平面モデルをサポートするかどうかを判断します。
- 観測の一貫性に基づいて、平面の範囲、境界、信頼度を動的に調整します。
- 一時的に出現したり不安定な平面候補を除外します。 幾何学的な一貫性と時間的な安定性の両方が要件を満たした場合のみ、結果が「利用可能な平面」として認識されます。
平面座標系と仮想コンテンツの位置合わせ
平面が確認されると、平面検出の結果を基に、よりリアルな AR 効果を実現できます。
- 平面上に仮想物体を配置し、実際のスケールと方向で位置合わせを行います。
- レイキャスト(Hit Test)を行い、画面のクリックを実際の平面上の位置にマッピングします。
- 平面に基づくインタラクションロジックを実装し、物体の吸着、移動、遮蔽の判断などを行います。
平面とモーショントラッキングシステムは同じ世界座標系を共有しているため、ユーザーがデバイスを移動させたときに、仮想物体は安定した連続的な空間一貫性を維持することができます。
平面検出は、モーショントラッキングが提供する安定した姿勢と空間構造に依存しています。一方、平面検出の結果は、環境理解能力を強化するためにも利用できます。例えば、コンテンツの配置やインタラクションデザインの支援などです。これら 2 つは EasyAR の空間認識能力の核心的な基礎を構成していますが、システムアーキテクチャ上では相互に分離されており、平面検出はモーショントラッキング自体の姿勢推定結果を変更することはありません。
ベストプラクティス
ユーザーが平面検出を使用する際の効果を保証するために、以下の実践を行うことでユーザー体験を向上させることができます。
- ユーザーにゆっくりと移動するように誘導し、静止したまま、急激な動き、または原地での回転を避けさせます。
- 無テクスチャ、単色、鏡面など、視覚的に識別が困難な平面を避けます。
注記
平面検出は EasyAR が環境中の水平面を識別する機能です。表面追跡はシーン中の平面構造を検出または識別しません。これらを区別する必要があります。