大數據

AR/VR硬件的多傳感器快速標定方案

一、技術背景

阿里雲-人工智能實驗室致力於提供高精度的空間數字化解決方案,以及數字化內容在AR/VR的應用,目前已經不僅落地了雲上會展、全息店鋪、酒店服務機器人等業務,還在構建大規模室內外AR/VR地圖等方面持續探索。 以上業務和研究均由我們自主研發的硬件支持,我們的自研硬件配備激光雷達、相機、IMU等傳感器,融合多個傳感器的感知能力來提升三維重建算法的精度。
為了在AR/VR應用中提供更高精度的地圖,各個傳感器需要在時間和空間上精確的標定,時間標定為了解決各傳感器數據時間不同步問題,空間標定指的是將各個傳感器數據註冊到一個統一的世界座標系。兼顧標定精度和量產可行性這兩方面因素,我們設計並實現了一套多傳感器快速標定方案。本文只介紹多傳感器系統的空間標定即外參標定的方案。

993d365841654261b3d24c445842c4f4.jpeg

(a) 大規模場景移動掃描設備:揹包

25315b52ebcd4f2d8c3f35293e631339.jpeg

(b) 移動服務機器人: 蟻人

18620633f1434a87a252834c64293823.jpeg

(c) 定點式掃描設備: 萬花筒

圖1 我們自主研發的AR/VR硬件

二、問題定義

我們這裡選取揹包設備為例,介紹多傳感器標定的定義和多傳感器的座標系統。我們自研的揹包掃描設備的傳感器模塊由兩個激光雷達、四個相機、一個慣性導航傳感器(IMU)組成。每一個傳感器都是以自己為中心來感知世界的,也就是說每一個傳感器都會由一個屬於自己的座標系(局部座標系): IMU座標系為image.png, 相機座標系為image.png和激光雷達座標系image.png. 有如此多的座標系是很複雜的,我們需要把這些傳感器的局部座標系統一起來,讓他們都隸屬於一個載體座標系image.png, 這裡我們選取激光雷達image.png為載體座標系。
座標系統一之後,每一個傳感器都應該把他們對外界環境的感知測量數據轉換到載體座標系下, 傳感器之間的外參標定指的是各個傳感器座標系之間的變換矩陣。在三維世界中,這個外參變換矩陣包括一個3x3的旋轉矩陣image.png和一個三維平移向量image.png
.

aea60c9fd6d846ea9c4335e0c5e0535f.png

圖2.1 揹包設備的多傳感器座標系

三、多相機標定

3.1 相機內參標定

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

7168e521adab4336b35b1c091a08dd30.png

圖3.1(a)小孔成像原理示意

925e499b457b475ebe95296597e9c0b6.png

(b)相機座標系到圖像座標系的投影

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

06dd1ca2ed10404c81df902f799d30f7.png

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

4bb9bb70897a4cd791e287fd28e6c03d.png

圖3.2 (a)圖像畸變

c985e7a324814ea5abedc2304568e168.png

(b)常見的徑向畸變

因此,相機內參標定就是確定內參image.png和畸變參數 image.png(equidistqant畸變模型)或者image.png(radial tangential模型)的過程. 詳細的相機成像模型和鏡頭畸變模型有興趣的同學可以參考UIUC Computer VIsion和Classical Models for the various classical lens projections.
相機內參標定已經存在很成熟的開源方案和工具,像Matlab和Opencv、Kalibr。基本思想還是沿襲張正友2000年工作[1]: 假設標定板為世界座標系, 所有角點的空間座標已知且Z=0, 則可以通過三張不同的圖像計算出相機的內參, 進而計算出每張圖像的位姿。標定板可以使用棋盤格或者Apriltag標定板,藉助opencv或者kalibr工具可以很方便的完成相機內參標定工作。

21a187c6410c4bedaa50e083bcad4fba.png

圖3.3 (a)棋盤格標定板

ea2df47e9bf44a28b7056ae0879c5716.png

(b)AprilTag標定板

3.2 多相機外參標定

這裡以雙目相機為例,簡介多相機外參標定。假設雙目相機是完全同步的,並且每個相機的內參已知,傳統的雙目外參標定方案需要左右相機之間存在一定的共視區域,也就是說左右相機要能夠同時觀測到一個公共目標(Target object), 這個Target可以是標定板或者其他pattern的物體。因為標定板方便為每個特徵角點建立世界座標系下的空間座標image.png, 我們這裡還以標定板為Target。已知世界座標系,左目和右目相機分別觀測到標定板上的角點image.png,因此可以求解PnP問題完成兩個相機在標定板座標系中的定位(localization)。根據兩個相機的定位結果,我們可以得到左目與右目之間的一個初始外參image.png, 然後將外參作為優化變量,通過最小化每個相機的重投影誤差來得到更為精確的外參。

