CMRNet++:在激光雷達地圖中與地圖和相機無關的單目視覺定位


摘要

定位是自主機器人的一個關鍵要素.雖然深度學習在許多計算機視覺任務中取得了較大進步,但它仍然沒有較大改進提高度量視覺定位.主要障礙之一是現有的基于卷積神經網絡的姿態回歸方法不能推廣到以前看不到的地方,我們最近推出的CMRNet通過在激光雷達地圖中啟用地圖獨立單目定位有效地解決了這一限制.在本文中,我們現在通過引入CMRNet++.

CMRNet++是一個顯著更魯棒的模型,它不僅有效地推廣到新的地方,而且獨立于相機參數.我們通過將深度學習與幾何技術相結合,并將度量推理移出學習過程來實現這一能力.這樣網絡的權重就不會綁定到特定的攝像頭.在三個具有挑戰性的自主駕駛數據集(即KITTI、Argoverse和Lyft5)上對CMRNet++進行的廣泛評估表明,CMRNet++的性能遠遠優于CMRNet以及其他系統.更重要的是,我們首次展示了深度學習方法的能力,無需在全新的環境中進行任何再訓練或微調,就能準確定位,并且不受攝像機參數的影響.


介紹
自動移動機器人,如自動駕駛汽車,需要精確定位才能安全導航。雖然全球導航衛星系統提供全球定位,但其精度和可靠性不足以用于機器人導航。為了緩解這個問題,利用機器人上的傳感器的定位方法被用來提高精度和魯棒性.
已經提出了多種方法來解決定位任務,使用各種機載傳感器。雖然基于激光雷達的方法通常可以實現足夠精確的定位,但由于相關的高成本,它們的采用主要受到阻礙。另一方面,基于攝像頭的方法更有希望在自主車輛中廣泛采用,因為它們非常便宜。雖然從歷史上看,基于相機的方法的性能不如基于激光雷達的方法,但計算機視覺和機器學習的最新進展大大縮小了這一差距。其中一些方法使用CNNs和隨機森林,雖然這些方法在室內環境中取得了顯著的效果,但是它們的性能卻有了顯著的提高受限于大規模室外環境。此外,他們只能在這些模型之前接受過訓練的地方使用。
在過去十年中,地圖提供商一直在開發為汽車領域定制的下一代高清地圖。這些地圖包括點云形式的道路場景的精確幾何重建,通常由激光雷達生成。這一因素促使研究人員開發了在激光雷達地圖中定位相機的方法。定位通常可以通過從照相機重建場景的三維幾何形狀,然后將該重建與地圖匹配,或者通過在圖像平面中匹配來執行
在本文中,我們提出了一種基于CMRNet++的相機與激光雷達地圖配準方法。我們建立在我們以前提出的CMRNet模型的基礎上,該模型受到攝像機-激光雷達姿態校準技術[19]的啟發。CMRNet獨立于地圖進行定位,我們現在進一步改進它,使其也獨立于攝像機的內部結構。與現有的最先進的基于CNN的姿態回歸方法不同,CMRNet不學習地圖,而是學習將圖像與預先存在的地圖進行匹配。因此,CMRNet可以用于任何有激光雷達圖的環境。然而,由于CMRNet的輸出是公制的(從初始姿態的6自由度剛體變換),網絡的權重與用于收集訓練數據的攝像機的固有參數相關聯。在這項工作中,我們通過解耦定位來緩解這個問題,首先采用像素到3D點匹配步驟,然后是姿態回歸步驟。雖然網絡獨立于攝像機的固有參數,但第二步仍然需要這些參數。我們在KITTI 、Agrocesse和Lyft5 數據集上評估了我們的模型,并在地圖和相機參數未知情況下,并證明我們的方法超越了最先進的方法。

CMRNet++:在激光雷達地圖中與地圖和相機無關的單目視覺定位的圖1


實驗結果
 1   Datasets
為了評估我們的CMRNet++的定位性能并評估其泛化能力,我們使用了三個不同的自主駕駛數據集,涵蓋不同的國家、不同的傳感器和不同的交通狀況
KITTI數據集: 我們使用里程計序列03、05、06、07、08和09的左攝像機圖像作為訓練集(總共11 426幀),序列00作為驗證集(4541幀)。
Argoverse:我們使用了來自中央前置攝像頭的圖像,該攝像頭以30 fps的速度提供1920×1200幅圖像。“3D跟蹤數據集”的訓練1、訓練2和訓練3分割的圖像用作訓練集(36,347幀),訓練4分割的圖像用作驗證集(2741幀)。
Lyft5:我們使用從10個選定的城市場景的前置攝像機記錄的1224×1024圖像作為驗證集(1250幀)。我們利用Lyft5數據集來評估我們的方法的泛化能力。我們首先在KITTI和Argoverse上訓練我們的CMRNet++,然后在Lyft5數據集上評估它,以評估定位能力,而無需任何再訓練。因此,該數據集不包括在訓練集中。
 2    LiDAR-maps generation
