自動駕駛中車輛的如何使用點(diǎn)云定位?
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
激光雷達(dá)傳感器能夠獲取豐富,稠密且精確的三維空間中物體的點(diǎn)云數(shù)據(jù),這可以幫助自動駕駛車輛實(shí)現(xiàn)定位和障礙物的跟蹤,lidar也將成為實(shí)現(xiàn)完全自動駕駛的核心傳感器。本篇文章將主要介紹三維激光雷達(dá)在自動駕駛定位領(lǐng)域最新的研究,并分析各種方法的定位的效果。
????????自動駕駛的定位意味著能夠在地圖中找到車輛的位置和方向。這里的地圖也是只使用激光雷達(dá)獲取的,使用激光束獲取測量的距離并產(chǎn)生點(diǎn)云數(shù)據(jù),其中的每個點(diǎn)表示傳感器獲取的物體表面的(XYZ)的坐標(biāo)?;邳c(diǎn)云的高精地圖是可以通過lidar掃描離線的構(gòu)建出來,也可以在導(dǎo)航過程中通過里程計(jì)實(shí)現(xiàn)閉環(huán)的構(gòu)建地圖,也就是SLAM系統(tǒng)。
????????這里首先分析使用激光雷達(dá)的點(diǎn)云數(shù)據(jù)作為定位的優(yōu)缺點(diǎn),與圖像或其他傳感器相比。
lidar數(shù)據(jù)能夠在獲取更為豐富且精確的空間信息,這也使得車輛在定位中更為有優(yōu)勢。
由于激光雷達(dá)的數(shù)據(jù)不斷的下降,這使傳感器更易于大眾使用和研究,并且對于汽車廠商來說也逐漸被接受。
但是使用3D lidar作為定位設(shè)備通常也會有一些問題,由于lidars數(shù)據(jù)數(shù)量巨大,因此需要快速處理輸出并確保系統(tǒng)的實(shí)時性,所以確保車輛的實(shí)時定位具有一定的挑戰(zhàn)和難度。所以通常需要使用下采樣或者特征點(diǎn)提取的方法來高效的簡化點(diǎn)云信息。
????????我們知道在車輛的實(shí)時定位系統(tǒng)中生成里程計(jì)是必不可少的部分,在過去的研究中,已經(jīng)提出了很多的使用lidar的點(diǎn)云數(shù)據(jù)來計(jì)算車輛的里程計(jì)的方法,這些方法中主要有三個不同的類別:
(1)基于點(diǎn)云數(shù)據(jù)的配準(zhǔn)方法[1]:這是一種很好的離線的構(gòu)建高精地圖的方法,這種方法由于太慢而無法實(shí)時的處理,因?yàn)樵摲椒紤]了lidar點(diǎn)云數(shù)據(jù)中的所有點(diǎn)進(jìn)行配準(zhǔn),可以將這種方法歸納為稠密的方法。
(2)基于點(diǎn)云特征點(diǎn)的方法:受2D圖像特征提取和匹配方法的啟發(fā)[2,3,4],根據(jù)3D點(diǎn)云的特征點(diǎn)的提取,計(jì)算連續(xù)幀之間的位移,這種方法的準(zhǔn)確性和實(shí)時處理還是可以的,但是對快速運(yùn)動不夠魯棒。這種方法僅僅使用了點(diǎn)云中提取的特征點(diǎn)來代表一幀的點(diǎn)云數(shù)據(jù)進(jìn)行配準(zhǔn),可以歸納為稀疏的方法。
(3)基于點(diǎn)云數(shù)據(jù)的深度學(xué)習(xí)的方法:深度學(xué)習(xí)在決定車輛的定位問題上的研究獲得越來越多的研究。在[5,6,7,8]文章中首先使用2D的圖像來預(yù)測和計(jì)算里程計(jì),并且最終的定位效果還是可以接受的。但仍不能超過現(xiàn)有的技術(shù)水平。
最近很多的工作正在探索使用lidar點(diǎn)云數(shù)據(jù),而結(jié)果上提有著很好的效果。接下來講介紹各種點(diǎn)云定位技術(shù)對比和測試結(jié)果。
首先回顧和討論文獻(xiàn)中可用的所有方法,在這些文獻(xiàn)中,僅使用3D LIDAR傳感器即可實(shí)現(xiàn)對車輛的3D定位。我們將可用方法分為三類(點(diǎn)云配準(zhǔn),3D特征點(diǎn)匹配法和深度學(xué)習(xí)的方法),并在下表中列出了它們。并在接下來的閱讀中細(xì)細(xì)介紹。

