趙璐 宋新萍 姚振鑫
(上海工程技術(shù)大學 上海 201600)
定位是自動駕駛的基本任務(wù)之一,精確和可靠的定位模塊(對自動駕駛汽車的位置和方向進行估算)至關(guān)重要。在理想情況下,定位精度必須特定于厘米級別,并且必須普遍達到亞度姿勢精度。在過去的十年中,已經(jīng)提出了幾種借助3D 光檢測和測距(LiDAR)掃描儀來實現(xiàn)此目標的方法[8,13~15]。經(jīng)典的定位管線通常涉及幾個步驟,具有某些變化,如圖1 所示。它們是一種特征表示方法(例如,點、平面、極點、二維網(wǎng)格上的高斯條),匹配算法,異常值排除步驟(可選),匹配損失函數(shù),空間搜索或優(yōu)化方法(例如,窮舉搜索或粗略搜索,蒙特卡洛采樣或迭代梯度下降最小化)以及時間優(yōu)化或濾波框架。盡管它們中的一些在不同情況下的準確性和魯棒性方面已顯示出出色的性能,但通常需要大量的工程工作來調(diào)整管道中的每個模塊并設(shè)計硬編碼的特征和匹配方法。而且,這些手工制作的系統(tǒng)通常對運行場景具有強烈的偏好。建立適應(yīng)所有挑戰(zhàn)性場景的通用定位系統(tǒng)需要付出巨大的工程努力,這是不可行的。
圖1 傳統(tǒng)和建議的基于學習的方法的體系結(jié)構(gòu)
基于學習的方法打開了一個全新的窗口,以數(shù)據(jù)驅(qū)動的方式解決上述問題。好處是,可以輕松地為定位任務(wù)收集大量的訓(xùn)練數(shù)據(jù),因為通??梢允褂妹摍C方法自動或半自動獲取地面真相軌跡。通過這種方式,可以最大程度地減少人工標記的工作量,使其更具吸引力且更具成本效益。
在本文中,我們提出了一種深度神經(jīng)網(wǎng)絡(luò)架構(gòu),以使用LiDAR 掃描準確估算車輛的位置和方向。傳統(tǒng)的手工制作管道中的模塊已被深度神經(jīng)網(wǎng)絡(luò)取代。單個kcNet[11]用于提取局部特征描述符。它們對點的局部鄰域的某些最有用和最有效的統(tǒng)計屬性進行編碼,然后,通過圖形最大值或平均池獲得點的局部簽名,該簽名可以代表局部表面的聚集特征信息。并經(jīng)過訓(xùn)練以優(yōu)化匹配的魯棒性。我們網(wǎng)絡(luò)的關(guān)鍵設(shè)計是顯著提高定位精度,并且在x×y×ψ尺寸上具有完全可區(qū)分的損失量,該尺寸由最近學習基于立體的3D 卷積規(guī)范化[7]。最后,計算所有維度的匹配概率并獲得最佳估計。通常由諸如粒子濾波器之類的濾波方法建模的時間運動動力學由深度遞歸神經(jīng)網(wǎng)絡(luò)(RNN)隱式封裝。
在我們的方法中,L3-Net 將在線LiDAR 掃描,預(yù)先構(gòu)建的地圖和預(yù)測的姿態(tài)作為輸入,通過Kc-Net學習特征,在解決方案空間上構(gòu)建損失量,應(yīng)用CNN和RNN估計最佳姿態(tài)。
總而言之,我們的主要貢獻是:
1)提出一個基于深度學習的自動駕駛LiDAR定位框架,可直接處理點云并準確估計車輛的位置和方向,并產(chǎn)生與現(xiàn)有水平的可比結(jié)果。
3)在KITTI數(shù)據(jù)集與其他算法進行了比較,并使用新收集的數(shù)據(jù)集全面驗證了我們方法的有效性。
基于LiDAR 的自動駕駛汽車定位已經(jīng)研究了很長時間,因為與其它傳感器相比,它具有較高的精確性和可靠性。
傳統(tǒng)的LiDAR定位方法基于幾何,它們嚴重依賴幾何約束來估計車輛的運動。最直接的方法是應(yīng)用點云配準算法來解決運動問題。迭代最近點(ICP),廣義迭代最近點(G-ICP)和正態(tài)分布變換(NDT)是可以考慮的常見配準算法。使用這些方法進行匹配通常需要定義兩次掃描匹配之間的損失函數(shù),并評估梯度以迭代的方式獲得最小化匹配損失。由于梯度下降的性質(zhì),這些方法高度依賴于初始位置,并且受局部最小值的影響。一種更普遍的策略是利用LiDAR 強度和高度信息。與僅基于點云的幾何信息的系統(tǒng)相比,LiDAR強度提供了更多的環(huán)境紋理信息,例如道路標志,作為有價值的附加提示。最近的幾篇著作[13,15~16]結(jié)合了強度和高度提示,以實現(xiàn)更可靠、更準確的結(jié)果。
據(jù)我們所了解,現(xiàn)在應(yīng)用于解決這些問題的方法還不是很多。另外,與傳統(tǒng)的精心設(shè)計的手工管線相比,它們在精度方面都還沒有達到最新的性能。PoseNet[6]及其變體[9]試圖解決視覺重新定位問題,在該問題中,準確的解決方案并不是目標。對PoseNet 的改進[2]結(jié)合了幀之間的相對幾何約束或通過雙向LSTM 集成了時間信息。姿態(tài)軌跡可以平滑化,并且可以減少定位誤差,但是它們?nèi)匀徊荒軡M足自動駕駛應(yīng)用的需求。在本文中,提出了一種新穎的基于學習的LiDAR定位系統(tǒng),該系統(tǒng)可直接處理點云。它具有匹配先進的手工定位管道性能的能力。
受最近深度學習在直接處理點云方面的影響,我們考慮是否能夠?qū)Ⅻc云處理的成功經(jīng)驗應(yīng)用于基于LIDAR 的定位。為此設(shè)計了一個基于LiDAR定位的深度學習框架,該框架使用了一個在線Li-DAR 點云和一個預(yù)先構(gòu)建的3D 點云地圖。在線LiDAR 點云可以是來自安裝在車輛上的LiDAR 設(shè)備的單個或幾個連續(xù)幀,是從多個LiDAR 掃描(考慮運動補償)中累積的。它表示為一組3D 點{pi|=i=1,…,n},其中每個點pi是(x,y,z,r)的向量,包括其在本地車輛中的坐標和反射強度。預(yù)先構(gòu)建的3D 點云圖是LiDAR 點的集合,這些點具有通過測量或測繪車輛收集的全局坐標。為了提高存儲效率,使用體素網(wǎng)格過濾器對3D 點云圖進行了下采樣。此外,我們使用A-CNN[12]執(zhí)行語義分割,以在點云圖中刪除動態(tài)對象,例如車輛,自行車,行人等。
除了在線點云和預(yù)先構(gòu)建的地圖之外,我們定位框架的輸入還包括通常由慣性測量單元(IMU)生成的預(yù)測姿態(tài)。因此,任務(wù)是通過最小化在線點云和3D地圖之間的匹配損失來尋找最終姿勢和預(yù)測姿勢之間的最佳偏移。以對慣性測量單元(IMU)進行修正。為了獲得更好的效率和魯棒性,我們遵循最先進的定位系統(tǒng),并僅估計2D 水平和航向偏移量(Δx,Δy,Δψ)。
KcNet[11]致力于解決網(wǎng)絡(luò)體系結(jié)構(gòu)中消耗點云并充分利用包含細粒度結(jié)構(gòu)信息的點的局部鄰域的問題。它主要包括以下兩項新的操作,一是局部3D幾何結(jié)構(gòu),類似于圖像的卷積核,將點集核定義為一組可學習的3D 點,這些點根據(jù)由核相關(guān)性測量的幾何親和力,共同響應(yīng)一組相鄰數(shù)據(jù)點的幾何親和力。二是通過在3D位置計算出的最近鄰圖上進行遞歸特征聚合來利用局部高維特征結(jié)構(gòu)。主要見識在于,相鄰點往往具有相似的幾何結(jié)構(gòu),因此通過鄰域圖傳播特征有助于學習更強大的局部模式。
圖1和表1示,CEACAM1在128例正常食管黏膜組織中高表達4例(3.13%),低表達12例(9.38%),無表達112例(87.5%)。CEACAM1在128例食管腺癌組織標本中有表達,其中高表達92例(71.8%),低表達30例(23.4%),無表達6例。2組比較差異有統(tǒng)計學意義,Z=13.36,P<0.001。
本節(jié)詳細描述了為基于學習的LiDAR 定位問題而設(shè)計的擬議網(wǎng)絡(luò)的架構(gòu),即所謂的DL-Net,如圖2 所示。幾何結(jié)構(gòu)在第一個訓(xùn)練階段,僅涉及黑色箭頭,其中包括關(guān)鍵點選擇,mini-KcNet 特征提取和基于3D CNN 的正則化。藍色箭頭指示第二訓(xùn)練階段,其中添加了基于RNN的時間平滑度。
圖2 建議的基于學習的LiDAR定位網(wǎng)絡(luò)L3-Net的體系結(jié)構(gòu)
第一步是是從一組局部補丁中提取局部特征描述符,我們稱之為關(guān)鍵點。關(guān)鍵點的選擇從不同方面考慮了幾個局部和全局幾何特征。在選擇關(guān)鍵點之后,使用KcNet[11]提取局部特征描述符。
1)關(guān)鍵點選擇。鑒于在線LiDAR點云,我們考慮了一些因素(包括密度,幾何特征和分布)提取了固定數(shù)量的關(guān)鍵點。首先,遍歷所有點,并找到附近具有足夠點密度的候選者。然后,使用眾所周知的3D 結(jié)構(gòu)張量評估每個候選關(guān)鍵點的線性和散射。具有強線性和散射結(jié)構(gòu)的特征被認為適合定位任務(wù)。
2)描述符提取。一旦選擇了所有合格的關(guān)鍵點,我們將為其提取有意義的特征描述符。傳統(tǒng)上,簡單的幾何或統(tǒng)計特征用于使用深度網(wǎng)絡(luò)學習的特征來描述點云之間的相似性。在提出的方法中,我們通過應(yīng)用KcNet[11]提取特征描述符。對于每個關(guān)鍵點,我們收集64 個相鄰點。對于每個相鄰點,關(guān)鍵點的相對坐標及其反射強度(x,y,z,r)用于描述符提取。因此,KcNet 網(wǎng)絡(luò)的輸入為64×4張量,輸出為表示關(guān)鍵點補丁局部特征的32 維向量。我們使用參數(shù)共享的KcNet 結(jié)構(gòu)對在線點云和離線地圖進行特征提取。
下一步是構(gòu)建一個網(wǎng)絡(luò),以準確地推斷定位偏移量(Δx,Δy,Δψ)。這是通過在解空間(x,y,ψ)中構(gòu)造一個損失量并使用3D 卷積神經(jīng)網(wǎng)絡(luò)(3D CNN)對其進行正則化來完成的。首先,我們將解空間劃分為x,y和ψ維度的離散空間,并將nx,ny,nψ表示為每個維度的數(shù)量。在下文中,我們將{f1,…,fN}表示為在線LiDAR 點云的關(guān)鍵點描述符。因此,損失量為N×nx×ny×nψ。每個像元代表具有給定偏移量的相應(yīng)關(guān)鍵點和3D地圖點之間的匹配損失。
1)可微分變換。給定預(yù)測的姿態(tài),在線點云的所有局部關(guān)鍵點都將轉(zhuǎn)換為其全局坐標。然后,將預(yù)測姿勢的鄰域劃分為x,y 和偏航維度,表示為{(Δxi,Δyi,Δψi)|1 ≤i≤nx,1 ≤j≤ny,1 ≤k≤nψ} ???以使用由2×2 旋轉(zhuǎn)矩陣和2d 平移矢量表示的變換來計算3D地圖中的相應(yīng)坐標:
然后,再次使用3D 地圖中計算出的相應(yīng)坐標的相鄰點,通過KcNet 結(jié)構(gòu)提取其特征描述符。損失量中的每個像元都與在線點云中的原始關(guān)鍵點及其特征描述符,以及地圖中的相應(yīng)特征描述符相關(guān)。通過使用在線點云和地圖中的描述符對,我們可以通過計算它們之間的度量距離(這是正則化網(wǎng)絡(luò)的輸入),在偏移解空間中形成N×nx×ny×nψ體積。度量距離是一個32 維向量,其中每個元素都是根據(jù)距描述符對中對應(yīng)元素的L2 距離計算得出的。
2)正則化。鑒于以上輸入,我們希望學習正則化函數(shù),該函數(shù)能夠考慮此卷中的上下文并優(yōu)化匹配損失。偏移空間中的匹配是針對每個關(guān)鍵點獨立計算的,因此即使使用深層特征表示,也永遠不可能是完美的。
受最近基于立體學習的學習方法的啟發(fā)[7],將3D卷積應(yīng)用于體積正則化。如圖3所示,預(yù)沙漏模塊由4 個3D 卷積,具有BN 和ReLU。然后是三個堆疊的3D 沙漏網(wǎng)絡(luò),通過編碼-解碼結(jié)構(gòu)來學習更好的上下文特征。和其他論文的3D聚合網(wǎng)絡(luò)相比,我們提出了一些改進的地方,提升了性能、增加了推理速度。首先,我們?yōu)轭A(yù)沙漏模塊的特征增加了一個輔助的輸出模塊(圖3中的輸出模塊0)。這個輔助的損失讓網(wǎng)絡(luò)在較淺的層學到更好的特征,對最終的預(yù)測是有利的。在每個沙漏模塊中,其次我們在快捷連接中增加了1×1×1的3D卷積(圖3中的虛線部分),提升性能,而不會增加計算成本。在每個nx×ny×nψ子卷上執(zhí)行3D CNN,它們共享相同的參數(shù),從而顯著提高了收斂速度并有效地避免了過度擬合。
圖3 我們建議的3D聚合網(wǎng)絡(luò)結(jié)構(gòu)
該網(wǎng)絡(luò)由一個沙漏前模塊(開始時有四個卷積)和一個堆疊的3D 沙漏網(wǎng)絡(luò)組成。1×1×1 3D 卷積被添加到沙漏模塊中的快捷方式連接中。
在4.2 小節(jié)中,我們針對每個關(guān)鍵點分別計算所有偏移配置{Δxi,Δyi,Δψi}的匹配損失。在本小節(jié)中,我們介紹一個概率偏移量,以表示偏移空間中所有關(guān)鍵點的共識,即nx×ny×nψ量。給定偏移量,它表示在線點云和3D 地圖之間的總體匹配損失。
1)邊際化。假設(shè)所有關(guān)鍵點彼此獨立,則可以通過以下公式計算偏移量ΔT=(Δxi,Δyj,Δψk的匹配概率:,其中pi(ΔT)表示第i個關(guān)鍵點的匹配概率在偏移量ΔT 處。由于乘積很容易引起溢出,因此上述等式轉(zhuǎn)換為對數(shù)似然:
其中C(ΔT)代表在線點云與3D 地圖之間在偏移量ΔT 處的總體匹配損失。在我們的實現(xiàn)中,我們將上述損失對數(shù)(pi(ΔT))作為輸入,然后通過應(yīng)用減少的平均操作將其邊緣化為關(guān)鍵點維度上的nx×ny×nψ損失量,這與總匹配損失C(ΔT) 相對應(yīng)。
2)概率。邊際化損失量中每個像元的值是相應(yīng)偏移量的整體匹配損失。我們沿x,y 和ψ維度應(yīng)用softmax 運算,以將匹配損C(ΔT)失轉(zhuǎn)換為歸一化值,解釋為概率P(ΔT)。最后,通過應(yīng)用歸約求和運算,將概率偏移量P(ΔT)邊緣化為x,y 和ψ維度上的概率矢量:
以上各小節(jié)介紹了在線點云與地圖之間的空間匹配。因此,順序幀的概率偏移量彼此獨立。但是,定位任務(wù)是一個順序的過程,因此應(yīng)該共同考慮順序幀的姿勢。在傳統(tǒng)方法[8,13]中,直方圖過濾器內(nèi)的歷史分布會傳播以估計當前匹配分布,從而確保輸出的時間平滑。遵循這種精神,介紹了遞歸神經(jīng)網(wǎng)絡(luò)(RNN)以實現(xiàn)類似的時間平滑度。更具體地說,我們在網(wǎng)絡(luò)中使用LSTM[3],如圖2 所示。來自概率偏移量的每個維度(x,y,ψ)的概率向量被視為每個參數(shù)獨立RNNs 單元的輸入。通過RNN的歷史信息學習,定位結(jié)果的軌跡更加平滑和準確,如第5.3小節(jié)表1所示。
與先前使用特征空間距離作為損失的工作[7]不同,我們將損失直接定義為估計偏移量和真實情況ΔT*=(Δx*,Δy*,Δψ*)之間的平方L2 距離。估計偏移量可以通過以下方式計算:
我們定義了兩個輸出模塊,損失函數(shù)定義如下:
其中α是平衡因子。
在實驗中,使用了兩個數(shù)據(jù)集。首先,KITTI數(shù)據(jù)集[10]具有里程表數(shù)據(jù)集,其中包括Velodyne HDL-64 LiDAR 傳感器讀數(shù)和用于評估的真相。選擇里程測試基準00、02和06和進行測試。其次,我們使用移動機器人從大學校園中收集了自己的長達1.1km 的16 節(jié)數(shù)據(jù)集,每節(jié)數(shù)據(jù)集為期3 天,稱為YQ16。我們選擇3 天中的6 節(jié)數(shù)據(jù)集進行評估,如圖4所示。
圖4 建立數(shù)據(jù)集
在訓(xùn)練階段,我們采取兩步走策略。第一步,我們只訓(xùn)練KcNet 結(jié)構(gòu)和3D CNN。為了實現(xiàn)這一點,我們首先在網(wǎng)絡(luò)體系結(jié)構(gòu)中刪除RNN,然后直接從根據(jù)概率偏移量推斷出的概率向量中計算損失。批量大小和學習率分別設(shè)置為1 和0.01。為了使提取的特征更魯棒,將x-y 方向上均勻分布的[0~1.0]m隨機噪聲和偏航方向上[0~2.0]°的隨機誤差添加到輸入的預(yù)測姿態(tài)中。在第二步中,使用固定在min i-KcNet 結(jié)構(gòu)和3D CNN 中的參數(shù)訓(xùn)練RNN 的參數(shù)。批次大小和學習率分別設(shè)置為1 和0.001。
1)定量分析。在表1 中,我們對每種可用方法進行了定量分析。它進一步證明了我們基于學習的L3-Net 的本地化性能可與現(xiàn)實駕駛場景中先進的手工方法相媲美。在大多數(shù)路線中,RNN 的時間平滑性為我們提供了更好的性能,這說明了其有效性。
表1 定量分析結(jié)果
2)運行時間分析。如表2 所示,我們使用GTX 1080 Ti GPU,Core i7-9700K CPU和16GB內(nèi)存評估了平臺的運行時性能。關(guān)鍵點選擇花費47.2ms,35.6ms和72.6ms,差分轉(zhuǎn)換和前進步驟。每幀的總的端到端處理時間為156.4ms,從而產(chǎn)生了實時系統(tǒng)。
表2 運行時間分析結(jié)果
3)特征描述符比較。在表3 所示的描述符提取步驟中,我們用min i-KcNet 結(jié)構(gòu)代替KcNet[11]和PointNet[5]。我們注意到,我們的min i-KcNet 結(jié)構(gòu)明顯優(yōu)于KcNet 和PointNet。PoinrNet 是一個啟發(fā)性的先驅(qū),致力于解決網(wǎng)絡(luò)體系結(jié)構(gòu)中消耗點云的問題。它由堆疊在點上的獨立MLP 組成,直到合成高維描述符的最后一層為止。但它并沒有充分利用包含細粒度結(jié)構(gòu)信息的點的局部鄰域,這對于提取點云局部特征描述符至關(guān)重要。而且,在我們的設(shè)計中,min i-KcNet 的描述符大小和結(jié)構(gòu)比KcNet 小得多,從而使它們可以進一步專注于局部特征學習。
表3 特征描述符比較結(jié)果
4)3D CNN。為了驗證3D CNN的重要性,我們進行了以下實驗:刪除3D CNN 和只有輸出模塊0的3DCNN*,我們的結(jié)果顯示在表4 中,其中使用3D CNNs×和只有輸出模塊0 的3DCNN*會降低定位精度。這表明與直接在描述符對之間使用L2距離(無3D CNN)相比,3D CNN可以了解真實特征距離并有效地規(guī)范化解決方案空間中的輸出。另外,這個輔助的損失讓網(wǎng)絡(luò)在較淺的層學到更好的特征,對最終的預(yù)測是有利的。
表4 3D CNN比較結(jié)果
本文提出了一種新穎的基于學習的LiDAR 定位框架,該框架旨在用于自動駕駛應(yīng)用。傳統(tǒng)定位管道中精心制作的手工模塊已替換為基于學習的深度神經(jīng)網(wǎng)絡(luò)。我們的系統(tǒng)可達到與現(xiàn)有技術(shù)水平相當?shù)亩ㄎ痪?。概率偏移量表示解決方案空間上的匹配置信度,使其可以部署在基于多傳感器融合的定位框架中。將來,我們希望在移動車輛的動態(tài)環(huán)境中實現(xiàn)全球定位。