图森未来

本文提出了基于深度学习方法的激光里程计,首次在激光里程计任务中使用全局稀疏匹配。

其性能超越了现有的DP-based的方法,与几何SOTA方法(SUMA)性能很接近。

相关工作

  1. 局部迭代方法:ICP系列。应用比较普遍,但是计算量大,异常值敏感,需要很小心的初始化。
  2. 全局稀疏配准:使用局部几何描述子,大多数手工提取,不适用于稀疏、不均匀的点云数据。
  3. DP-based:几何不可解释,泛化性不能保证。

本文方法:DMLO

整体流程:

  • 首先对输入的前后两个scan点云数据进行煮面投影,投影到2维
  • 使用CNN求解匹配对
  • 使用NMS+RANSAC筛选匹配对
  • 使用SVD求解相对位姿 DMLO: Deep Matching LiDAR Odometry 2020 激光里程计

1. 柱面投影

点云数据不太好处理:稀疏性,不均匀性,无序性

现有的方法有使用3D卷积、使用pointnet处理等。

作者选择了柱面投影到二维,得到更为稠密、均匀、紧致的表达。

DMLO: Deep Matching LiDAR Odometry 2020 激光里程计

投影公式:3D->2D,记为函数Φ()\Phi()
w=arctan2(y,x)/Δθh=arctan2(z,x2+y2)/Δϕ \begin{array}{l} w=\arctan 2(y, x) / \Delta \theta \\ h=\arctan 2\left(z, \sqrt{x^{2}+y^{2}}\right) / \Delta \phi \end{array}
2D->3D,记为函数Φ1()\Phi^{-1}()
z=D(h,w)sin(hΔϕ)x=D(h,w)cos(hΔϕ)cos(wΔθ)y=D(h,w)cos(hΔϕ)sin(wΔθ) \begin{array}{l} z=\mathbf{D}(h, w) \cdot \sin (h \Delta \phi) \\ x=\mathbf{D}(h, w) \cdot \cos (h \Delta \phi) \cdot \cos (w \Delta \theta) \\ y=\mathbf{D}(h, w) \cdot \cos (h \Delta \phi) \cdot \sin (w \Delta \theta) \end{array}
得到的柱面图像是2通道的,一个记录距离r=x2+y2+z2r=\sqrt{x^{2}+y^{2}+z^{2}},一个记录激光反射强度。

计算label

原始的GT数据只有3D点云之间的转换矩阵,因此也需要投影到2D柱面计算其点对匹配关系。
cr=Φ(pr)pr=Φ1(cr)pt=Tprct=Φ(pt) \begin{array}{l} \boldsymbol{c}_{r}=\Phi\left(\boldsymbol{p}_{r}\right) \\ \boldsymbol{p}_{r}^{\prime}=\Phi^{-1}\left(\boldsymbol{c}_{r}\right) \\ \boldsymbol{p}_{t}=\mathbf{T} \boldsymbol{p}_{r}^{\prime} \\ \boldsymbol{c}_{t}=\Phi\left(\boldsymbol{p}_{t}\right) \end{array}
注意到这里使用pr’而不是pr计算3D空间转换后的target点云坐标pt,因为这种将3D空间坐标投影到2D像素是有量化误差的。直接使用pr会引入误差。此外,作者为了减少计算label过程中的量化误差,

  1. 去除距离过大的噪声点:
    e=Dt(ct)pt2 e=\mathbf{D}_{t}\left(\boldsymbol{c}_{t}\right)-\left\|\boldsymbol{p}_{t}\right\|_{2}
    实际上是去掉了入射角较小的点,这种点距离雷达较远,小扰动会导致大误差

  2. 使用子像素损失函数和置信度预测:

    假设GT点被投影到二维的坐标为(xˉi,j,yˉi,j)\left(\bar{x}_{i, j}, \bar{y}_{i, j}\right),其不一定是整数(x,y)。定义概率P:
    Pi,j(x,y)={(1Δx)(1Δy)Δx<1 or Δy<10,Δx1 and Δy1 \mathbf{P}_{i, j}(x, y)=\left\{\begin{array}{ll} (1-\Delta x)(1-\Delta y) & \Delta x<1 \text { or } \Delta y<1 \\ 0, & \Delta x \geqslant 1 \text { and } \Delta y \geqslant 1 \end{array}\right.
    其中Δx=xˉi,jx,Δy=yˉi,jy\Delta x=\left|\bar{x}_{i, j}-x\right|, \Delta y=\left|\bar{y}_{i, j}-y\right|.

    这样就得到了置信度的真值。

    根据里程计预测的转换关系计算预测的坐标Q,则可以计算损失函数:
    L=i,jx,yPi,j(x,y)log(Qi,j(x,y)) \mathcal{L}=-\sum_{i, j} \sum_{x, y} \mathbf{P}_{i, j}(x, y) \log \left(\mathbf{Q}_{i, j}(x, y)\right)

2. CNN求解匹配对

输入是两个柱面图像(HxWx2),预测2D-2D的对应关系,然后转换到3D空间。

作者使用了级联的两个网络进行由粗到细的预测(仿照光流估计,加入了最大位移D),以应对里程计出现的可能的大幅度运动的情况。

DMLO: Deep Matching LiDAR Odometry 2020 激光里程计

两个网络模块的stride不一样(4,8;1,1),D不一样(分别为10和5)此外,第二个refinement network使用了变形卷积以达到自适应感受野的效果,相比于叠加几层网络层更加经济。

根据得到的特征图计算相似性矩阵:

Mi,ju,v(h,w)=(xi,jr)Txi+u+h,j+v+wt 其中 h[D12,D12],w[D12,D12] \begin{array}{c} \boldsymbol{M}_{i, j}^{u, v}(h, w)=\left(\boldsymbol{x}_{i, j}^{r}\right)^{T} \cdot \boldsymbol{x}_{i+u+h, j+v+w}^{t} \\ \text { 其中 } h \in\left[-\frac{D-1}{2}, \frac{D-1}{2}\right], w \in\left[-\frac{D-1}{2}, \frac{D-1}{2}\right] \end{array}

ij是二维坐标,上标r、t是reference、target,uv是偏移量,hw是stride,D是最大位移。

相当于计算了在reference图像中ij位置的点与在target图像中一块有限区域内L内的每一个点的相似度,然后得到了相似性矩阵。其中L区域表示以ij为中心偏移量为uv,边长为D的区域。

将相似度转化为置信度:

Qi,ju,v(h,w)=softmax(Mi,ju,v(h,w)) \mathbf{Q}_{i, j}^{u, v}(h, w)=\operatorname{softmax}\left(\mathbf{M}_{i, j}^{u, v}(h, w)\right)

3. NMS+RANSAC:

预定义半径R,根据预测的置信度对匹配点对进行非极大值抑制,保留前N个点对。

然后使用RANSAC剔除离群点对。

4. 计算转换关系T

SVD分解。

其他部件:

RANSAC处理后的内点数量少于10时,使用匀速运动模型代替

使用RangeNet++去除运动物体。

实验分析:

与DP方法相比:

DMLO: Deep Matching LiDAR Odometry 2020 激光里程计

与几何方法相比: DMLO: Deep Matching LiDAR Odometry 2020 激光里程计

DMLO: Deep Matching LiDAR Odometry 2020 激光里程计

点云配准性能对比:

DMLO: Deep Matching LiDAR Odometry 2020 激光里程计

未来考虑将RGB信息整合到里程计的框架中。

相关文章: