深度学习LiDAR定位:L3-Net

摘要

本文提出L3-Net——一种新颖的基于学习的LiDAR定位系统,可实现厘米级的定位,与现有最高水平的传统定位算法相媲美。与传统定位算法不同,本文创新地实现了使用各种深度神经网络结构来建立基于学习的定位算法。首先,L3-Net会学习专门针对不同现实驾驶场景中的匹配而优化的局部描述,在解决方案空间中建立的成本量上的3D卷积显著提高了定位精度。其次,使用RNN对车辆动力学进行建模,从而获得更好的时间平滑度和准确性。然后,本文使用新收集的数据集全面验证了L3-Net的有效性。最后,本文使用了具有挑战的SunnyvaleBigLoop序列(在采集的地图和测试数据之间间隔了一年时间的序列)进行测试,测试结果表明,L3-Net在这些数据集中具有很低的定位误差,证明了其在实际工业实现中的成熟度。

背景及问题描述

传统LiDAR定位算法流程与基于学习的定位算法流程对比如图1所示。其中,传统算法的步骤通常是:特征描述(如点、平面、杆、2D栅格上基于高度的高斯特征等)、地图匹配、匹配误差的计算、空间搜索或优化(如全搜索或由粗到精的搜索,蒙特卡洛采样或迭代梯度下降最小化)。这些传统算法中,通常需要利用点云的几何特征、反射强度特征来进行配准或滤波,实现定位。常见的有基于ICP、NDT、直方图滤波、卡尔曼滤波等的定位算法。尽管其中一些算法具有不同场景下出色的准确性和鲁棒性,但通常需要大量的工程工作来调优流程中的每个模块,并设计硬编码的特征和匹配方法。此外,这些传统定位算法的系统类型对运行场景有很强的偏好。要使一个通用的定位系统能够适应所有具有挑战性的场景需要巨大的工程努力,这通常是极其困难的。

图 1 传统与基于学习的定位算法流程图

而基于学习的方法以数据驱动的方式为上述问题的解决开辟了一条全新的道路。

主要贡献

(1)根据作者了解,这是当时第一个基于学习的,用于自动驾驶的LiDAR定位框架,可直接处理点云并准确估计车辆的位置和方向,并能得到与当时最好的算法相媲美的效果。

(2)创新性的使用3D卷积学习如何调整x,y,yaw这三个维度上的匹配代价以提高定位精度

(3)将提出的算法在同一条道路上在不同时间进行了多次试验,并在各种城市道路上进行严格的测试;发布数据集,数据集包含超过380公里的真实交通驾驶场景的数据,适合定位任务。

主要原理及思路

L3-Net主要由Keypoint Selection、Descriptor
Extraction、Cost Volume and 3D CNNs、Probability Offset Volume、以及Temporal
Smoothness五个部分组成。输入为已构建的点云地图和行驶时的LiDAR观测数据。接下来分五个部分分别描述L3-Net的细节。L3-Net网络架构如图2所示:

图2 L3-Net的架构图

1、Keypoint Selection

3-Net中关键点选择方法是:

(1)选取邻域内满足一定密度的点。

(2)估算邻域内的点的线性度和散度,挑出具有强线性和散度的点作为候选关键点。

(3)根据组合的几何特性排序,并由高到低,选取最少数量的候选点作为关键点,同时确保这些新选出来的点各自与其它点保持一定空间距离。

2、Descriptor Extraction

描述子提取的方法为:

(1)为每一个关键点选取邻域内64个点,每个点包含x,y,z,r(reflection)四维数据,故一个关键点描述子的提取输入为64x4的张量。

(2)使用mini-PointNet对关键点特征进行提取,输出得到32维的描述子。

(3)使用参数共享机制为地图和实时点云数据提取特征。其中,mini-PointNet主要包含由3个堆叠的全连接层和一个最大池化层组成的多层感知机(MLP)。

3、Cost Volume and 3D CNNs

