Apollo星火计划学习笔记——第六讲上自动驾驶感知基础(I)

前言

Apollo星火计划课程链接如下
星火计划2.0基础课:https://apollo.baidu.com/community/online-course/2
星火计划2.0专项课:https://apollo.baidu.com/community/online-course/12

1. 感知的作用

    感知:是对感官信息的组织、识别和解释,以表示和理解所呈现的信息或环境。
    自动驾驶感知涉及从车辆传感器收集数据,并将这些数据处理成对车辆周围世界的理解,为后续PnC(规划控制)模块提供必要信息
在这里插入图片描述
”必要信息“

静态环境结果

  • 路面信息(车道线、转弯标识、停车位、斑马线……)
  • 路标(限速牌、禁停标志……)
  • 红绿灯
  • ……

动态障碍物结果

  • 机动车
  • 自行车
  • 行人
  • ……

状态

  • 障碍物的位置、速度、种类、预测轨迹
  • 红绿灯状态、读秒器显示
  • ……

场景

  • 高速、十字路口、无保护左转、停车场
  • 天气(雨雪雾……)
  • ……

在这里插入图片描述

2. 常见传感器

在这里插入图片描述

Apollo的硬件方案
环境传感器自车传感器
相机GNSS
激光雷达IMU
毫米波雷达轮速计
超声波雷达
常见传感器的比较(M. A. Khanet al., “Level-5 Autonomous Driving—Are We There Yet? A Review of Research Literature,”ACM Comput. Surv., vol. 55, no. 2, p. 27:1-27:38, Jan. 2022, doi:10.1145/3485767. )

在这里插入图片描述
    单一的传感器难以做到完美,通常需要结合不同传感器的优点进行多传感器融合以达到更好的效果。

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

在这里插入图片描述

雨天与雾对激光雷达有影响

在这里插入图片描述

A激光雷达在前方被遮挡或是在红外下仍能正常工作
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 坐标系

在这里插入图片描述

ps:图中坐标系的标注有些问题

数据坐标系:根据传感器原理不同,每种传感器都会有自己的数据坐标系,如相机将三维世界中的坐标点映射到二维图像平面的像素坐标系。
传感器坐标系:以传感器为中心的三维笛卡尔坐标系。
车身坐标系:Apollo中采用右-前-天定义

  • X – 面向车辆前方,右手方向为正
  • Y – 车辆前进方向为正
  • Z – 垂直地面,车顶方向为正
  • 后轴中心为坐标系中点

传感器标定的目的即是把感知到的周围环境统一到车身坐标系下

3.3 内参和自标定

传感器内参(Intrinsics):传感器坐标系和数据坐标系之间的映射以及去除畸变。
在这里插入图片描述

传感器外参(Extrinsics):传感器相对于车身或其他传感器坐标系的位姿 R , t R, t R,t
在这里插入图片描述
相机自标定

  • 去畸变:校正光线在经过透镜边缘后发生弯折,造成的图像边缘弯曲。
  • 内参标定:图像坐标系到相机坐标系的映射。
  • 相机模型选择:小孔模型(Pinhole),全向相机(Omnidirectional) 供应商可提供,或者通过棋盘标定板测定。

激光雷达自标定(极坐标to笛卡尔坐标系):

  • 扫描方式不同,标定方式不同,如旋转式需要发射器角度和位置。
  • 反射强度,反射率标定板。
  • 厂家标定。

自动驾驶中外参标定:

  • 离线(Offline)标定
  • 在线(Online)标定
  • Target-based VS. Targetless-based

    相同传感器标定(Camera2Camera,LIDAR2LiDAR)常采用特征点配对的方式求解位姿,如LiDAR使用ICP进行点云匹配。
在这里插入图片描述

坐标系

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

在这里插入图片描述
Radar2LiDAR

在这里插入图片描述
Camera2LiDAR
(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)

在这里插入图片描述
无目标方法(G. Yanet al., ‘OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving’. arXiv, May 30, 2022. doi:10.48550/arXiv.2205.14087.)

在这里插入图片描述
基于运动方法的标定

在这里插入图片描述

工厂标定

更多标定的内容见多传感器融合感知—传感器外参标定及在线标定学习

4. 感知流程及算法

4.1 感知算法流程

在这里插入图片描述算法:
监督学习:人工标注数据。
半监督学习:可通过无监督学习自学习特征,再通过较少标注数据完成具体任务训练。
无监督学习:无需人工预标注,e.g. 强化学习。
    无论是传统算法还是深度学习基础的算法,都遵循数据-前处理-表征学习-特征提取-算法任务-后处理到需要结果的pipeline,根据实际场景和业务需求的不同,前、后处理和表征学习过程可省略或者由End2End模型整体处理。

4.2 感知算法概述 — 计算机视觉(CV)任务

在这里插入图片描述

4.3 感知算法概述 — 全景分割

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

A. Kirillov, K. He, R. Girshick, C. Rother, and P. Dollár, “Panoptic Segmentation.” arXiv, Apr. 10, 2019. doi:10.48550/arXiv.1801.00868.

全景分割

  • 像素级别
  • 语义标签+实例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 激光雷达点云分割常见算法

在这里插入图片描述

M. Aygünet al., “4D Panoptic LiDAR Segmentation.” arXiv, Apr. 07, 2021. Accessed: Aug. 15, 2022. [Online]. Available:http://arxiv.org/abs/2102.12472
    这里介绍的都是基于深度学习的算法,针对业务场景的不同,一些传统的机器学习算法在实际使用中也有相当优秀的表现。

4.5 融合

4.5.1 融合介绍

    融合:将多传感器检测到的目标在时间空间两个尺度上达成同一。

  • 时间:每个传感器的频率不一致,如LiDAR 10Hz,Camera 30Hz,Radar 10Hz
  • 空间:各传感器的感知结果投影到车身坐标系。

前融合:原始信号融合,一般用于同类传感器融合,原始信息不损失,计算量大,融合难度大。
特征融合:传感器信号进行独立特征提取后进行融合,最近比较流行BEV。
后融合:每种传感器独立进行感知检测,在结果层进行融合,原始信息损失较大,计算量小,难度低。
在这里插入图片描述

4.5.2 时间同步

在这里插入图片描述

多传感器之间频率的不同导致的时间关系

4.5.3 BEV

在这里插入图片描述

T. Lianget al., “BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework.” arXiv, May 27, 2022. doi:10.48550/arXiv.2205.13790.

BEV优势

  • 前融合、特征融合
  • 多模态融合(多传感器融合、时空融合)
  • 感知结果与下游任务预测、PnC衔接
  • 提供了新的End2End范式基础
  • V2X融合

在这里插入图片描述

4.6 数据

在这里插入图片描述

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.

国内数据库下载 https://opendatalab.com/

4.7 评价和测试

在这里插入图片描述    实际工作中,指标只是一个参考,很多场景是要根据任务制定测试标准的
在这里插入图片描述

基于数据、基于场景、基于车辆测试

在这里插入图片描述

数据闭环 = 算力 + 算法 + 数据 + 工具链 + 流程

    数据闭环的目的是为了提高自动驾驶中数据相关工作的工作效率,特别是应对大数据驱动的算法训练和场景检验

4.8 训练、优化到部署

在这里插入图片描述算法优化和部署:
    实际工作中,算法要根据不同的硬件方案进行调整,从初期的选型到后期的部署,不仅要有整体层面的考量,还要硬件、软件、算法、供应商团队的通力合作才能打造一款优质的产品。
    “算法是软件、硬件、场景、商务的……妥协。” —— Pacal Meng

4.9 未来:端到端?

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

M. Bojarskiet al., ‘End to End Learning for Self-Driving Cars’. arXiv, Apr. 25, 2016. Accessed: Jul. 20, 2022. [Online]. Available:http://arxiv.org/abs/1604.07316
在这里插入图片描述
S. Hu, L. Chen, P. Wu, H. Li, J. Yan, and D. Tao, ‘ST-P3: End-to-end Vision-based Autonomous Driving via Spatial-Temporal Feature Learning’. arXiv, Jul. 17, 2022. doi:10.48550/arXiv.2207.07601.

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)。
在这里插入图片描述

再查看每个点云的数据结构,包含 x x x, y y y, z z z以及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_软件包_激光雷达测试

  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuan〇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值