2D感知
摘要:本文从自动驾驶的相机图像出发,区分目标检测、目标跟踪与三类分割任务,再梳理对应算法和处理流程。最后将相机三维感知、激光雷达和毫米波雷达作为扩展,建立感知任务之间的联系。
1. 感知在解决什么问题
自动驾驶感知需要回答:周围有什么、在哪里、是否正在运动。传感器提供原始数据,算法将数据转换为目标、道路区域或运动状态等信息,供后续预测与规划使用。
以一张包含两辆汽车、一个行人和道路的图像为例:
- 目标检测:找出汽车和行人,用框标记位置。
- 语义分割:判断每个像素属于汽车、行人、道路还是其他类别。
- 实例分割:描出每个目标的轮廓,并区分第一辆车和第二辆车。
- 全景分割:既标注道路等区域,也区分每个汽车、行人实例。
- 目标跟踪:在连续帧中判断“这一帧的车”和“上一帧的车”是不是同一个目标。
这些任务的输出不同,不能将它们看作同一算法的不同名称。
1.1 2D 与 3D:看输出,不只看传感器
2D 感知主要在图像平面中描述目标,位置通常用像素坐标表示。检测框告诉我们目标在图像中的范围,但仅靠这个框还不知道它距离车辆多少米。
3D 感知进一步估计空间位置、尺寸、朝向或深度。因此,相机既能用于 2D 感知,也能通过几何关系和学习方法用于 3D 感知。
| 输入 | 常见任务 | 本文中的位置 |
|---|---|---|
| 单目、双目或多目图像 | 2D 检测、分割、跟踪,也可估计深度和三维目标 | 重点介绍图像平面任务 |
| 激 光雷达点云 | 三维检测、点云分割、聚类与配准 | 第 6 节扩展 |
| 毫米波雷达数据 | 距离、径向速度等测量,以及目标检测与跟踪 | 第 6 节扩展 |
2. 目标检测:有什么,在哪里
目标检测通常输出目标类别、置信度与二维边界框。一个检测结果可以写为:
是类别, 是置信度,后四项描述检测框。不同实现也可能使用中心坐标与宽高,需要核对坐标格式与是否归一化。
2.1 常见算法的思路
| 算法系列 | 核心思路 | 理解重点 |
|---|---|---|
| R-CNN 系列 | 以 Faster R-CNN 为例,先生成候选区域,再分类和细化位置 | 候选区域与两阶段检测 |
| YOLO 系列 | 在单阶段框架中预测类别与位置,具体设计随版本变化 | 特征提取、预测头与速度精度权衡 |
| CenterNet | 本文指将目标表示为中心点的方法,预测中心热力图、尺寸和偏移 | 如何由中心点恢复检测框 |
阅读算法时应追问:输入如何变成特征、网络预测什么、怎样将预测解码为框。只记住名称,难以理解它们的区别。