自动驾驶汽车严重依赖输入的训练数据来做出驾驶决策,从逻辑上来说,数据越详细,车辆做出决策就越好,最重要的是更安全。虽然现代相机可以捕捉到非常详细的真实世界特征,但输出结果仍然是2D的,效果并不够理想,因为它限制了我们可以提供给自动驾驶汽车神经网络的信息,这意味着汽车必须学会对3D世界做出猜测。与此同时,相机捕捉信息的能力有限,比如在下雨的时候,相机捕捉到的图像几乎无法辨别,而激光雷达仍然可以捕捉信息。因此,2D相机无法在所有环境下工作,由于自动驾驶汽车是神经网络一个高危应用场景,我们必须确保构建的网络尽可能完美,这一切要从数据说起。理想情况下,我们希望我们的网络将3D数据作为输入,因为它需要对3D世界进行预测,这就是激光雷达的用武之地。

本文旨在对LiDAR技术和使用它的网络进行全面的介绍,包括以下内容: LiDAR 是什么以及它是如何工作的 神经网络如何处理 LiDAR 数据以及它们面临的挑战 LiDAR 数据与 2D 图像有何不同以及标注过程如何变化

LIDAR究竟是什么?

LiDAR代表光检测和测距。简而言之,它是一种遥感技术,使用激光脉冲形式的光来测量传感器和目标物体之间的距离和尺寸。在自动驾驶场景下,激光雷达用于检测物体相对于车辆的位置,例如其他汽车、行人和建筑物。人工神经网络的日益普及使激光雷达比以前更有用。 激光雷达技术自 1960 年代以来一直被人们使用,当时它被安装在飞机上以扫描它们飞过的地形。随着 GPS 的出现,LiDAR 在 1980 年代变得越来越流行,当时它开始被用于构建真实世界位置的 3D 模型。

LIDAR是如何工作的?

大多数 LiDAR 系统由四个部分组成: 1) 激光:向物体发送光脉冲(通常是紫外线或近红外线)。 2) 扫描仪:调节激光扫描目标物体的速度和激光到达的最大距离。 3) 传感器:测量来自激光的光从目标物体反弹并返回系统所需的时间(从而测量距离)。 4) GPS:跟踪激光雷达系统的位置,以确保距离测量的准确性。 现代 LiDAR 系统通常每秒可以发送高达 500k 的脉冲。来自这些脉冲的测量值被聚合成一个点云,它本质上是一组坐标,代表系统已经感应到的物体。点云用于创建 LiDAR 周围空间的 3D 模型。

点云(Velodyne LiDAR)

有两种一般类型的 LiDAR 系统:机载和地面。由于我们讨论的应用场景是自动驾驶汽车,我们将主要关注地面激光雷达。地面激光雷达附着在固定在地面上的物体上,并在所有可见方向上进行扫描。它们可以是静态的(例如,连接到不动的三脚架或建筑物上)或移动的(例如,连接到汽车或火车上)。

使用激光雷达数据进行深度学习

鉴于 LiDAR 系统生成的输出类型,将它们与神经网络相结合十分合理,并且确实在点云上运行的神经网络已被证明是有效的。激光雷达点云在自动驾驶汽车上的应用可以分为两类:

1)以目标检测和场景理解为目的的实时环境感知和处理。

2)生成用于目标定位和参考的高清地图和城市模型。

听起来可能很复杂,但实际上它只是意味着 LiDAR 数据用于语义分割、目标检测/定位和对象分类,唯一的区别是现在我们在 3D 中进行,这使得我们的模型有更多的细微差别。 对于在激光雷达数据上运行的神经网络来说的一个挑战是,根据扫描时间、天气条件、传感器类型、距离、背景和大量其他因素存在大量变化。由于激光雷达的工作方式,物体的密度和强度变化很大。再加上传感器经常有噪声,尤其是 LiDAR 数据通常不完整(由于某些材料的低表面反射率和城市背景杂乱等因素),处理 LiDAR 数据的神经网络需要能够处理很多变化。 3D 数据的另一个问题是,与 2D 图像不同,LiDAR 传感器的点没有直观的顺序,这在我们的模型中引入了对排列和方向不变性的需求,并非所有架构都满足。 为处理 LiDAR 数据而提出的四个架构系列如下:

1)基于点云的方法:这些网络使用不同的方法直接在点云上运行。一种这样的方法是直接通过 MLP 学习每个点的空间特征,并通过最大池化来累积它们。

2)基于体素的方法:将3D数据划分为体素的3D网格(本质上是立方体网格),并在类似CNN的架构中应用3D卷积和池化。

3)基于图的方法:这些方法使用点云中存在的固有几何来构建图,并应用常见的 GNN 架构,如图 CNN 和图注意力网络(它们也恰好满足前面提到的置换不变性条件)。

4) 基于视图的方法:这些方法依赖于使用来自 2D 计算机视觉的久经考验的架构创建点云的 2D 投影。在这种情况下,一种有助于提高模型性能的策略是从不同角度创建多个投影并投票支持最终预测。

标注LIDAR数据

正如我们现在所知,激光雷达数据上最常见的深度学习任务是目标检测、语义分割和分类的变体。因此,LiDAR 标注与为这些任务标注图像非常相似。人工标注非常常见,但由于 LiDAR 数据更复杂且可能令人困惑的性质,许多公司正试图使用​​预先训练的网络尽可能地自动化标注过程。 由于 3D 数据的特点,对 3D 数据进行标注似乎会变得很麻烦。但实际情况不一定如想象的那么复杂,对于 3D 语义分割和 3D 对象分类,除了 3D 空间中的点比 2D 图像中的像素要多,实际标注过程与 2D 对应物几乎是一致的。至于 3D 目标检测,相对于 2D 图像唯一增加的复杂性是除了要标注目标的位置之外,我们还需要标注它的方向,也就是目标面对的方向。 可以看出,LiDAR 数据标注的主要障碍并不是真正源于其数据有多么复杂。只是 LiDAR 数据看起来不像 2D 图像那样简单直观,因此标注可能需要更长的时间,尤其是对于不熟悉此类数据的人,所以一套加强视觉性和可操作性的标注工具表现地十分重要,冰山數據为自动驾驶LiDAR数据开发了一套十分易于操作的标注工具,基于CVAT(在之前的文章《2022年10款最佳计算机视觉开源数据标注工具》中我们有详细的介绍过)的优秀特性开发,在之后的文章中,我们将详细介绍我们的LiDAR标注工具。

结论

如上文所述,LiDAR 是一种使用激光脉冲和传感器构周围环境的 3D 视图技术。虽然它自 1960 年代以来一直在使用,但如今最常见的用例之一是将 LiDAR 数据与自动驾驶汽车的神经网络相结合。常见的神经架构已被用于对 LiDAR 数据进行操作,尽管需要进行一些必要的调整。虽然 LiDAR 生成的点云的性质使得数据格式与 2D 图像截然不同,但 LiDAR 标注过程并没有太大变化。