1
3D點(diǎn)云配準(zhǔn)方法
這里主要回顧基于3d 點(diǎn)云的配準(zhǔn)的定位方法,配準(zhǔn)的目的是實(shí)現(xiàn)一對點(diǎn)云能夠?qū)R在同一坐標(biāo)系下,從而可以計(jì)算出兩次掃描之間的點(diǎn)云的變換,在自動駕駛定位場景下,可以通過兩種方法使用配準(zhǔn)的方法:
(1)通過將獲取的掃描幀點(diǎn)云與預(yù)構(gòu)建的高精點(diǎn)云地圖的一部分進(jìn)行配準(zhǔn),對車輛進(jìn)行定位。
(2)通過連續(xù)的Lidar掃描獲取的點(diǎn)云計(jì)算出車輛的里程計(jì)信息。
點(diǎn)云配準(zhǔn)主要用于形狀對齊和場景重建等領(lǐng)域,其中迭代最近點(diǎn)算法(ICP)是最受歡迎的算法之一,在ICP中通過最小化點(diǎn)云數(shù)據(jù)之間的度量誤差來優(yōu)化源點(diǎn)云和目標(biāo)點(diǎn)云之間的轉(zhuǎn)換。并在該研究領(lǐng)域有多種ICP算法的變種【47】,常見的變種算法有點(diǎn)到線段的ICP[48],點(diǎn)到面的ICP[49]以及通用的ICP[10],ICP算法可以認(rèn)為是解決點(diǎn)云配準(zhǔn)的經(jīng)典算法,在文章【11】中將點(diǎn)云配準(zhǔn)和回環(huán)檢測以及車輛位姿圖的優(yōu)化結(jié)果在一起,以減少連續(xù)配準(zhǔn)帶來的累計(jì)誤差。在論文【50】中提出了一種計(jì)算里程計(jì)并整合雷達(dá)傳感器數(shù)據(jù)的特征來改善ICP算法,這是一種通過對點(diǎn)云的下采樣和點(diǎn)云數(shù)據(jù)的幾何性質(zhì)抑制點(diǎn)云匹配的ICP算法,作者在KITTI數(shù)據(jù)集上的里程計(jì)漂移下降了27%,但是ICP算法最終被3D正態(tài)分布(NDT)算法所超越【14】【51】3DNDT算法其實(shí)是一種將2D NDT算法的擴(kuò)展到三維空間的算法,與ICP算法類似的是源點(diǎn)云和目標(biāo)點(diǎn)云質(zhì)檢的轉(zhuǎn)換也需要進(jìn)行迭代和優(yōu)化,但是這種方法的優(yōu)化的誤差方程不在點(diǎn)對之間,而在根據(jù)預(yù)先計(jì)算的體素中存在的點(diǎn)的均值和協(xié)方差,NDT首先將點(diǎn)云轉(zhuǎn)換為概率密度函數(shù)(PDF),然后將概率密度函數(shù)與高斯牛頓算法結(jié)合優(yōu)化,找到兩點(diǎn)云之間的空間變換,在【52】中提出了對3D NDT算法的擴(kuò)展并命名為概率NDT算法,該算法嘗試解決經(jīng)典的NDT算法的稀疏性。這種不再給予點(diǎn)的數(shù)量而是概率的點(diǎn)的概率的方法能夠獲取LIDAR數(shù)據(jù)之間的轉(zhuǎn)換關(guān)系,但是在自動駕駛中,這種方法很少能夠滿足實(shí)時運(yùn)行計(jì)算的要求。所以一般會加入一下輔助的傳感器,比如IMU,作為初始的定位值。在IMLS-SLAM[20]算法中提出了三部算法:
(1)首先是動態(tài)對象的刪除,該動態(tài)對象通過對掃描幀點(diǎn)云數(shù)據(jù)的聚類獲取再刪除。
(2)對于刪除動態(tài)障礙物的剩余點(diǎn)云進(jìn)行下采樣,
(3)最后是匹配步驟,通過掃描到模型的匹配策略,使用隱式最小移動法(IMLS)計(jì)算和優(yōu)化轉(zhuǎn)換關(guān)系.
另外一種流行的處理方法是計(jì)算點(diǎn)云的surfel(SURFace ELement)文章【24】構(gòu)建點(diǎn)云的surel貼圖,構(gòu)建的貼圖和法線貼圖可用于ICP算法來計(jì)算車輛的里程計(jì),并通過surfel實(shí)現(xiàn)回環(huán)檢測和軌跡優(yōu)化。在文章[38]中,通過以下步驟將激光雷達(dá)掃描轉(zhuǎn)換為線點(diǎn)云:從相鄰環(huán)的相鄰點(diǎn)之間采樣線段。然后使用迭代方法將這些線點(diǎn)云對齊:首先,計(jì)算生成的線的中心點(diǎn)。然后,通過在目標(biāo)點(diǎn)云中找到中心距源點(diǎn)云中最近的線,將這些點(diǎn)用于查找連續(xù)掃描之間的轉(zhuǎn)換。然后使用其他后期處理技巧來提高準(zhǔn)確性,例如使用以前的變換來預(yù)測和初始化下一個姿勢估計(jì)步驟。有時,減小LIDAR數(shù)據(jù)的維數(shù)也可以產(chǎn)生合理的結(jié)果,例如在[40]中,將傳入的掃描數(shù)據(jù)投影到具有占用柵格和高度的2.5D網(wǎng)格圖上。
2
基于3D特征的定位方法
3D的點(diǎn)云特征有【55】【56】【57】是代表在時間和空間上具有一致性的可識別區(qū)域的興趣點(diǎn),這些特征點(diǎn)通常用于3D的對象檢測使用特征描述子作為唯一的向量表示法,并且描述子可以用于匹配兩個不同點(diǎn)云中的特征,通過找到足夠且一致的匹配項(xiàng),再使用優(yōu)化的方法計(jì)算兩次掃描點(diǎn)云之間的轉(zhuǎn)換關(guān)系。從而能夠構(gòu)建里程計(jì),在文章【12】中作者提出了一項(xiàng)研究著重于尋找出在自動駕駛實(shí)現(xiàn)精確定位的特征信息,但是由于點(diǎn)簇的分布由于場景的不同,該方法提取出來的特征點(diǎn)也是不穩(wěn)定的,在論文【16】中,提出了PoseMap的方法,作者認(rèn)為地圖的連續(xù)性是實(shí)現(xiàn)車輛定位的關(guān)鍵,并且預(yù)先構(gòu)建的點(diǎn)云高精地圖,然后根據(jù)重疊閾值對齊進(jìn)行二次采樣,以生成維持關(guān)鍵幀姿態(tài)的環(huán)境集合,這些子地圖可以在不同的時間點(diǎn)彼此獨(dú)立的更新,然后通過簡單的使用兩個與當(dāng)前車輛最近的子地圖并且最小化舊地圖和和新特征之間的距離,通過滑動窗口的方法解決定位問題。
還有論文【21】【22】利用自動駕駛車輛環(huán)境中存在的幾何形狀作為定位的要素,將平面提取算法與幀與幀之間的技術(shù)相結(jié)合以產(chǎn)生姿態(tài)的估計(jì)用于車輛的定位,與通過ICP算法獲得的結(jié)果比較平面提取和對齊的方法在準(zhǔn)確性和速度上都顯示出了極大的提高。
目前KITTI里程計(jì)排行榜上排名第一的方法[25],首先根據(jù)點(diǎn)的平滑度和遮擋度提取平面和角點(diǎn)要素。這些特征與后續(xù)掃描中的點(diǎn)patch相匹配,然后使用Levenberg-Marquardt方法求解LIDAR運(yùn)動。正如通常在大多數(shù)SLAM流程中所做的那樣,在后臺線程中以比里程計(jì)估計(jì)更慢的頻率構(gòu)建地圖,這有助于改善最終定位結(jié)果。在文章[26]中提出了對該方法的擴(kuò)展方法,以提高其速度并保證里程計(jì)計(jì)算的實(shí)時性。主要的改進(jìn)在于通過消除不可靠的特征并使用兩次LevenbergMarquardt方法來加快優(yōu)化步驟,從而充分利用地面的信息。盡管如此,LOAM流程中的主要遺留問題之一是由于累積誤差導(dǎo)致的里程表漂移。但是,將回環(huán)檢測算法加入到流程中是可以解決此問題,如[28]或[27]中所示。
3
基于3D點(diǎn)云深度學(xué)習(xí)的定位方法
????????深度學(xué)習(xí)的方法應(yīng)用在里程計(jì)和定位上還是比較新穎的研究方向,但是在深度學(xué)習(xí)被證明在圖像領(lǐng)域的價值之后,并且像PointNet【60】和PointNet++這樣的方法表明,深度學(xué)習(xí)的使用將會越來越流行,涉及到深度學(xué)習(xí)的方法可以嘗試使用原始點(diǎn)云作為輸入并使用單個網(wǎng)絡(luò)直接預(yù)測車輛的位移以端到端的方式解決此任務(wù),提出使用深度學(xué)習(xí)方法解決里程計(jì)的方法是論文【13】,為了簡化深度學(xué)習(xí)的網(wǎng)絡(luò)的輸入不是直接對3D點(diǎn)云進(jìn)行處理而是將LIDAR點(diǎn)云投影到2D空間上生成全景的深度圖像,然后將其輸入到卷積網(wǎng)絡(luò)中,求解兩個輸入幀之間的旋轉(zhuǎn)和平移,獲得的結(jié)果低于標(biāo)準(zhǔn),但是確是探索使用深度學(xué)習(xí)解決此任務(wù)的方案。
????????全景的深度圖像是lidar數(shù)據(jù)的一種常見的表示形式,另一種使用深度圖像的方法是DeepPCO【17】將雷達(dá)投影生成的全景深度圖分別輸入到兩個卷積網(wǎng)絡(luò)中,分別用于計(jì)算兩幀之間的旋轉(zhuǎn)和平移。另外還有將雷達(dá)點(diǎn)云投影到球形坐標(biāo)系下生成兩個新的2D圖像,分別是定點(diǎn)圖(表示每個點(diǎn)的位置(XYZ))和發(fā)現(xiàn)圖(表示每個點(diǎn)的法線值),將兩個圖像分別輸入到兩個網(wǎng)絡(luò)中,分別是:VertexNet他以定點(diǎn)圖作為輸入,用于預(yù)測連續(xù)幀之間的轉(zhuǎn)換,NormalNet以法線圖作為輸入,預(yù)測兩者之間的旋轉(zhuǎn)。
????????在[44]中提出了一種稱為CAE-LO的解決方案,其中使用無監(jiān)督卷積自動編碼器以多尺度方式從LIDAR數(shù)據(jù)的球形投影中提取特征。附加的自動編碼器用于生成特征描述符,然后使用基于RANSAC的幀到幀匹配來匹配點(diǎn)。最后,ICP算法用于完善里程計(jì)結(jié)果。
????????在[29]中,提出了LORAX算法。這種方法引入了超點(diǎn)的概念,超點(diǎn)是位于球體內(nèi)并描述了點(diǎn)云局部表面的點(diǎn)的子集,這些超點(diǎn)被投影到2D空間上以形成2D深度圖。然后使用一系列測試對這些深度圖進(jìn)行過濾,僅留下相關(guān)的超點(diǎn),并使用PCA和深度自動編碼器進(jìn)行編碼。然后,再進(jìn)行粗配準(zhǔn)步驟(其中使用涉及RANSAC算法的迭代方法)之前,根據(jù)特征之間的歐式距離來選擇要匹配的候選對象。作為最后一步,使用ICP算法微調(diào),以提高整個算法結(jié)果的準(zhǔn)確性。
????????在集成一系列的論文[32],[31],[33],[34]后提出SegMap方法[35]的作者探索了如何使用簡單的卷積網(wǎng)絡(luò)有效地從點(diǎn)云中提取和編碼片段,用于解決定位和構(gòu)建地圖相關(guān)任務(wù)。這種方法的主要貢獻(xiàn)在于其數(shù)據(jù)驅(qū)動的3D片段描述符,該描述符是使用由一系列卷積和完全連接的層組成的網(wǎng)絡(luò)提取的。使用由兩部分組成的損失函數(shù)訓(xùn)練描述符提取器網(wǎng)絡(luò):分類損失和重建部分。最終,使用k-Nearest Neighbors(k-NN)算法找到提取的片段及其候選對應(yīng)關(guān)系,這使得解決定位任務(wù)成為可能。
?? ??????當(dāng)試圖使兩幀點(diǎn)云之間的運(yùn)動回歸時,前面討論的大多數(shù)方法都會不可避免地遭受場景中動態(tài)對象(汽車,行人等)的影響。已知在場景中刪除動態(tài)對象可以改善大多數(shù)SLAM流程中的里程計(jì)計(jì)算結(jié)果。但是,以有監(jiān)督的方式檢測然后從場景中刪除動態(tài)對象會帶來額外的復(fù)雜性,這可能導(dǎo)致更長的處理時間和不穩(wěn)定的結(jié)果。為了以一種無監(jiān)督的方式解決這個問題,論文[37]中的作者提出了為動態(tài)掩碼預(yù)測的任務(wù)訓(xùn)練編碼器-解碼器分支。這是通過優(yōu)化幾何一致性損失函數(shù)來完成的,該函數(shù)說明了點(diǎn)云數(shù)據(jù)的法線可以對幾何一致性進(jìn)行建模的區(qū)域。完整的網(wǎng)絡(luò)稱為LO-Net可以通過端對端的方式進(jìn)行訓(xùn)練,方法是將幾何一致性損失,里程計(jì)回歸損失和交叉熵?fù)p失結(jié)合起來以進(jìn)行正則化。

