2. 感知模型基础

在自动驾驶感知系统中,模型轻量化部署并不是孤立地“压缩一个网络”,而是要在明确任务目标、网络结构和硬件约束的前提下,找到精度、延迟、内存与功耗之间的平衡点。因此,理解主流感知任务、典型网络架构以及评价指标与部署约束,是后续剪枝、量化、蒸馏和编译优化的基础。

一、主流感知任务:检测、分割与跟踪

自动驾驶感知通常围绕三类核心任务展开:目标检测负责回答“哪里有什么”,输出类别与边界框;语义/实例分割负责回答“每个像素属于什么”,输出像素级掩码;多目标跟踪负责回答“同一目标在时间上如何运动”,输出带 ID 的轨迹。三者常以级联或联合方式工作:检测提供候选框,跟踪在帧间关联目标,分割则补充可行驶区域、车道线和障碍物轮廓。

  • 检测:常见输出为 [x, y, w, h, class, score],评价指标包括 mAP、AP50、AP75 等。
  • 分割:分为语义分割、实例分割和全景分割,评价指标包括 mIoU、PQ、AP_mask 等。
  • 跟踪:常用 MOTA、IDF1、HOTA 等指标,关注 ID Switch、轨迹断裂和关联稳定性。

从部署角度看,检测模型通常计算量最大,分割模型对内存带宽更敏感,跟踪模块则更依赖时序缓存与后处理逻辑。因此,轻量化策略不能一刀切:检测适合通道剪枝与量化,分割需要关注高分辨率特征图的内存占用,跟踪则要控制缓存与关联计算的开销。

二、典型网络架构:CNN、Transformer 与 BEV

当前自动驾驶感知网络大致可分为三类架构。第一类是 CNN,以卷积核局部感受野和权重共享为核心,擅长提取图像局部纹理与边缘特征,典型代表包括 ResNet、DarkNet、EfficientNet 等。第二类是 Transformer,通过自注意力机制建模全局依赖,适合处理长距离关系和多模态融合,典型代表包括 ViT、Swin Transformer、DETR 等。第三类是 BEV 架构,将多相机、激光雷达等不同视角的特征统一映射到鸟瞰图空间,便于后续规划控制使用,典型代表包括 BEVFormer、BEVDet、LSS 等。

三者的部署特征差异明显:CNN 算子成熟、量化友好,但感受野有限;Transformer 精度高、全局建模强,但注意力计算和内存访问开销大;BEV 架构需要视角变换与特征对齐,常涉及 GridSample、Scatter 等非标准算子,对推理引擎兼容性要求更高。

感知任务 · 网络架构 · 部署约束 关系图 主流感知任务 检测:类别 + 边界框 分割:像素级掩码 跟踪:ID + 轨迹 mAP / mIoU / MOTA CNN 架构 局部感受野 + 权重共享 ResNet / DarkNet 量化友好,算子成熟 适合边缘端部署 Transformer 架构 自注意力 + 全局建模 ViT / Swin / DETR 精度高,访存开销大 需算子融合与量化 BEV 架构 多视角 → 鸟瞰图空间 BEVFormer / BEVDet / LSS 视角变换 + 特征对齐 GridSample / Scatter 兼容性 部署约束 延迟 ≤ 50 ms 内存 ≤ 2 GB 功耗 ≤ 30 W 精度下降 ≤ 1% 轻量化手段 剪枝 / 量化 / 蒸馏 算子融合 / 编译优化 知识蒸馏 / 结构重参数化 TensorRT / ONNX Runtime

三、模型评价指标与部署约束

评价一个感知模型是否适合部署,不能只看精度。工程上通常同时关注以下指标:

维度 常用指标 部署含义
精度 mAP、mIoU、MOTA、IDF1 决定感知结果是否可信
延迟 端到端时延、单帧推理时间 影响实时性与控制闭环
内存 峰值显存、模型体积、激活占用 决定能否在车端芯片运行
功耗 平均功耗、能效比 TOPS/W 影响散热与续航
兼容性 算子支持度、量化精度损失 决定部署工具链是否顺畅

以典型车端芯片为例,若要求 30 FPS 实时输出,则单帧推理预算约为 33 ms;若模型在 GPU 上占用 3 GB 显存,而芯片可用显存仅 2 GB,则必须通过量化或剪枝降低激活占用。再如 BEV 模型中的 GridSample 算子,如果推理引擎不支持,就需要替换为等效的插值实现,否则会回退到 CPU 执行,造成严重延迟。

四、案例与场景:从任务到部署的取舍

假设一个城市 NOA 场景,输入为 6 路环视相机,输出包括车辆、行人、车道线和可行驶区域。若直接使用大参数量 BEVFormer,精度高但延迟可能超过 100 ms,无法满足实时性。工程上常见的做法是:

  1. 用轻量 CNN 主干替换原 ViT 主干,降低计算量;
  2. 对 BEV 特征提取部分做通道剪枝,减少内存带宽压力;
  3. 对检测头与分割头进行 INT8 量化,并用少量校准集保证精度;
  4. 将跟踪模块中的卡尔曼滤波与匈牙利匹配保留在 CPU,避免占用 GPU 推理时间。

部署检查清单:

  • 任务输出是否明确:检测框、掩码还是轨迹?
  • 网络结构是否包含非标准算子:GridSample、Scatter、TopK?
  • 精度下降是否可接受:量化后 mAP 下降是否小于 1%?
  • 延迟是否满足闭环:单帧是否小于 33 ms?
  • 内存是否超限:峰值显存是否小于芯片可用值?

五、常见误区与复盘

误区一:只关注参数量,忽略访存和算子类型。 参数量小的模型不一定快,深度可分离卷积和注意力模块可能因访存密集而变慢。

误区二:量化后不校准,直接上线。 INT8 量化对激活分布敏感,缺少校准会导致检测头输出偏移,尤其是小目标。

误区三:忽略后处理耗时。 NMS、掩码解码、跟踪关联往往占用大量 CPU 时间,端到端延迟必须把后处理计入。

复盘时建议建立一张“任务—结构—指标—约束”对照表,把每个模块的精度贡献、延迟占比和内存占用记录下来。只有把感知任务、网络架构和部署约束放在同一张图上权衡,后续的轻量化优化才有明确方向,而不是盲目压缩模型。