1. 课程导入

自动驾驶并不是单一算法的胜利,而是一套从传感器到执行器的实时闭环系统。感知模块位于闭环最前端,负责把摄像头、激光雷达、毫米波雷达等原始信号转化为可被规划控制消费的环境表示:车道线、可行驶区域、目标框、语义分割、深度与运动状态。对工程落地而言,感知模型不仅要“准”,还要在车端有限算力、功耗和散热条件下“稳、快、省”。这正是本课程要解决的核心问题。

一、自动驾驶感知系统概述

典型 L2+ 到 L4 感知系统由多传感器输入、时间同步、预处理、骨干网络、特征融合、检测/分割头、后处理与跟踪组成。摄像头提供稠密纹理与颜色信息,激光雷达提供精确三维几何,毫米波雷达提供速度与恶劣天气鲁棒性。多模态融合能提升安全冗余,但也带来带宽、延迟与算力压力。

从部署视角看,感知系统运行在异构 SoC 上:CPU 负责调度与后处理,GPU/NPU/DSP 承担张量计算,ISP 处理图像,内存带宽常成为隐性瓶颈。一个模型在服务器 GPU 上达到 30 FPS,不代表在车端 NPU 上也能实时;算子支持度、量化精度、内存布局和调度策略都会显著影响端到端表现。

自动驾驶感知数据流与轻量化部署关键环节 传感器输入 相机 / LiDAR / Radar 同步与预处理 时间对齐 / 去畸变 / 归一化 感知模型 骨干 / 融合 / 检测头 后处理与跟踪 NMS / 关联 / 滤波 规划控制 下游消费 轻量化部署约束层 算力上限 · 内存带宽 · 功耗散热 · 算子支持 · 延迟抖动 · 功能安全 量化 · 剪枝 · 蒸馏 · 结构重参数化 · 算子融合 · 编译调度 精度指标 mAP / IoU / 召回率 效率指标 延迟 / FPS / 内存 / 功耗 工程指标 稳定性 / 可维护性 / 安全

二、轻量化部署的工程意义

轻量化部署的目标不是单纯把模型变小,而是在给定硬件与安全约束下,找到精度、延迟、内存、功耗四者的最优平衡点。车端常见约束包括:单帧感知延迟通常要求低于 100 ms,部分前视任务要求 30~50 ms;NPU 算力可能只有 10~100 TOPS;内存带宽有限,大特征图频繁读写会拖慢整体速度;功耗与散热限制持续高负载运行。

轻量化带来的工程价值体现在三方面:第一,降低单帧延迟,提升控制闭环稳定性;第二,减少内存占用,支持多模型并行与 OTA 升级;第三,降低功耗与成本,使中低算力平台也能部署高阶感知功能。需要强调的是,轻量化必须与精度验证、回归测试和功能安全分析同步进行,否则容易在极端场景下出现漏检。

核心权衡:精度 ↔ 延迟 ↔ 内存 ↔ 功耗 ↔ 安全。任何一项被过度压缩,都会在真实路测中暴露问题。

三、方法流程:从训练模型到车端部署

一个可复用的轻量化部署流程通常包含以下步骤:

  1. 需求与约束分析:明确目标平台、算力、内存、延迟预算与精度底线。
  2. 基线模型评估:在目标硬件上测量原始模型的延迟、内存与精度,找出瓶颈层。
  3. 轻量化策略选择:根据瓶颈选择量化、剪枝、蒸馏、结构重参数化或高效骨干替换。
  4. 训练与微调:采用量化感知训练或蒸馏训练,恢复精度。
  5. 图优化与编译:进行算子融合、常量折叠、内存复用与目标后端编译。
  6. 精度与性能回归:在验证集和实车数据上对比 mAP、延迟、内存与功耗。
  7. 安全与鲁棒性验证:覆盖夜间、雨雾、逆光、遮挡等长尾场景。
# 典型部署评估命令示例(伪代码)
python evaluate.py \
  --model yolov8s_int8.engine \
  --dataset validation_set \
  --metrics map50,latency,memory,power \
  --device orin_npu \
  --warmup 50 --repeat 200

四、案例与场景:为什么“服务器能跑”不等于“车端能跑”

某团队在服务器上用 PyTorch 训练了一个多任务感知模型,mAP 达到 42%,单帧延迟 25 ms。直接导出 ONNX 部署到车端 Orin 后,延迟飙升到 180 ms,内存占用超过预算,部分算子回退到 CPU 执行。排查发现:模型中存在大量小算子与动态 shape,NPU 不支持;特征图通道数不是 8 的倍数,导致内存对齐效率低;后处理 NMS 在 CPU 上成为瓶颈。

经过量化感知训练、算子替换、通道对齐与 NMS 并行化后,模型在保持 mAP 下降小于 1.5% 的前提下,延迟降至 45 ms,内存下降 40%。这个案例说明:轻量化部署是“模型 + 编译 + 硬件 + 后处理”的系统工程,而不是单一算法问题。

阶段 关键动作 常见指标 典型风险
基线评估 目标硬件实测延迟与内存 FPS、峰值内存、算子分布 只看服务器数据,误判瓶颈
轻量化设计 量化、剪枝、蒸馏、重参数化 参数量、FLOPs、mAP 精度掉点未回归,长尾漏检
图优化与编译 算子融合、内存复用、后端编译 延迟、内存、算子回退数 动态 shape 导致编译失败
部署与验证 实车数据回归、安全场景覆盖 端到端延迟、稳定性、功耗 后处理成为隐藏瓶颈

五、常见误区与复盘

  • 误区一:只追求参数量小。参数量小不等于延迟低,内存访问模式和算子支持度更关键。
  • 误区二:量化后不重新训练。直接 PTQ 可能导致精度大幅下降,QAT 或蒸馏微调通常必要。
  • 误区三:忽略后处理。NMS、解码、跟踪在 CPU 上可能占用 30% 以上时间。
  • 误区四:只测平均延迟。车端更关注 P99 延迟与抖动,否则控制闭环会不稳定。

复盘建议:每次轻量化迭代都保留“精度-延迟-内存-功耗”四维对比表,并记录目标硬件、编译版本与输入分辨率,避免不可复现的优化结论。

六、课程学习目标与整体知识框架

本课程围绕“感知模型轻量化部署工程”展开,目标是让学习者能够独立完成从模型分析、轻量化改造、图优化编译到车端部署验证的完整链路。课程知识框架分为五个层次:

  • 基础层:自动驾驶感知系统组成、传感器特性、车端计算平台与约束。
  • 模型层:高效骨干网络、检测与分割头设计、多模态融合结构。
  • 轻量化层:量化、剪枝、蒸馏、低秩分解、结构重参数化与神经架构搜索。
  • 部署层:ONNX 导出、TensorRT / 目标 NPU 编译、算子融合、内存复用与多线程调度。
  • 验证层:精度回归、延迟与功耗测试、长尾场景覆盖、功能安全与 OTA 更新。

学习完本课程后,你应能针对给定车端平台,制定合理的轻量化方案,解释每一步的精度与性能代价,并用数据证明部署结果满足工程要求。接下来各章节将沿着这条主线逐步展开。