1. 引言
高级别自动驾驶(L4)依赖于对周围环境的高精度、低延迟、高鲁棒性感知。感知系统需融合相机、激光雷达、毫米波雷达等多源异构数据,实时输出动态障碍物(车辆、行人)、静态结构(车道、路沿)、交通规则元素(信号灯、标志)以及可行驶区域等信息。
本文系统性地阐述一套已在实际Robotaxi和干线物流场景中验证的车规级感知架构 。该架构以模块化、可配置、可降级、可观测为核心设计原则,支持在资源受限的车载计算平台上稳定运行,并满足功能安全(ISO 26262 ASIL-B级)要求。
2. 系统整体架构
2.1 数据流概览
[Camera] ──┐
├─→ [图像预处理] → [BEV感知模型] ──┐
[LiDAR] ──┤ ├─→ [多源融合] → [跟踪+预测] → [决策]
├─→ [点云预处理] → [3D检测模型] ───┘
[GNSS/IMU]─┘
- 前端:传感器驱动层,负责原始数据采集与时间戳对齐;
- 中端:感知算法层,包含检测、分割、重建等深度学习模型;
- 后端:跟踪、预测、状态管理与结果发布;
- 支撑系统:性能监控、故障诊断、配置管理、日志系统。
2.2 关键设计原则
| 原则 | 说明 |
|---|---|
| 模块解耦 | 各子系统通过标准消息通信,支持独立开发、测试、部署 |
| 异步流水线 | 推理、预处理、后处理并行执行,最大化硬件利用率 |
| 确定性延迟 | 每帧处理时间可控,避免突发延迟影响控制闭环 |
| 降级容错 | 单传感器或模型失效时,系统仍能提供基本功能 |
| 可观测性 | 全链路性能打点、关键中间结果可录制回放 |
3. 核心模块详解
3.1 交通灯感知模块
3.1.1 技术挑战
- 小目标(远距离仅占几像素)
- 强光/逆光/夜间导致过曝或欠曝
- 多灯共杆、非标准灯形(横排、竖排、箭头灯)
- 遮挡(公交车、树木)
3.1.2 算法流程
-
ROI 提取:
- 利用高精地图或SLAM定位,预估路口位置,缩小检测区域;
- 或使用轻量级区域提议网络(RPN)生成候选区。
-
状态分类:
- 输入:裁剪后的 ROI 图像(通常 64×64);
- 模型:MobileNetV3 + Attention,输出三类概率(红/黄/绿)及置信度;
- 支持多灯识别(如左转+直行组合)。
-
跨帧跟踪:
- 使用几何一致性匹配:基于灯的位置、大小、朝向计算 IoU 或 Mahalanobis 距离;
- 维护每个灯的观测计数器 与丢失计数器;
- 若连续2帧未检测到但历史状态可靠,则维持原状态(状态保持策略)。
-
坐标转换:
- 将像素坐标通过相机内参+外参+地面假设,投影至世界坐标系;
- 输出:灯中心位置(x, y, z)、朝向、状态、ID。
3.1.3 性能指标
- 检测召回率(Recall):>95%(晴天白天),>85%(夜间/雨雾)
- 状态准确率:>98%
- 端到端延迟:<40ms(1080p@30Hz)
3.1.4 典型问题与对策
| 问题 | 解决方案 |
|---|---|
| 灯被遮挡 | 依赖跟踪维持状态,结合地图先验判断是否应存在 |
| 状态闪烁 | 引入状态平滑滤波(如多数投票、HMM) |
| 误检路灯 | 加入形状/颜色先验,或利用地图过滤非路口区域 |
3.2 自由空间(Free Space)检测模块
3.2.1 功能定义
自由空间指车辆前方无障碍、可安全通行的区域,通常表示为:
- 极坐标下的边界点序列(r, θ)
- 或栅格地图(Occupancy Grid),每个格子标记"可通行/不可通行"
3.2.2 处理流程
-
点云预处理:
- 运动去畸变:根据 IMU 角速度与线加速度,对每点进行时间反向补偿;
- 地面提取:使用 RANSAC 或高度阈值分割地面点;
- 异常点剔除:移除噪声、飞点。
-
自由空间计算:
- 射线投射法(Ray Casting) :
- 以自车为中心,按固定角度间隔(如1°)发射射线;
- 每条射线上的最近障碍物点即为边界;
- 射线无返回则设为最大探测距离。
- 栅格化方法 :
- 将点云投影至 BEV 平面;
- 使用膨胀操作标记障碍物影响区域;
- 剩余区域即为自由空间。
- 射线投射法(Ray Casting) :
-
AEB 信号生成:
- 计算最近障碍物距离 dmind_{\min}dmin;
- 若 dmin<dsafe(v)d_{\min} < d_{\text{safe}}(v)dmin<dsafe(v)(安全距离函数),则触发 AEB 预警。
3.2.3 安全机制
- 双通道校验:LiDAR 自由空间 + 相机语义分割(道路区域)交叉验证;
- 失效降级:LiDAR 失效时,仅用相机分割结果 + 运动模型外推。
3.2.4 输出格式
- 边界点列表(x, y)
- 最近障碍物距离、角度
- AEB 触发标志(bool)
- 时间戳、坐标系标识
3.3 静态地图感知组件
3.3.1 感知任务分解
| 任务 | 技术方案 | 输出形式 |
|---|---|---|
| 车道线检测 | 基于Transformer的BEV车道拓扑重建 | 车道中心线(样条曲线)、左右边界 |
| 路沿/ curb 检测 | 多视角几何约束 + 深度估计 | 3D 路沿点云或曲线 |
| 占用网格 | 体素化BEV Occupancy 网络 | 2D/3D 栅格,标记占用概率 |
| 交通灯检测 | 多任务统一模型 | 位置、状态、方向 |
3.3.2 多模型协同策略
- 共享主干网络:多个任务共享 CNN 主干(如 Swin-Tiny),减少计算冗余;
- 任务头分离:各自有独立的解码头,避免任务干扰;
- 联合训练:在大规模数据集上端到端训练,提升泛化能力。
3.3.3 图像预处理优化
- GPU 去畸变 :
- 预计算映射表(map_x, map_y);
- 使用 CUDA warpAffine 或自定义 kernel 实现;
- 延迟降低 60% 相比 CPU 实现。
- 批处理:4~6 路相机图像合并为 batch,提升 GPU 利用率。
3.3.4 工程保障
- 帧同步:使用硬件触发或软件插值,确保多相机严格同步;
- 丢帧处理:若某相机丢帧,用上一帧图像+运动补偿替代;
- 内存复用:预分配 GPU 显存池,避免运行时分配。
3.4 激光雷达融合组件
3.4.1 融合必要性
- 单雷达存在盲区(如前向雷达看不到侧后方);
- 顶置雷达分辨率低,前向雷达覆盖窄;
- 融合后点云密度更高、视场角更广。
3.4.2 融合流程
-
时间对齐:
- 以主雷达为基准,其他雷达点云按时间戳线性插值;
- 补偿车辆在点云采集期间的位姿变化。
-
坐标统一:
- 所有点云转换至车身坐标系(Vehicle Frame);
- 使用标定外参矩阵(Tlidar→vehicleT_{\text{lidar} \rightarrow \text{vehicle}}Tlidar→vehicle)。
-
点云拼接:
- 合并点云,保留原始强度、时间、雷达ID等属性;
- 可选:体素下采样(如 0.1m 分辨率)以控制点数。
-
3D 目标检测:
- 模型:CenterPoint 或 PV-RCNN 的 TensorRT 版本;
- 输出:3D 包围框(x, y, z, l, w, h, yaw)、类别、置信度。
3.4.5 性能指标
- 检测范围:0~150m
- 点云处理延迟:<30ms(10万点)
- mAP@0.7:>70%(nuScenes 验证集)
3.5 目标跟踪与轨迹预测系统
3.5.1 系统目标
- 为每个动态障碍物分配唯一、稳定的 ID;
- 预测其未来 5 秒的运动轨迹(25 个点,0.2s 间隔);
- 输出运动状态(静态/匀速/加速/转弯)及交互意图。
3.5.2 输入数据结构
每帧输入包含:
- 障碍物列表:位置(x,y,z)、尺寸(l,w,h)、速度(vx,vy)、类别、观测时间戳;
- 自车位姿:位置、朝向、速度、角速度;
- 历史缓存:最近 21 帧(2.1秒)的上述数据。
3.5.3 算法架构
(1)端到端时空建模
- 编码器:将每帧障碍物集合通过 MLP + Transformer 编码为 token;
- 时空注意力:跨帧建立关联,捕捉运动趋势;
- 解码器:预测未来轨迹点 + 跟踪关联分数。
(2)跟踪匹配机制
- 模型输出关联矩阵 SijS_{ij}Sij:表示第 iii 个当前目标与第 jjj 个历史 track 的匹配概率;
- 构建成本矩阵 Cij=exp(−Sij)C_{ij} = \exp(-S_{ij})Cij=exp(−Sij);
- 使用匈牙利算法求解最优匹配;
- 历史加权 :近期帧权重更高,公式:
wk=1H−k+ϵ,k=0,...,H−1 w_k = \frac{1}{H - k + \epsilon}, \quad k=0,\dots,H-1 wk=H−k+ϵ1,k=0,...,H−1
其中 H=21H=21H=21 为历史帧数。
(3)生命周期管理
| 状态 | 条件 | 动作 |
|---|---|---|
| 新建 | 连续2帧检测到且未匹配 | 分配新ID,初始化状态 |
| 更新 | 成功匹配 | 更新位置、速度、观测计数 |
| 删除 | 连续3帧未观测到 | 释放ID,清除缓存 |
(4)轨迹后处理
- 坐标系转换:所有轨迹转至车辆坐标系;
- 平滑滤波:对预测轨迹应用 Savitzky-Golay 滤波,消除抖动;
- AEB 评估:计算预测轨迹与自车路径的最小距离,生成风险评分。
3.5.4 输出内容
track_id:全局唯一整数 ID;trajectory:25 个 (x, y, vx, vy) 点;motion_state:STATIC / MOVING / ACCELERATING;aeb_relevant:bool,是否可能触发 AEB;interaction_score:0~1,表示让行可能性。
3.5.5 实时性保障
- 异步推理:模型在独立 CUDA 流中执行;
- 零拷贝输入:直接从共享内存读取 BEV 检测结果;
- 线程隔离:跟踪预测运行于专用线程,优先级高于日志等后台任务。
4. 系统级工程能力
4.1 性能监控体系
- 打点宏 :
PERF_START(tag),PERF_END(tag)自动记录耗时; - 指标上报:每秒汇总平均/最大/99分位延迟;
- 可视化:支持在调试工具中绘制各模块耗时热力图。
4.2 故障安全(Fail-Safe)设计
| 故障类型 | 应对策略 |
|---|---|
| 相机黑屏 | 切换至 LiDAR-only 模式,冻结交通灯状态 |
| LiDAR 断连 | 使用视觉 BEV + 卡尔曼滤波外推障碍物 |
| 模型推理超时 | 跳过当前帧,沿用上一帧结果 |
| 定位丢失 | 降级至相对坐标系,仅输出局部障碍物 |
4.3 配置与诊断
- 运行时配置:通过环境变量或配置文件调整模型路径、阈值、频率等;
- 诊断录制:一键开启录制原始传感器数据 + 中间结果(图像、点云、BEV);
- 回放测试:支持离线重放,用于算法迭代与问题复现。
4.4 资源管理
- GPU 显存预算:总显存 ≤ 8GB(Orin-X),各模型按优先级分配;
- CPU 核绑定:关键线程绑定至大核,避免调度抖动;
- 功耗控制:在空闲路段降低处理频率(如从10Hz降至5Hz)。
5. 总结与展望
本文详细阐述了一套面向量产的自动驾驶多模态感知系统,其核心优势在于:
- 技术深度:融合前沿深度学习(BEV、Transformer)与经典算法(匈牙利匹配、射线投射);
- 工程成熟度:经过数十万公里真实道路验证,具备高鲁棒性与可维护性;
- 安全合规:满足车规级功能安全与实时性要求。
未来演进方向包括:
- 引入 Occupancy Network + Neural Rendering 实现更精细的3D场景重建;
- 探索 端到端规划感知一体化模型,打破模块边界;
- 支持 V2X 融合感知,利用路侧单元扩展感知视野。