SSD(Single Shot MultiBox Detector)—— 单次检测多框检测器
1.什么是 SSD?
SSD (Single Shot MultiBox Detector) 是一种用于 目标检测(Object Detection) 的 深度学习模型,由 Wei Liu 等人 在 2016 年提出。
它采用 单阶段(Single Stage) 方法,能够 直接从图像中检测多个对象,并输出类别和边界框,比传统的两阶段方法(如 Faster R-CNN)更快。
2.SSD 的核心特点
- 单阶段检测:相比 Faster R-CNN 需要两步(提取区域 + 识别),SSD 一步 就能完成目标检测。
- 多尺度特征检测:在 不同层级 进行检测,以适应大、小目标。
- 高效的先验框(Default Boxes):类似 YOLO 的锚框(Anchor Boxes),用于提高检测精度。
- 轻量级计算:比 Faster R-CNN 更快,适用于 实时检测。
3.SSD 的网络结构
SSD 采用 VGG16 或 MobileNet 作为骨干网络(Backbone),然后在 不同尺度的特征图上检测目标。
SSD 结构分为三部分:
- 主干网络(Backbone):通常是 VGG16 或 MobileNet,用于提取特征。
- 多尺度检测层(Extra Feature Layers):在不同层进行检测,提高小目标的检测效果。
- 预测层(Prediction Layers):利用 默认框(Default Boxes) 进行分类和回归。
SSD 典型架构
输入图像(300x300) ➝ VGG16 提取特征 ➝ 额外卷积层 ➝ 多尺度检测 ➝ 输出目标类别和边界框
4.SSD 的核心算法
1)多尺度特征图(Feature Maps)
- SSD 在 不同尺度 进行检测,例如:
conv4_3
层(大目标检测)conv7
层(中等目标)conv8_2
~conv11_2
层(小目标)
- 这样能 同时检测不同尺寸的物体,提高检测精度。
2)默认框(Default Boxes)
- SSD 采用 多个尺寸和纵横比的默认框 进行检测。
- 例如,一个位置可以有多个比例(1:1、1:2、2:1)和大小的框。
- 通过非极大值抑制(NMS)筛选最优框。
3)损失函数(Loss Function) SSD 采用 多任务损失: