導讀
視覺傳感器體積小重量輕、價格相對低廉,同時能夠提供豐富的信息供定位、感知等算法模塊使用,因此在機器人和自動駕駛系統中的得到了廣泛應用。作為視覺定位系統的重要組成部分,基于視覺傳感器的同時定位和建圖算法(SLAM)應用廣泛,在學術界和工業界都得到了很多關注。具體來說,在自動駕駛系統中,視覺SLAM可以在地圖不可靠、GPS不穩定情況下(例如城區輔助駕駛)提供可靠的位姿估計和周圍環境信息。同時,相對于激光雷達等傳感器,相機價格較低,配合視覺定位和感知算法,可以以低成本實現智能駕駛功能。
但是,視覺SLAM系統經常被人詬病的一點是魯棒性。基于視覺的位姿估計的基本原理是追蹤匹配圖像中明顯的視覺特征,因此過曝、弱紋理、運動模糊等問題一直是視覺SLAM系統實際應用中的痛點。在研究和工程實踐中,多傳感融合、相機參數控制等手段都可以用來提高視覺SLAM系統的魯棒性;另一方面,目前的自動駕駛系統往往都配備了多個相機形成環視視覺系統,而合理利用多相機系統可以很大程度上提升SLAM系統的性能,因此本文將著重介紹在多相機SLAM系統的原理、和一般單目/雙目系統的區別及其在自動駕駛系統中的應用。
一、從單相機到多相機的拓展
自2004年視覺里程計技術被正式提出以來,視覺SLAM技術經過長期發展,其基礎理論已經相對完善(如立體幾何、非線性優化和濾波等)。在工程實踐方面,研究者也總結出一套相對通用的系統框架:粗略來說,視覺SLAM系統通常被劃分為前端和后端,其中前端負責建立不同時刻圖像之間的匹配關系并進行局部估計,保證系統的實時位姿輸出,后端則負責在相對大范圍內進行優化,保證系統的精度和全局地圖一致性。從具體系統實現上來說,大部分工作都是針對單目或者雙目相機進行的,因此我們最熟悉的一些技術實踐不可避免是針對這兩種相機配置進行設計的。
將單目/雙目SLAM系統拓展到多相機SLAM系統時,前端-后端的系統框架一般可以沿用,但是需要對原有針對單目/雙目的具體算法模塊進行改進,使其適用于多相機配置,下面以MultiCol-SLAM為例進行說明。MultiCol-SLAM基于ORB-SLAM設計了多相機SLAM,在基礎數據結構上將關鍵幀Keyframe的概念拓展到Multi-Keyframe(MKF),即不同相機在同一時刻觀測的集合:
MultiCol-SLAM中的多相機
因此這里我們關注的不再是某個相機的位姿,而是圖中body-frame的位姿,多個相機的觀測都可以為估計body-frame的位姿服務。其他算法模塊也需要針對MKF進行適配,首先需要通過非線性優化求解位姿的模塊(例如Tracking中相對局部地圖的定位、局部Bundle Adjustment)需要將body-frame的位姿作為求解變量并更改相應的cost,其次,一些常用的位姿求解器需要替換為支持多相機的版本,例如在重定位中使用Generalized P3P和PnP算法替代EPnP求解位姿初值。
從單相機絕對位姿估計(左)到多相機絕對位姿估計(右),其中f代表視覺觀測。圖取自OpenGV文檔。
從MultiCol-SLAM的例子可以看出,將適用于單目/雙目的SLAM系統拓展到多目整體來看是比較自然的:需要估計的位姿不再和相機綁定而是通過外參關聯到多個相機,相應的算法模塊也都可以比較容易地拓展到多相機系統。更一般地,從SLAM理論基礎的角度來說,非線性優化和濾波的理論和工具相當靈活,可以方便地根據多相機配置進行適配,同時,針對多相機的幾何視覺研究也相對成熟,常見的位姿求解問題基本都可以找到相應的工具。
但是,如果我們不僅僅滿足于讓多相機SLAM系統“跑起來”,而是想要實現一個魯棒、泛用的多相機SLAM系統,就需要進一步考慮各個模塊中引入多相機所帶來的額外問題,而這些問題往往會對系統的整體性能有明顯影響。下面對多目SLAM系統中的幾個難點進行說明。
二、多相機SLAM中的難點
初始化
視覺SLAM初始化的目的是建立初始的3D點地圖用于后續跟蹤,直接影響SLAM系統的精度指標。對于單目和雙目系統,分別通過5點法/planar homography和雙目三角化進行初始化已經成為事實上的標準方法。但是,對于多目相機,由于相機的配置不確定,一套通用的初始化方法應當如何設計仍不明確。顯然,相機的具體配置,尤其是相機之間是否有overlap,決定了合適的初始化流程。MultiCol-SLAM對多相機組中的每個相機都計算相對位姿、從中選擇質量最好的一組得到粗略的3D點,再將這些3D點投影到其他相機中并利用所有觀測進行聯合優化,這種方法只適用于相機之間有overlap的情況。也有一些工作嘗試通過分析相機之間的overlap情況來決定初始化的策略,可以對不同的多相機配置實現一定程度上的自適應,但是整體來說,通用魯棒的多目相機初始化仍是一個開放的問題。
在線外參估計
和多傳感融合算法一樣,多相機SLAM算法也需要精確的相機間外參才能正常工作。離線標定雖然可以得到十分精確的結果,但是在系統運行過程中由于碰撞、震動等不可避免會出現外參的變化,尤其是對自動駕駛汽車來說,由于相機之間距離較大,外參甚至可能隨著車體運動、負載狀況的不同發生變化,因此系統在正常運行環境中(不依賴標定設備)對相機外參進行標定的能力比較重要,學界對此也有很多研究工作。一類工作是利用多個相機(單目或者雙目組合)單獨運行SLAM/SfM算法,再對不同相機的地圖進行匹配融合,最后再通過聯合優化得到外參;另一類工作是利用SLAM本身已有的非線性濾波或優化求解過程,將外參作為額外待估參數加入求解器進行估計,可以實時估計外參變化(激勵充分時),例如有的提出一種MSCKF框架下的多相機、多IMU視覺慣性里程計,實現了對相機和IMU外參的在線估計;而針對自動駕駛平臺上的多相機系統,也有人將相機之間的外參加入視覺SLAM的局部BA中進行估計。
原理上來說,上述方法和構建一般的狀態估計問題差異不大,但是相較于離線標定問題,在線標定受限于系統的運行狀況,需要額外注意當前數據是否足以準確估計外參(即系統是否有足夠的激勵,相應待估參數是否可觀)。相關地,也有工作從數據的角度出發,自動選擇信息量更大的數據對多相機外參進行估計。
特征選擇
多個相機帶來更多的觀測數據,理論上來說總能帶來更好的定位建圖結果,但是也帶來了更大的計算量。因此實際中經常需要面對的問題是,如何對丟棄一定的觀測以減小計算量,同時對定位精度有較小的影響?啟發式的方法可以起到一定的效果(例如視覺SLAM中經常用到的特征在圖像上平均分布的技巧),但是往往不是最優的。因此一些研究工作提出了基于信息論的方法,粗略來說,是以一種數學上更嚴格的方法衡量丟棄觀測后對系統的影響,例如利用Hessian矩陣的信息度量對多個相機中的特征進行選擇,或者通過對特征分布的合理假設,簡化Hessian矩陣的計算和多個相機的特征選擇問題。本質上來說,特征選擇是一種在盡量不影響求解結果的約束下,通過更改問題結構減小計算量的方法,這一方向的研究工作仍處于SLAM后端優化的研究前沿。
HUIXI TECH
三、多相機SLAM在自動駕駛中的應用
自動駕駛平臺上的多個相機往往覆蓋車身周圍360°的視角,能夠利用全方向的視覺信息,因此如果能夠充分利用這些相機,多相機視覺SLAM系統可以實現不同外部條件下魯棒準確的位姿估計。在論文“Towards Robust Visual Odometry with a Multi-Camera System”中,作者設計了一種基于光度一致性的多目視覺SLAM系統,在配備有前、后、左、右四組雙目相機的平臺上進行測試,結果表明,如果能夠利用全部四組雙目相機,系統可以在不同光照條件下(白天、夜晚)穩定地工作,并保持較高的位姿估計精度。“ROVO: Robust Omnidirectional Visual Odometry for Wide-baseline Wide-FOV Camera Systems”一文則針對包含4個魚眼相機的環視系統設計了基于特征點的視覺SLAM系統,實驗結果表明在多相機SLAM系統中加入在線外參估計對系統性能有明顯提升。
H. Seok and J. Lim, IROS 2018中的傳感器配置和SLAM效果
在自動駕駛平臺上應用多相機SLAM系統同時也需要考慮自動駕駛汽車的特性。例如,自動駕駛汽車的運動自由度有限,并存在大量速度變化不大情況,這對某些參數的在線標定有一定影響,這一點在結合IMU搭建SLAM系統的時候需要尤其注意。另一方面,也可以利用車輛特有的性質減小狀態估計的難度,例如通過離線實驗識別出相機外參變化的可能模式(由具體相機安裝方式決定),隨后在在線外參標定中將這些模式作為約束,提高了在線標定的效率和精度,又如車道線作為結構性很強的特征,可以作為外參在線標定的重要線索。
自動駕駛平臺上的感知系統往往也充分利用了多相機系統,可以提供豐富的語義信息,例如車道線和分割結果等,這些信息和傳統視覺特征互為補充,可以作為多相機SLAM系統的重要輸入。例如有的利用IPM圖上提取的車道線信息構建地下車庫的地圖,為自動泊車提供定位功能,或者利用環視相機生成BEV視角下的分割結果,直接將該結果作為SLAM系統的輸入,實現相鄰幀的位姿估計和回環檢測等功能。另外,特斯拉在AI Day 2022上也提到,在FSD中集成了多目視覺-慣性-輪速里程計,利用了神經網絡輸出的多種結果(特征、全景分割、地面等),實現了100Hz、漂移率在1%左右的位姿估計,該里程計輸出的位姿和3D結構為下游自標注系統提供了輸入。
Tesla AI Day 2022展示的多目視覺慣性里程計
四、總結
在視覺SLAM系統中引入多相機可以有效提高系統的魯棒性和精度,具體到自動駕駛汽車,環視相機系統可以利用全方向的視覺信息,為視覺SLAM系統提供了很好的傳感器配置。從具體算法來說,雖然視覺SLAM的理論基礎相對成熟,但是實現一套效果優秀的多相機SLAM系統仍需要解決若干痛點,例如外參自標定、如何平衡計算量和精度等,這里既有工程上的挑戰,也有待研究的問題。另外,自動駕駛汽車感知系統提供的語義信息可以作為多相機視覺SLAM系統的重要輸入,如何將神經網絡輸入的語義信息和傳統的非線性優化濾波有效結合(例如如何衡量語義輸出的幾何不確定度)仍是一個開放的問題。
審核編輯:劉清
評論
查看更多