視覺慣性里程計

作者:

唐仕超、陳展揚、林文杰

刊登日期:2020/03/31

摘要

       隨著自駕車及無人機等應用對準確定位的需求,各種不同感測器的里程計不斷地被開發。由於近幾年來相機與慣性測量單元因為價格便宜且輕便而普及,視覺慣性里程計成為一個非常熱門的選擇。本文將介紹視覺慣性里程計的概念、算法分類、以及目前熱門開源算法。

Recent advances in autonomous driving, drones, etc. require accurate localization. To this end, different kinds of odometries have been developed. Due to the cheap and lightweight nature of cameras and IMUs, visual-inertial odometry (VIO) has become a very popular choice. This article introduces the concept of VIO, how VIO methods can be categorized, and popular open-source VIO’s.

關鍵詞 視覺慣性里程計、慣性測量單元、相機

Visual-inertial odometry (VIO), Inertial measurement unit, Camera

Recent advances in autonomous driving, drones, etc. require accurate localization. To this end, different kinds of odometries have been developed. Due to the cheap and lightweight nature of cameras and IMUs, visual-inertial odometry (VIO) has become a very popular choice. This article introduces the concept of VIO, how VIO methods can be categorized, and popular open-source VIO’s.

前言

視覺慣性里程計是由視覺里程計發展而來的。單用視覺訊息來估計位移的問題最早在1980年代就被提出了,而視覺里程計Visual Odometry (VO)這個詞最早是在2004年被Nister所提出[13]。會這樣命名是因為此方法估計運動的方式是透過相機來逐步估計位移量再做累加。VO早期的研究主要是圍繞在NASA火星探險任務需要一個可以在輪子會打滑的崎嶇地形下估測六自由度的運動。

視覺慣性里程計則是透過增加與相機互補的慣性測量單元來使得視覺里程計更加穩健。視覺慣性里程計跟GPS相比,它仍然可以在室內提供位姿估計並且不會因為受到都市峽谷效應而在高大建築物附近降低精確度。跟光達比,視覺慣性里程計所需要的感測器相對輕便、便宜同時有辦法提供更高頻率的位姿估計。這使得視覺慣性里程計近年來被大量地運用在自駕車及無人機等應用上。

視覺慣性里程計

1.VIO概念

視覺慣性里程計或是Visual Inertial Odometry (VIO)是指透過單個或多個相機與慣性測量單元(IMU)來進行位姿估計。IMU由測量加速度的加速計與測量角速度的陀螺儀所組成。VIO算法很多種,一般而言,我們希望估計個不同時刻下的狀態,而每個時間下的狀態包含

為IMU的六自由度位姿、為IMU x, y, z三軸的速度、而和為IMU加速度計以及陀螺儀的三軸偏差量(bias)。Bias偏差量的值除了會受到溫度、每次啟動等而變化,也會在IMU使用中逐漸變化。VIO被運用在許多需要精確狀態估計的任務上,包含自駕車、無人機、以及AR/VR等。它有辦法提供高頻率的位姿估計並且因為相機與IMU價格便宜且輕便,使它成為近年來熱門的位姿估計方法。目前存在許多開源VIO[1][2][3]。

相機與IMU為互補的感測器。相機在慢速移動下可以提供豐富的視覺資訊,而只用相機以進行位姿估計稱為視覺里程計。相機可以有效修正IMU的漂移,使其在慢速運動下的位姿估計依然有效。然而相機在高速運動(導致運動模糊)、低紋理、或是曝光不足或過度之下缺乏穩健性。同時,它的影像輸出頻率有限(~100 Hz)並且在只有單目相機時會存在尺度不確定性的問題。IMU一般包含三軸的陀螺儀與加速度計來分別測量物體在三維空間中的角速度和加速度。我們可以透過對角速度和加速度的積分算出物體的位姿,這個方法被稱為航位推測法(Dead reckoning)。相對相機而言,IMU不會受到場景影響。這意味著它並不會在前面所提到相機會出問題的情況(例如高速運動、低紋理、以及曝光不佳等)而導致位姿估計失敗。此外,IMU可以提供高頻率的輸出(~1,000 Hz)並且在相機沒有數據時也仍然可以保持較好的位姿估計。然而即使擁有以上優點,純IMU積分來算位姿仍然不可行。這是因為IMU所測量到的加速度與角速度中分別包含加速度計與陀螺儀偏差量以及雜訊[4],在積分時這些誤差會很快地累積導致漂移。

分別表示真實的加速度與角速度、為世界座標下的重力值。但是,對於短時間內的快速運動,IMU能夠提供比相機好的估計。最後,當影像發生變化時,本質上系統沒法知道是相機本身在運動,還是外界物體在移動,所以純視覺里程計難以處理動態的障礙物。而IMU能夠感受到自己的運動狀態,可以減輕動態物體的影響。

       在使用VIO之前必須要做好相機與IMU之間的校正,包含空間上的與時間上的校正。空間上的校正又稱為外參校正,主要為計算相機與IMU兩者座標系統的轉換函數。如果視覺與慣性感測器沒有硬體同步的話,時間上的校正,也就是相機與IMU之間時間戳記的差異也必須被校正。不管是空間或是時間的校正,皆可以離線校正[4]或是線上校正[1]方式進行。

2.VIO分類

如圖1,VIO可以根據在什麼階段做融合來分爲兩大類[4] (如圖1):鬆耦合(loosely coupled)與緊耦合(tightly coupled)。鬆耦合算法把相機與IMU分別進行位姿估計,然後再對其位姿估計結果進行融合。一般而言在鬆耦合算法中以慣性測量數據爲核心,其狀態向量為,,視覺測量數據負責修正慣性測量數據的累積誤差。視覺模組基本上被視為一個黑盒子,完全不考慮IMU訊息的輔助,因此在視覺定位困難的地方不夠穩健,同時該方法無法修正視覺測量所導致的漂移。反之,緊耦合算法是直接在相機與IMU原始測量數據上就做融合,例如:3D視覺特徵點、加速度、角速度。相機的狀態向量與IMU的狀態向量被合併在一起,為個3D視覺特徵點,包含其x, y, z座標,共同建構運動與觀測方程式並進行狀態估計。此類方法的優點是IMU的尺度訊息可以用於輔助視覺中的尺度估計。一般而言,緊耦合算法的準確度較鬆耦合算法佳,也是目前主流的方法。

…本文未結束

更完整的內容 歡迎訂購 2020年4月號 445期

機械工業雜誌‧每期240元‧一年12期2400元

我要訂購