2. 自动驾驶感知系统概览
自动驾驶感知系统是车辆理解周围环境的“感官中枢”。它并不是单一传感器加一个模型,而是由摄像头、激光雷达、毫米波雷达等多种传感器共同采集数据,再经过时间同步、标定、融合与神经网络推理,最终输出障碍物、车道线、可行驶区域、目标轨迹等结构化信息。对推理引擎而言,理解感知系统的输入形态、数据流和任务特点,是后续做算子优化、内存复用、批处理与流水线并行设计的前提。
一、四类核心传感器与数据特点
摄像头提供高分辨率二维图像,具备丰富的纹理、颜色和语义信息,擅长识别交通标志、车道线、红绿灯和行人外观,但缺乏直接深度,受光照、逆光、雨雾影响明显。激光雷达输出三维点云,测距精度高、空间结构清晰,能直接获得目标尺寸和位置,但点云稀疏、无序,且受雨雪和反射材质影响。毫米波雷达利用电磁波测距测速,对恶劣天气鲁棒,能直接输出径向速度,适合远距离目标检测与跟踪,但角分辨率较低、点云噪声较大。超声波雷达通常用于近距离泊车,探测距离短但成本低。
从推理任务角度看,不同传感器的数据形态差异极大:图像是规则稠密张量,点云是稀疏无序集合,雷达点云则更稀疏且带多普勒速度。这意味着推理引擎不能只用一种数据布局和调度策略,需要针对不同模态设计不同的前处理与算子实现。
二、多传感器融合的两种主流路线
前融合在数据或特征层面就把多模态信息合并,典型做法是将图像特征投影到 BEV 空间,与激光雷达点云特征拼接,再送入统一网络。它保留了更完整的原始信息,理论上精度上限更高,但对时间同步、外参标定和算力要求非常苛刻。后融合则让每个传感器独立完成检测,再在目标层面做关联与滤波,工程实现简单、模块解耦好,但各模态之间的互补信息在早期就被丢弃,遇到遮挡或单模态失效时容易漏检。
实际量产系统常采用混合策略:摄像头与激光雷达做特征级融合,毫米波雷达作为独立通道提供速度与远距冗余,最后在目标层做统一跟踪。推理引擎需要支持多输入、多分支、多输出网络,并能在同一张计算图上调度不同模态的算子。
三、感知推理任务的典型特点
| 任务 | 输入形态 | 典型输出 | 推理难点 |
|---|---|---|---|
| 2D 目标检测 | 单帧 RGB 图像 | 类别、2D 框、置信度 | 小目标、遮挡、NMS 后处理 |
| 3D 目标检测 | 点云 / 图像 + 点云 | 3D 框、朝向、速度 | 稀疏卷积、体素化、坐标变换 |
| 车道线分割 | 前视图像 / BEV 特征 | 像素级或实例级车道线 | 高分辨率特征图、内存带宽 |
| 可行驶区域 | 多视角图像 / 点云 | 栅格占用或语义掩码 | 多帧时序、边界模糊 |
| 目标跟踪 | 连续帧检测结果 | 轨迹 ID、速度、预测 | 数据关联、时序依赖、低延迟 |
四、案例:城市路口感知流水线
假设一辆自动驾驶车辆以 50 km/h 通过城市路口,感知系统需要在约 100 ms 内完成一轮处理。摄像头以 30 FPS 输出 1920×1080 图像,激光雷达以 10 Hz 输出约 12 万点,毫米波雷达以 20 Hz 输出数百个带速度的点目标。推理引擎的调度大致如下:
t=0ms 图像到达,启动去畸变与 resize
t=8ms 点云到达,体素化并生成稀疏张量
t=12ms 雷达点到达,做坐标变换与速度补偿
t=15ms 多模态特征进入 BEV 融合网络
t=55ms 3D 检测头输出候选框
t=70ms 后处理:NMS、聚类、跟踪关联
t=90ms 输出障碍物列表与可行驶区域
t=100ms 下一帧流水线开始,重叠执行
这个案例说明,感知推理不是单次前向计算,而是多传感器异步到达、多任务并行、前后处理交织的流水线。推理引擎必须支持流式输入、动态 batch、算子融合和内存池复用,否则很容易在数据搬运和同步等待上浪费大量时间。
五、常见误区与复盘
- 误区一:只关注模型精度,忽略前处理耗时。实际项目中,图像去畸变、点云体素化和坐标变换可能占用 20% 以上的端到端延迟,必须纳入性能剖析范围。
- 误区二:认为融合一定优于单模态。如果时间同步误差超过 20 ms,或外参标定漂移,融合反而会引入错误关联,导致比单模态更差的结果。
- 误区三:忽视后处理的实时性。NMS、聚类和跟踪关联在目标密集场景下可能成为瓶颈,应使用 GPU 并行版本或提前剪枝。
- 误区四:用同一套优化策略处理所有模态。图像是稠密规则张量,点云是稀疏不规则集合,二者在内存布局、算子实现和并行方式上差异巨大,需要分别设计。
复盘时建议按“传感器输入 → 前处理 → 融合 → 推理 → 后处理”逐段打点,记录每段耗时、内存占用和 GPU 利用率。只有先看清数据流和任务特点,后续的算子优化、量化、图优化和流水线并行才有明确的发力点。