導(dǎo)讀
視覺傳感器體積小重量輕、價(jià)格相對低廉,同時(shí)能夠提供豐富的信息供定位、感知等算法模塊使用,因此在機(jī)器人和自動(dòng)駕駛系統(tǒng)中的得到了廣泛應(yīng)用。作為視覺定位系統(tǒng)的重要組成部分,基于視覺傳感器的同時(shí)定位和建圖算法(SLAM)應(yīng)用廣泛,在學(xué)術(shù)界和工業(yè)界都得到了很多關(guān)注。具體來說,在自動(dòng)駕駛系統(tǒng)中,視覺SLAM可以在地圖不可靠、GPS不穩(wěn)定情況下(例如城區(qū)輔助駕駛)提供可靠的位姿估計(jì)和周圍環(huán)境信息。同時(shí),相對于激光雷達(dá)等傳感器,相機(jī)價(jià)格較低,配合視覺定位和感知算法,可以以低成本實(shí)現(xiàn)智能駕駛功能。
但是,視覺SLAM系統(tǒng)經(jīng)常被人詬病的一點(diǎn)是魯棒性?;谝曈X的位姿估計(jì)的基本原理是追蹤匹配圖像中明顯的視覺特征,因此過曝、弱紋理、運(yùn)動(dòng)模糊等問題一直是視覺SLAM系統(tǒng)實(shí)際應(yīng)用中的痛點(diǎn)。在研究和工程實(shí)踐中,多傳感融合、相機(jī)參數(shù)控制等手段都可以用來提高視覺SLAM系統(tǒng)的魯棒性;另一方面,目前的自動(dòng)駕駛系統(tǒng)往往都配備了多個(gè)相機(jī)形成環(huán)視視覺系統(tǒng),而合理利用多相機(jī)系統(tǒng)可以很大程度上提升SLAM系統(tǒng)的性能,因此本文將著重介紹在多相機(jī)SLAM系統(tǒng)的原理、和一般單目/雙目系統(tǒng)的區(qū)別及其在自動(dòng)駕駛系統(tǒng)中的應(yīng)用。
一、從單相機(jī)到多相機(jī)的拓展
自2004年視覺里程計(jì)技術(shù)被正式提出以來,視覺SLAM技術(shù)經(jīng)過長期發(fā)展,其基礎(chǔ)理論已經(jīng)相對完善(如立體幾何、非線性優(yōu)化和濾波等)。在工程實(shí)踐方面,研究者也總結(jié)出一套相對通用的系統(tǒng)框架:粗略來說,視覺SLAM系統(tǒng)通常被劃分為前端和后端,其中前端負(fù)責(zé)建立不同時(shí)刻圖像之間的匹配關(guān)系并進(jìn)行局部估計(jì),保證系統(tǒng)的實(shí)時(shí)位姿輸出,后端則負(fù)責(zé)在相對大范圍內(nèi)進(jìn)行優(yōu)化,保證系統(tǒng)的精度和全局地圖一致性。從具體系統(tǒng)實(shí)現(xiàn)上來說,大部分工作都是針對單目或者雙目相機(jī)進(jìn)行的,因此我們最熟悉的一些技術(shù)實(shí)踐不可避免是針對這兩種相機(jī)配置進(jìn)行設(shè)計(jì)的。
將單目/雙目SLAM系統(tǒng)拓展到多相機(jī)SLAM系統(tǒng)時(shí),前端-后端的系統(tǒng)框架一般可以沿用,但是需要對原有針對單目/雙目的具體算法模塊進(jìn)行改進(jìn),使其適用于多相機(jī)配置,下面以MultiCol-SLAM為例進(jìn)行說明。MultiCol-SLAM基于ORB-SLAM設(shè)計(jì)了多相機(jī)SLAM,在基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)上將關(guān)鍵幀Keyframe的概念拓展到Multi-Keyframe(MKF),即不同相機(jī)在同一時(shí)刻觀測的集合:

