1. 感知系统概述:自动驾驶分级、传感器介绍、感知系统架构
大家好,欢迎来到这门课。我是你们的老朋友,一个在自动驾驶感知领域摸爬滚打了七八年的工程师。今天咱们聊聊感知系统的全貌。说实话,很多新人一上来就扎进算法细节里,结果连整个系统怎么搭的都不清楚。我个人习惯是,先看地图,再走路。所以这第一讲,咱们先把地图摊开。
1.1 自动驾驶分级:L0到L5,到底差在哪?
先问个问题:你开的车,算第几级?很多人觉得「能自动泊车就是L3了」,其实差得远。国际上通用的标准是SAE J3016,从L0到L5。我简单给你捋一遍。
| 等级 | 名称 | 谁在开? | 典型场景 |
|---|---|---|---|
| L0 | 无自动化 | 人类全程 | 定速巡航(仅控制速度) |
| L1 | 驾驶辅助 | 人类为主,系统辅助 | ACC自适应巡航、车道保持 |
| L2 | 部分自动化 | 系统同时控制转向+加减速 | 特斯拉AP、蔚来NOP |
| L3 | 有条件自动化 | 系统驾驶,人类需接管 | 高速领航辅助(如奔驰Drive Pilot) |
| L4 | 高度自动化 | 系统全程,限定区域 | Robotaxi(如百度Apollo、Waymo) |
| L5 | 完全自动化 | 系统全程,任何道路 | 理论上,目前还没量产 |
关键点:L2和L3的分水岭在于「责任主体」。L2出事算司机的,L3出事算车厂的。所以很多车厂嘴上说L3,实际只敢给L2+。我在项目里见过太多「过度宣传」的案例,最后被法规卡住脖子。
说白了,L0到L2是辅助驾驶,L3以上才是自动驾驶。你想想看,为什么现在量产车最多到L2+?因为L3的「接管」问题太难搞了——人类在几秒内从刷手机切换到紧急驾驶,根本反应不过来。我曾经测试过一套L3系统,驾驶员在高速上睡着了,系统报警后他花了8秒才握住方向盘……嗯,这8秒足够撞上前面静止的货车了。
1.2 传感器介绍:眼睛、耳朵和触觉
感知系统靠什么看世界?三大主力传感器:相机、激光雷达、毫米波雷达。它们各有脾气,我一个个说。
1.2.1 相机:最像人眼的传感器
相机是感知系统的「眼睛」。它输出RGB图像,能识别车道线、交通标志、行人、车辆。优点是信息丰富,成本低。缺点也很明显——怕黑、怕逆光、怕雨雾。
我在项目中遇到过最头疼的事:夏天傍晚,太阳刚好在正前方,相机直接过曝,车道线全白。后来我们加了HDR(高动态范围)处理,才勉强搞定。但说实话,纯视觉方案在极端天气下还是吃力。
我的建议:如果你做量产项目,别迷信「纯视觉」。相机+雷达的融合才是王道。单目相机没有深度信息,你得靠算法「猜」距离,这玩意儿误差很大。双目或环视会好一些,但标定麻烦得要命。
1.2.2 激光雷达:精度之王,但贵
激光雷达(LiDAR)发射激光束,测量反射时间,直接得到3D点云。它的优势是精度高,能精确测量距离和形状。缺点是贵(机械式LiDAR曾经几十万一个),而且怕雨雪——激光会被水滴散射。
我记得2018年做Robotaxi时,车顶顶着一个64线机械式LiDAR,转起来嗡嗡响,像个电风扇。现在固态LiDAR便宜多了,但视场角有限。你想想看,如果只用一颗前向LiDAR,侧面来车根本看不到。所以量产车一般装3-5颗,覆盖360度。
避坑指南:我曾经因为LiDAR安装位置没算好,导致车顶盲区过大。后来发现,LiDAR的垂直视场角通常只有30度左右,装得太低会漏掉近处的矮小物体(比如小孩、锥桶)。建议装车顶或前保险杠上方,并留出至少5度的余量。
1.2.3 毫米波雷达:全天候选手
毫米波雷达发射毫米波(24GHz/77GHz),测距测速。它的优点是全天候——雨雪雾天照样工作,而且能直接测速度(多普勒效应)。缺点是分辨率低,只能看到「前方有物体」,但分不清是车还是路牌。
我见过一个经典案例:毫米波雷达把路边的金属广告牌识别成静止车辆,导致AEB(自动紧急制动)误触发。后来我们加了「目标分类」模块,用相机辅助判断,才解决这个问题。说白了,毫米波雷达适合做「粗检测」,精细活儿还得交给相机和LiDAR。
1.3 感知系统架构:从原始数据到结构化输出
好了,传感器介绍完了。现在说说整个感知系统怎么搭。我习惯把架构分成三层:数据层、感知层、融合层。
1.3.1 数据层:传感器原始数据
这一层负责采集和预处理。相机输出图像(YUV或RAW格式),LiDAR输出点云(PCD或ROS Bag),毫米波雷达输出目标列表(CAN或UDP协议)。
这里有个坑:数据同步。不同传感器的帧率不一样——相机30fps,LiDAR 10fps,雷达20fps。如果你不做时间戳对齐,融合出来的结果就是「时空错乱」。我早期用ROS的message_filter做同步,后来发现延迟太大,改成了硬件触发同步(PPS信号)。
1.3.2 感知层:目标检测与跟踪
这一层是核心。相机做2D检测(YOLO、Faster R-CNN),LiDAR做3D检测(PointPillars、CenterPoint),毫米波雷达做目标聚类。然后各自做跟踪(卡尔曼滤波、匈牙利匹配)。
举个例子,相机检测到前方有「车」,LiDAR检测到「一个3D框」,毫米波雷达报告「目标速度60km/h」。这三个信息怎么合并?这就是下一层的事。
核心原则:感知层要输出「结构化信息」——每个目标有ID、位置、速度、类别、置信度。别把原始点云或图像直接丢给下游,那是偷懒的做法。我在项目里见过有人直接把图像传给规划模块,结果规划器根本看不懂,直接报错。
1.3.3 融合层:多传感器融合
融合层把不同传感器的结果合并成统一的「世界模型」。主流方法有两种:
- 前融合(Early Fusion):在原始数据层面融合,比如把点云投影到图像上,或者把图像特征和点云特征拼接。优点是信息损失少,缺点是计算量大。
- 后融合(Late Fusion):先各自检测,再在目标层面融合(比如用匈牙利匹配+卡尔曼滤波)。优点是模块化,缺点是可能漏掉细节。
我个人更推荐后融合,因为工程上更容易调试。你想想看,如果前融合出了问题,你根本不知道是相机坏了还是LiDAR不准。后融合可以单独检查每个传感器的输出,定位问题快得多。
1.4 总结与思考
这一章我们聊了自动驾驶分级、三大传感器、以及感知系统的三层架构。说白了,感知系统就是「用传感器看世界,用算法理解世界」。别被那些高大上的名词吓到,本质上就是数据流——从传感器到感知层,再到融合层,最后输出给规划控制。
最后留个思考题:如果你只能选两种传感器做L4级自动驾驶,你会选哪两个?为什么?我个人会选相机+激光雷达,因为相机提供语义,LiDAR提供几何,两者互补。但如果你做的是低成本L2,相机+毫米波雷达就够了。
下一章我们深入相机,聊聊图像预处理和2D目标检测。到时候我会分享一些「调参血泪史」,保证让你少走弯路。
课后资源:推荐阅读《Autonomous Vehicle Perception》第一章,以及Waymo的感知系统白皮书。公众号:蓝海资料掘金营,微信deep3321,回复「感知架构」获取相关资料。