激光雷达概述
不可不知的三大要点
Lidar(激光雷达)是“Light Detection and Ranging(激光探测和测距)”的首字母缩写。激光雷达传感器是像雷达和声纳一样的测距传感器。这些传感器会发射激光脉冲,并接收物体反射回的激光脉冲来感知周围环境的结构。它们会记录反射的光能以确定到物体的距离,从而创建环境的二维或三维表示。激光雷达日益成为多个行业用于开发感知系统的主要传感器之一。它们支持目标检测、语义分割等三维感知工作流,以及地图构建、同步定位与地图构建 (SLAM) 和路径规划等导航工作流。
自主系统在其传感器套件中使用多个传感器(如摄像头、IMU 和雷达)来感知环境。激光雷达提供了周围环境的高精度结构化三维信息,可以克服其他传感器的一些缺点。这一优势促使激光雷达传感器进入了主流感知市场。
例如,机载激光雷达的应用包括:
- 农业:激光雷达技术在农业领域广泛用于构建植被区地图,以及确定农场和集水区的确切地形。
- 城市规划:激光雷达用于创建一个区域的数字表面模型 (DSM) 乃至数字城市模型 (DCM),这些模型可以帮助设计城市或在现有城市中新建基础设施。
- 地质地图构建:激光雷达可用于创建地球表面的三维地图,这些地图可进一步用于采矿、精准林业以及油气勘探等应用。
- 空中导航和路径规划:激光雷达现供无人机用于收集实时三维数据,以在周围环境中自主导航。
查看以下使用 MATLAB® 进行机载激光雷达处理的示例:
地面激光雷达
地面激光雷达有两种类型:固定式地面激光雷达和移动式激光雷达。
- 固定式地面激光雷达是装载在固定平台上的激光雷达。它们通常用于土地测量、道路测量、拓扑地图构建、数字高程图 (DEM) 创建以及农业和其他应用。这些激光雷达更适合需要更精准地捕获详细数据的应用。
- 移动式激光雷达是接到汽车或卡车等移动平台上的地面激光雷达。自动驾驶是移动式激光雷达最重要的应用场景。车载激光雷达可捕获周围环境的三维点云数据,这些数据又进一步用于感知和导航工作流。这些工作流将在下一节中进行详细介绍。
查看以下使用 MATLAB 进行地面激光雷达处理的示例:
室内激光雷达
激光雷达广泛用于室内机器人领域,它们通常装载在移动机器人上。除了三维激光雷达,二维激光雷达或激光扫描仪也用于室内机器人领域,如激光雷达扫描和地图构建。它们会收集周围环境的景深信息,该信息随后基于用例得到进一步处理。
室内激光雷达的常见用途包括:
- 激光雷达地图构建和 SLAM:您可以使用二维或三维激光雷达分别创建二维或三维 SLAM 和进行地图构建。
- 障碍物检测、碰撞预警和避障:二维激光雷达广泛用于检测障碍物。此数据可进一步用于创建碰撞预警或避开障碍物。
查看以下使用 MATLAB 进行地面激光雷达处理的示例:
MATLAB 和 Lidar Toolbox™ 可简化激光雷达处理任务。凭借专用工具和函数,MATLAB 可帮助您克服处理激光雷达数据时所面临的常见挑战,如三维数据类型、数据稀疏性、数据中的无效点和高噪声。
您可以将实时和记录的激光雷达数据导入 MATLAB,实施激光雷达处理工作流,并创建 C/C++ 和 CUDA® 代码以部署到生产环境中。
MATLAB 在处理激光雷达点云时提供的一些重要功能将在以下章节中介绍。
流式传输、读取和写入激光雷达数据
要使用 MATLAB 处理任何传感器数据,第一步是将数据放入 MATLAB 工作区中。您可以执行以下操作:
- 流式传输实时数据,使用 Velodyne Lidar Hardware Support Package 流式传输来自 Velodyne 传感器的实时数据,使用 Ouster Lidar Hardware Support Package 流式传输来自 Ouster 传感器的实时数据。
- 读取存储的点云,读取以不同文件格式存储的点云,如 PCD、PLY、PCAP(Velodyne、Ouster 和 Hesai Pandar)、Ibeo 数据容器、LAS 和 LAZ 等格式。
- 写入点云,以 PCD、PLY、LAS 和 LAZ 等不同文件格式写入点云。
- 仿真激光雷达数据,可用于在部署到真实系统之前测试算法和工作流。在 MATLAB 中,您可以通过定义传感器参数,在仿真环境中合成三维或二维激光雷达数据,以用于测试处理算法。Lidar Toolbox、UAV Toolbox 和 Automated Driving Toolbox 提供了激光雷达传感器模型,可用于对激光雷达点云进行仿真。
激光雷达数据的处理
您可以预处理激光雷达数据,以提高数据质量并从中提取基本信息。Lidar Toolbox™ 提供了对点云进行下采样、中位数滤波、对齐、变换和提取特征等功能。
激光雷达相机标定
MATLAB 支持激光雷达相机标定,以估计用于融合相机和激光雷达数据的激光雷达-相机变换。您可以进一步融合激光雷达点云中的颜色信息,并使用同一位置的相机提供的二维边界框估计激光雷达中的三维边界框。
深度学习助力激光雷达处理
借助 MATLAB,您可以应用深度学习算法基于激光雷达数据进行目标检测和语义分割。
- 您只需在 MATLAB 中编写几行代码,就可以导入预训练的语义分割模型,包括基于激光雷达数据的 PointSeg 和 SqueezeSegV2。您还可以训练、评估和部署自己的深度学习模型。
- MATLAB 支持设计、训练和评估稳健的检测器,如 PointPillars 和 ComplexYolo-V4 网络。您可以检测并拟合激光雷达点云中目标周围的定向边界框。
- Lidar Toolbox 中的激光雷达标注器可简化点云标注任务。您可以手动标注点云以执行目标检测和语义分割,应用内置或自定义算法来自动标注激光雷达点云,并评估自动化算法的性能。
基于点云的目标跟踪
MATLAB 可以将纳入到一个端到端目标跟踪工作流的多个领域整合在一起。这样,您便能够读取并预处理激光雷达数据,应用深度学习来检测目标,使用预定义的跟踪器跟踪这些目标,并将其部署在目标硬件上。
有关激光雷达处理的详细信息,请参阅 Lidar Toolbox 和 Computer Vision Toolbox™。