metadata
license: apache-2.0
datasets:
- detection-datasets/coco
base_model:
- microsoft/resnet-50
SSD300 (Single Shot MultiBox Detector)
本仓库提供标准 SSD300 目标检测模型的 ONNX 与昇腾离线模型文件。SSD300 是经典的一阶段目标检测网络,全称为 Single Shot MultiBox Detector:模型在一次前向推理中同时完成候选框位置回归和类别置信度预测,不需要像两阶段检测器那样先生成 region proposals。
这里的“300”表示模型固定使用 300 x 300 的输入分辨率。仓库中的模型采用标准 SSD300 的检测头、默认框数量和输出形式,并提供不同 ResNet 骨干网络版本,便于在速度、模型大小和检测精度之间做取舍。
模型特点
- 一阶段检测:直接在特征图上预测目标类别和边界框,推理流程简单,适合实时或边缘端部署。
- 多尺度特征预测:SSD300 会在多个不同分辨率的特征层上进行检测,高分辨率特征更适合小目标,低分辨率特征更适合大目标。
- 默认框机制:每个特征图位置预设多个不同尺度和宽高比的 default boxes,也常称为 anchors。模型输出的是这些默认框对应的位置偏移和类别分数。
- 固定输入尺寸:输入张量为
1 x 3 x 300 x 300,对应 batch、通道、高、宽。 - COCO 类别设置:输出类别维度为
81,通常表示 COCO 的 80 个目标类别加 1 个背景类。 - 标准候选框数量:SSD300 共预测
8732个默认框,这是标准 SSD300 结构的典型配置。
网络结构概览
SSD300 由三部分组成:
骨干网络 用于提取图像特征。本仓库提供 ResNet-18、ResNet-34、ResNet-50、ResNet-101 和 ResNet-151 版本。骨干网络越深,特征表达能力通常越强,但模型体积和计算量也会增加。
多尺度检测特征层 SSD 不只在最后一层特征上检测目标,而是在多个尺度的特征图上同时预测。这样可以兼顾小目标、中等目标和大目标。
分类与回归检测头 每个检测位置都会输出两类信息:
boxes:默认框的位置回归结果,用于还原最终边界框。scores:每个默认框在各个类别上的置信度分数。
推理后通常还需要进行解码、置信度筛选和 NMS(Non-Maximum Suppression,非极大值抑制),得到最终检测框、类别和分数。
可用模型
| 骨干网络 | ONNX 文件 | OM 文件 | ONNX 大小 | OM 大小 |
|---|---|---|---|---|
| ResNet-18 | ssd300_resnet18.onnx |
ssd300_resnet18.om |
53.60 MB | 27.95 MB |
| ResNet-34 | ssd300_resnet34.onnx |
ssd300_resnet34.om |
76.21 MB | 39.43 MB |
| ResNet-50 | ssd300_resnet50.onnx |
ssd300_resnet50.om |
87.32 MB | 45.28 MB |
| ResNet-101 | ssd300_resnet101.onnx |
ssd300_resnet101.om |
159.71 MB | 81.97 MB |
| ResNet-151 | ssd300_resnet151.onnx |
ssd300_resnet151.om |
219.34 MB | 112.29 MB |
输入与输出
所有 ONNX 模型的接口一致:
| 名称 | 类型 | 形状 | 说明 |
|---|---|---|---|
input |
float32 |
1 x 3 x 300 x 300 |
输入图像张量,NCHW 格式 |
boxes |
float32 |
1 x 4 x 8732 |
每个默认框对应的边界框回归输出 |
scores |
float32 |
1 x 81 x 8732 |
每个默认框对应的类别分数输出 |
说明:
- 输入图像需要缩放到
300 x 300。 - 输入通道顺序为
C x H x W。 scores为原始类别分数,后处理时通常需要按训练导出方式配合 softmax 或等价逻辑使用。boxes不是直接可视化的最终框,通常需要结合 SSD300 的默认框进行解码。
推荐推理流程
- 读取原始图像,并记录原图宽高。
- 将图像 resize 到
300 x 300。 - 按模型训练时的预处理方式完成通道转换、归一化和 NCHW 排布。
- 运行 ONNX Runtime 或昇腾 OM 推理。
- 对
boxes和scores做 SSD 解码。 - 根据置信度阈值过滤低分结果。
- 对同类别检测框执行 NMS。
- 将检测框坐标映射回原图尺寸。
模型格式
- **ONNX (
.onnx)**:通用神经网络交换格式,可用于 ONNX Runtime、TensorRT、OpenVINO 等推理后端,也可作为进一步转换部署格式的中间模型。 - **OM (
.om)**:华为昇腾 NPU 使用的离线模型格式,通常由 ATC 工具基于 ONNX 模型转换得到,适合在 Ascend 310、Ascend 910 等设备上部署。
适用场景
SSD300 结构轻量、推理链路短,适合以下场景:
- 通用物体检测
- 边缘设备实时检测
- 视频流逐帧检测
- 对延迟敏感的检测任务
- 需要 ONNX 或 Ascend OM 格式快速部署的项目
如果优先考虑速度,可以选择 ResNet-18 或 ResNet-34 版本;如果更关注特征表达能力,可以选择 ResNet-50、ResNet-101 或 ResNet-151 版本。