視覺里程計(Visual Odometry)
定義
視覺里程計(Visual Odometry, VO)是利用相機連續拍攝的影像,估計相機(也就是機器人)每一刻移動了多少、轉了多少,進而累積出整段軌跡。名稱類比於用輪子轉數計算距離的輪式里程計。
兩大方法
| 方法 | 做法 | 代表 |
|---|---|---|
| 特徵點法 | 擷取角點等特徵、在兩張影像間配對,再解出相對位姿 | ORB-SLAM 的追蹤前端 |
| 直接法 | 直接最小化像素亮度差,不擷取特徵 | DSO、LSD-SLAM |
特徵點法對光線變化較穩健;直接法能利用低紋理區域的資訊。
使用情境
- 輪子打滑或沒有輪子的平台:無人機、手持裝置、腿式機器人。
- 視覺 SLAM 的前端:提供即時位姿估計,後端再做最佳化。
- 與 IMU 融合(VIO):IMU 提供高頻短期估計,相機修正長期漂移,手機 AR 與許多無人機都採用。
常見限制
- 漂移:每一步的小誤差會累積,走越遠偏越多。
- 環境依賴:白牆、強反光、快速移動造成的模糊,都會讓特徵追蹤失敗。
延伸閱讀
常見問題
- 視覺里程計和視覺 SLAM 差在哪?
- 視覺里程計只估計相鄰影像之間的相對移動,誤差會一路累積(漂移);視覺 SLAM 在此之上加入地圖維護與迴圈閉合,回到曾經去過的地方時能修正累積誤差。
- 單目相機為什麼無法知道真實尺度?
- 單張影像會失去深度資訊,單目視覺里程計估出的軌跡形狀正確但比例未知(尺度不確定性)。常見解法是搭配雙目相機、深度相機或 IMU(視覺慣性里程計 VIO)。
faq_01.log
faq_02.log