為了生成上述三個數據集的激光雷達圖,我們首先在它們各自的地面真實位置聚集單次掃描,這可以由數據集本身(Argoverse和Lyft5)提供,也可以由SLAM系統 (KITTI)生成。然后,我們使用Open3D庫以0.1米的分辨率對結果地圖進行下采樣。此外,因為我們希望地圖中只有靜態對象(例如,沒有行人或汽車),所以我們通過利用Argoverse和Lyft5提供的3D邊界框來移除動態對象。不幸的是,KITTI沒有為里程計序列提供這樣的邊界框,因此我們不能為這些序列移除動態對象。在未來,我們將利用語義分割技術或3D對象檢測器來移除它們
 3    Training on multiple datasets
我們通過組合來自KITTI和Argoverse數據集的訓練樣本來訓練CMRNet++。在多個不同的數據集上訓練一個CNN會帶來一定的挑戰。首先,兩個訓練數據集的不同基數(分別為11 426和36 347)可能會導致網絡在一個數據集上的性能優于另一個數據集。為了克服這個問題,我們在開始時隨機采樣了一個Argoverse子集,以獲得與KITTI相同的樣本數量。當子集在每個時期被采樣時,網絡將最終處理來自實時數據集中的每個樣本。
此外,這兩個數據集的攝像機具有非常不同的視野和分辨率。為了解決這個問題,我們調整圖像大小,使其具有相同的分辨率。實現這一點的一個簡單的方法是裁剪暗語圖像。然而,這將產生視野非常窄的圖像,使得RGB和激光雷達圖像之間的匹配變得越來越困難。因此,我們首先將Argoverse圖像下采樣到原始分辨率的一半(960×600),然后將Argoverse和KITTI圖像隨機裁剪到960×320像素。我們在訓練期間運行時執行這種隨機裁剪,以便在不同時期對同一圖像進行不同的裁剪位置。我們以原始分辨率生成激光雷達圖像D和地面真實位移 然后相應地對它們進行下采樣和裁剪。此外,我們還在下采樣操作期間將像素位移減半
 4    Initial pose sampling and data augmentation

我們通過訓練CMRNet++的三個實例,采用了第二節中介紹的迭代精化方法。為了模擬初始姿態Hinit,我們向地面真實姿態HGT的所有分量添加均勻隨機噪聲,對于每個樣本都是獨立的。對于平移和旋轉,我們在第一次迭代中添加的噪聲范圍分別為[±2m]和[ ±10 °]。第二次和第三次迭代的最大范圍分別為[± 1m,±2°]和[±0.6 m,±1°]

為了提高我們方法的泛化能力,我們采用了一種數據擴充方案。首先,我們通過隨機改變對比度、飽和度和亮度來對圖像應用顏色抖動。隨后,我們隨機水平鏡像圖像,并相應地修改相機校準。然后我們在[-5°,5° ]范圍內隨機旋轉圖像。最后,在生成激光雷達圖像之前,我們轉換激光雷達點云以反映這些變化。

總而言之,我們訓練CMRNet++的每個實例如下

CMRNet++:在激光雷達地圖中與地圖和相機無關的單目視覺定位的圖2



結果
我們在三個數據集的驗證集上評估CMRNet++的性能,此外,由于沒有使用Lyft5數據集在培訓中,我們評估了我們的方法在完全不同的城市中的性能,以及使用不同傳感器收集的數據。表一說明了迭代精化技術三次迭代的中值定位誤差。我們還提供了我們提出的CMRNet++與CMRNet的比較,以及表二中的方法.
結果表明,在KITTI數據集的序列00上,CMRNet++優于其他方法.我們的方法的方差可以進一步降低.
與CMRNet相反,CMRNet++可能無法定位圖像.這可能特別發生在第一次迭代中,當超過一半的預測匹配是不正確的,因此PnP+RANSAC估計一個不正確的解決方案.我們認為原因在于地面上像素的匹配:由于路面的統一外觀,幾乎不可能識別出與特定3D點匹配的精確像素.為了識別這種情況,當第一次迭代后,估計的姿態距離Hinit超過4米時,我們將樣本標記為失敗.失敗的樣本不會輸入第二次和第三次迭代.

CMRNet++:在激光雷達地圖中與地圖和相機無關的單目視覺定位的圖3

CMRNet++:在激光雷達地圖中與地圖和相機無關的單目視覺定位的圖4


結論
本文提出了一種新的基于CNN的激光雷達單目定位方法CMRNet++,我們將CMRNet++設計成獨立于地圖和相機內部的模塊.
據我們所知,CMRNet++是第一個基于深度神經網絡(DNN)的姿態回歸方法,無需任何再訓練即可推廣到新環境.
我們在KITTI、Agroverse和Lyft5數據集上展示了我們的方法的性能,其中CMRNet++將單個RGB圖像定位在看不見的地方,中值誤差低至0.14 m和0.43,優于其他最先進的方法.此外在Lyft5數據集上的結果表明,CMRNet++能夠有效地推廣到以前未見過的環境。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP