当前位置: 首页 > news >正文

自动驾驶中的传感器技术38——Lidar(13)

本文对Lidar的后端感知算法进行总结:Lidar Perception Agorithms

1、Lidar 感知任务分类

图1 Lidar感知任务

激光雷达感知,以空间的视角来看单帧点云,是在做全景分割:即每个点有一个语义类别,同时有instance label。能够区分地面、植被、建筑物等背景,也能检测出车辆、行人、自行车等目标。

以时间的视角来看多帧连续的点云,是在动静态的分析。浅层的信息:得到每个点在(x,y,z)三个方向在t时间的运动距离,得到每个点是静止还是运动。深层信息:得到目标的运动状态,例如位置、速度、朝向、角速度、加速度等。

Ref:第三章:激光雷达感知功能开发_Apollo开发者社区

图2 Lidar感知任务

Ref:https://www.researchgate.net/publication/349835478_A_Simple_and_Efficient_Multi-task_Network_for_3D_Object_Detection_and_Road_Understanding?_tp=eyJjb250ZXh0Ijp7ImZpcnN0UGFnZSI6Il9kaXJlY3QiLCJwYWdlIjoiX2RpcmVjdCJ9fQ

归纳以上:Lidar感知任务主要分为两大类

A. 基于激光雷达的物体检测

B. 道路理解

细分后,即 3D 物体检测 (Object Detection)、前景分类 (Foreground Classification)、可行驶区域分类 (Drivable Aera/Space)、地面区域分类 (Ground Area Classification) 和地面高度回归 (Ground Height Regression)。

图3 Lidar感知任务效果(换图)

Ref:https://arxiv.org/pdf/2404.12798

2、Lidar Perception General Pipeline

Lidar Perception Pipeline可以参考下图的Lidar部分,以及Lidar和Camera融合的一小部分,当然各家的后端感知算法不尽相同,这里只给出了一个General Pipeline。

图4 Lidar Perception General Pipeline

Ref:https://www.researchgate.net/publication/362964840_How_to_build_and_validate_a_safe_and_reliable_Autonomous_Driving_stack_A_ROS_based_software_modular_architecture_baseline?_tp=eyJjb250ZXh0Ijp7ImZpcnN0UGFnZSI6Il9kaXJlY3QiLCJwYWdlIjoiX2RpcmVjdCJ9fQ

另外还有基于BEV算法的Lidar感知Pipeline如下

图5 The general pipeline of BEV LiDAR perception

Ref:https://www.researchgate.net/publication/363501404_Delving_into_the_Devils_of_Bird's-eye-view_Perception_A_Review_Evaluation_and_Recipe?_tp=eyJjb250ZXh0Ijp7ImZpcnN0UGFnZSI6Il9kaXJlY3QiLCJwYWdlIjoiX2RpcmVjdCJ9fQ

图6 Lidar Perception Pipeline From Apollo

Ref:第三章:激光雷达感知功能开发_Apollo开发者社区

图7 Lidar Perception Pipeline

Ref:https://www.mdpi.com/2076-3417/10/13/4486

归纳以上,主要流程节点如下

1、Raw Point Cloud的Crop、Voxelize

原因如下:在复杂环境中,点云的密度可能在不同区域(如开阔区域和狭窄区域)存在显著差异。例如,在开阔区域,点云密度较低,而在狭窄区域,点云密度较高。这种不规则性使得直接处理和分析点云数据变得复杂。所以首选要进行Crop和Voxelize

点云裁剪通常用于去除冗余或不相关的区域,以提高处理效率和精度。例如:

  • 去除冗余区域:在自动驾驶或机器人导航中,可能只关注特定区域(如道路、障碍物),而忽略其他区域(如天空、背景)。

  • 减少计算负担:通过裁剪,可以减少点云数据量,降低计算复杂度,提高处理速度。

  • 提高特征提取效果:在某些情况下,裁剪可以避免噪声或异常点对模型性能的影响。

