NanoDet-Plus: 超快速高精度的轻量级无锚框目标检测模型
NanoDet-Plus 是一个超快速、高精度的轻量级无锚框目标检测模型,专为移动设备实时应用而设计。它是 NanoDet 的升级版本,在保持轻量化的同时,大幅提升了检测精度。
主要特点
- 超轻量级: 模型文件仅 980KB (INT8) 或 1.8MB (FP16)。
- 超高速: 在移动 ARM CPU 上可达到 97fps (10.23ms)。
- 高精度: COCO 数据集上可达到 34.3 mAP@0.5:0.95,同时保持 CPU 实时性能。
- 训练友好: 相比其他模型显著降低 GPU 内存消耗。GTX1060 6G 显卡可支持 batch size 为 80。
- 易部署: 支持多种后端,包括 ncnn、MNN 和 OpenVINO。提供基于 ncnn 推理框架的 Android 演示。
技术创新
NanoDet-Plus 在原有 NanoDet 的基础上引入了两项重要创新:
-
新型标签分配策略:
- 提出了简单的指派引导模块 (AGM)
- 引入了动态软标签分配器 (DSLA) 这两项技术解决了轻量级模型训练中的最优标签分配问题。
-
Ghost-PAN 特征金字塔: 引入了一种轻量级特征金字塔网络,用于增强多层特征融合。
这些改进使 NanoDet-Plus 在 COCO 数据集上的检测精度比原版 NanoDet 提高了 7 个百分点的 mAP。
性能对比
以 NanoDet-Plus-m 416x416 分辨率模型为例:
- mAP: 30.4 (COCO val2017)
- CPU 延迟: 8.32ms (Intel i7-8700)
- ARM 延迟: 19.77ms (4xA76)
- FLOPS: 1.52G
- 参数量: 1.17M
- 模型大小: 2.3MB (FP16) / 1.2MB (INT8)
相比 YOLOv5-n、MobileDet 等同类模型,NanoDet-Plus 在精度和速度上都具有明显优势。
应用场景
NanoDet-Plus 适用于各种需要在移动设备上进行实时目标检测的应用场景,如:
- 移动 AR
- 自动驾驶
- 智能安防
- 工业检测
- 移动端 AI 相机
部署方案
NanoDet-Plus 支持多种部署方案:
- Android: 提供基于 ncnn 的示例应用
- NCNN C++: 支持在各种平台上使用 NCNN 推理
- OpenVINO: 支持 Intel 平台优化推理
- MNN: 支持使用阿里巴巴 MNN 框架推理
- Web 浏览器: 支持 WebAssembly 部署
此外还提供了 PyTorch 推理 demo,方便研究人员进行实验和改进。
总之,NanoDet-Plus 是一个高效、精准、易用的轻量级目标检测解决方案,特别适合资源受限的移动和嵌入式设备。它的开源为计算机视觉领域的研究和应用带来了新的可能。