3336f57fdf924553ba8378af6afe5ce3.png

圖3.4 (a)左目圖像

ed733424e55a42bc9d24e722e7452de8.png

(b)右目圖像

四、相機-IMU標定

相機-IMU標定具體指求解相機座標系和IMU座標系之間的外參image.png和時間偏移image.png. 外參image.png指的是兩個座標系之間的變換矩陣。而時間偏移指的是我們在同一時刻採樣得到的圖像和IMU數據其實並非真的是同一時刻的傳感器測量數據,這是因為相機和IMU器件時鐘源不同步、電信號延遲等問題導致的,因此我們需要將這個時間偏移image.png估算出來,補償我們實際測量得到的數據。

11b8bc858a064820835edde25cd7859b.png

圖4.1 時間偏移示意

在標定IMU與相機之前,我們需要得到IMU的內參和雙目相機的外參(如果是單目相機則只需要內參文件). 原因是IMU內參標定結果會給出IMU器件的噪聲,雙目(單目)相機的外參(內參)標定結果能夠提供一個較好的相機模型初值,這就能夠讓相機-IMU標定算法能夠更精確的估計外參image.png和時間偏移image.png
.

4.1 IMU內參標定

所謂IMU內參標定,其實是為了分析慣性器件的誤差,這包括加速劑的誤差和陀螺儀的誤差。以陀螺儀的誤差分析為例, 主要有以下幾項:
量化噪聲;
角度隨機遊走;
角速度隨機遊走;
零偏不穩定性噪聲;
速率斜坡;
可以看出,這些誤差多為噪聲,分析這些誤差最直接的辦法就是通過統計的方法求方差。目前最常用的誤差分析方法是Allan方差分析法,我們得到的數據都是各種誤差混合在一起的,這種方法可以很好的將各種誤差隔離分析,使之不會互相影響。具體推導過程可以參考西工大嚴恭敏老師的《慣性儀器測試與數據分析》。如下圖所示的是三種IMU器件的Allan方差曲線,這裡的每一條曲線都是由五條誤差項擬合得到的。值得慶幸的是,網上有開源的IMU誤差分析工具imu_utils,這個工具會輸出陀螺儀和加速計每個軸的角度/加速度噪聲標準差和bias噪聲方差, 這些結果在接下來的相機-IMU標定過程會被使用到。

d3611524cca84c5ea414bde29ec42225.png

圖4.2 三種慣性器件的陀螺儀Allan方差曲線

4.2 相機-IMU標定

相機和IMU之間的標定不僅要求解兩個座標系之間的外參,還要求解兩種傳感器時鐘系統的偏移。理想情況下,每一幀圖像的時間戳image.png應該與該時間戳下采樣的imu數據image.png在時間軸上完全對齊的,但由於電子信號傳輸時延、算法處理時延以及圖像曝光時間等延遲,實際上image.png。這個時間偏移image.png是固定的,我們就可以把作為一個可估計的量添加到系統的狀態變量中。
kalibr提供了一個標定相機-IMU[2]的工具,如下圖所示,棋盤格標定板世界座標系image.png, 相機座標系image.png, IMU座標系image.png。基本思想是基於CT—SLAM, 把任意時刻的相機位姿參數化為時間t的函數,這種方法有利於同時估計外參image.png和時間偏移image.png。具體的,由於標定板確定了世界座標系,我們可以得到每一幀圖像的位姿,用圖像位姿乘上一個初始估計外參可以得到一個IMU的位姿image.png, 多個時刻的IMU位姿可以擬合一個B—Spline, 這就是我們要擬合的位姿關於時間的函數曲線。最終的優化是拿圖像的重投影誤差去優化外參image.png、時間偏移image.png、IMU器件的bias向量,這就是我們要標定的結果。

f61fddd9b5794765b16c7560c9ecf00a.png

圖4.3 camera-IMU標定

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

83e1ef822a4b47ee9118987fe847eb57.png

陀螺儀bias曲線

241cfcd3cb59433a801ae66c524692f3.png

加速計bias曲線

b46da2deecff4ee49a7f58b75a2da1c5.png

cam0重投影誤差分佈

6d28dba553754469b878b63f83a61680.png

cam1重投影誤差分佈

五、多激光雷達標定

