三維視覺與幾何

視覺 SLAM

視覺 SLAM(visual SLAM)即時解決一個雞生蛋的問題:移動中的相機需要周遭的地圖才能知道自己在哪,但它得先知道自己在哪才能建那張地圖。SLAM 代表同步定位與建圖(Simultaneous Localization And Mapping),「視覺」意指主要感測器是相機。成果是一台機器人、無人機、手機或頭戴裝置,在穿越未知空間時,持續算出自身位姿(位置與朝向),同時逐步建構環境地圖——而且快到足以據以行動,一影格接一影格。

一個視覺 SLAM 系統有幾個協作的部件。前端(追蹤)處理每張進來的影格,藉由匹配特徵或直接對齊像素強度,估計相機相對於近期地圖的運動。後端(建圖)維護並精煉三維點與關鍵影格的地圖,通常以滑動視窗上的局部光束法平差來保持即時。關鍵的是,迴路閉合(loop-closure)模組能辨認相機何時重訪先前見過的地方;偵測到後,系統以一個全域最佳化(位姿圖最佳化)跨整條軌跡修正累積的漂移。迴路閉合正是 SLAM 與單純視覺里程計的區別所在,後者逐影格追蹤運動,卻任由小誤差累積而從不修正全域地圖。

方法依如何使用影像資訊而分流。基於特徵(間接)的 SLAM,以 ORB-SLAM 及其後繼為代表,擷取並匹配稀疏關鍵點(ORB 特徵),既穩健又被充分理解。直接法(LSD-SLAM、DSO)跳過特徵,以原始光度強度對齊影像,用上更多影像內容,在低紋理場景表現傑出。系統也依感測器而異:單眼 SLAM(一台相機,受尺度不確定性所苦)、立體 SLAM(由已知基線得到度量尺度),以及視覺慣性 SLAM(VIO/VI-SLAM),它融合慣性測量單元以回復度量尺度、處理快速運動並穩定追蹤——這是多數 AR 頭戴裝置與無人機背後的配置。

前沿已朝稠密與學習式地圖移動。最近的系統不再用稀疏點,而是建構稠密表面或隱式表示:基於 NeRF 的 SLAM(iMAP、NICE-SLAM)與高斯潑濺 SLAM 在線上最佳化一個照片級擬真的場景模型,而學習式特徵與匹配器(SuperPoint、SuperGlue/LightGlue)取代手工的以求穩健。長存的挑戰一如既往——快速運動與運動模糊、低紋理、違反靜態世界假設的動態物體、長軌跡上的漂移,以及追蹤丟失後可靠的重定位。

部署中的 SLAM 最大的失敗來源是靜態世界假設。走動的人、行駛的車,或掠過鏡頭的一隻手,都會被當成剛性世界的一部分來追蹤,進而破壞地圖。穩健的系統會偵測並拒絕動態特徵(常用語意分割),而非信任每一筆匹配。

又稱
vSLAMvisual simultaneous localization and mapping視覺同步定位與建圖