天天看點

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

AR/VR硬體的多傳感器快速标定方案

摘要:本文屬于AR/VR技術的系列文章,AR/VR硬體通常包含多傳感器,比如相機、雷射雷達、IMU等,本文主要介紹一種高效率、低成本、易部署的面向多傳感器的标定方案,解決AR/VR硬體的硬體标定問題。

一、技術背景

阿裡雲-人工智能實驗室緻力于提供高精度的空間數字化解決方案,以及數字化内容在AR/VR的應用,目前已經不僅落地了雲上會展、全息店鋪、酒店服務機器人等業務,還在建構大規模室内外AR/VR地圖等方面持續探索。 以上業務和研究均由我們自主研發的硬體支援,我們的自研硬體配備雷射雷達、相機、IMU等傳感器,融合多個傳感器的感覺能力來提升三維重建算法的精度。

為了在AR/VR應用中提供更高精度的地圖,各個傳感器需要在時間和空間上精确的标定,時間标定為了解決各傳感器資料時間不同步問題,空間标定指的是将各個傳感器資料注冊到一個統一的世界坐标系。兼顧标定精度和量産可行性這兩方面因素,我們設計并實作了一套多傳感器快速标定方案。本文隻介紹多傳感器系統的空間标定即外參标定的方案。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

二、問題定義

我們這裡選取背包裝置為例,介紹多傳感器标定的定義和多傳感器的坐标系統。我們自研的背包掃描裝置的傳感器子產品由兩個雷射雷達、四個相機、一個慣性導航傳感器(IMU)組成。每一個傳感器都是以自己為中心來感覺世界的,也就是說每一個傳感器都會由一個屬于自己的坐标系(局部坐标系): IMU坐标系為$I$, 相機坐标系為$\{C\}=\{C_0, C_1, C_2, C_3\}$和雷射雷達坐标系$\{L\}=\{L_0, L_1\}$. 有如此多的坐标系是很複雜的,我們需要把這些傳感器的局部坐标系統一起來,讓他們都隸屬于一個載體坐标系, 這裡我們選取雷射雷達$L_0$為載體坐标系。

坐标系統一之後,每一個傳感器都應該把他們對外界環境的感覺測量資料轉換到載體坐标系下, 傳感器之間的外參标定指的是各個傳感器坐标系之間的變換矩陣。在三維世界中,這個外參變換矩陣包括一個3x3的旋轉矩陣$R \in \mathbb{R}^{3x3}$和一個三維平移向量$t \in \mathbb{R}^3$.

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

三、多相機标定

3.1 相機内參标定

在标定多相機系統之間的外參之前,我們需要标定每個相機的内參. 相機的内參是什麼?這還要從相機模型和成像原理說起。現在大多數的相機都屬于針孔相機模型,成像過程可以用如圖3.1-(a)的小孔成像的原理表示。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

然而我們想要知道三維世界中的一個空間點如何映射到圖像上的那個像素點,就需要将這個成像過程用一種數學模型來表示,這就是相機投影模型,也叫相機坐标系到圖像坐标系的投影。如圖3.1-(b)所示,假設已知相機坐标系下一個空間點$X=(X,Y,Z)$, 它在圖像上對應的像素$p=(x,y)$, 則投影過程可以用如下公式表示:

$$\begin{bmatrix}

x\\

y\\

1

\end{bmatrix} = \begin{bmatrix}

f_x & 0 & c_x & 0\

0 & f_y & c_y & 0\

0 & 0 & 1 & 0 \

0 & 0 & 0 & 1

\end{bmatrix} \cdot \begin{bmatrix}

X\\

Y\\

Z\\

\end{bmatrix}$$

理想狀态下空間中一點應該沿着上述成像模型映射到圖像中的某個像素。但是我們忽略了相機中的一個重要零部件-鏡頭。鏡頭的一些工藝誤差、安裝誤差是會讓成像産生畸變的。比如圖3.2中的建築物輪廓被明顯彎曲了。那麼我們就需要對鏡頭建立一種合适的畸變模型,才能使實體世界中的直線也在圖像上還原成直線。畸變一般分為兩大類:徑向畸變(radial distortion)和切向畸變(tangential distortion)。徑向畸變主要由鏡頭在光軸上偏移導緻,切向畸變主要由鏡頭與成像平面不平行導緻。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