MultiCol-SLAM中的多相機(jī)
因此這里我們關(guān)注的不再是某個(gè)相機(jī)的位姿,而是圖中body-frame的位姿,多個(gè)相機(jī)的觀測都可以為估計(jì)body-frame的位姿服務(wù)。其他算法模塊也需要針對MKF進(jìn)行適配,首先需要通過非線性優(yōu)化求解位姿的模塊(例如Tracking中相對局部地圖的定位、局部Bundle Adjustment)需要將body-frame的位姿作為求解變量并更改相應(yīng)的cost,其次,一些常用的位姿求解器需要替換為支持多相機(jī)的版本,例如在重定位中使用Generalized P3P和PnP算法替代EPnP求解位姿初值。

從單相機(jī)絕對位姿估計(jì)(左)到多相機(jī)絕對位姿估計(jì)(右),其中f代表視覺觀測。圖取自O(shè)penGV文檔。
從MultiCol-SLAM的例子可以看出,將適用于單目/雙目的SLAM系統(tǒng)拓展到多目整體來看是比較自然的:需要估計(jì)的位姿不再和相機(jī)綁定而是通過外參關(guān)聯(lián)到多個(gè)相機(jī),相應(yīng)的算法模塊也都可以比較容易地拓展到多相機(jī)系統(tǒng)。更一般地,從SLAM理論基礎(chǔ)的角度來說,非線性優(yōu)化和濾波的理論和工具相當(dāng)靈活,可以方便地根據(jù)多相機(jī)配置進(jìn)行適配,同時(shí),針對多相機(jī)的幾何視覺研究也相對成熟,常見的位姿求解問題基本都可以找到相應(yīng)的工具。
但是,如果我們不僅僅滿足于讓多相機(jī)SLAM系統(tǒng)“跑起來”,而是想要實(shí)現(xiàn)一個(gè)魯棒、泛用的多相機(jī)SLAM系統(tǒng),就需要進(jìn)一步考慮各個(gè)模塊中引入多相機(jī)所帶來的額外問題,而這些問題往往會(huì)對系統(tǒng)的整體性能有明顯影響。下面對多目SLAM系統(tǒng)中的幾個(gè)難點(diǎn)進(jìn)行說明。
二、多相機(jī)SLAM中的難點(diǎn)
初始化
視覺SLAM初始化的目的是建立初始的3D點(diǎn)地圖用于后續(xù)跟蹤,直接影響SLAM系統(tǒng)的精度指標(biāo)。對于單目和雙目系統(tǒng),分別通過5點(diǎn)法/planar homography和雙目三角化進(jìn)行初始化已經(jīng)成為事實(shí)上的標(biāo)準(zhǔn)方法。但是,對于多目相機(jī),由于相機(jī)的配置不確定,一套通用的初始化方法應(yīng)當(dāng)如何設(shè)計(jì)仍不明確。顯然,相機(jī)的具體配置,尤其是相機(jī)之間是否有overlap,決定了合適的初始化流程。MultiCol-SLAM對多相機(jī)組中的每個(gè)相機(jī)都計(jì)算相對位姿、從中選擇質(zhì)量最好的一組得到粗略的3D點(diǎn),再將這些3D點(diǎn)投影到其他相機(jī)中并利用所有觀測進(jìn)行聯(lián)合優(yōu)化,這種方法只適用于相機(jī)之間有overlap的情況。也有一些工作嘗試通過分析相機(jī)之間的overlap情況來決定初始化的策略,可以對不同的多相機(jī)配置實(shí)現(xiàn)一定程度上的自適應(yīng),但是整體來說,通用魯棒的多目相機(jī)初始化仍是一個(gè)開放的問題。
在線外參估計(jì)
和多傳感融合算法一樣,多相機(jī)SLAM算法也需要精確的相機(jī)間外參才能正常工作。離線標(biāo)定雖然可以得到十分精確的結(jié)果,但是在系統(tǒng)運(yùn)行過程中由于碰撞、震動(dòng)等不可避免會(huì)出現(xiàn)外參的變化,尤其是對自動(dòng)駕駛汽車來說,由于相機(jī)之間距離較大,外參甚至可能隨著車體運(yùn)動(dòng)、負(fù)載狀況的不同發(fā)生變化,因此系統(tǒng)在正常運(yùn)行環(huán)境中(不依賴標(biāo)定設(shè)備)對相機(jī)外參進(jìn)行標(biāo)定的能力比較重要,學(xué)界對此也有很多研究工作。一類工作是利用多個(gè)相機(jī)(單目或者雙目組合)單獨(dú)運(yùn)行SLAM/SfM算法,再對不同相機(jī)的地圖進(jìn)行匹配融合,最后再通過聯(lián)合優(yōu)化得到外參;另一類工作是利用SLAM本身已有的非線性濾波或優(yōu)化求解過程,將外參作為額外待估參數(shù)加入求解器進(jìn)行估計(jì),可以實(shí)時(shí)估計(jì)外參變化(激勵(lì)充分時(shí)),例如有的提出一種MSCKF框架下的多相機(jī)、多IMU視覺慣性里程計(jì),實(shí)現(xiàn)了對相機(jī)和IMU外參的在線估計(jì);而針對自動(dòng)駕駛平臺上的多相機(jī)系統(tǒng),也有人將相機(jī)之間的外參加入視覺SLAM的局部BA中進(jìn)行估計(jì)。
原理上來說,上述方法和構(gòu)建一般的狀態(tài)估計(jì)問題差異不大,但是相較于離線標(biāo)定問題,在線標(biāo)定受限于系統(tǒng)的運(yùn)行狀況,需要額外注意當(dāng)前數(shù)據(jù)是否足以準(zhǔn)確估計(jì)外參(即系統(tǒng)是否有足夠的激勵(lì),相應(yīng)待估參數(shù)是否可觀)。相關(guān)地,也有工作從數(shù)據(jù)的角度出發(fā),自動(dòng)選擇信息量更大的數(shù)據(jù)對多相機(jī)外參進(jìn)行估計(jì)。
特征選擇
多個(gè)相機(jī)帶來更多的觀測數(shù)據(jù),理論上來說總能帶來更好的定位建圖結(jié)果,但是也帶來了更大的計(jì)算量。因此實(shí)際中經(jīng)常需要面對的問題是,如何對丟棄一定的觀測以減小計(jì)算量,同時(shí)對定位精度有較小的影響?啟發(fā)式的方法可以起到一定的效果(例如視覺SLAM中經(jīng)常用到的特征在圖像上平均分布的技巧),但是往往不是最優(yōu)的。因此一些研究工作提出了基于信息論的方法,粗略來說,是以一種數(shù)學(xué)上更嚴(yán)格的方法衡量丟棄觀測后對系統(tǒng)的影響,例如利用Hessian矩陣的信息度量對多個(gè)相機(jī)中的特征進(jìn)行選擇,或者通過對特征分布的合理假設(shè),簡化Hessian矩陣的計(jì)算和多個(gè)相機(jī)的特征選擇問題。本質(zhì)上來說,特征選擇是一種在盡量不影響求解結(jié)果的約束下,通過更改問題結(jié)構(gòu)減小計(jì)算量的方法,這一方向的研究工作仍處于SLAM后端優(yōu)化的研究前沿。
HUIXI TECH
三、多相機(jī)SLAM在自動(dòng)駕駛中的應(yīng)用
自動(dòng)駕駛平臺上的多個(gè)相機(jī)往往覆蓋車身周圍360°的視角,能夠利用全方向的視覺信息,因此如果能夠充分利用這些相機(jī),多相機(jī)視覺SLAM系統(tǒng)可以實(shí)現(xiàn)不同外部條件下魯棒準(zhǔn)確的位姿估計(jì)。在論文“Towards Robust Visual Odometry with a Multi-Camera System”中,作者設(shè)計(jì)了一種基于光度一致性的多目視覺SLAM系統(tǒng),在配備有前、后、左、右四組雙目相機(jī)的平臺上進(jìn)行測試,結(jié)果表明,如果能夠利用全部四組雙目相機(jī),系統(tǒng)可以在不同光照條件下(白天、夜晚)穩(wěn)定地工作,并保持較高的位姿估計(jì)精度?!癛OVO: Robust Omnidirectional Visual Odometry for Wide-baseline Wide-FOV Camera Systems”一文則針對包含4個(gè)魚眼相機(jī)的環(huán)視系統(tǒng)設(shè)計(jì)了基于特征點(diǎn)的視覺SLAM系統(tǒng),實(shí)驗(yàn)結(jié)果表明在多相機(jī)SLAM系統(tǒng)中加入在線外參估計(jì)對系統(tǒng)性能有明顯提升。

H. Seok and J. Lim, IROS 2018中的傳感器配置和SLAM效果
在自動(dòng)駕駛平臺上應(yīng)用多相機(jī)SLAM系統(tǒng)同時(shí)也需要考慮自動(dòng)駕駛汽車的特性。例如,自動(dòng)駕駛汽車的運(yùn)動(dòng)自由度有限,并存在大量速度變化不大情況,這對某些參數(shù)的在線標(biāo)定有一定影響,這一點(diǎn)在結(jié)合IMU搭建SLAM系統(tǒng)的時(shí)候需要尤其注意。另一方面,也可以利用車輛特有的性質(zhì)減小狀態(tài)估計(jì)的難度,例如通過離線實(shí)驗(yàn)識別出相機(jī)外參變化的可能模式(由具體相機(jī)安裝方式?jīng)Q定),隨后在在線外參標(biāo)定中將這些模式作為約束,提高了在線標(biāo)定的效率和精度,又如車道線作為結(jié)構(gòu)性很強(qiáng)的特征,可以作為外參在線標(biāo)定的重要線索。
自動(dòng)駕駛平臺上的感知系統(tǒng)往往也充分利用了多相機(jī)系統(tǒng),可以提供豐富的語義信息,例如車道線和分割結(jié)果等,這些信息和傳統(tǒng)視覺特征互為補(bǔ)充,可以作為多相機(jī)SLAM系統(tǒng)的重要輸入。例如有的利用IPM圖上提取的車道線信息構(gòu)建地下車庫的地圖,為自動(dòng)泊車提供定位功能,或者利用環(huán)視相機(jī)生成BEV視角下的分割結(jié)果,直接將該結(jié)果作為SLAM系統(tǒng)的輸入,實(shí)現(xiàn)相鄰幀的位姿估計(jì)和回環(huán)檢測等功能。另外,特斯拉在AI Day 2022上也提到,在FSD中集成了多目視覺-慣性-輪速里程計(jì),利用了神經(jīng)網(wǎng)絡(luò)輸出的多種結(jié)果(特征、全景分割、地面等),實(shí)現(xiàn)了100Hz、漂移率在1%左右的位姿估計(jì),該里程計(jì)輸出的位姿和3D結(jié)構(gòu)為下游自標(biāo)注系統(tǒng)提供了輸入。

