CalibNet:Geometrically Supervised Extrinsic Calibration using 3D Spatial Transformer Networks閱讀理解

CalibNet:Geometrically Supervised Extrinsic Calibration using 3D Spatial Transformer Networks

無目標標定的話,需要考慮多個傳感器的檢測範圍,因爲有目標標定時,檢測範圍即爲標定板位置區域,但無目標時,檢測範圍的問題如何解決

特點:

  1. 不需要標定板,標定板會增加很多人工量
  2. 降低環境改變和振動的影響
  3. 自動和在線標定技術
  4. 不需要精確地參數初始化
  5. 不需要運動估計:ego-motion
  6. 沒有直接將標定參數作爲訓練Loss,而是點雲的幾何和相機投影的一致性;
  • 需要研究,什麼意思

文獻閱讀總結

有目標標定:

Automatic camera and range sensor calibration using a single shot(2012)需要較多的標定板
Automatic extrinsic calibration for lidar-stereo vehicle sensor setups(2017),Accurate calibration of lidar-camera systems using ordinary boxes(2017)
需要較多的人工作業,且超參數調節較爲麻煩

無目標標定:

Automatic online calibration of cameras and lasers.(2013)無目標標定較早的文獻之一,基於一個假定:激光雷達在深度上的不連續性,在圖像上反應爲一個角點。
Automatic targetless extrinsic calibration of a 3d lidar and camera by maximizing mutual information(2012),最大化相機和激光雷達的互信息,相機提供圖像的點強度與點雲的反射率強度。
以上兩個方法:儘管這些假設即使在存在測量噪聲的情況下也成立,但是公式化的成本函數只是局部凸出的,因此依賴於良好的初始化來使優化收斂。
Motion-based calibration of multimodal sensor arrays(2015)
上文方法不依賴於外部的任何初始化,也不需要傳感器的任何重疊視場。 但是,他們仍然需要大量數據和良好的運動估計才能獲得準確的結果,這限制了它們在離線情況下的適用性。
深度學習技術應用:
Regnet: Multimodal sensor registration using deep neural networks
第一篇應用深度學習技術於標定問題中,儘管可行且實時,但對於幾何問題沒有考慮幾何信息。由於沒有考慮幾何形狀,每次相機內參數變化時外參數都需要重新標定

CalibNet基於如下兩篇文章

Unsupervised learning of depth and ego-motion from video(2017)
Undeepvo: Monocular visual odometry through unsupervised deep learning(2017)
嘗試通過減少未對準圖像和目標深度圖之間的密集光度誤差和密集點雲距離誤差來解決該問題。雖然我們將變換後的深度圖用作目標,但這種圖可以通過任一個立體重建方法找到並用於訓練。 此外,在訓練中應用空間變換時,我們的模型僅需要相機內參數。因此,任何經過內部校準的攝像機系統都可以使用我們的體系結構進行外部校準

文章方法介紹

A 網絡結構:

數據輸入

點雲數據、同時刻的單目相機數據、相機內參數
點雲首先在預處理過程中轉化到稀疏的深度圖。由於標定的初始化參數不正確,可以看到錯誤的投影
激光雷達投影點和相機點歸一化(normalize)
利用一個5*5的窗口對稀疏投影圖進行最大值池化,以創建半密度深度圖

架構細節

網絡結構主要包含兩個不對稱分支;
針對RGB圖像,輸入到ResNet-18網絡中,
針對點雲投影,輸入到Depth ResNet網絡中,和ResNet-18網絡類似,但每一個階段的卷積核數量爲一半,
與Regnet: Multi-modal sensor registration using neural networks文類似,Depth ResNet網絡在特徵提取上有優勢
對RGB輸入使用預訓練的權重則並非從頭開始學習相關參數。 但是,由於深度圖的參數學習是從頭開始學習的,因此深度圖的卷積核數量在每個階段都會減少。 然後,將兩個分支的輸出沿通道維級聯,並通過一系列附加的全卷積層,以進行全局特徵聚合。
每次卷積後,BatchNorm被應用網絡,將輸出流分離成旋轉和平移,以捕獲旋轉和平移矩陣上的不同。
網絡的輸出就是一個6*1向量,v爲旋轉速度向量,w爲旋轉速度向量(celocity vector???

SO(3) layer層使用

SO(3)用到一點李代數相關知識
平移矩陣可以直接通過網絡預測得到,但旋轉矩陣需要通過旋轉向量so(3)轉化得到

3D空間轉化層

將標定參數轉化爲李代數SE(3)(有6個參數)下的元素:變換矩陣T,通過預測的變換矩陣T,結合3D空間轉化層,變換輸入的深度圖,擴展了下文 中原始的3D空間轉化曾的方法,以處理稀疏和半稠密的輸入深度圖:
gvnn: Neural network library for geometric computer vision,” in European Conference on Computer Vision。
已知相機內參數,深度圖的深度信息Z,則可將深度圖反投影到3維空間上。

Loss函數設置

針對外部校準,需要使用密集方法進行配準

  1. (圖像層面Loss計算)Photometric Loss:在利用預測值T轉化深度圖後,我們在預測的深度圖和糾正的深度圖之間檢查了像素級誤差(每一個像素值都用反射率(depth intensity)編碼)
  2. (點雲層面距離Loss計算)Point Cloud Distance Loss:應用未配準的變換點雲和目標點雲沒在米尺度上最小化他們的誤差。由於並不知道點集之間的相關性,因此考慮多種距離測量方法,例如:
    Chamfer Distance:
    Earth Mover’s Distance:
    Centroid ICP Distance:

B 層實施細節

處理半密集深度圖(semi-dense depth map)的主要瓶頸在於,我們不能對所有張量位置進行更新。由於輸入的多個像素位置將包含深度(強度)爲零的像素,因此有必要針對稀疏張量位置應用一種數學運算,在端到端的方式中這些層是可微的是前提條件。
頻繁的使用scatter_nd操作,優勢說明見下文:

M. Ren, A. Pokrovsky, B. Yang, and R. Urtasun, “Sbnet: Sparse blocksnetwork for fast inference,”arXiv preprint arXiv:1801.02108, 2018

在雙線性採樣層中使用此操作,因此,在對像素位置進行插值時,僅考慮深度強度可用的稀疏鄰居位置

C 迭代重對齊

到目前爲止,已經提出了一種解決方案,其中在檢查光度和距離誤差之前,僅對輸入誤標定的深度圖進行一次轉換。儘管一些較早的工作通過重新提供輸入來在外部使用此方法[14],但我們的方法能夠在網絡內以端到端的方式應用迭代重新對齊。爲此,一旦網絡預測了初始轉換T,我們就對輸入進行轉換。通過預測的變換對深度圖進行了誤校準。現在,我們將此新變換的深度圖作爲輸入輸入到網絡,以預測殘差變換T’。現在,在計算每個階段的預測轉換的乘積之後,計算最終轉換。
將每一次的矩陣相乘即可得到最終的矩陣。
在每個步驟中,都會針對目標深度圖和目標點雲計算誤差。展開後,網絡類似於一個類似於下文中的工作遞歸單元,其中每次迭代中的梯度流都與變換點雲相對,並且得到的深度圖。

Newell, K. Yang, and J. Deng, “Stacked hourglass networks forhuman pose estimation,” inEuropean Conference on Computer Vision.Springer, 2016

實驗結論

1 數據獲取

隨機生成一個旋轉平移矩陣實現標定的初始化效果,也就是誤標定初始數據
旋轉誤差從-10度~10度的正態分佈中取
平移誤差從-0.2m-0.2m中取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章