標定是確定不同坐標系的相互轉換關係,是感測器數據融合的前提,特別是激光雷達和圖像數據。這裡以深度學習

的方法訓練CNN模型去回歸坐標系轉換的參數。

主要是兩個CNN模型:RegNet和CalibNet。

RegNet應該是第一個深度卷積神經網路(CNN)推斷多感測器的6自由度(DOF)外參數標定,即激光雷達(LiDAR)和單目攝像頭。RegNet將標定的三個步驟(特徵提取、特徵匹配和全局回歸)映射到單個實時CNN模型中。在訓練期間,隨機對系統進行重新調整,以便訓練RegNet推斷出激光雷達投影到攝像頭的深度測量與RGB圖像之間的對應關係,並最終回歸標定外參數。此外,通過迭代執行多個CNN,在不同程度失標定(decalibration)數據上進行訓練。如圖是一個例子。

失標定
標定基礎事實(GT)

RegNet標定結果

首先,感測器坐標系中給出的點x變換為世界坐標系中的點y,定義為一個仿射變換矩陣H,即y = Hx。估計變換矩陣H的任務稱為外標定。應用深度學習,需要重新定義外標定的問題,在給定初始標定Hinit和基礎事實標定Hgt的情況下,確定失標定矩陣φdecalib,其定義如下

然後可以隨機改變Hinit以獲得大量的訓練數據。為了能夠建立標定過程可觀測的對應關係,用Hinit和攝像頭內參數矩陣P將激光雷達點投影在攝像頭圖像平面上,即

在每個像素(u,v),如果沒有投射的激光雷達點,則存儲投影點的逆深度值(攝像頭坐標)zc或者為零。 由於相比圖像像素的數量大多數常見的激光雷達感測器僅提供少量測量數據,因此深度圖像非常稀疏。為了對付這種稀疏性,在輸入深度圖使用最大值池化(Max Pooling)對投影的激光雷達深度點上採樣。

下面圖展示的是Regnet的結構框圖,其實現深度和RGB圖像之間的標定。 使用初始標定Hinit將深度點投影在RGB圖像上。在CNN網路的第一和第二部分,使用NiN(Network in Network)塊來提取豐富的特徵以進行匹配,其中索引顯示NiN塊的第一卷積層的核大小k。 特徵通道的數量顯示在每個模塊的右上角。 CNN網路最後一部分通過使用兩個全連接層收集全局信息來對失標定進行回歸。(註:NiN塊由一個k×k卷積,然後是幾個1×1卷積組成。)在訓練期間,失標定矩陣會被隨機排列,形成深度點的不同投影數據。

如下圖所示,深度點的投影隨給定的初始標定值而強烈地變化。當初始校準從標定的基礎事實(GT)旋轉偏離20°平移偏離1.5米的時候,可能導致激光雷達點雲的投影的大多數點在圖像區域之外,難以與RGB圖像建立對應關係。

即使在這些情況下,訓練的CNN網路仍然能夠改進標定。使用新的估計標定參數可以再次投影深度點,從而產生更多供相關計算的深度點。 然後,該步驟多次迭代即可。

初始化
結果

CalibNet是一個自監督的深度網路,能夠實時自動估計激光雷達和2D攝像頭之間的6-自由度剛體轉換關係。在訓練時,不進行直接監督(例如不直接回歸標定參數);相反,可以訓練網路去預測標定參數,以最大化輸入圖像和點雲的幾何和光度一致性。

下圖是CalibNet的流程圖:(a)來自標定攝像頭的RGB圖像;(b)原始激光雷達點雲作為輸入,並輸出最佳對齊兩個輸入的6-自由度剛體變換T;(c)顯示錯誤標定設置的彩色點雲輸出;(d)顯示使用CalibNet網路標定後的輸出。

該網路將RGB圖像、相應的誤標定(mis-calibration)的激光雷達點雲和相機標定矩陣K作為輸入。作為預處理步驟,首先將點雲轉換為稀疏深度圖,將激光雷達點雲投影到圖像平面即可。由於初始誤標定的不準確,將誤標定點投影到圖像平面會導致稀疏深度圖與圖像(嚴重)不一致,如上圖(c)所示。 將RGB輸入圖像和稀疏深度圖標準化為±1的範圍,然後用5 x 5最大池化窗將稀疏深度圖最大池化為半緻密深度圖。

雖然網路的輸出可直接預測平移,但需要將so(3) 中的輸出旋轉矢量轉換為其對應的旋轉矩陣。一個元素ω ∈ so(3) 可以通過使用指數圖(exponential map)轉換為SO(3)。

一旦將網路預測的標定參數轉換為T∈SE(3)中的剛體變換,就會使用3-D空間變換器層(Spatial Transformer Layer),通過預測變換T對輸入深度圖進行變換。這裡擴展了原始的3D空間變換器層以處理稀疏或半緻密的輸入深度圖,如上圖(d)。

下圖是CalibNet的網路結構圖。網路主要由」RGB」和」深度」2個不對稱分支組成,每個分支執行一系列,因此」深度」流的濾波器在每個階段都會減少。然後兩個分支的輸出沿著信道這個維度連接並通過一系列附加全卷積和批規則化(Batch Norm)層,用於全局特徵聚合。將旋轉和平移的輸出流分離,以捕獲旋轉和平移之間可能存在的模態差異。網路的輸出是1×6矢量ξ=(v, ω)∈ se(3), 其中v是平移速度矢量,ω是旋轉速度矢量。

下面是損失函數的定義:

1. 光度損失:在通過預測的T變換深度圖之後,檢查預測的深度圖和正確的深度圖之間的密集像素誤差,誤差定義為,

2. 點雲距離損失:3D空間變換器層允許在反投影(back projection)後的點雲轉換。 在這個階段,嘗試度量尺度最小化未校準的變換點和目標點雲之間的3D-3D點距離。距離測量有

a) Chamfer 距離

b) 推土機距離(Earth Mover』s Distance):

c) 質心ICP距離

最後,整個損失函數定義為:

下圖是CalibNet標定的一些結果。第一行顯示輸入的RGB圖像,第二行顯示投影到圖像上的相應的誤標定的激光雷達點雲。 第三行顯示使用網路預測變換投影的激光雷達點雲,最後一行顯示相應的基礎事實結果。 第二行中的紅色框表示未對齊,而在第三行中,紅色框表示標定後的正確對齊。

推薦閱讀:

相關文章