是以,相機内參标定就是确定内參和畸變參數 (equidistqant畸變模型)或者(radial tangential模型)的過程. 詳細的相機成像模型和鏡頭畸變模型有興趣的同學可以參考

UIUC Computer VIsion

Classical Models for the various classical lens projections

.

相機内參标定已經存在很成熟的開源方案和工具,像Matlab和Opencv、Kalibr。基本思想還是沿襲張正友2000年工作[1]: 假設标定闆為世界坐标系, 所有角點的空間坐标已知且Z=0, 則可以通過三張不同的圖像計算出相機的内參, 進而計算出每張圖像的位姿。标定闆可以使用棋盤格或者Apriltag标定闆,借助opencv或者kalibr工具可以很友善的完成相機内參标定工作。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

3.2 多相機外參标定

這裡以雙目相機為例,簡介多相機外參标定。假設雙目相機是完全同步的,并且每個相機的内參已知,傳統的雙目外參标定方案需要左右相機之間存在一定的共視區域,也就是說左右相機要能夠同時觀測到一個公共目标(Target object), 這個Target可以是标定闆或者其他pattern的物體。因為标定闆友善為每個特征角點建立世界坐标系下的空間坐标$\{X_i\}$, 我們這裡還以标定闆為Target。已知世界坐标系,左目和右目相機分别觀測到标定闆上的角點$\{x_i\}$,是以可以求解PnP問題完成兩個相機在标定闆坐标系中的定位(localization)。根據兩個相機的定位結果,我們可以得到左目與右目之間的一個初始外參$_{left}^{right}\textrm{T}$, 然後将外參作為優化變量,通過最小化每個相機的重投影誤差來得到更為精确的外參。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

四、相機-IMU标定

相機-IMU标定具體指求解相機坐标系和IMU坐标系之間的外參$_{I}^{C}\textrm{T}$和時間偏移$t_d$. 外參$_{I}^{C}\textrm{T}$指的是兩個坐标系之間的變換矩陣。而時間偏移$t_d$指的是我們在同一時刻采樣得到的圖像和IMU資料其實并非真的是同一時刻的傳感器測量資料,這是因為相機和IMU器件時鐘源不同步、電信号延遲等問題導緻的,是以我們需要将這個時間偏移$t_d$估算出來,補償我們實際測量得到的資料。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

在标定IMU與相機之前,我們需要得到IMU的内參和雙目相機的外參(如果是單目相機則隻需要内參檔案). 原因是IMU内參标定結果會給出IMU器件的噪聲,雙目(單目)相機的外參(内參)标定結果能夠提供一個較好的相機模型初值,這就能夠讓相機-IMU标定算法能夠更精确的估計外參$_{I}^{C}\textrm{T}$和時間偏移$t_d$.

4.1 IMU内參标定

所謂IMU内參标定,其實是為了分析慣性器件的誤差,這包括加速劑的誤差和陀螺儀的誤差。以陀螺儀的誤差分析為例, 主要有以下幾項:

量化噪聲;

角度随機遊走;

角速度随機遊走;

零偏不穩定性噪聲;

速率斜坡;

可以看出,這些誤差多為噪聲,分析這些誤差最直接的辦法就是通過統計的方法求方差。目前最常用的誤差分析方法是Allan方差分析法,我們得到的資料都是各種誤差混合在一起的,這種方法可以很好的将各種誤差隔離分析,使之不會互相影響。具體推導過程可以參考西工大嚴恭敏老師的《慣性儀器測試與資料分析》。如下圖所示的是三種IMU器件的Allan方差曲線,這裡的每一條曲線都是由五條誤差項拟合得到的。值得慶幸的是,網上有開源的IMU誤差分析工具imu_utils,這個工具會輸出陀螺儀和加速計每個軸的角度/加速度噪聲标準差和bias噪聲方差, 這些結果在接下來的相機-IMU标定過程會被使用到。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

4.2 相機-IMU标定

相機和IMU之間的标定不僅要求解兩個坐标系之間的外參,還要求解兩種傳感器時鐘系統的偏移。理想情況下,每一幀圖像的時間戳$t_{cam}$應該與該時間戳下采樣的imu資料$t_{imu}$在時間軸上完全對齊的,但由于電子信号傳輸時延、算法處理時延以及圖像曝光時間等延遲,實際上$t_{cam}=t_{imu} + t_d$。這個時間偏移是固定的,我們就可以把$t_d$作為一個可估計的量添加到系統的狀态變量中。

kalibr提供了一個标定相機-IMU[2]的工具,如下圖所示,棋盤格标定闆世界坐标系$F_w$, 相機坐标系$F_c$, IMU坐标系$F_i$。基本思想是基于CT—SLAM, 把任意時刻的相機位姿參數化為時間t的函數,這種方法有利于同時估計外參$_{C}^{I}\textrm{T}$和時間偏移$t_d$。具體的,由于标定闆确定了世界坐标系,我們可以得到每一幀圖像的位姿$_W^{C}\textrm{T}_{t}$,用圖像位姿乘上一個初始估計外參可以得到一個IMU的位姿$_W^{I}\textrm{T}_{t}=_W^C\textrm{T}_t \cdot _C^I\textrm{T}$. 多個時刻的IMU位姿可以拟合一個B—Spline, 這就是我們要拟合的位姿關于時間的函數曲線。最終的優化是拿圖像的重投影誤差去優化外參$_{C}^{I}\textrm{T}$、時間偏移$t_d$、IMU器件的bias向量,這就是我們要标定的結果。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

kalibr工具包在标定結束後會生成一份标定報告,報告裡有陀螺儀、加速計的bias估計值的曲線,以及相機的重投影誤差圖表。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

五、多雷射雷達标定

雷射雷達的标定也包括内參标定和外參标定兩部分。但是現在市場上的多線雷射雷達在出廠時都已經最内參做好了嚴格标定,使用者拿到的資料就是經過标定校準後的資料,是以我們在這裡不對内參标定做展開。多個雷射雷達之間的外參标定方法可以分為兩大類: 一類是采用标定闆或其他标定媒介的标定方法,我們所使用的多雷射雷達标定方案也屬于此類,如下左圖, 藍色和紅色的點雲分别代表兩個16線雷射雷達a和b,它們被放置在一個提前完成建圖的環境w中,每個雷達點雲在這個地圖中完成定位求解位姿$_w^a\textrm{T}$和$_w^b\textrm{T}$,兩個雷達之間外參$T_b^a=_w^b\textrm{T}^{-1} \cdot _w^a\textrm{T}$; 一類是基于手眼标定的方法不需要特定的标定媒介,比如下右圖, 雷達a和b各自運作LOAM[3], 然後通過手眼标定得到一個的閉式解$T_b^a$ 。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

六、雷射雷達-相機标定

雷射雷達與相機之間的外參标定最近幾年湧現出一大批工作,比較有代表性的包括基于标定闆的[4]、[5],基于自然場景的[6]和[7]. 值得一提的是[6]中同時估計了外參$_L^C\textrm{T}$和時間偏移$t_{d_2}$.

下面簡單介紹下[4]的工作原理. 标定闆放在雷射雷達和相機的公式區域,圖像上提取标定闆的四條邊,并進一步在相機坐标系中拟合标定闆所在平面的法向量。在雷射雷達坐标系中,我們提取出标定闆輪廓并進一步拟合它的四條邊和平面法向量。是以,我們可以在相機坐标系C和雷射雷達坐标系L之間建立四對邊對應關系$\{l_i \leftrightarrow L_i \}$和一對法向量對應關系$^C\textrm{n}_i \leftrightarrow ^L\textrm{n}_i$, 這些限制可以用來求解6Dof的$_L^C\textrm{T}$。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

七、多相機-雷射雷達的标定

上述方法都是兩兩傳感器之間的外參标定,我們稱之為pairwise sensor calibration. 在實際的批量生産中,需要串聯這些方法來完成一個複雜的多傳感器系統的标定工作,尤其是雷射雷達和相機的标定工作,需要很多的人工幹預工作,這無疑降低了産線的能效。是以,我們提出一種基于全景基礎設施的多傳感器标定方法,無需要求相機-雷射雷達之間存在共視區域,也不需要拍攝多個圖像-點雲對,隻需要一次拍攝即可完成多個相機與多個雷射雷達之間的兩兩外參标定,極大地提高了多相機、多雷達系統的标定效率。