在KITTI訓(xùn)練數(shù)據(jù)集上的3D深度學(xué)習(xí)定位方法的比較

?在KITTI測試數(shù)據(jù)集上3D定位方法的比較。
????????????有些深度學(xué)習(xí)方法不是直接使用LIDAR進(jìn)行定位車輛的,而是嘗試學(xué)習(xí)常見流程中的錯誤模型。換句話說,深度學(xué)習(xí)可用于校正已經(jīng)可用的里程計(jì)計(jì)算,產(chǎn)生功能強(qiáng)大且靈活的插件模塊。論文[39]的作者建議學(xué)習(xí)一個偏差校正項(xiàng),目的是改善以LIDAR數(shù)據(jù)作為輸入的狀態(tài)估計(jì)器的結(jié)果。高斯模型用于對6個測距誤差進(jìn)行相互獨(dú)立的建模,其精心選擇的輸入特征集中在受誤差影響最大的3個自由度上。在[41]中,提出了一種更高級的方法,稱為L3-Net,可以將其關(guān)聯(lián)到偏差校正問題上,因?yàn)榇颂幍淖髡咛岢隽艘粋€嘗試學(xué)習(xí)殘差項(xiàng)的網(wǎng)絡(luò),而不是預(yù)測幀之間的轉(zhuǎn)換關(guān)系。首先提取相關(guān)特征并將其輸入miniPointNet中以生成其相應(yīng)的特征描述符。然后構(gòu)建殘差項(xiàng),并使用3D卷積神經(jīng)網(wǎng)絡(luò)對其進(jìn)行正則化。此外,將RNN分支添加到網(wǎng)絡(luò)中,以確保位移預(yù)測的時間平滑性。同一作者在[42],[43]中提出了一個更完整,更通用的L3-Net變種,并將其命名為DeepICP。在這里,使用PointNet ++提取特征,然后使用僅保留最相關(guān)特征的加權(quán)層進(jìn)行過濾。與先前的方法類似,使用miniPointNet結(jié)構(gòu)計(jì)算特征描述符,然后將其反饋到相應(yīng)的點(diǎn)云生成層,該層在目標(biāo)點(diǎn)云中生成相應(yīng)的關(guān)鍵點(diǎn)。為了使變換的最終值回歸,將兩個損失函數(shù)組合在一起,并對局部相似度和全局幾何約束進(jìn)行編碼。
? ? ? ? 我們根據(jù)先前在KITTI里程計(jì)數(shù)據(jù)集[9]上報告的結(jié)果對先前引用的方法進(jìn)行比較,該基準(zhǔn)測試是最流行的用于戶外里程計(jì)評估的大型數(shù)據(jù)集之一:它包含使用Velodyne HDL-64E記錄的22個序列激光雷達(dá)掃描儀已經(jīng)過預(yù)處理,以補(bǔ)償車輛的運(yùn)動。地面真值可用的11個序列,并且是使用高級GPS / INS系統(tǒng)獲得的。盡管LOAM仍然占據(jù)著KITTI排行榜的第一位,但是很明顯,涉及深度學(xué)習(xí)的方法正變得越來越準(zhǔn)確。例如,DeepICP的報告平均結(jié)果優(yōu)于訓(xùn)練數(shù)據(jù)集上提出的任何其他方法。但是,我們很難將它們歸類為“最先進(jìn)”的方法,主要有兩個原因:
(1)DeepICP報告,配準(zhǔn)每對點(diǎn)云大約需要2秒鐘。這太慢了,以至于不能在現(xiàn)實(shí)生活中運(yùn)行的真正的自動駕駛汽車上使用。
(2)尚未報告測試數(shù)據(jù)集上這些方法的結(jié)果。在測試數(shù)據(jù)集上的良好結(jié)果將證明這些方法能夠在實(shí)際場景中使用,而不僅是在深度神經(jīng)網(wǎng)絡(luò)已經(jīng)看到的數(shù)據(jù)上。在此之前,LOAM及其變體仍然是真正的自動駕駛部署的最佳選擇和最可信賴的。
????????在本文中,主要回顧,分析,比較和討論了自動駕駛汽車3D LIDAR定位領(lǐng)域中的大多數(shù)最新進(jìn)展和發(fā)現(xiàn)??紤]了使用唯一的傳感器是3D LIDAR的系統(tǒng),這是由于該傳感器在當(dāng)今最準(zhǔn)確的感知和定位系統(tǒng)中的重要性日益增加,此外,它對大眾和制造商的可用性也有所提高。從論文對KITTI里程計(jì)數(shù)據(jù)集進(jìn)行比較,得出以下結(jié)論:盡管基于深度學(xué)習(xí)的方法展現(xiàn)出良好的結(jié)果,并且似乎代表了未來的研究方向,但是基于3D特征檢測和匹配的方法由于在現(xiàn)實(shí)應(yīng)用中具有一定的穩(wěn)定性,仍被認(rèn)為是最佳且有效的方案。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計(jì)算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

