這是一個被標定方法普遍研究的,一定約束條件下的問題:可以廣義的理解,一個“手”(比如GPS/IMU)和一個“眼”(激光雷達/攝像頭)都固定在一個機器上,那么當機器運動之后,“手”和“眼”發生的姿態變化一定滿足一定的約束關系,這樣求解一個方程就可以得到“手”-“眼”之間的坐標轉換關系,一般是AX=XB形式的方程。 手眼系統分兩種:eye in hand和eye to hand,我們這里顯然是前者,即手-眼都在動的情況。 手眼標定分兩步法和單步法,后者最有名的論文是“hand eye calibration using dual quaternion"。一般認為,單步法精度高于兩步法,前者估計旋轉之后再估計平移。 這里通過東京大學的論文“LiDAR and Camera Calibration using Motion Estimated by Sensor Fusion Odometry”來看看激光雷達和攝像頭的標定算法。 顯然它是求解一個手-眼標定的擴展問題-,即2D-3D標定,如圖所示: 求解激光雷達的姿態變化采用ICP,而攝像頭的運動采用特征匹配。后者有一個單目SFM的scale問題,論文提出了一個基于傳感器融合的解法:初始估計來自于無尺度的攝像頭運動和有尺度的激光雷達運動;之后有scale的攝像頭運動會在加上激光雷達點云數據被重新估計。最后二者的外參數就能通過手-眼標定得到。下圖是算法流程圖: 手眼標定的典型解法是兩步法:先求解旋轉矩陣,然后再估計平移向量,公式在下面給出: 現在因為scale問題,上述解法不穩定,所以要利用激光雷達的數據做文章,見下圖: 3-D點云的點在圖像中被跟蹤,其2D-3D對應關系可以描述為如下公式: 而求解的問題變成了: 上面優化問題的初始解是通過經典的P3P得到的。 得到攝像頭的運動參數之后可以在兩步手眼標定法中得到旋轉和平移6參數,其中平移估計如下: 注:這里估計攝像頭運動和估計手眼標定是交替進行的,以改進估計精度。除此之外,作者也發現一些攝像頭運動影響標定精度的策略,看下圖分析: 可以總結出:1)攝像頭實際運動a 越小,投影誤差越小;2) ( )越小,投影誤差越小。第一點說明標定時候攝像頭運動要小,第二點說明,標定的周圍環境深度要變化小,比如墻壁。 另外還發現,增加攝像頭運動的旋轉角,攝像頭運動估計到手眼標定的誤差傳播會小。 這個方法無法在室外自然環境中使用,因為點云投影的圖像點很難確定。 有三篇關于如何優化激光雷達-攝像頭標定的論文,不是通過3-D點云和圖像點的匹配誤差來估計標定參數,而是直接計算點云在圖像平面形成的深度圖,其和攝像頭獲取的圖像存在全局匹配的測度。 不過這些方法,需要大量迭代,最好的做法是根據手眼標定產生初始值為好。 另外,密西根大學是采用了激光雷達反射值,悉尼大學在此基礎上改進,兩個都不如斯坦福大學方法方便,直接用點云和圖像匹配實現標定。 斯坦福論文“Automatic Online Calibration of Cameras and Lasers”。 斯坦福的方法是在線修正標定的“漂移”,如下圖所示:精確的標定應該使圖中綠色點(深度不連續)和紅色邊緣(通過逆距離變換 IDT,即inverse distance transform)匹配。 標定的目標函數是這樣定義的: 其中w 是視頻窗大小,f 是幀#,(i, j) 是圖像中的像素位置,而p是點云的3-D點。X表示激光雷達點云數據,D是圖像做過IDT的結果。 下圖是實時在線標定的結果例子: 第一行標定好的,第二行出現漂移,第三行重新標定。 密西根大學的論文“Automatic Targetless Extrinsic Calibration of a 3D Lidar and Camera by Maximizing Mutual Information”。 這里定義了標定的任務就是求解兩個傳感器之間的轉換關系,如圖:求解R,T。 定義的Mutual Information (MI) 目標函數是一個熵值: 求解的算法是梯度法: 下圖是一個標定的例子:RGB像素和點云校準。 澳大利亞悉尼大學的論文“Automatic Calibration of Lidar and Camera Images using Normalized Mutual Information”。 本文是對上面方法的改進。傳感器配置如圖: 標定的流程在下圖給出: 其中定義了一個新測度Gradient Orientation Measure (GOM)如下: 實際上是圖像和激光雷達點云的梯度相關測度。 點云數據和圖像數據匹配時候需要將點云投影到柱面圖像上,如圖所示: 投影公式如下: 而點云的梯度計算之前需要將點云投影到球面上,公式如下: 最后,點云的梯度計算方法如下: 標定的任務就是求解GOM最大,而文中采用了蒙特卡洛方法,類似particle filter。下圖是一個結果做例子:
IMU-攝像頭標定
德國Fraunhofer論文“INS-Camera Calibration without Ground Control Points“。 本文雖然是給無人機的標定,對車輛也適合。 這是IMU定義的East, North, Up (ENU) 坐標系: 而實際上IMU-攝像頭標定和激光雷達-攝像頭標定都是類似的,先解決一個手眼標定,然后優化結果。只是IMU沒有反饋信息可用,只有姿態數據,所以就做pose graph optimization。下圖是流程圖:其中攝像頭還是用SFM估計姿態。 這是使用的圖像標定板:
激光雷達系統標定
牛津大學論文“Automatic self-calibration of a full field-of-view 3D n-laser scanner". 本文定義點云的“crispness” 作為質量測度,通過一個熵函數Re?nyi Quadratic Entropy (RQE)最小化作為在線標定激光雷達的優化目標。(注:其中作者還討論了激光雷達的時鐘偏差問題解決方案) “crisp“其實是描述點云分布作為一個GMM(Gaussian Mixture Model)形式下的致密度。根據信息熵的定義,RQE被選擇為測度: 下圖是一個標定后采集的點云結果: 標定算法如下:
雷達-攝像頭標定
西安交大論文“Integrating Millimeter Wave Radar with a Monocular Vision Sensor for On-Road Obstacle Detection Applications”。 在講傳感器融合的時候提過這部分工作,這里重點介紹標定部分。首先坐標系關系如下: 傳感器配置如下: 標定環境如下: 標定其實是計算圖像平面和雷達反射面之間的homography矩陣參數,如下圖: