Apollo星火计划学习笔记——第六讲上自动驾驶感知基础(I)
文章目录
- 1. 感知的作用
- 2. 常见传感器
- 2.1 相机
- 2.1.1 相机的种类
- 2.1.2 相机的特点
- 2.2 激光雷达
- 2.2.1 激光雷达系统构成与方案
- 2.2.2 激光雷达光源
- 2.2.3 激光雷达扫描方式
- 2.2.4 激光雷达总结
- 2.2.5 Camera VS. LiDAR
- 2.3 毫米波雷达
- 2.4 部署方案
- 3. 传感器标定
- 3.1 安装位置
- 3.2 坐标系
- 3.3 内参和自标定
- 4. 感知流程及算法
- 4.1 感知算法流程
- 4.2 感知算法概述 — 计算机视觉(CV)任务
- 4.3 感知算法概述 — 全景分割
- 4.4 激光雷达点云
- 4.4.1 激光雷达点云检测常见算法
- 4.4.2 激光雷达点云分割常见算法
- 4.5 融合
- 4.5.1 融合介绍
- 4.5.2 时间同步
- 4.5.3 BEV
- 4.6 数据
- 4.7 评价和测试
- 4.8 训练、优化到部署
- 4.9 未来:端到端?
- 5. 实践
- 5.1 雷达数据的查看
- 5.2 激光雷达实验
1. 感知的作用
感知
:是对感官信息的组织、识别和解释,以表示和理解所呈现的信息或环境。
自动驾驶感知涉及从车辆传感器收集数据,并将这些数据处理成对车辆周围世界的理解,为后续PnC(规划控制)模块提供必要信息。
”必要信息“
静态环境结果
- 路面信息(车道线、转弯标识、停车位、斑马线……)
- 路标(限速牌、禁停标志……)
- 红绿灯
- ……
动态障碍物结果
- 机动车
- 自行车
- 行人
- ……
状态
- 障碍物的位置、速度、种类、预测轨迹
- 红绿灯状态、读秒器显示
- ……
场景
- 高速、十字路口、无保护左转、停车场
- 天气(雨雪雾……)
- ……
2. 常见传感器
环境传感器 | 自车传感器 |
---|---|
相机 | GNSS |
激光雷达 | IMU |
毫米波雷达 | 轮速计 |
超声波雷达 |
单一的传感器难以做到完美,通常需要结合不同传感器的优点进行多传感器融合以达到更好的效果。
2.1 相机
2.1.1 相机的种类
相机(Camera):
前视摄像头
环视摄像头
鱼眼摄像头
双目摄像头
事件相机
2.1.2 相机的特点
优点 | 缺点 | 常用感知算法 |
---|---|---|
成本低 | 缺乏深度信息 | 深度学习 |
物体纹理信息 | 光干扰 | 传统算法 |
SLAM |
2.2 激光雷达
2.2.1 激光雷达系统构成与方案
TOF受到精度的限制,会有最短距离约束。
2.2.2 激光雷达光源
https://www.lasersafetyfacts.com/laserclasses.html
https://en.wikipedia.org/wiki/Laser_safety
波长越短,频率越高,能量越强
降噪
1.选择低太阳光通量区域的工作波长, 905nm, 1550nm激光器
1.905nm 边发射激光器供应链成熟,常用是InGaAs/GaAs应变量子阱脉冲激光二极管
2.1550nm 以光纤激光器作为光源,成本、体积、供应链不成熟光电探测器
1.硅在 905nm 波长处吸收光子,硅基光电探测器技术比探测1550 nm光所需的铟镓砷(InGaAs)近红外探测器更加成熟人眼安全
1.400-1400nm波段内激光穿过玻璃体,聚焦在视网膜上, 视网膜温度上升10℃就会造成感光细胞损伤
2.低于400nm或高于1400nm的激光会被晶状体和角膜吸收,高功率的会造成白内障或晶体状烧伤
3.保证 Class 1 人眼安全的条件下,相比于905nm激光,1550nm波长的光比905nm的光可发射更大功率
光源的选择会影响测距的性能。
2.2.3 激光雷达扫描方式
堆叠的发射器决定了激光雷达的线束。
2.2.4 激光雷达总结
激光雷达(LiDAR)
通过不断向外发射激光束,并接收物体反射回的光脉冲,根据光速计算出信号之间的时间差或相位差来确定车与物体之间的相对距离。激光雷达是主动式的感知。激光雷达的数据结构(X,Y,Z,I)(X,Y,Z,I)(X,Y,Z,I)
- 按扫描方式
1.旋转式激光雷达
2.固态激光雷达
Flsah
OPA
3.混合式激光雷达
转镜
振镜
MEMES - 按工作原理
三角测量法
飞行时间(ToF)
调频连续波(FMCW) - 光源
905nm
1550nm
优点 | 缺点 | 常用感知算法 |
---|---|---|
3D感知,原生深度信息 | 缺乏纹理信息 | 深度学习 |
抗强光 | 传统算法 | |
SLAM |
2.2.5 Camera VS. LiDAR
Y. Zhang, A. Carballo, H. Yang, and K. Takeda, “Autonomous Driving in Adverse Weather Conditions: A Survey.” arXiv, Dec. 16, 2021. Accessed: Aug. 12, 2022. [Online]. Available:http://arxiv.org/abs/2112.08936
2.3 毫米波雷达
毫米波雷达(Radar)
- 远距离雷达
- 角雷达
- 3D X, Y, V
- 4D X, Y, Z, V
按工作频率
- 77GHz
- 24GHz
优点 | 缺点 |
---|---|
抗干扰 | 角分辨率低 |
有径向速度 | 无物体纹理信息 |
小目标检测效果差 |
通常情况下,毫米波雷达厂商会给出目标级别的识别物体,与其他传感器结果直接进行后融合。
2.4 部署方案
传感器方案选择要综合考虑下列因素:
功能级别L2vs.L4、场景、成本、技术成熟度、供应链能力、改装难易度、功能安全
……
3. 传感器标定
3.1 安装位置
决定传感器的安装位置要考虑:
感知范围(HFOV、VFOV、Distance)、最佳视角、遮挡、不同传感器间的冗余、安全性、稳定性、量产项目,还要考虑和车身的整合,兼顾安全和美观
安装位置不同,每个传感器都有自己独立的坐标系,需要通过标定将个传感器统一到车身坐标系下。
3.2 坐标系
数据坐标系:根据传感器原理不同,每种传感器都会有自己的数据坐标系,如相机将三维世界中的坐标点映射到二维图像平面的像素坐标系。
传感器坐标系:以传感器为中心的三维笛卡尔坐标系。
车身坐标系:Apollo中采用右-前-天定义
- X – 面向车辆前方,右手方向为正
- Y – 车辆前进方向为正
- Z – 垂直地面,车顶方向为正
- 后轴中心为坐标系中点
传感器标定的目的
即是把感知到的周围环境统一到车身坐标系下。
3.3 内参和自标定
传感器内参(Intrinsics):传感器坐标系和数据坐标系之间的映射以及去除畸变。
传感器外参(Extrinsics):传感器相对于车身或其他传感器坐标系的位姿R,tR, tR,t。
相机自标定:
- 去畸变:校正光线在经过透镜边缘后发生弯折,造成的图像边缘弯曲。
- 内参标定:图像坐标系到相机坐标系的映射。
- 相机模型选择:小孔模型(Pinhole),全向相机(Omnidirectional) 供应商可提供,或者通过棋盘标定板测定。
激光雷达自标定(极坐标to笛卡尔坐标系):
- 扫描方式不同,标定方式不同,如旋转式需要发射器角度和位置。
- 反射强度,反射率标定板。
- 厂家标定。
自动驾驶中外参标定:
- 离线(Offline)标定
- 在线(Online)标定
- Target-based VS. Targetless-based
相同传感器标定(Camera2Camera,LIDAR2LiDAR)常采用特征点配对的方式求解位姿,如LiDAR使用ICP进行点云匹配。
(G. Yan, F. He, C. Shi, X. Cai, and Y. Li, ‘Joint Camera Intrinsic and LiDAR-Camera Extrinsic Calibration’. arXiv, Jul. 13, 2022. Accessed: Aug. 17, 2022. [Online]. Available:http://arxiv.org/abs/2202.13708)
更多标定的内容见多传感器融合感知—传感器外参标定及在线标定学习
4. 感知流程及算法
4.1 感知算法流程
算法:
监督学习:人工标注数据。
半监督学习:可通过无监督学习自学习特征,再通过较少标注数据完成具体任务训练。
无监督学习:无需人工预标注,e.g. 强化学习。
无论是传统算法还是深度学习基础的算法,都遵循数据-前处理-表征学习-特征提取-算法任务-后处理到需要结果的pipeline,根据实际场景和业务需求的不同,前、后处理和表征学习过程可省略或者由End2End模型整体处理。
4.2 感知算法概述 — 计算机视觉(CV)任务
4.3 感知算法概述 — 全景分割
全景分割
- 像素级别
- 语义标签+实例ID
- 不可数目标+可数目标
- 研究方向
4.4 激光雷达点云
对点云进行运动补偿(激光束发射的时间有间隔,垂直方向、水平方向上都有间隔,由于车是运动的,会产生误差),再进行特征提取,神经网络的模型(CNN、Transformer等),再完成两个大类的任务——检测、分割。
激光雷达在运动中和物体运动对每帧点云产生的畸变通过运动补偿矫正。
4.4.1 激光雷达点云检测常见算法
Point-based 检测算法
- 由采样、表征学习和检测头检测三部分组成
- 主要采样算法:PointNet系列提出的FPS
- 主要算法:PointRCNN,3DSSD,Pointformer
- 推理时间难以满足实时性,在自动驾驶中较少采用。
Grid-based 检测算法
- 网格表示:Voxel,Pillar,BEV Map
- 网格化表征+基于网格的DNN+检测头
- 主干网络:3D sparse CNN,2D CNN
- 代表网络:VoxelNet,Pointpillars,CenterPoint
Point-voxel based 检测算法
- PVCNN,Fast Point R-CNN系列
Range-based 检测算法
- 前视角特征提取+BEV检测
3D目标检测综述:J. Mao, S. Shi, X. Wang, and H. Li, “3D Object Detection for Autonomous Driving: A Review and New Outlooks.” arXiv, Jun. 19, 2022. doi:10.48550/arXiv.2206.09474.
4.4.2 激光雷达点云分割常见算法
这里介绍的都是基于深度学习的算法,针对业务场景的不同,一些传统的机器学习算法在实际使用中也有相当优秀的表现。
4.5 融合
4.5.1 融合介绍
融合:将多传感器检测到的目标在时间和空间两个尺度上达成同一。
- 时间:每个传感器的频率不一致,如LiDAR 10Hz,Camera 30Hz,Radar 10Hz
- 空间:各传感器的感知结果投影到车身坐标系。
前融合:原始信号融合,一般用于同类传感器融合,原始信息不损失,计算量大,融合难度大。
特征融合:传感器信号进行独立特征提取后进行融合,最近比较流行BEV。
后融合:每种传感器独立进行感知检测,在结果层进行融合,原始信息损失较大,计算量小,难度低。
4.5.2 时间同步
4.5.3 BEV
BEV优势
- 前融合、特征融合
- 多模态融合(多传感器融合、时空融合)
- 感知结果与下游任务预测、PnC衔接
- 提供了新的End2End范式基础
- V2X融合
4.6 数据
国内数据库下载 https://opendatalab.com/
4.7 评价和测试
实际工作中,指标只是一个参考,很多场景是要根据任务制定测试标准的
数据闭环的目的是为了提高自动驾驶中数据相关工作的工作效率,特别是应对大数据驱动的算法训练和场景检验
4.8 训练、优化到部署
算法优化和部署:
实际工作中,算法要根据不同的硬件方案进行调整,从初期的选型到后期的部署,不仅要有整体层面的考量,还要硬件、软件、算法、供应商团队的通力合作才能打造一款优质的产品。
“算法是软件、硬件、场景、商务的……妥协。” —— Pacal Meng
4.9 未来:端到端?
5. 实践
Apollo感知之数据结构解析
5.1 雷达数据的查看
运行以下指令(云实验里面的数据包改了-2022.12.11)
cyber_recorder play -f sensor_rgb.record -l
输入cyber_monitor查看,按左右键即可查看,N\M键切换数据
cyber_monitor
cyber_recorder play -f databag/demo_3.5.record -l
cyber_channel 类似于ROS的topic
cyber_channel -h
cyber_channel list 看那些通道被激活了
cyber_channel list
5.2 激光雷达实验
本实验基于云平台进行。实验地址——Apollo感知之数据结构解析
本次实验所用的数据包是sensor_rgb.record
1.首先播放该数据包
cyber_recorder play -f databag/sensor_rgb.record
2.再用cyber_monitor 查看通道。找到图中所指示的这个通道,该通道是激光雷达点云数据的通道
这是激光雷达点云的数据。频率为10Hz(FrameRatio)。
再查看每个点云的数据结构,包含xxx,yyy,zzz以及intensity强度信息。
按N/M键可以切换数据
3.往/apollo/modules/common/data/global_flagfile.txt
文件中添加数据包中pointcloud_topic点云数据。
vim /apollo/modules/common/data/global_flagfile.txt
--pointcloud_topic=/apollo/sensor/velodyne64/compensator/PointCloud2
4. 修改channel。将图中的红色方框里的通道改为之前用cyber_monitor查看的通道(图中已改过)。
vim /apollo/modules/perception/production/dag/dag_streaming_perception_lidar.dag
5.再重新启动DreamView。
bash scripts/bootstrap_neo.sh restart
6.点开Point Cloud,查看结果。
Apollo beta 版本软件包的激光雷达实验
视频地址:
CSDN:https://live.csdn.net/v/263483
bilibili:https://www.bilibili.com/video/BV13e4y1K7fM/?spm_id_from=333.999.0.0&vd_source=67597beb15c6804a2da3e2d025e6963e
Apollo_beta_软件包_激光雷达测试
Apollo星火计划学习笔记——第六讲上自动驾驶感知基础(I)相关推荐
- Apollo星火计划学习笔记——第六讲下(Apollo自动驾驶-感知基础II)
文章目录 前言 1. Apollo感知框架介绍 1.1 Apollo感知模块概述 1.2 飞桨PaddlePaddle 1.3 跟踪 1.4 Apollo感知框架 2. Lidar障碍物检测 2.1 ...
- Apollo星火计划学习笔记第六讲——Apollo感知模块详解实践2感知基础
Apollo学习笔记 零.目录 一.Apollo感知框架介绍 1.1 检测和分类 1.2 跟踪 1.3 感知模块代码结构 1.3.1 感知模块入口 二.Lidar障碍物检测.红绿灯识别 2.1 Lid ...
- Apollo星火计划学习笔记——第七讲自动驾驶规划技术原理1
文章目录 前言 1. 规划技术功能概述 1.1 自动驾驶系统 1.2 规划的作用 1.3 规划主要功能 1.3.1 路由寻径(Routing) 1.3.2 行为决策 1.3.3 轨迹规划 2. Apo ...
- Apollo星火计划学习笔记第四讲1——Apollo高精地图模块
Apollo学习笔记 零.目录 一.高精地图的作用 1.1 相对于传统地图 二.高精地图介绍 2.1 高精地图构成 2.2 高精地图制作 2.2.1 地图采集 2.2.2 地图制作 2.2.3 地图标 ...
- Apollo星火计划学习笔记——第四讲Part2 Apollo定位模块详解与实践
引言 内容概要,学习目标 了解自动驾驶定位的作用 熟悉常见的自动驾驶定位方法 掌握整个Apollo定位模块框架 独立开发定位模块 1. 定位的作用 1.1 定位及其相关知识点 定位: 获取当前的地理位 ...
- Apollo星火计划学习笔记——第七讲自动驾驶规划技术原理2
文章目录 前言 1. 泊车系统介绍 1.1 泊车任务 1.2 关键 Use Cas--车位类型 1.3 关键 Use Cas--环境条件 1.4 泊车过程描述 1.5 泊车状态操作和用户接口定义 1. ...
- Apollo星火计划学习笔记第四讲2——高精地图定位模块
Apollo学习笔记 零.目录 一.定位的作用 二.定位用到的算法 2.1 GPS 2.2 IMU 2.3 GNSS(GPS+IMU) 2.4 先验地图定位 2.5 实时定位和建图 2.6 小结 三. ...
- Apollo星火计划学习笔记——第四讲(Apollo自动驾驶高精地图)
文章目录 前言 1. 高精度地图的作用 1.1 高精度地图与传统地图的区别 1.2 为什么要使用高精度地图? 1.3 高精度地图面临的挑战和问题 2. 高精度地图的介绍 2.1 如何制作高精度地图 2 ...
- Apollo星火计划学习笔记——第八讲Apollo控制模块解析与实践1
文章目录 1. 控制理论简介 1.1 控制的作用 1.2 自动驾驶控制的目标 1.3自动驾驶控制器的设计 2. 汽车运动学与动力学 2.1 常用的自动驾驶控制算法 2.2 车辆运动学模型 Kinema ...
最新文章
- 大三下学期第一周总结
- XenApp部署之配置XenApp Server
- tomcat jsvc 调优及JMX监控
- msm8974 camera driver添加新摄像头kernel hal修改
- 你能排第几?2016互联网行业薪酬数据分析
- 基于深度学习和机器学习的心电图智能分析参赛总结
- 西门子dcs系统组态手册下载_西门子PLC,PCS7系统介绍
- springboot springmvc mybatis_12道重点的Spring Boot面试题,帮你整理好了!
- 一个多业务、多状态、多操作的交易链路?闲鱼架构这样演进
- ubuntu指向python3_ubuntu安装python3.7,并更新python默认指向为python3.7
- APT 分析报告:钓鱼邮件网址如何混淆 URL 逃避检测?
- 中fuse_一种用于将mRNA快速转染到活细胞细胞质中的融合试剂
- 新员工如何快速融入新的工作环境
- Revit平台盗版软件的陷阱与风险
- 2022年4月13日记
- autocad2014点击保存闪退_win10下autocad2014闪退怎么解决?-解决win10下autocad2014闪退的方法 - 河东软件园...
- 超详细的VisualDL 的项目嵌入可视化教学
- java将中文转为拼音
- 面向对象案例——贪吃蛇游戏
- 收藏:国内的12个安全漏洞预警渠道
热门文章
- 邓俊辉 数据结构 二叉树 笔记
- 离散数学-数理逻辑基本概念
- 网络同步在游戏历史中的发展变化(二)—— Lockstep与帧同步
- 四足机器人|机器狗|仿生机器人|多足机器人|Adams仿真|Simulink仿真|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!
- 苹果CMS海螺模板4.0修复版带后台 附安装教程
- 【Appium】手机滑动swipe方法及如何进行坐标定位
- 问什么说我的计算机主机名无效,为什么arcgis的许可管理器 修改为主机时,总是说我输入的是无效主机名...
- Mac Mounty 安全退出硬盘
- 前端下载svg格式图片
- NFT Insider #70:Paris Hilton与The Sandbox达成合作,YGG经理人杯总决赛圆满结束