Tesla AI Day 2022展示的多目視覺慣性里程計(jì)
四、總結(jié)
在視覺SLAM系統(tǒng)中引入多相機(jī)可以有效提高系統(tǒng)的魯棒性和精度,具體到自動(dòng)駕駛汽車,環(huán)視相機(jī)系統(tǒng)可以利用全方向的視覺信息,為視覺SLAM系統(tǒng)提供了很好的傳感器配置。從具體算法來說,雖然視覺SLAM的理論基礎(chǔ)相對成熟,但是實(shí)現(xiàn)一套效果優(yōu)秀的多相機(jī)SLAM系統(tǒng)仍需要解決若干痛點(diǎn),例如外參自標(biāo)定、如何平衡計(jì)算量和精度等,這里既有工程上的挑戰(zhàn),也有待研究的問題。另外,自動(dòng)駕駛汽車感知系統(tǒng)提供的語義信息可以作為多相機(jī)視覺SLAM系統(tǒng)的重要輸入,如何將神經(jīng)網(wǎng)絡(luò)輸入的語義信息和傳統(tǒng)的非線性優(yōu)化濾波有效結(jié)合(例如如何衡量語義輸出的幾何不確定度)仍是一個(gè)開放的問題。
審核編輯:劉清
電子發(fā)燒友App





評論