AR は現実世界に仮想オブジェクトを重ね合わせることがわかっています让我们觉得这个虚拟物体确确实实是在现实中的
。この仮想オブジェクトが現実の私たちであると感じてみましょう最基本需要实现两个功能
。
- 場所は現実世界と一致しています
- 現実世界のオブジェクトが仮想オブジェクトをカバーできる
では、これら 2 つの関数を実装するにはどうすればよいでしょうかAR中实现的原理是什么呢
?
1)スラム
AR テクノロジーの中核となる技術基盤はSLAM(Stimultaneous Localization And Mapping,同时定位与建图)
テクノロジーです。SLAM テクノロジーの主な機能は、在没有环境先验信息的情况下,于运动过程中建立环境模型,同时估计自己的运动
SLAM が主に次の 2 つの問題を解決することです。
- センサー自身の位置を推定する
- 周囲環境のモデルを構築する
近年SLAM技术理论、算法框架已经基本定型
、現代の典型的なビジュアル SLAM テクノロジーのフレームワークは次のとおりです。
2023 年は多くの科学技術の進歩が見られる年であり、SLAM は AR/MR の技術原理であるだけでなく、自動運転、レーザー点群スキャン、自律航法ドローン、そしてロボット。
1.1) センサー機器
AR で一般的に必要なものは传感器设备
次のとおりです。
- レーザーセンサー
- カメラ
- ホイールエンコーダ: ホイールの回転角度を測定します。
- 慣性計測ユニット (IMU、慣性計測ユニット): 運動角速度と加速度
- 深度センサー
はい、あなたは間違っていません、一个视觉SLAM定位需要这么多传感器的数据,然后才能计算出来设备在空间中的位置。
これらに対して获取的都是间接的物理量,不是直接的位置数据
、SLAM はこれらの間接的な物理量を使用して位置と姿勢を計算します。其实按照这种计算是可以计算出精确的位姿和位置信息,但是这些传感器设备都是会受到噪声的干扰产生误差的,然后因为他们的执行速度非常快,例如:1秒60帧,这种误差一下就会变得很明显。
1.1.1) カメラ
視覚アルゴリズムは を渡すことはできませんが、一张照片来估算出真实世界的当前的位姿
異なる場所で同じシーンの多くの写真を通じて视差
現実世界の姿勢を推定します。そのため、次を使用します。AR应用时需要移动才能进行正确的运动跟踪。
图像在计算机中以矩阵的形式进行存储和描述
正確性を確保するには匹配图像中的像素与现实中的环境点
、画像データを SLAM システムに入力する前にキャリブレーションする必要があります。キャリブレーションは次のように分かれています。
- カメラの測光キャリブレーション
測光キャリブレーションにはカメラの基礎となるテクノロジーが関係しており、通常は OEM メーカーの参加が必要です。測光校正涉及图像传感器本身的细节特征及内部透镜所用的涂层材料特性等
。光度校准通常用于处理色彩和强度的映射
。
たとえば、遠くの星を撮影する望遠鏡に取り付けられたカメラは、センサー上のピクセルの光強度のわずかな変化が実際に変化しているかどうかを知る必要があります源于星星的光强变化或者仅仅来源于传感器或透镜中的像差
。
光度校准
ARモーショントラッキングについては好处是提高了传感器上的像素和真实世界中点的匹配度
可能です使视觉跟踪具有更强的稳健性及更少的错误
。 - 幾何学キャリブレーションは
、一般的なカメラを例として、ピンホールカメラモデルを使用して、レンズの視野と鏡筒の歪みを補正します。レンズの加工精度や取り付け工程などにより、収集された画像はすべて変形しますが、レンズは软件开发人员可以在没有OEM厂商帮助的情况下使用棋盘格和公开的相机规格进行几何校正
発売後も変化しません。レンズの加工精度や取り付け工程などによる歪みにより、会影响真实物理点与成像点的位置对应关系
それらは对整个SLAM系统的精度影响非常大,必须进行预先处理
、常见的畸变有桶形失真和枕形失真两种
1.1.2)IMU
IMU エラーは、次のような原因で発生することがよくあります。
- ノイズ
- スケールファクター
- 軸のズレ
IMU は非常に高速に実行されるため、IMU データによって生成された小さな偏差もすぐに増幅されるため、IMU データも校正する必要があります。
1.1.3) 深度センサー
深さセンサー自体の系統的誤差とランダム誤差に加えて、环境中的透明物体、红外干扰、材质反光属性
棚の深さの値は不確実であり、誤差の校正と外れ値の除去も必要です。
1.2) フロントエンドオドメーター
基于视觉
SLAM フロントエンド オドメーターは通常、ビジュアル オドメーター (VO) と呼ばれます。
メインミッション:
- 隣接する画像間の動きの推定
- ローカルマップを作成する
移动设备中运行的前端里程计
通常、視覚データと IMU センサー データを組み合わせて、より高い精度と堅牢性を提供します。
オドメトリは、画像と空間点の間の幾何学的対応および相対運動データを定量的に分析することにより、カメラの動きを推定し、シーンの空間構造を復元できます。前端里程计只计算相邻时刻的相机运动,不关联之前的数据,因此不可避免地会出现累计漂移,以这种方式工作,先前时刻的误差会传递到下一时刻,导致经过一段时间后,估计的运动轨迹误差越来越大,原本直的变成斜的,圆的变成椭圆的,为解决累计漂移问题,需要引入额外的抑制技术:后端优化和回环检测
1.3) バックエンドの最適化
要約すると、后端优化主要指处理SLAM过程中地噪声问题
。
安価なセンサーは測定誤差が大きく、高価なセンサーは誤差が小さく、センサーによっては磁場、温度、赤外線の影響を受ける場合もあります。したがって、「隣接する瞬間からカメラの動きを推定する」という問題を解決することに加えて、この推定にどの程度のノイズが含まれるか、またこれらの誤差をどのように除去するかについても考慮する必要があります。
SLAM フレームワークでは、前端给后端提供待优化的数据,以及这些数据的初始值,后端负责整体的优化过程,面对的只有数据,而不必关心这些数据到底来自什么传感器。
ARCore では、前端与CV领域更为相关
たとえば图像的体征提取与匹配
、 も含まれます。图像数据与IMU或者ToF数据的融合。
后端则主要是滤波与非线性优化算法
、バックエンドの最適化により、次のことが可能になります有效的抑制误差累积
。将整个SLAM系统维持在一个可接受的精度范围之内。
1.4) ループバック検出
ループバック検出 (閉ループ検出とも呼ばれる)主要解决我们前面提到的前端计算中位姿估计随着时间漂移的问题。
假设实际情况下,运动主体经过一段时间运动后回到了原点,但是由于漂移,他的位置估计值却没有回到原点。 如果有一种手段感知到“回到了原点”这件事,或者把“原点”识别出来,再把位置估计值“拉”回去,就可以消除漂移了。
これをループバック検出と呼びます。
ループバック検出は、「測位」と「マッピング」の両方に密接に関連しています。実際、私たちは次のように信じています地图存在的意义主要是为了让运动主体知晓自己到达过的地方。
ループバック検出を実現するため。動く被写体には、到達した場面を認識する能力が必要である。ループバック検出を実装するには、さまざまな方法があります。
例如可以在环境中某个位置设置一个标志物(如一张二维码图片),只要他识别到了这个标志,就知道自己回到了原点。
しかし、このマーカーは実際には環境の位置を人為的に特定するものであり、利用環境に制約が課されるため、移動する被写体自身が持つセンサーの画像データによってこのタスクを完了することが望ましいと考えられます。例如可以通过判断图像间的相似性来完成回环检测,这一点和人类是相似的,当我们看到两张相似图片是,容易辨认他们来自同一个地方
と思われがちですが、実際には、これをコンピュータに実装するのは想像よりもはるかに困難です。典型的な人間の単純なコンピューターのハード問題。
如果回环检测成功,可以显著得减小累积误差,所以回环检测,实际上是一种计算图像数据相似性的算法。
画像情報が非常に豊富であるため、ループの終了を正確に検出することの難しさも大幅に軽減されます。在检测到回环之后,我们会把“A与B是同一个点”这一的信息通知后端优化算法,后端根据这些新的信息,把轨迹和地图调整到符合回环检测结果的样子。这样,如果有充分且正确的回环检测,就可以消除累积误差,得到全局一致的轨迹和地图。
1.5) マッピング
マッピングとは、地図を構築するプロセスを指します。マップは環境の説明ですが、この説明は固定されておらず、ビジュアル SLAM のアプリケーションに依存します。
フロントエンドの走行距離計、バックエンドの最適化、ループ検出と比較して、マッピングには固定された形式やアルゴリズムがありません。
空間点の集合を地図と呼ぶことができ、三次元モデルも地図、都市、村、鉄道、河川などを描いた絵も地図と言えます。
マップは SLAM の用途に応じて異なり、マップの目的に応じて次のように分類できます。
- 計量マップ
計量マップは、地図上の物体の位置関係を正確に表現することを重視しており、通常、疎マップと密マップに分類されます。たとえば、ランドマークと呼ばれる代表的なものの一部を選択した場合、スパース地図はランドマークで構成された地図であり、ランドマークではない部分は無視できます。
対照的に、密集マップは、目に見えるすべてのものをモデル化することに重点を置いています。对于定位来讲稀疏地图就足够了,而对于导航则需要稠密地图。
- トポロジ マップ トポロジ
マップは、点と線の相対位置は正しいものの、必ずしもグラフィックスの正しい形状、面積、距離、方向を維持するわけではない抽象的なマップです。トポロジ マップは通常、パスの計画に使用されます。
スパース メトリック マップは主に物理環境をマッピングするために使用されますが、在搭载有ToF传感器的设备上可以通过物理方法得到场景深度值
この深度情報を使用することで、通常算法就可以建立环境的映射(对场景几何表面进行重建)
仮想オブジェクトと現実のオブジェクト間の衝突やオクルージョンを許容できます。
环境映射是实现真实物体与虚拟物体碰撞与遮挡关系的基础,在对真实环境进行三位重建后虚拟对象就可以与现实世界互动,实现碰撞与遮挡。
SLAM テクノロジーにより、移動する被写体の姿勢を解決できるだけでなく、仮想世界と現実の物理世界を一致させるための周囲環境のマップを確立することもできるため、仮想要素を正しい遠近法でレンダリングすることができ、現実の物体と同じ視点や回転を実現し、物理シミュレーション現象を実現し、現実と現実が融合したAR体験を生み出します。
上記の内容は、Wang Xiangchun 先生の著書「ARFoundation Augmented Reality Development Practice」の著者の読書メモです。Wang 先生は本当に素晴らしいです。