基于深度學(xué)習(xí)的多傳感器標(biāo)定
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
本文轉(zhuǎn)自:計(jì)算機(jī)視覺life
標(biāo)定是確定不同坐標(biāo)系的相互轉(zhuǎn)換關(guān)系,是傳感器數(shù)據(jù)融合的前提,特別是激光雷達(dá)和圖像數(shù)據(jù)。這里以深度學(xué)習(xí)的方法訓(xùn)練CNN模型去回歸坐標(biāo)系轉(zhuǎn)換的參數(shù)。
主要是兩個(gè)CNN模型:RegNet和CalibNet。
RegNet應(yīng)該是第一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)推斷多傳感器的6自由度(DOF)外參數(shù)標(biāo)定,即激光雷達(dá)(LiDAR)和單目攝像頭。RegNet將標(biāo)定的三個(gè)步驟(特征提取、特征匹配和全局回歸)映射到單個(gè)實(shí)時(shí)CNN模型中。在訓(xùn)練期間,隨機(jī)對(duì)系統(tǒng)進(jìn)行重新調(diào)整,以便訓(xùn)練RegNet推斷出激光雷達(dá)投影到攝像頭的深度測(cè)量與RGB圖像之間的對(duì)應(yīng)關(guān)系,并最終回歸標(biāo)定外參數(shù)。此外,通過迭代執(zhí)行多個(gè)CNN,在不同程度失標(biāo)定(decalibration)數(shù)據(jù)上進(jìn)行訓(xùn)練。如圖是一個(gè)例子。
首先,傳感器坐標(biāo)系中給出的點(diǎn)x變換為世界坐標(biāo)系中的點(diǎn)y,定義為一個(gè)仿射變換矩陣H,即y = Hx。估計(jì)變換矩陣H的任務(wù)稱為外標(biāo)定。應(yīng)用深度學(xué)習(xí),需要重新定義外標(biāo)定的問題,在給定初始標(biāo)定Hinit和基礎(chǔ)事實(shí)標(biāo)定Hgt的情況下,確定失標(biāo)定矩陣φdecalib,其定義如下
然后可以隨機(jī)改變Hinit以獲得大量的訓(xùn)練數(shù)據(jù)。為了能夠建立標(biāo)定過程可觀測(cè)的對(duì)應(yīng)關(guān)系,用Hinit和攝像頭內(nèi)參數(shù)矩陣P將激光雷達(dá)點(diǎn)投影在攝像頭圖像平面上,即
在每個(gè)像素(u,v),如果沒有投射的激光雷達(dá)點(diǎn),則存儲(chǔ)投影點(diǎn)的逆深度值(攝像頭坐標(biāo))zc或者為零。由于相比圖像像素的數(shù)量大多數(shù)常見的激光雷達(dá)傳感器僅提供少量測(cè)量數(shù)據(jù),因此深度圖像非常稀疏。為了對(duì)付這種稀疏性,在輸入深度圖使用最大值池化(Max Pooling)對(duì)投影的激光雷達(dá)深度點(diǎn)上采樣。
下面圖展示的是Regnet的結(jié)構(gòu)框圖,其實(shí)現(xiàn)深度和RGB圖像之間的標(biāo)定。使用初始標(biāo)定Hinit將深度點(diǎn)投影在RGB圖像上。在CNN網(wǎng)絡(luò)的第一和第二部分,使用NiN(Network in Network)塊來提取豐富的特征以進(jìn)行匹配,其中索引顯示NiN塊的第一卷積層的核大小k。特征通道的數(shù)量顯示在每個(gè)模塊的右上角。CNN網(wǎng)絡(luò)最后一部分通過使用兩個(gè)全連接層收集全局信息來對(duì)失標(biāo)定進(jìn)行回歸。(注:NiN塊由一個(gè)k×k卷積,然后是幾個(gè)1×1卷積組成。)在訓(xùn)練期間,失標(biāo)定矩陣會(huì)被隨機(jī)排列,形成深度點(diǎn)的不同投影數(shù)據(jù)。
如下圖所示,深度點(diǎn)的投影隨給定的初始標(biāo)定值而強(qiáng)烈地變化。當(dāng)初始校準(zhǔn)從標(biāo)定的基礎(chǔ)事實(shí)(GT)旋轉(zhuǎn)偏離20°平移偏離1.5米的時(shí)候,可能導(dǎo)致激光雷達(dá)點(diǎn)云的投影的大多數(shù)點(diǎn)在圖像區(qū)域之外,難以與RGB圖像建立對(duì)應(yīng)關(guān)系。
即使在這些情況下,訓(xùn)練的CNN網(wǎng)絡(luò)仍然能夠改進(jìn)標(biāo)定。使用新的估計(jì)標(biāo)定參數(shù)可以再次投影深度點(diǎn),從而產(chǎn)生更多供相關(guān)計(jì)算的深度點(diǎn)。然后,該步驟多次迭代即可。
CalibNet是一個(gè)自監(jiān)督的深度網(wǎng)絡(luò),能夠?qū)崟r(shí)自動(dòng)估計(jì)激光雷達(dá)和2D攝像頭之間的6-自由度剛體轉(zhuǎn)換關(guān)系。在訓(xùn)練時(shí),不進(jìn)行直接監(jiān)督(例如不直接回歸標(biāo)定參數(shù));相反,可以訓(xùn)練網(wǎng)絡(luò)去預(yù)測(cè)標(biāo)定參數(shù),以最大化輸入圖像和點(diǎn)云的幾何和光度一致性。
下圖是CalibNet的流程圖:(a)來自標(biāo)定攝像頭的RGB圖像;(b)原始激光雷達(dá)點(diǎn)云作為輸入,并輸出最佳對(duì)齊兩個(gè)輸入的6-自由度剛體變換T;(c)顯示錯(cuò)誤標(biāo)定設(shè)置的彩色點(diǎn)云輸出;(d)顯示使用CalibNet網(wǎng)絡(luò)標(biāo)定后的輸出。
該網(wǎng)絡(luò)將RGB圖像、相應(yīng)的誤標(biāo)定(mis-calibration)的激光雷達(dá)點(diǎn)云和相機(jī)標(biāo)定矩陣K作為輸入。作為預(yù)處理步驟,首先將點(diǎn)云轉(zhuǎn)換為稀疏深度圖,將激光雷達(dá)點(diǎn)云投影到圖像平面即可。由于初始誤標(biāo)定的不準(zhǔn)確,將誤標(biāo)定點(diǎn)投影到圖像平面會(huì)導(dǎo)致稀疏深度圖與圖像(嚴(yán)重)不一致,如上圖(c)所示。將RGB輸入圖像和稀疏深度圖標(biāo)準(zhǔn)化為±1的范圍,然后用5 x 5最大池化窗將稀疏深度圖最大池化為半致密深度圖。
雖然網(wǎng)絡(luò)的輸出可直接預(yù)測(cè)平移,但需要將so(3) 中的輸出旋轉(zhuǎn)矢量轉(zhuǎn)換為其對(duì)應(yīng)的旋轉(zhuǎn)矩陣。一個(gè)元素ω ∈ so(3) 可以通過使用指數(shù)圖(exponential map)轉(zhuǎn)換為SO(3)。
一旦將網(wǎng)絡(luò)預(yù)測(cè)的標(biāo)定參數(shù)轉(zhuǎn)換為T∈SE(3)中的剛體變換,就會(huì)使用3-D空間變換器層(Spatial Transformer Layer),通過預(yù)測(cè)變換T對(duì)輸入深度圖進(jìn)行變換。這里擴(kuò)展了原始的3D空間變換器層以處理稀疏或半致密的輸入深度圖,如上圖(d)。
下圖是CalibNet的網(wǎng)絡(luò)結(jié)構(gòu)圖。網(wǎng)絡(luò)主要由”RGB”和”深度”2個(gè)不對(duì)稱分支組成,每個(gè)分支執(zhí)行一系列,因此”深度”流的濾波器在每個(gè)階段都會(huì)減少。然后兩個(gè)分支的輸出沿著信道這個(gè)維度連接并通過一系列附加全卷積和批規(guī)則化(Batch Norm)層,用于全局特征聚合。將旋轉(zhuǎn)和平移的輸出流分離,以捕獲旋轉(zhuǎn)和平移之間可能存在的模態(tài)差異。網(wǎng)絡(luò)的輸出是1×6矢量ξ=(v, ω)∈ se(3), 其中v是平移速度矢量,ω是旋轉(zhuǎn)速度矢量。
下面是損失函數(shù)的定義:
1. 光度損失:在通過預(yù)測(cè)的T變換深度圖之后,檢查預(yù)測(cè)的深度圖和正確的深度圖之間的密集像素誤差,誤差定義為,
2. 點(diǎn)云距離損失:3D空間變換器層允許在反投影(back projection)后的點(diǎn)云轉(zhuǎn)換。在這個(gè)階段,嘗試度量尺度最小化未校準(zhǔn)的變換點(diǎn)和目標(biāo)點(diǎn)云之間的3D-3D點(diǎn)距離。距離測(cè)量有
a) Chamfer 距離
b) 推土機(jī)距離(Earth Mover’s Distance):
c) 質(zhì)心ICP距離
最后,整個(gè)損失函數(shù)定義為:
下圖是CalibNet標(biāo)定的一些結(jié)果。第一行顯示輸入的RGB圖像,第二行顯示投影到圖像上的相應(yīng)的誤標(biāo)定的激光雷達(dá)點(diǎn)云。第三行顯示使用網(wǎng)絡(luò)預(yù)測(cè)變換投影的激光雷達(dá)點(diǎn)云,最后一行顯示相應(yīng)的基礎(chǔ)事實(shí)結(jié)果。第二行中的紅色框表示未對(duì)齊,而在第三行中,紅色框表示標(biāo)定后的正確對(duì)齊。

交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~

