课程导论与基础
大家好,我是你们这门课的主讲。在自动驾驶感知这个领域摸爬滚打了快十年,踩过的坑比走过的路还多。今天咱们开始第一讲,先把地基打牢。
说实话,障碍物检测和动态目标关联,是整个自动驾驶感知系统里最核心、也最头疼的两件事。你想想看,车在路上跑,周围有车、有人、有自行车,还有各种奇奇怪怪的障碍物。如果连这些东西都检测不准、跟踪不上,那后面的规划控制全是白搭。
我个人习惯,在讲任何算法之前,先把传感器和坐标系这些基础搞明白。因为我在项目里见过太多人,算法调得飞起,结果一上车就崩——最后发现是坐标转换搞错了。嗯,这种坑咱们得提前避开。
障碍物检测概述
障碍物检测,说白了就是回答三个问题:「有没有东西?」「是什么东西?」「在哪儿?」
听起来简单,做起来可不容易。我刚开始做这个方向时,觉得用激光雷达扫一圈,点云聚类一下不就完了?后来发现,现实世界远比想象中复杂:
- 雨天、雪天,传感器性能会下降
- 遮挡、截断,目标只露出一半
- 动态物体和静态物体混在一起
所以,障碍物检测不是单一传感器的活,而是多传感器融合的结果。咱们这门课会从单传感器讲起,逐步深入到多传感器融合。
动态目标关联的意义
检测完了,下一步就是关联。为什么要做关联?
你想想看,上一帧检测到一个行人,这一帧又检测到一个行人。你怎么知道他们是同一个人?这就是数据关联要解决的问题。
我曾经在一个项目中,因为关联算法没做好,导致同一个行人被分配了三个不同的ID。结果下游的预测模块直接懵了——它以为有三个人在交叉穿越,实际上只有一个人。这种错误在实车测试时非常危险。
动态目标关联的意义在于:
- 保持ID一致性:同一个目标,从生到死只有一个ID
- 提供运动信息:有了关联,才能计算速度、加速度
- 支撑预测决策:知道目标怎么运动,才能预测它下一步要去哪
传感器介绍
咱们做自动驾驶,常用的传感器就三种:激光雷达、相机、毫米波雷达。每种传感器都有自己的脾气。
激光雷达
激光雷达,我习惯叫它LiDAR。它通过发射激光束,测量反射回来的时间,得到精确的三维点云。
优点很明显:
- 距离精度高,厘米级
- 不受光照影响,晚上也能用
- 直接提供3D信息
缺点也很突出:
- 贵!虽然现在价格在降,但好的LiDAR还是几万块
- 怕雨雪,恶劣天气性能下降严重
- 点云稀疏,远距离目标点太少
相机
相机嘛,大家都熟悉。它提供的是图像,有颜色、有纹理。
我个人的体会是,相机在目标分类上无可替代。你能从图像里看出那是个人、是个狗、还是个交通锥。LiDAR就很难做到这一点。
但相机也有硬伤:
- 没有深度信息(单目)
- 受光照影响大,晚上基本废了
- 视角有限,需要多个相机拼接
毫米波雷达
毫米波雷达,很多人叫它Radar。它用电磁波测距测速,特点是:
- 直接测速,多普勒效应
- 穿透性强,雨雪雾都不怕
- 成本低,几百块一个
但它的分辨率很低,点云稀疏得可怜。你拿Radar点云去做目标检测,基本只能知道「那里有个东西」,至于它长什么样,完全不知道。
坐标系与坐标变换基础
好了,传感器讲完了。但有个问题:每个传感器都有自己的坐标系。LiDAR有LiDAR坐标系,相机有相机坐标系,车体有车体坐标系。怎么把这些数据统一起来?
这就是坐标变换要做的事。
常用的坐标系有:
| 坐标系 | 原点 | 用途 |
|---|---|---|
| 车体坐标系 | 车辆后轴中心 | 车辆运动控制 |
| 传感器坐标系 | 传感器自身 | 原始数据采集 |
| 世界坐标系 | 固定点(如GPS原点) | 全局定位与地图 |
坐标变换的核心,就是旋转+平移。用数学语言说,就是刚体变换:
// 3D坐标变换公式
P_world = R * P_sensor + T
其中:
P_world: 世界坐标系下的点
P_sensor: 传感器坐标系下的点
R: 旋转矩阵 (3x3)
T: 平移向量 (3x1)
这里有个细节要注意:旋转矩阵是正交矩阵,它的逆等于它的转置。这个性质在代码实现时很有用,可以避免求逆运算。
嗯,说到标定,这里再提一句。传感器外参标定是坐标变换的前提。如果标定不准,后面所有工作都是白费。我见过一个团队,算法调了三个月,最后发现是LiDAR和相机的标定差了5厘米。5厘米啊,在高速场景下,可能就是一次碰撞的距离。
本章知识体系
为了让大家更直观地理解本章的知识结构,我画了一张图:
这张图把本章的四个核心模块串起来了。你可以看到,障碍物检测和动态目标关联是上层应用,传感器和坐标系是底层支撑。没有底层支撑,上层就是空中楼阁。
好了,第一章的内容就到这里。记住我今天说的:传感器选型要匹配场景,坐标变换要严谨,关联算法要稳健。这三句话,够你少踩很多坑。
可可精品资料库