体素化是将点云数据转换为规则网格(体素)的过程,其主要目的是:

  • 统一表示:将不规则的点云转换为规则的体素网格,便于后续处理和分析。

  • 减少计算复杂度:通过将点云划分为体素,可以减少计算量,提高处理效率。例如,体素化可以避免对每个点进行单独处理,而是通过体素内的聚合操作(如聚合、采样)来提取特征。

  • 保留空间信息:体素化可以保留点云的空间结构信息,同时减少内存占用。

  • 适应不同算法需求:许多深度学习模型(如VoxelNet、PointNet++)依赖于体素化表示来提取特征。

图8 Point Cloud Voxelize

2、Ground Detection and Filtering

自动驾驶中,LiDAR(激光雷达)的地面检测和滤波(Ground Detection and Filtering)是关键步骤,其主要目的是从激光雷达点云数据中分离出地面点,以便后续的障碍物检测和环境感知。

  • 去除噪声和冗余数据

  • 提高障碍物检测的准确性

  • 优化计算效率

  • 支持地形建模和环境感知

  • 应对复杂环境和挑战

  • 提升算法性能

图9 Basic principle of the ground segmentation task

Ref:https://www.mdpi.com/1424-8220/23/2/601

3、动目标检测:详见后文

4、静态检测:详见后文

3、Dynamic Detection

3.1 动态目标检测模型

目前已有多种架构致力于使用激光雷达进行目标检测,尤其是在PointNet之后。PointNet 是第一篇提出稳健模型的论文,该模型可以直接处理激光雷达数据,而无需像其他研究那样将数据转换为其他形式。该模型主要适用于较小激光雷达帧(每帧约 100 个点)的分类和分割任务,而不太适用于大型激光雷达帧,例如近期自动驾驶数据集中使用的激光雷达提供的帧(每帧约 10 万个点)。但它提供了一种直观的理解,以便未来的模型能够将其方法应用于更大的帧,并创建一些目标检测模型。

VoxelNet紧随其后,它提出了一种出色的架构,可以逐个体素地处理大量激光雷达数据,而无需一次处理整个激光雷达帧。它在此“体素处理”步骤中利用 PointNet 的架构,直接从点云中提取特征,然后再通过卷积进行高分辨率特征提取。其检测器是一个两阶段检测器 RPN(区域提议网络)。

SECOND进行了进一步的改进,与 VoxelNet 相比,它只有一个显著的变化。它使用了稀疏 CNN(卷积神经网络),而不是通常只对“非稀疏”数据进行卷积运算的神经网络。考虑到激光雷达帧的数据高度稀疏,这类 CNN 在提高模型速度甚至准确率方面非常有效,因为该模型试图仅从稀疏数据(例如,重要数据)中提取高分辨率特征。

最后一个模型是 Pointpillar,它的方法与 VoxelNet 类似。主要区别在于,该模型不是将点云划分为体素,而是通过仅在 x 轴和 y 轴上(而非 z 轴上)分离整个激光雷达帧来划分柱状图。因此,Pointpillar不是像 VoxelNet 那样将 3D 卷积层应用于 4D 张量输出,而是将 2D 卷积层应用于 3D 张量输出,这可以有效提高模型速度。

为方便进一步学习与阅读,这里将Lidar detection method timeline给出

图10 Lidar detection method timeline

Ref:https://www.researchgate.net/figure/Chronological-overview-of-the-LiDAR-based-3D-object-detection-methods_fig3_370330738

3.2 跟踪模型架构

Ref:https://arxiv.org/pdf/2012.13755

跟踪机制是利用检测模型如SECOND 多头目标检测模型逐帧得出的结果实现的,模型由三个主要部分组成:

  • 卡尔曼滤波器

  • 马氏距离计算

  • 贪婪匹配算法

使用恒速卡尔曼滤波器计算来自帧 t 的跟踪器在帧 t+1 中的位置,状态向量为 [x, y, z, theta, l, w, h, dx, dy, dz, da],还有一个Box Category,没有在跟踪中体现

xt = [x, y, z, theta, l, w, h, dx, dy, dz] 其中

  • x = 盒子在 x 轴上的中心点

  • y = 盒子在 y 轴上的中心点

  • z = 盒子在 z 轴上的中心点

  • a = 物体面向方向与 x 轴之间的角度

  • l = 盒子的长度

  • w = 盒子的宽度

  • h = 盒子的高度

  • dx, dy, dz = 表示当前帧和前一帧之间 (x, y, z) 的差值。

在此预测步骤之后,再次从目标检测模型中获取第 t+1 帧的测量值。这些检测结果以 1×7 矢量的形式表示为 3D 框位置: detection = [x, y, z, a, l, w, h] 其中 x = 框在 x 轴上的中心点 y = 框在 y 轴上的中心点 z = 框在 z 轴上的中心点 a = 物体朝向与 x 轴之间的角度 l = 框的长度 w = 框的宽度

最后一步是用适当的测量值更新卡尔曼预测位置。为此,需要计算每个卡尔曼预测值和测量值之间的马氏距离。使用贪婪匹配,如果距离最小的检测值尚未被选择,则将测量值与该检测值关联。

如果测量结果不匹配,则会创建一个新的跟踪器对象来存储进入帧 t+1 的这个可能的新对象。

除了这 3 个主要组件之外,还有 3 个重要参数决定跟踪器是否应可视化、存储在系统后台或删除:

hits:统计跟踪器在其整个生命周期内匹配的次数

time_since_last_update :计数跟踪器上次匹配的时间

最大年龄:确定跟踪器在没有匹配的情况下可以存活多长时间的阈值

图11 跟踪模型

Ref:https://www.kitware.com/3d-multi-object-tracking-using-lidar-for-autonomous-driving/

Ref:https://www.researchgate.net/publication/370330738_3D_Object_Detection_for_Autonomous_Driving_A_Comprehensive_Survey

3.3 Camera-Lidar-Fusion-Dynamic-Object-Detection

该方案可以对camera的动目标检测结果和Lidar的动目标检测结果进行交叉验证。方法很多,需要结合具体工程实践,在自动驾驶中,融合需要调用不同camera的输出进行。

图12 Overall architecture of FusionRCNN. Given 3D proposals, LiDAR and image features are extracted separately through the RoI feature extractor. Then, the features are fed into K fusion encoding layers which comprise self-attention and cross-attention modules.
图13 Attention-based feature fusion for center point detection network.

Ref:https://www.mdpi.com/2072-4292/15/7/1839

Ref:https://www.mdpi.com/2032-6653/16/6/306

4、Static Detection

4.1 可通行区域检测

Lidar Drivable Space Detection,此处涉及到几个关键的检测:

  • Detect road boundary

  • Detect common obstacles

  • Cover the bottom of Motion Object Detection

具体方法有如下几种

  • Occupancy Grid

  • Freespace-Centric

  • Polyline

  • Polygon

利用上述方法搭建模型后,需要得到道路边缘,静态目标边缘,可通行区域的方向(顺时针或者逆时针)。

图14 Diagram comparison of grid-wise and point-wise DA detection. Grid-wise DA detection can detect DA even in occluded region (black DAhed box), while point-wise DA detection cannot.

Ref:https://www.mdpi.com/2072-4292/16/20/3777

4.2 Camera-Lidar-Fusion-Static-Obstacle-Detection

这里主要是涉及到上一节中的算法和Camera图像的融合。

  • Occupancy Grid

  • Freespace-Centric

  • Polyline

  • Polygon

图15 Camera-Lidar Fusion for Occupancy Grid-aided NeuralRepresentations
图16 Polygon extraction from KITTI unorganized 3D point cloud data acquired on a moving vehicle

Ref:https://www.researchgate.net/publication/363269483_CLONeR_Camera-Lidar_Fusion_for_Occupancy_Grid-aided_Neural_Representations

Ref:https://www.mdpi.com/1424-8220/20/17/4819

Ref:https://www.thinkautonomous.ai/blog/lidar-and-camera-sensor-fusion-in-self-driving-cars/

5、点云密度与噪声对Detection的影响