激光雷達的標定也包括內參標定和外參標定兩部分。但是現在市場上的多線激光雷達在出廠時都已經最內參做好了嚴格標定,用戶拿到的數據就是經過標定校準後的數據,所以我們在這裡不對內參標定做展開。多個激光雷達之間的外參標定方法可以分為兩大類: 一類是採用標定板或其他標定媒介的標定方法,我們所使用的多激光雷達標定方案也屬於此類,如下左圖, 藍色和紅色的點雲分別代表兩個16線激光雷達a和b,它們被放置在一個提前完成建圖的環境w中,每個雷達點雲在這個地圖中完成定位求解位姿image.pngimage.png,兩個雷達之間外參image.png; 一類是基於手眼標定的方法不需要特定的標定媒介,比如下右圖, 雷達a和b各自運行LOAM[3], 然後通過手眼標定得到一個image.png的閉式解 。

613f625960ba4d06b38044d7df47e385.png

08e7ae3d9eaa4bf0afe1998b203c594f.png

圖5.1 激光雷達外參標定

六、激光雷達-相機標定

激光雷達與相機之間的外參標定最近幾年湧現出一大批工作,比較有代表性的包括基於標定板的[4]、[5],基於自然場景的[6]和[7]. 值得一提的是[6]中同時估計了外參image.png和時間偏移image.png
下面簡單介紹下[4]的工作原理. 標定板放在激光雷達和相機的公式區域,圖像上提取標定板的四條邊,並進一步在相機座標系中擬合標定板所在平面的法向量。在激光雷達座標系中,我們提取出標定板輪廓並進一步擬合它的四條邊和平面法向量。因此,我們可以在相機座標系C和激光雷達座標系L之間建立四對邊對應關係image.png和一對法向量對應關係image.png, 這些約束可以用來求解6Dof的image.png

8291f80f7391443fa4e0bb28de9ecf3b.png

圖6.1 (a)圖像中提取標定板四條邊

93cd3e931a7a4510836c7556365b9369.png

(b)激光雷達點雲中提取標定板四條邊

七、多相機-激光雷達的標定

上述方法都是兩兩傳感器之間的外參標定,我們稱之為pairwise sensor calibration. 在實際的批量生產中,需要串聯這些方法來完成一個複雜的多傳感器系統的標定工作,尤其是激光雷達和相機的標定工作,需要很多的人工干預工作,這無疑降低了產線的能效。所以,我們提出一種基於全景基礎設施的多傳感器標定方法,無需要求相機-激光雷達之間存在共視區域,也不需要拍攝多個圖像-點雲對,只需要一次拍攝即可完成多個相機與多個激光雷達之間的兩兩外參標定,極大地提高了多相機、多雷達系統的標定效率。
我們採用很多個CCTAG標誌點設計並重建了一種全景基礎設施。這種標誌點在空間中隨機分佈,提供高精度、沒有特徵描述子的中心點,從而保證這個全景基礎設施地圖的精度。

bbc9247c8926428399e22fe02bdc830f.png

圖7.1 本文提出的基礎設施的全景圖

我們的整體方案分為兩部分:基礎設施重建過程和多相機-激光雷達傳感器標定過程。
在基礎設施重建過程,我們採用stereo-sfm方法完成基於“特徵點”的稀疏重建。與傳統視覺重建不同的是,由於“特徵”沒有描述子,我們巧妙地利用了標誌點在空間中隨機分佈的特性,完成了Tracking和LoopClosure Detection。通過與第三方高精度掃描儀對這個全景基礎設施的掃描結果做對比,驗證了我們方法的精度和可行性。

cbe65565ef3f4e5ebb726dd8a6e5f722.png

圖7.2 系統框圖

在多傳感器標定過程,相機與激光雷達同時在同一個基礎設施座標系中做定位,根據定位結果可以推導兩兩傳感器之間的外參。在相機定位中,我們首先提取每個相機圖像上的所有標誌點中心座標,然後求Triangle based PnP問題得到相機在基礎設施座標系中的位姿image.png;不同於視覺定位過程使用的是基礎設施的稀疏點雲模型,我們在雷達定位中使用的是稠密的上採樣後的點雲模型。首先從雷達點雲中提取牆角點和線,這些約束足夠求解雷達在基礎設施點雲模型中的位姿image.png, 然後再採用GICP進一步優化雷達位姿。這樣,每個傳感器只需要一幀圖像或者點雲數據就完成了在全景基礎設施中的定位,我們進而可以求得兩兩傳感器之間的外參image.png
上述傳感器標定過程中,雖然有分別對相機/雷達的定位結果做優化,但是並沒有聯合優化兩種傳感器的位姿,原因是基於本方案很難去尋找相機與雷達之間的共同觀測,這是本文工作需要提升的一個方向。

結語

由於相機、激光雷達、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.

test

Leave a Reply

Your email address will not be published. Required fields are marked *