Literature Review: Road is Enough

Abstract

我们说一个LiDar和stereo cameras没有共视区域的外参标定.

为了解决外参标定问题,我们的方案利用了road markings作为嘈杂的urban环境下静态,鲁邦的特征.

这个方案使用了road markings来选择有信息量的图像来估计外参. 为了完成稳定优化, 很多cost functions被定义了, 包括:

  • Normalized Information Distance (NID)
  • Edge Alignment
  • Plane Fitting Cost

所以一个smooth cost curve被形成来避免局部最优.

另外我们也测试了优化收敛性和标定的重复性.

1. Introduction

外参对于多传感器很重要.

[1] 利用了LiDAR的深度信息来计算两张图的光度误差.

[2] 用利用视觉里程计和LiDAR里程计的融合来做一个快速且low drife的里程计.

[3] 用conditional random field framework, 利用LiDAR和视觉的信息来估计路面区域.

最常用的LiDAR和相机的 外参标定用了checkerboard. 也有用circular hole的.

这些方法都依赖不同sensor data的关联. 特别因为LiDAR观测是Non-continuous的(camera也non-continuous啊), 两种modalities之前找准确关联并不直接. 而且在同一时刻没有共视的情况下是没有办法标定的.

为了general calibration, 有不少用周围环境来做标定而不用特性目标的方案. [9 - 13] 但是这些方法都需要overlapping FOV.

为了解决没有共视的问题, 局部3D点云累计来保证共视是一个思路.

也有用线的[17, 18, 19], 和手眼标定一个思路.


我们的sensor系统有4个LiDAR和一个立体相机.

  • 两个3DLiDAR在左右来最大化数据采集的范围
  • 两个2DLiDAR装在前后

A. Target-less Extrinsic Calibration

在heterogeneous (混杂的)的传感器来建立数据关联.

[12]手动在LiDAR intensity image和图像在计算外参. 这个intensity image是用融合LiDAR scan和用2D lidar的里程计来融合出来的. 但是这个手动选择可太烦了.

[9] 通过引入Normalized Mutual information(NMI)来获得最佳关联. 这个工作通过partical swarm optimization方法(粒子滤波?)来找到NMI最大值来找最佳关联.

[10] 用互信息Mutual Information metric来估计外参. 如果用单个scan会遇到一些局部最优. 为了解决这个问题, 这个方法用了多个scan来找到全局最优来最大化MI值.

最近还有更多工作用深度学习的来做外参标定. [11]用CNN框架来估计.

B. Extrinsic Calibration of Non-overlapping Configuration

之前说的都需要共视, 也有不需要的. [16] 通过push-broom(推式扫)来标2Dlidar和相机. 外参标定是用edge images和Lidar intensity image来做的, 通过用里程计的结果, 投影3D点.

[14] leveraged NID来估计多相机和2d lidar的最佳外参.

[15] 加入了数据选择模块, 通过比较最佳参数附近的NID的值来减少局部最优.


我们的方案使用了road marking信息来做外参标定, 且不需要共视关系. 为了减少局部最优点, 用了多图, 而且图会用vanishing point来定义cost. 在优化中, 我们用图像和lidar数据定义了多个costs, 包括:

  • NID cost
  • edge alignment
  • plane fitting cost

3. Notation and Local map Generation

我们首先用odometry (轮速还是里程计)和lidar数据生成3d点云, 然后通过比较stereo图和lidar intensity image over generated local pointcloud map来标定.

局部建图部分, 我们用轮速计, 3轴Fiber Optic Gyro (FOG)和IMU来生成高精度的位姿.

B. Local Map Generation

因为没有共视, **所以我们首先要累计lidar数据来生成局部点云图. 用轮速, FOG和IMu生成的准确的相对位姿来. ** 我们用[20]里的方法来计算lidar和lidar-to-vehicle的外参.

因为局部点云的精度都是依靠车辆的相对位姿的, 这里我们累计了80m的局部地图来最小化可能的来及误差 (哪里最小化了?..).

4. Target-less Multi-Model Extrinsic Calibration with No OverLap

有两步来建立局部地图:

  • 有信息的图像选取
  • Multiple cost optimization

