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 等非标准算子,对推理引擎兼容性要求更高。
三、模型评价指标与部署约束
评价一个感知模型是否适合部署,不能只看精度。工程上通常同时关注以下指标:
| 维度 | 常用指标 | 部署含义 |
|---|---|---|
| 精度 | mAP、mIoU、MOTA、IDF1 | 决定感知结果是否可信 |
| 延迟 | 端到端时延、单帧推理时间 | 影响实时性与控制闭环 |
| 内存 | 峰值显存、模型体积、激活占用 | 决定能否在车端芯片运行 |
| 功耗 | 平均功耗、能效比 TOPS/W | 影响散热与续航 |
| 兼容性 | 算子支持度、量化精度损失 | 决定部署工具链是否顺畅 |
以典型车端芯片为例,若要求 30 FPS 实时输出,则单帧推理预算约为 33 ms;若模型在 GPU 上占用 3 GB 显存,而芯片可用显存仅 2 GB,则必须通过量化或剪枝降低激活占用。再如 BEV 模型中的 GridSample 算子,如果推理引擎不支持,就需要替换为等效的插值实现,否则会回退到 CPU 执行,造成严重延迟。
四、案例与场景:从任务到部署的取舍
假设一个城市 NOA 场景,输入为 6 路环视相机,输出包括车辆、行人、车道线和可行驶区域。若直接使用大参数量 BEVFormer,精度高但延迟可能超过 100 ms,无法满足实时性。工程上常见的做法是:
- 用轻量 CNN 主干替换原 ViT 主干,降低计算量;
- 对 BEV 特征提取部分做通道剪枝,减少内存带宽压力;
- 对检测头与分割头进行 INT8 量化,并用少量校准集保证精度;
- 将跟踪模块中的卡尔曼滤波与匈牙利匹配保留在 CPU,避免占用 GPU 推理时间。
部署检查清单:
- 任务输出是否明确:检测框、掩码还是轨迹?
- 网络结构是否包含非标准算子:GridSample、Scatter、TopK?
- 精度下降是否可接受:量化后 mAP 下降是否小于 1%?
- 延迟是否满足闭环:单帧是否小于 33 ms?
- 内存是否超限:峰值显存是否小于芯片可用值?
五、常见误区与复盘
误区一:只关注参数量,忽略访存和算子类型。 参数量小的模型不一定快,深度可分离卷积和注意力模块可能因访存密集而变慢。
误区二:量化后不校准,直接上线。 INT8 量化对激活分布敏感,缺少校准会导致检测头输出偏移,尤其是小目标。
误区三:忽略后处理耗时。 NMS、掩码解码、跟踪关联往往占用大量 CPU 时间,端到端延迟必须把后处理计入。
复盘时建议建立一张“任务—结构—指标—约束”对照表,把每个模块的精度贡献、延迟占比和内存占用记录下来。只有把感知任务、网络架构和部署约束放在同一张图上权衡,后续的轻量化优化才有明确方向,而不是盲目压缩模型。