自动驾驶之激光雷达

这里写目录标题

  • 1 什么是激光雷达
  • 2 激光雷达的关键参数
  • 3 激光雷达种类
  • 4 自动驾驶感知传感器
  • 5 激光雷达感知框架
    • 5.1 pointcloud_preprocess
    • 5.2 pointcloud_map_based_roi
    • 5.3 pointcloud_ground_detection
    • 5.4 lidar_detection
    • 5.5 lidar_detection_filter
    • 5.6 lidar_tracking

1 什么是激光雷达

  • 激光雷达LiDAR的全称为Light Detection and Ranging 激光探测和测距。
  • 激光雷达的工作原理:对红外光束Light Pluses发射、反射和接收来探测物体。白天或黑夜下的物体与车之间的距离。甚至由于反射度的不同,车道线和路面也可以区分。光束无法探测到被遮挡的物体

2 激光雷达的关键参数

  • 点频:每帧水平方向平均点数x垂直方向平均点数x帧率=(水平视场角/水平角分辨率)×(垂直视场角/垂直角分辨率)
  • 扫描频率:10Hz就代表每秒扫描10次(转10圈)
  • 视角(Field of View, FOV):FOV包括垂直视场角(VFOV)、水平视场角(HFOV)、对角线视场角(DFOV);通常,在没有特殊说明时,我们默认的FOV一般都是水平视场角

在这里插入图片描述在这里插入图片描述

  • 角分辨率:指的是相邻两个激光扫描点之间的角度间隔,一般以度(°)为单位。由于目前激光雷达有很多种扫描方式,每种方式在扫描点分布上的差异,导致扫描点并不绝对均匀,因此这里讲的激光雷达角分辨率是一个等效平均的概念。直观理解,角分辨率越小,单位空间角内分布的激光点数就越多,其对于物体的分辨能力就会越强。相同角分辨率下,对同一物体,距离越远探测到的激光点数越少,如图所示。
    在这里插入图片描述

因为每100ms(10Hz)转360度, 水平角分辨率为0.2°, 转一圈就产生360/0.2=1800个点, 如果每50ms(20Hz) 转一圈, 就转一圈就产生360/0.4=900个点, 通常自动驾驶领域为了点更密集, 常采取10Hz.(一节课上老师讲的,有点疑惑,一圈点更密为什么更好?不都是看时间的吗?)

  • 线数: 对于机械激光雷达来说, 一般多少线就需要多少个激光器。
  • 反射率: 激光雷达返回值除了三维点坐标 (x, y, z)之外, 还有反射率和距离, 入射角度, 与物体表面反射率
  • 波长: 常见的激光雷达波长为 905nm, 1550nm两种, 1550nm 距离可见光波段更远, 所以对人眼更安全, 波长更长穿透度更好,更有利于在雨雾天气使用, (由于成本较高, 还未成为主流)。
  • 探测距离:一般要求200米,以达到最远刹车距离的要求
  • 回波模式: 单回波和多回波, 激光雷达发出的激光点是有一定面积的, 有时可能会出现1个激光点发出后, 打在2个物体上(如同一束激光打在两片树叶上), 此时可以选择是接受最后一次回波的值还是反射强度最强的回波的值。

以禾赛128为例

1、10%反射率下最远探测距离200米
2、视场角:120°x25.4°
3、角分辨率:0.1°(H)X0.2°(V)
4、功耗:18W
5、尺寸:137mmX112mmX47mm
在这里插入图片描述在这里插入图片描述

3 激光雷达种类

  1. 传统机械扫描; AT128,有机械结构,体积比较大。
  • 使用机械部件旋转来改变发射角度,水平360度扫描
  • EE了激光器堆叠工艺复杂,体积过大,垂直线数受限,难以通过
  1. MEMS(Micro‐Electro‐Mechanical System) 半固态激光雷达
      MEMS在硅基芯片上集成了体积十分精巧的微振镜,其核心结构是尺寸很小的悬臂梁——通过控制微小的镜面平动和扭转往复运动,将激光管反射到不同的角度完成扫描,而激光发生器本身固定不动。
    在这里插入图片描述
  • 优点:运动部件减少,体积小,成本相对较低。
  • 缺点:MEMS可转角受限,限制扫描视野,存在成像拼接的问题
  1. FLASH 泛光面阵式, 纯固态激光雷达,
      FLASH工作原理类似于摄像头, 只不过摄像头是被动接受光信息, 而FLASH是主动发射面激光并接受反射激光, Flash激光雷达的成像原理是发射大面积激光一次照亮整个场景,然后使用多个传感器接收检测和反射光。但最大的问题是这种工作模式需
    要非常高的激光功率。而在体积限制下,Flash激光雷达的功率密度不能很高。因此Flash激光雷达由于功率密度的限制,无法考虑三个参数:视场角、检测距离和分辨率,即如果检测距离较远,则需要牺牲视场角或分辨率;如果需要高分辨率,则需要牺牲视场角或检测距离
  2. OPA(Optical Phased Array) 光学相控阵,全固态激光雷达;
      光学相控阵技术的原理是利用光源相干技术实现光线角度偏转,从而达到扫描测距的目的。OPA激光雷达发射的是光,而光和电磁波一样也表现出波的特性。波与波之间会产生干
    涉现象,通过控制相控阵雷达平面阵列各个阵元的电流相位,利用相位差可以让不同的位置的波源会产生干涉(类似的是两圈水波
    相互叠加后,有的方向会相互抵消,有的会相互增强),从而指向特定的方向,往复控制便得以实现扫描效果。
  • 优点:OPA是纯固态器件,无需要活动的机械结构,
  • 缺点:激光雷达对激光调试、信号处理的运算力要求很高。
  • 前沿性探索阶段

4 自动驾驶感知传感器

下图是传感器感知的视野图,从图中可以看到,传感器的视野比人的视野更加宽广深远且盲区更小,基本能够涵盖车辆360度范围。
感知主要的传感器:Lidar、Radar(长距、短距)、Camera。
在这里插入图片描述视觉传感器一般用于障碍物、车道线、交通灯检测、目标检测和跟踪功能。基本原理是首先获取图像并将图片转化为二维数据,然后通过深度学习方法做目标识别,再根据相机的内外参计算目标物体和主车的相对距离和相对速度。毫米波雷达主要用于目标检测、换道辅助、自适应巡航控制、停车辅助等,激光雷达一般应用于障碍物检测、定位等。
在这里插入图片描述在智能驾驶领域,通常车辆会配置多种感知器,分别执行不同的任务,并进行感知融合。在感知融合中,会对所有目标进一步处理,得到更加准确的目标类别、距离、尺寸、速度等,感知完成红绿灯检测、车道线检测目标融合之后,把感知信息发送给下游模块

在这里插入图片描述

5 激光雷达感知框架

以百度Apollo为例

感知框架中lidar、camera、radar、fusion 四部分内容定义在四个模块中。Lidar 和 camera 每个模块内部功能复杂,学习成
本较高。感知框架拆分后,模块依赖关系清晰。Lidar 和 camera 的感知流程分为多个模块,依赖关系呈线性状态;radar
和 fusion 的功能在单个模块内,功能如框图所示。
在这里插入图片描述

激光雷达检测用于 3D 目标检测,它的输入是激光雷达点云,输出为检测到的物体的类型和坐标。

  • pointcloud_preprocess:点云预处理模块对输出的点云数据进行预处理。 删除超值点、太远的点、扫描到自身车辆上的点、太高的点。
  • pointcloud_map_based_roi:过滤 ROI 之外的点云。 感兴趣区域 (ROI) 指定可行驶区域,包括从高精地图检索到的路面和路口。 HDMap ROI 过滤器处理 ROI 外部的lidar点,去除背景物体,例如道路周围的建筑物和树木。 剩下的就是ROI中的点云以供后续处理。 给定HDMap,每个 LiDAR 点的隶属关系指示它是在 ROI 内部还是外部。
  • pointcloud_ground_detection:点云地面检测,检测地面点,并保存所有非地面点的索引。
  • lidar_detection:基于点云进行3D物体检测,并输出检测到的物体的位置、大小和方向。 Apollo提供了4种激光雷达检测模型:centerpoint、maskpillars、pointpillars、cnnseg。
  • lidar_detection_filter:根据对象属性、车道线、ROI 等过滤前景和背景对象。
  • lidar_tracking:跟踪模块用于跟踪障碍物的运动轨迹,更新障碍物的运动状态和几何形状,并分配跟踪id。
  • multi_sensor_fusion :多传感器融合模块融合Lidar、Camera、Radar多个传感器的输出结果,使检测结果更加可靠。该模块采用后处理技术,采用的算法是概率融合

5.1 pointcloud_preprocess

点云预处理模块对点云做过滤,删除异常的、感知不需要的点云。

  • 删除空值,超限值点云;
  • 删除过远(超过1000m)的点云;
  • 删除过高的点云;
  • 点云转化到主车自身坐标系,删除扫描到主车身上的点云。
    在这里插入图片描述

5.2 pointcloud_map_based_roi

点云基于地图计算兴趣区域(roi,region of interest),根据高精度地图的road和junction边界判断点云是否在高精度地图内,获得
在高精地图内的点的索引。
下图是基于地图roi过滤的效果图。红色的是roi内的点云,白色的是roi外的点云。
在这里插入图片描述

5.3 pointcloud_ground_detection

地面点检测功能是检测出地面点,获得所有非地面点的索引,即non_ground_indices。
下图是地面点云检测的示例图,红色的点云是非地面点云,白色的是地面点云。分割出地面点云后,去除前景目标点云。然后用
剩余的非地面点云做聚类,检测当前场景下的所有目标,保证自动驾驶的安全性。
在这里插入图片描述

5.4 lidar_detection

检测模型完成目标检测功能,获得目标的如下结果:cx, cy, cz, length, width, height, heading, type
其中,(cx, cy, cz)是中心点,(length, width, height)是长宽高,heading是朝向,type是目标类别。示例如下
除了获取目标,还根据目标的3d bounding box,得到每个目标的所有点云。
在这里插入图片描述

5.5 lidar_detection_filter

完成激光雷达目标检测后,对检测目标做过滤。object_filter_bank可以同时使用多个过滤器,针对roi_boundary_filter做介绍,
roi_boundary_filter只用来处理前景目标(即妨碍车辆行驶的目标)。roi_boundary_filter过滤规则如下图。
在这里插入图片描述

5.6 lidar_tracking

多目标跟踪,获取目标运动的历史轨迹,得到更加稳定的朝向、速度、位置等信息,得到跟踪id。多目标跟踪的结果可进一步用于障碍物轨迹预测。
detections 来自最新检测的结果,tracks 表示历史的匹配结果。Match 是目标匹配算法,最终得到三种匹配结果:

  • unassigned tracks:历史的目标没有和最新的检测结果匹配上,这种情况会更新历史 tracks,并删除过老的 tracks
  • assignment:表示已经匹配上,根据dets和tracks更新tracks。
  • unassignement detections:最新检测的结果没有匹配上,添加到历史tracks中。这时会赋予一个新的track‐id。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/921475.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪

这里写目录标题 1.目标检测 Detection2.实例分割 segment3.图像分类 classify4.关键点估计 Keypoint detection5.视频帧检测 video detect6.视频帧分类 video classify7.旋转目标检测 obb detect8.替换yolo11模型 给我点个赞吧,谢谢了附录coco80类名称 笔记本 华为m…

Laravel对接SLS日志服务

Laravel对接SLS日志服务&#xff08;写入和读取&#xff09; 1、下载阿里云的sdk #通过composer下载 composer require alibabacloud/aliyun-log-php-sdk#对应的git仓库 https://github.com/aliyun/aliyun-log-php-sdk2、创建sdk请求的service <?phpnamespace App\Ser…

uniapp接入高德地图

下面代码兼容安卓APP和H5 高德地图官网&#xff1a;我的应用 | 高德控制台 &#xff0c;绑定服务选择《Web端(JS API)》 /utils/map.js 需要设置你自己的key和安全密钥 export function myAMap() {return new Promise(function(resolve, reject) {if (typeof window.onLoadM…

初识WGCLOUD - 监测磁盘空间还能使用多久

WGCLOUD是一款免费开源的运维监控软件&#xff0c;性能优秀&#xff0c;部署简单&#xff0c;轻巧使用&#xff0c;支持大部分的Linux和Windows、安卓、MacOS等平台安装部署 最近发布的新版本 v3.5.4&#xff0c;WGCLOUD新增了可以自动计算每个磁盘剩余空间的可使用天数&#x…

【Xbim+C#】创建圆盘扫掠IfcSweptDiskSolid

基础回顾 https://blog.csdn.net/liqian_ken/article/details/143867404 https://blog.csdn.net/liqian_ken/article/details/114851319 效果图 代码示例 在前文基础上&#xff0c;增加一个工具方法&#xff1a; public static IfcProductDefinitionShape CreateDiskSolidSha…

数据结构 ——— 堆排序算法的实现

目录 前言 向下调整算法&#xff08;默认建大堆&#xff09; 堆排序算法的实现&#xff08;默认升序&#xff09; 前言 在之前几章学习了如何用向上调整算法和向下调整算法对数组进行建大/小堆数据结构 ——— 向上/向下调整算法将数组调整为升/降序_对数组进行降序排序代码…

图像预处理之图像滤波

目录 图像滤波概览 均值滤波&#xff08;Mean Filter&#xff09; 中值滤波&#xff08;Median Filter&#xff09; 高斯滤波&#xff08;Gaussian Filter&#xff09; 双边滤波&#xff08;Bilateral Filter&#xff09; 方框滤波&#xff08;Box Filter&#xff09; S…

Qt-多元素控件

Qt中的多元素控件 Qt提供的多元素控件有&#xff1a; 这里的多元素控件都是两两一对的。 xxWidget和xxView的一个比较简单的理解就是&#xff1a; xxView是更底层的实现&#xff0c; xxWidget是基于xxView封装来的。 可以说&#xff0c;xxView使用起来比较麻烦&#xff0c;但…

<Sqlite><websocket>使用Sqlite与websocket,实现网页端对数据库的【读写增删】操作

前言 本文是在websocket进行通讯的基础,添加数据库进行数据的存储,数据库软件使用的是sqlite。 环境配置 系统:windows 平台:visual studio code 语言:javascript、html 库:nodejs、sqlite 概述 此前,我们实现在利用websocket和socket,将网页端与下位控制器如PLC进行…

Unreal从入门到精通之如何绘制用于VR的3DUI交互的手柄射线

文章目录 前言实现方式MenuLaser实现步骤1.Laser和Cursor2.移植函数3.启动逻辑4.检测射线和UI的碰撞5.激活手柄射线6.更新手柄射线位置7.隐藏手柄射线8.添加手柄的Trigger监听完整节点如下:效果图前言 之前我写过一篇文章《Unreal5从入门到精通之如何在VR中使用3DUI》,其中讲…

主IP地址与从IP地址:深入解析与应用探讨

在互联网的浩瀚世界中&#xff0c;每台联网设备都需要一个独特的身份标识——IP地址。随着网络技术的不断发展&#xff0c;IP地址的角色日益重要&#xff0c;而“主IP地址”与“从IP地址”的概念也逐渐进入人们的视野。这两个术语虽然看似简单&#xff0c;实则蕴含着丰富的网络…

【Linux】文件IO的系统接口 | 文件标识符

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;青果大战linux 总有光环在陨落&#xff0c;总有新星在闪烁 最近真的任务拉满了&…

时序论文23|ICML24谷歌开源零样本时序大模型TimesFM

论文标题&#xff1a;A DECODER - ONLY FOUNDATION MODEL FOR TIME - SERIES FORECASTING 论文链接&#xff1a;https://arxiv.org/abs/2310.10688 论文链接&#xff1a;https://github.com/google-research/timesfm 前言 谷歌这篇时间序列大模型很早之前就在关注&#xff…

OpenAI 助力数据分析中的模式识别与趋势预测

数据分析师的日常工作中&#xff0c;发现数据中的隐藏模式和预测未来趋势是非常重要的一环。借助 OpenAI 的强大语言模型&#xff08;如 GPT-4&#xff09;&#xff0c;我们可以轻松完成这些任务&#xff0c;无需深厚的编程基础&#xff0c;也能快速上手。 在本文中&#xff0…

基于深度学习的点云分割网络及点云分割数据集

点云分割是根据空间、几何和纹理等特征对点云进行划分&#xff0c;使得同一划分内的点云拥有相似的特征。点云的有效分割是许多应用的前提&#xff0c;例如在三维重建领域&#xff0c;需要对场景内的物体首先进行分类处理&#xff0c;然后才能进行后期的识别和重建。 传统的点…

快速图像识别:落叶植物叶片分类

1.背景意义 研究背景与意义 随着全球生态环境的变化&#xff0c;植物的多样性及其在生态系统中的重要性日益受到关注。植物叶片的分类不仅是植物学研究的基础&#xff0c;也是生态监测、农业管理和生物多样性保护的重要环节。传统的植物分类方法依赖于人工观察和专家知识&…

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力

ENMOTECH 上一篇文章为大家介绍了某金融科技企业通过 zCloud 多元数据库智能管理平台的告警中心“警警”有条地管理告警并进行敏捷处置的实践案例。本篇跟大家继续分享该案例客户如何利用 zCloud 备份恢复模块下的Binlog解析功能补齐 MySQL 数据恢复能力&#xff0c;让运维人员…

transformer.js(四): 模型接口介绍

前面的文章底层架构及性能优化指南介绍了transformer.js的架构和优化策略&#xff0c;在本文中&#xff0c;将详细介绍 transformer.js 的模型接口&#xff0c;帮助你了解如何在 JavaScript 环境中使用这些强大的工具。 推荐阅读 ansformer.js&#xff08;二&#xff09;&…

使用 Elasticsearch 构建食谱搜索(二)

这篇文章是之前的文章 “使用 Elasticsearch 构建食谱搜索&#xff08;一&#xff09;” 的续篇。在这篇文章中&#xff0c;我将详述如何使用本地 Elasticsearch 部署来完成对示例代码的运行。该项目演示了如何使用 Elastic 的 ELSER 实现语义搜索并将其结果与传统的词汇搜索进…

1、HCIP之RSTP协议与STP相关安全配置

目录 RSTP—快速生成树协议 STP STP的缺点&#xff1a; STP的选举&#xff08;Listening状态中&#xff09;&#xff1a; RSTP P/A&#xff08;提议/同意&#xff09;机制 同步机制&#xff1a; 边缘端口的配置&#xff1a; RSTP的端口角色划分&#xff1a; ensp模拟…