3.1、Cost Volume

匹配代价描述的是实时点云帧与地图之间的匹配误差。对于某一个关键点,计算匹配代价的方法为:

(1)给定一个预测的位姿,将局部的实时点云帧中的所有关键点变换到地图的全局坐标中。

(2)将预测位姿周围的空间分别按照x,y,yaw三个维度划分,得到以下解空间的采样:

(3)将关键点根据下式进行变换,并提取其在地图中的特征描述子。

(4)计算实时关键点的描述子与地图中的描述子之间的欧氏距离,将该距离作为匹配代价。

3.2、Regularization

正则化步骤通过构建3D卷积网络实现,这一步骤是为了提高收敛速度并避免过拟合问题。3D卷积网络由三个3D卷积层组成,前两个卷积层使用ReLU激活函数和批处理正则化,其中批处理包含来自单个帧的所有关键点。最后一个卷积层则直接输出解空间的匹配代价。

4、Probability Offset Volume

此部分作者引入概率偏移量来表述解空间所有关键点的一致性,也就是实时点云与地图在给定偏移量情况下的匹配代价量。计算概率偏移量的步骤是
(1)假设所有关键点是独立的,则在某一偏移下的匹配概率为:

(2)将所有关键点的偏移匹配概率累乘并取对数,得到在偏移为delta_T情况下实时点云与地图的整体匹配概率:

(3)通过reduce average操作将其边缘化为pasi的成本量。(4)接着通过softmax将上述成本量归一化,并作为整体的匹配概率。

(5)通过reduce sum操做分别提取x方向,y方向以及航向角pasi的偏移概率向量作为最终输出。

5、Temporal Smoothness

在传统算法中,直方图滤波可以通过历史的定位分布来推测当前的匹配定位分布,保证了时间平滑性。在本文中,作者引入RNNs来获得这一事件平滑效果,更具体的来说,是通过LSTM网络实现。

实验结果

从表1中的定位结果对比来看,L3-Net在各种场景下的定位精度都达到很高的水平,实现了厘米级定位。在小于0.1m的准确率上,均高于90%,性能稳定。通过是否使用RNN进行时间平滑来的对比看,经过RNN网络进行时间平滑后的定位精度有更大的提高。

表1 L3-Net点云定位算法与其他算法的对比

图3展示的是成本量、概率偏移量在固定偏航和选定关键点的(x,y)轴上可视化结果。可以看到,在使用概率偏移量表达定位匹配度后,匹配结果更加清晰明了。最右侧一栏是最终估计的偏移量(0.538m,0.993m,1.001°)及ground truth(0.524m,0.994m,1.044°)的对比。

图3 网络不同步骤的输出可视化

结论

作者提出了一种专为自动驾驶应用而设计的新颖的基于学习的LiDAR定位框架。该框架将传统定位流程中需要手动调整算法的模块替换为基于学习的深度神经网络,使得定位系统能够更具鲁棒性,定位精度也可以达到现有(2019)最高水平。

深度学习LiDAR定位:L3-Net相关推荐

  1. 深度学习头像定位头像分割

    分享一个比较有意思的算法,头像定位分割,人脸识别技术比较成熟,应用的领域五花八门,这个分割应该是首次见吧,哈哈. (1)采用深度学习进行头像定位:截取头像图片: (2)算法拓展:头像比对,头像与身份证 ...

  2. 深度学习 - 图像定位(一起来学习怎么锁狗头吧~)

    这里是目录标题 读取单张图片数据,并根据信息绘制矩形框 读取矩形框数据(.xml文件) 图片 / xml数据的预处理 创建输入管道(提取数据) 接下来提取图片数据和矩形框数据 构建图像定位网络模型(需 ...

  3. 深度学习——目标定位

    目标定位 图片分类任务我们已经熟悉了,就是算法遍历图片,判断其中的对象是不是汽车,这就是图片分类.这节课我们要学习构建神经网络的另一个问题,即定位分类问题.这意味着,我们不仅要用算法判断图片中是不是一 ...

  4. 综述|深度学习在SLAM定位与建图中的应用(近250篇参考文献)

    作者丨Jasper@知乎 编辑丨Realcat  计算机视觉SLAM " 近年来深度学习被广泛应用于定位与建图中.相比于传统的手动建模方法,深度学习提供了一种数据驱动的解决方案,并逐步发展成 ...

  5. 最新综述 | 基于深度学习的SLAM方法:面向空间机器智能时代

    最新综述 | 基于深度学习的SLAM方法:面向空间机器智能时代 A Survey on Deep Learning for Localization and Mapping Towards the A ...

  6. 深度学习技术在自动驾驶中的应用

    在过去的十年里,自动驾驶汽车技术取得了越来越快的进步,主要得益于深度学习和人工智能领域的进步.作者就自动驾驶中使用的深度学习技术的现状以及基于人工智能的自驱动结构.卷积和递归神经网络.深度强化学习范式 ...

  7. 一篇文章解决机器学习,深度学习入门疑惑

    前言 进入正文前,我们先来看则新闻: 只看图不多说. 由此可见国家对人工智能的重视程序,趁早学习,让我们也贡献一份力量. 这篇文章要说的东西 研究生有不少日子,和之前的几个学长以及几个学弟偶尔也聊聊天 ...

  8. 2021年,我们还需要入门深度学习吗?

    前言 过年时闲来无事,瞎翻自己的博客,偶然看到之前写的一篇文章: 一篇文章解决机器学习,深度学习入门疑惑 这篇文章原先发布于2018年中旬,那会正是深度学习.神经网络无脑火热的时候.火热到什么程度?火 ...

  9. 自动驾驶LiDAR点云深度学习综述

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 / 导读 / 本文是滑铁卢大学CogDrive实验室和Geospatial Sensing and D ...

最新文章

  1. 抢占日本市场过程“苦不堪言”
  2. 手机实名制的一个应用,电信行业的一个可改进之处
  3. P3389 【模板】高斯消元法
  4. 动态生成类_springboot动态生成类属性
  5. 【BZOJ 3990】 [SDOI2015]排序
  6. 线性表的顺序表示---练习题(算法设计题
  7. 研究表明,越早退休越长寿
  8. 红外夜视摄像头 蒂卡尔K-TF使用手记 2
  9. 圆弧周长公式_扇形面积和周长计算公式 【关于扇形的所有公式(周长、弧长、半径、圆心角)写得清楚、详细......
  10. 【python】断言的用法
  11. 扩增子分析流程 —— 数据处理(vsearch)
  12. Gym 100015B Ball Painting
  13. linux安装ifconfig
  14. 栅极电阻硬并联与独立栅极电阻
  15. clips与C++的交互
  16. 周赛题1(leetcode)
  17. ABP VNext学习日记20
  18. excel单元格内加空格_怎样在excel的单元格中的一列数字间添加两空格?
  19. ASP.NET MVC 文件上传和文件下载 以及 文件下载的几种方法
  20. 【Unity】给游戏添加一个背景图

热门文章

  1. Myeclipse中修改项目默认编码还是乱码?一步永久解决!
  2. 2022-2028年中国数据中台行业深度调研及投资前景预测报告(全卷)
  3. 2022-2028年中国橡胶板的制造行业发展战略规划及投资方向研究报告
  4. 2022-2028年中国软件测试行业市场研究及前瞻分析报告
  5. libIlmImf-2_2.so.22 :cannot open shared object file :No such file or direct
  6. LeetCode简单题之分割平衡字符串
  7. LeetCode简单题之检查数组是否经排序和轮转得到
  8. LLVM IR 理解
  9. NSight Compute 用户手册(下)
  10. HarmonyOS UI开发 AdaptiveBoxLayout(自适应盒子布局) 的使用