4、测试场景与用例设计:根据实际业务(如目标检测、分类、分割)设计覆盖不同分辨率、批大小、模型类型的验收测试用例
在BM1684/BM1688项目验收中,测试用例设计是连接业务需求与硬件性能指标的桥梁。仅测试单一分辨率、固定批大小或单一模型类型,往往无法暴露真实部署中的性能瓶颈与精度衰减问题。本章将围绕目标检测、图像分类、语义分割三类典型业务,系统讲解如何设计覆盖不同分辨率、批大小、模型类型的验收测试用例矩阵,并给出可落地的用例模板与判定标准。
4.1 核心原理:测试场景设计的三个维度
BM1684/BM1688作为面向边缘计算的AI加速芯片,其性能表现高度依赖输入数据的形状、模型的计算图结构以及推理精度配置。测试场景设计必须从以下三个维度展开:
- 输入维度:分辨率决定输入特征图大小,直接影响NPU的MAC阵列利用率;批大小决定数据并行度,影响DDR带宽占用和流水线效率。不同分辨率与批大小的组合,会触发芯片不同的调度策略。
- 模型维度:目标检测模型(如YOLO系列)包含大量卷积层和检测头,计算密集度高;分类模型(如ResNet)结构规整,易于流水线优化;分割模型(如DeepLabV3+)包含空洞卷积和上采样层,内存访问模式特殊。模型类型决定了算力瓶颈是计算密集型还是访存密集型。
- 精度维度:FP32提供最高精度但吞吐量低;FP16在BM1684/BM1688上可发挥Tensor Core优势;INT8量化后吞吐量可提升2-4倍,但需验证精度衰减是否在可接受范围内。
测试用例设计的目标,就是通过合理的组合覆盖,找到性能与精度的最佳平衡点,并验证在极端条件下的稳定性。
4.2 判断方法:用例矩阵设计流程
设计验收测试用例矩阵,建议遵循以下五步流程:
- 业务场景分析:明确实际部署场景中的典型输入尺寸、实时性要求、精度底线。例如,智慧安防场景通常使用1080P视频流,要求端到端延迟小于100ms;工业质检场景可能使用512×512的灰度图,要求mAP≥0.95。
- 变量筛选:从分辨率、批大小、模型类型、精度模式、线程数、CPU/TPU协同方式等变量中,筛选出对性能影响最大的3-5个关键变量。
- 组合策略选择:若变量数≤3,建议采用全因子组合;若变量数≥4,采用正交实验法或基于历史数据的重点组合法,避免用例爆炸。
- 边界与压力用例补充:在全因子组合基础上,增加最大分辨率+最大批大小、最小分辨率+最小批大小、连续运行72小时等边界和压力用例。
- 基线对比:每个用例需在BM1684和BM1688上分别执行,并记录CPU基线(如使用OpenCV或ONNX Runtime在x86 CPU上运行)作为参照。
| 用例编号 | 分辨率 | 批大小 | 模型 | 精度 | 预期FPS | 预期延迟(ms) |
|---|---|---|---|---|---|---|
| DET-01 | 640×640 | 1 | YOLOv5s | FP16 | ≥60 | ≤16.7 |
| DET-02 | 640×640 | 4 | YOLOv5s | FP16 | ≥45 | ≤22.2 |
| DET-03 | 1080×1080 | 1 | YOLOv5s | INT8 | ≥30 | ≤33.3 |
| DET-04 | 512×512 | 8 | YOLOv5m | FP16 | ≥50 | ≤20.0 |
| DET-05 | 640×640 | 16 | YOLOv5s | INT8 | ≥40 | ≤25.0 |
4.3 案例拆解:智慧交通场景下的检测模型验收
某智慧交通项目需在BM1684上部署车辆检测模型,要求对1080P视频流实时处理,且检测准确率(mAP@0.5)不低于0.90。项目组初步选定YOLOv5s模型,但不确定应使用FP16还是INT8精度,也不确定批大小设为多少能最大化吞吐量。
初始现象与目标:单路视频流在FP16精度下FPS为42,满足实时性要求;但客户要求同时处理4路视频流,此时FPS降至18,无法满足需求。目标是在4路并发下FPS≥30。
关键输入数据:BM1684规格书显示其INT8算力为17.6 TOPS,FP16算力为8.8 TFLOPS;实测DDR带宽为25.6GB/s。YOLOv5s模型FP16权重大小为28MB,INT8量化后为14MB。
分析判断过程:
- 4路并发时,若批大小设为4,则每帧输入为1080×1080×3,4帧总数据量为25MB,DDR带宽占用约25MB×30FPS=750MB/s,远低于25.6GB/s,说明带宽不是瓶颈。
- FP16精度下NPU算力受限,4路并发时算力利用率已达92%,无法再提升。
- INT8量化后算力翻倍,但需验证mAP衰减。初步测试显示INT8量化后mAP从0.93降至0.91,仍在0.90以上。
实际操作步骤:
- 使用BMNNSDK2的量化工具对YOLOv5s进行INT8量化,校准集选用1000张白天和夜晚场景的车辆图片。
- 在BM1684上分别测试FP16和INT8精度下,批大小1/2/4/8的FPS和延迟。
- 记录INT8量化后每层输出的余弦相似度,定位精度衰减较大的层(发现检测头最后一层卷积衰减0.5%)。
- 对检测头层保留FP16精度,其余层使用INT8,实现混合精度推理。
结果对比:
| 配置 | FPS(4路并发) | mAP@0.5 | 延迟(ms) |
|---|---|---|---|
| FP16, batch=1 | 18 | 0.93 | 55.6 |
| FP16, batch=4 | 22 | 0.93 | 45.5 |
| INT8, batch=4 | 35 | 0.91 | 28.6 |
| 混合精度, batch=4 | 33 | 0.92 | 30.3 |
风险与代价:INT8量化需要额外2天时间进行校准和验证;混合精度方案增加了部署复杂度,需自定义推理引擎的层调度逻辑。
复盘经验:在验收测试中,不能仅看单路性能,必须模拟真实并发场景。同时,INT8量化并非简单的一键操作,需要结合业务精度底线选择量化策略。
4.4 常见误区与总结复盘
在测试场景与用例设计过程中,以下误区需要特别警惕:
最后,所有测试用例应形成标准化文档,包含前置条件、输入数据、操作步骤、预期结果、实际结果、结论判定六要素。测试数据应保存原始日志,便于后续问题追溯和回归对比。