图17 点云密度对目标检测的影响
图18 点云密度对目标检测的影响

也可以在点云中人为增加噪声,来提高算法的鲁棒性。

图19 Set (a) augmentation results in the Canadian driving scenario. First row—BEV scenes, colored by height; middle row—clustered results, colored by cluster groups; bottom row—enlarged third-person view center part around the ego vehicle, colored by height.

Ref:https://www.mdpi.com/2072-4292/16/12/2247

Ref:雪岭 · 激光雷达常见点云异常场景分析


文章转载自:

http://Bj9ARu00.mywnk.cn
http://SWHa6JRT.mywnk.cn
http://YUvwe6w6.mywnk.cn
http://bC7Mph72.mywnk.cn
http://ggovWVpW.mywnk.cn
http://ZWi00uO1.mywnk.cn
http://yj75Za1F.mywnk.cn
http://y4QySHEv.mywnk.cn
http://YKWG05H8.mywnk.cn
http://p9Ak184r.mywnk.cn
http://tLG9ZHn2.mywnk.cn
http://Fwx20Qka.mywnk.cn
http://O7g5nrLi.mywnk.cn
http://gFgQkVpd.mywnk.cn
http://VOmqSt4X.mywnk.cn
http://l6JM7pf2.mywnk.cn
http://heNZcXWw.mywnk.cn
http://4hIjyYVq.mywnk.cn
http://LIL8xWuN.mywnk.cn
http://CuCaSejI.mywnk.cn
http://tgJqvCwi.mywnk.cn
http://qCMo580r.mywnk.cn
http://9xFdAWjA.mywnk.cn
http://0IC65sSu.mywnk.cn
http://qhckaNiT.mywnk.cn
http://QLag9RgR.mywnk.cn
http://k2r6pLMm.mywnk.cn
http://OocCEXwY.mywnk.cn
http://ZM0cwRxF.mywnk.cn
http://6mUlWtYN.mywnk.cn
http://www.dtcms.com/a/373263.html

相关文章:

  • 计算机组成原理:计算机的分类
  • Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件
  • 辨析——汇编 shell C语言
  • 免费的SSL和付费SSL 证书差异
  • 全新 Navicat On-Prem Server 3 正式上线,数据库云管理能力全面跃升
  • 华大 MCU 串口 PWM 控制方案完整笔记
  • 档案管理软件
  • Qoder 使用说明书,公测期免费体验
  • 实现自己的AI视频监控系统-第四章-基于langchain的AI大模型与智能体应用2
  • 消息队列-初识kafka
  • linux 100个问答81~101 主要是k8s相关
  • 【C++设计模式】第三篇:观察者模式(别名:发布-订阅模式、模型-视图模式、源-监听器模式)
  • OpenCV C++ 二值图像处理:阈值化技术全解析
  • OpenCV C++ 形态学分析:从基础操作到高级应用
  • 区块链里的 “信标” 是啥?
  • ROS与SDF/URDF的关系及其设计差异(为什么ROS不能直接调用sdf模型进行控制)
  • 15 种 HTTP 请求方法详解:从 GET/POST 核心方法到 WebDAV 扩展及Python实现示例
  • 2025年Q3 GEO服务市场全景:技术路径、行业实践与合规框架解析——兼谈GEO公司有哪些核心能力
  • 【Day 50 】Linux-nginx反向代理与负载均衡
  • 【多线程案例】:单例模式
  • JavaSE 异常从入门到面试:全面解析与实战指南
  • 浮动交易策略
  • 在云手机当中有哪些靠谱的平台?
  • django跨域配置
  • 工控机创新驱动为工业升级注入科技强心剂
  • AI Agents with n8n: 10+ 自动化创意路线图
  • 【计算机视觉】图像中的高频信息,和低频信息指的是什么?
  • 光伏助力碳中和:智慧运营平台如何精准计算与追踪减排贡献?
  • 计算机视觉 (CV) 基础:图像处理、特征提取与识别
  • 网络身份安全防线:身份证实名认证接口-网络社交身份安全