SPARK 火灾检测模型
SPARK(Small-target Pyramid-enhanced Adaptive Recognition frameworK)是面向紧凑空间早期火灾检测的实时目标检测模型,检测小尺度火焰与烟雾(2 类:fire / smoke)。基于 D-FINE / DEIM 架构:HGNetv2-B5 backbone + SFPN(Spatial-Frequency Pyramid Network,空间多核深度卷积 + Haar 小波频率分解)neck + DFINE-T decoder(500 queries)。
本仓库为 RDK S100P(march = nash-m)部署交付的 3 个模型,覆盖 浮点训练基线 → 结构剪枝 → QAT 量化 的完整链路。
模型列表
| 子文件夹 | 模型 | 格式 | 体积 | mAP50:95 (fire-CompactSpace val) |
|---|---|---|---|---|
spark_dfine_float_best/ |
Float 训练基线 | PyTorch checkpoint | 1.2 GB | 0.7147 |
spark_dfine_pruned_x1.5/ |
结构剪枝 x1.5(微调后) | PyTorch checkpoint | 193 MB | 0.6863 |
spark_fire_prune_x1.5/ |
剪枝 + QAT 量化部署模型 | Horizon BPU 模型 (HBM, nash-m) | 346 MB | 0.6855 |
每个子文件夹内包含模型文件与说明文档(README.md)。
部署模型(spark_fire_prune_x1.5.hbm)
- 平台:RDK S100P(march = nash-m)
- 量化方案:QAT
int16_act_score16(decoder 激活 qint16 + 权重 qint8,score 头输出 fp16),校准即用,无需微调 - 精度:VALIDATION(int16-sim)mAP 0.6855,相对剪枝模型浮点精度(0.6863)损失 < 0.1%
- 静态性能:FPS 13.7,latency 73.0 ms,min memory 439 MB
- 输入:
images,[1, 3, 640, 640],FLOAT32(RGB,预处理 /255 → [0,1],无 mean/std) - 输出:
pred_logits[1, 500, 2]、pred_boxes[1, 500, 4]
模型格式说明
| 格式 | 说明 |
|---|---|
| PyTorch checkpoint | torch.save 序列化 dict。float 基线含 ema.module/model 键 state_dict;剪枝模型含 prune_model 键(完整 DFINE 模型对象,50.03M 参数) |
| Horizon HBM | horizon_plugin_pytorch QAT 导出 + hbdk4.compiler convert/compile 生成,可直接部署到 RDK S100P BPU |
链路与复现
spark_dfine_float_best.pth (0.7147)
│ LAMP 结构剪枝 (74.16M→50.03M params, -36% FLOPs) + 微调恢复
▼
spark_dfine_pruned_x1.5.pth (0.6863)
│ QAT int16_act_score16 校准(10 val 批,calib-only)
▼
spark_fire_prune_x1.5.hbm (0.6855)
复现代码见 SPARK 仓库(tools/prune/、tools/qat/),文档见 docs/剪枝指南.md、docs/QAT指南.md。