我們采用很多個CCTAG标志點設計并重建了一種全景基礎設施。這種标志點在空間中随機分布,提供高精度、沒有特征描述子的中心點,進而保證這個全景基礎設施地圖的精度。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

我們的整體方案分為兩部分:基礎設施重建過程和多相機-雷射雷達傳感器标定過程。

在基礎設施重建過程,我們采用stereo-sfm方法完成基于“特征點”的稀疏重建。與傳統視覺重建不同的是,由于“特征”沒有描述子,我們巧妙地利用了标志點在空間中随機分布的特性,完成了Tracking和LoopClosure Detection。通過與第三方高精度掃描器對這個全景基礎設施的掃描結果做對比,驗證了我們方法的精度和可行性。

AR/VR硬體的多傳感器快速标定方案AR/VR硬體的多傳感器快速标定方案

在多傳感器标定過程,相機與雷射雷達同時在同一個基礎設施坐标系中做定位,根據定位結果可以推導兩兩傳感器之間的外參。在相機定位中,我們首先提取每個相機圖像上的所有标志點中心坐标,然後求Triangle based PnP問題得到相機在基礎設施坐标系中的位姿$_W^{C_i}\textrm{T}$;不同于視覺定位過程使用的是基礎設施的稀疏點雲模型,我們在雷達定位中使用的是稠密的上采樣後的點雲模型。首先從雷達點雲中提取牆角點和線,這些限制足夠求解雷達在基礎設施點雲模型中的位姿, 然後再采用GICP進一步優化雷達位姿$_W^{L_i}\textrm{T}$。這樣,每個傳感器隻需要一幀圖像或者點雲資料就完成了在全景基礎設施中的定位,我們進而可以求得兩兩傳感器之間的外參$_{L_i}^{C_i}\textrm{T} = _W^{L_i}\textrm{T}^{-1} \cdot _W^{C_i}\textrm{T}$。

上述傳感器标定過程中,雖然有分别對相機/雷達的定位結果做優化,但是并沒有聯合優化兩種傳感器的位姿,原因是基于本方案很難去尋找相機與雷達之間的共同觀測,這是本文工作需要提升的一個方向。

上述流程的詳細算法步驟見[8], 論文在投2021 IROS with RAL, 歡迎提出您的寶貴意見!

結語

由于相機、雷射雷達、IMU等傳感器能夠以互補的方式進行環境感覺,多傳感器融合技術已經成為阿裡雲-人工智能實驗室的AR/VR業務的主流技術方案。多傳感器精确标定是多傳感器融合不可或缺的前提條件,卻很少有同時兼顧精度與效率的相關工作。本文提出一種高效的多相機-雷射雷達傳感器系統的标定,可以在保證精度的前提下,隻需要一幀傳感器資料完成标定,滿足産線上部署要求。但是本文的方案還需要提前标定相機内參、IMU内參、相機-IMU外參,雷達-相機之間的外參沒有進一步的緊耦合優化,也還沒有一個成熟穩定的方案标定雷達-IMU外參,這都是我們下一步工作需要主要解決的方向。

參考文獻

  1. A Flexible New Technique for Camera Calibration.
  2. Unified temporal and spatial calibration for multi-sensor systems.
  3. Low-drift and real-time lidar odometry and mapping.
  4. Automatic Extrinsic Calibration of a Camera and a 3D LiDAR Using Line and Plane Correspondences.
  5. Automatic extrinsic calibration between a camera and a 3D Lidar using 3D point and plane correspondences.
  6. Spatiotemporal Camera-LiDAR Calibration: A Targetless and Structureless Approach.
  7. Automatic targetless extrinsic calibration of a 3D lidar and camera by maximizing mutual information.
  8. __Single-Shot is Enough: Panoramic Infrastructure Based Calibration of Multiple Cameras and 3D LiDARs__.

繼續閱讀