1. 在图像选择阶段, 我们用stereo dispairty map(双目的视差图)来提取road regions。

2. 通过提取线指向vanishing point来寻找有很多road markings的图来做优化。

3. 局部最优的问题可以用多图估计外参的问题来缓解

A. Road Detection and Informative Image Selection

有很多roadmark的图会被标记。

image-20200330215845892

1)Road Region Detection using Stereo Images

image-20200330215834101

[21]从一个disparity map \(D(p_{uv})\)来计算v-disparity。 每一行的disparity的histogram按照v-disparity image来画。道路区域是在v-disparity图上拟合一个线\(\pi\)(用RANSAC)弄的。因为v-dispairty image的每个像素值表示的是disparity map的histogram,在v方向上拟合。结果如Fig.5(c)。

2) Vanishing Point Estimation

尽头是从road region估计的。通过线\(\pi\)可以获得天际线\(L_{horizon}\),它是离尽头很近的,但不一定准确。这里用了一个voting process. 我们用LSD(Line Segment Detector)来检测线段,每个线\(l_i={s_i, e_i,c_i}\)。分别表示开始,结束和中间点。

image-20200330220844866

3. Image Selection

4. Plane Estimation of the Road

平面\(M={n_x, n_y, n_z, d}\)是通过disparity map \(D(p_{uv})\)。焦距\(f\)和基线\(B\)会用到。然后\(M\)会被一个点云的RANSAC平面拟合。这个平面会在优化阶计算平面拟合cost用。

B. Multi-cost Optimization

我们用【23】的区域生长分割方法来选取global pointcloud里的road pointcloud。对于外参标定,这个文章用了下述三个costs。

1. Edge Alignment Cost

这个cost是来衡量RGB和LiDAR intensity image的不同。一个相机edge image \(\widehat{E_{S_L}}\)是从road masked image \(\widehat{I_{S_L}}\)提取(canny)的。Lidar edge图\(\widehat{E_L}\)是从Lidar intensity image \(\widehat{I_L}\) 上提取(canny)的。

RGB推算的edge图转换为distance transform image \(\widehat{G_{S_L}}\)

cost是:\(f_{\text {edge}}(\widehat{E_{L}}, \widehat{G_{S_{L}}})=\sum \widehat{E_{L}}\left(p_{u v}\right) \widehat{G_{S_{L}}}\left(p_{u v}\right)\)

2) NID cost

\(f_{N I D}(\widehat{I_{S_{L}}}, \widehat{I_{L}})=2-\frac{H(\widehat{I_{S_{L}}})+H(\widehat{I_{L}})}{H(\widehat{I_{S_{L}}}, \widehat{I_{L}})}\)

\(H(X)=-\sum_{x \in X} P(x) \log P(x)\)

\(H(X, Y)=-\sum_{x \in X \atop y \in Y} P(x, y) \log (P(x, y))\)

这里\(H(X)\)\(H(X,Y)\)是single entropy和交叉熵。计算的结果在0/1之间。更低的NID表示两个数据分布更像。

3. Plane Fitting Cost

\(f_{\text {plane}}\left(^{S_{L}} P_{L}, M\right)=\)
\(\sum_{i=1}^{N}\left(n_{x}\left(^{S_{L}} P_{L}\right)_{x}^{i}+n_{y}\left(^{S_{L}} P_{L}\right)_{y}^{i}+n_{z}\left(^{S_{L}} P_{L}\right)_{z}^{i}+d\right)\)

4. Optimization

\(f_{\text {sum}}=k_{1} f_{\text {edge}}+k_{2} f_{N I D}+k_{3} f_{\text {plane}}\)

这里\(k_1 = 2.0, k_2 = 500.0, k_3 = 0.1\).

5. Experimental Results

。。。

6. Conclusion And Future Works

标定的精度是0.02m和大概0.086°,且不需要人操作。

在这个论文中,我们假设odometry生成的点云是局部准确的。但是也有说因为车辆的加速减速导致distortion。(啥意思?不是有IMU轮速啥的么,你加速减速估计不了么?)

你可能感兴趣的:(Literature Review: Road is Enough)