什么是LIDAR(激光雷达),如何标注激光点云数据?相关推荐

  1. 读自动驾驶激光雷达物体检测技术(Lidar Obstacle Detection)(1):Stream PCD流式载入激光点云数据

    首先贴一下大佬的github链接:https://github.com/williamhyin/SFND_Lidar_Obstacle_Detection 知乎专栏:https://www.zhihu ...

  2. Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据 --SLAM不学无术小问题

    Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据 新款驱动支持RS16.RS32.RSBP.RS128.RS80.RSM1-B3.RSHELIOS等 ...

  3. matlab体素化,一种三维激光点云数据快速体素化处理方法与流程

    本发明涉及一种三维激光点云数据快速体素化处理方法. 背景技术: 目前,三维激光扫描系统快速发展,由于研究的需要,往往需要把不具有空间长度信息的点数据转为具有三维空间信息的立方体,如何使用软件进行快速. ...

  4. Python+vtk 实现激光点云数据可视化学习(2021.7.12)

    Python+VTK实现激光点云数据可视化学习 2021.7.12 1.激光点云与VTK简介 2.配置Python环境(Conda+PyCharm+Python3.6+VTK) 3.点云数据(大约60 ...

  5. 基于激光点云数据自动化实现道路标线分类、提取及矢量化

    Automatic Road Markings Extraction Classification And Vectorization Mobile From Laser Scanning Data ...

  6. 解析las文件_Java读取解析激光点云数据(Las/Laz)

    激光点云数据格式Las/Laz目前网上流行的读取库为c++版本的LibLas,java版本的读取解析工具目前还没有找到,但是还好有大神已经为java程序员打了LibLas的JNI版本(https:// ...

  7. ROS订阅激光点云数据并画直线

    最近遇到一个点云处理的问题,需要将激光点云拟合出几条直线最后在rviz中显示出来.主要用到了点云数据的订阅.坐标变换.直线检测以及rviz显示其实还是挺简单的,就是需要用到的一些东西/工具需要提前了解 ...

  8. 激光点云系列之一:详解激光雷达点云数据的处理过程

    交流群 | 进"传感器群/滑板底盘群"请加微信号:xsh041388 交流群 | 进"汽车基础软件群"请加微信号:Faye_chloe 备注信息:群名称 + 真 ...

  9. 自动驾驶中的激光雷达目标检测的原理和数据特点

    转自:http://www.elecfans.com/d/892365.html (侵删) 安全性是自动驾驶中人们最关注的问题之一. 在算法层面,无人车对周围环境的准确感知是保证安全的基础,因此感知算 ...

最新文章

  1. php 存储型跨站,php云人才系统存储型跨站两处
  2. Python实训day03pm【列表生成式、非文本文件的读写与复制、文本文件读写练习】
  3. python mysql倒序_day40:MySQL:python操作mysql:pymysql模块SQL注入攻击
  4. 关于collect2: cannot find ld的解决办法
  5. 知道无人驾驶的网络安全有多重要吗?英国政府都决定插手开发了
  6. 2020牛客暑期多校训练营(第二场)
  7. C语言课程设计题库及答案,C语言课程设计题目.docx
  8. Origin2017绘制3D饼状图 去掉指定图例
  9. 在不改变链表的情况下从尾到头打印连表
  10. nodejs学习笔记-1-文件系统
  11. php采标教程,国内液压与气动行业标准大全
  12. 宝塔面板ab模板建站_2020PHP自助建站系统源码/宝塔在线自助建站系统源码/集成多套模板/在线云建站系统模板...
  13. 斯蒂文斯理工学院计算机专业应聘,斯蒂文斯理工学院回国认可度高不高
  14. 【笔记整理】通信原理第九章复习——线性分组码
  15. 软件安装和使用系列(一)CyberDuck的安装和使用
  16. 世上最经典的爱情诗句
  17. Mentor Graphics IPC-7351 LP Viewer 10.5使用说明
  18. 【开发历程】STM32F4之SHT31-DIS温湿度传感器完整学习历程(附模块化程序代码,带详细注释)
  19. android版本5.1怎么升级到6.1,carlife车机端安装包下载
  20. python全栈指的是什么_python全栈指的是什么

热门文章

  1. .Net Core通过NPOI在CentOS 7(Docker)环境中导出Excel报错The type initializer for ‘Gdip‘ 的问题
  2. ORACLE向表插入记录的顺序和读取记录的次序一样吗??
  3. 报名即可得充值卡,EPLAN寻找中国好设计师活动火爆进行中!
  4. 中国各省人力资本测算就业人员受教育程度构成(2000-2021年)
  5. 当办理深圳入户时,有哪些限制条件需要注意?
  6. 人工智能、机器学习、深度学习、神经网络
  7. Python引用2(Django系列3)
  8. 计算机网络——面试复习
  9. 干货!浏览器提示“您与此网站之间建立的连接不安全”的解决方案
  10. 增强 Stream 接口的 distinct 方法的一些思考