PyTorch深度学习实战(23)——从零开始实现SSD目标检测
0. 前言
SSD
(Single Shot MultiBox Detector
) 是一种基于单次前向传递的实时目标检测算法,它在速度和准确性之间取得了很好的平衡。与传统的两阶段目标检测算法(如 Faster R-CNN
)不同,SSD
直接在图像的多个尺度上进行预测,无需候选框生成和筛选。SSD
的核心思想是在卷积神经网络的不同层级上设置多个特征图用于预测目标。这些特征图在空间上具有不同的尺度,可以检测不同大小的目标。每个特征图上的每个位置都预测一组边界框和对应的类别概率。在本节中,将介绍 SSD
的工作原理,然后在自定义数据集上训练 SSD
目标检测模型。
1. SSD 目标检测模型
在 R-CNN 和 YOLO 目标检测模型中,通过数次应用卷积和池化预测目标对象类别和边界框。同时,我们也知道不同的网络层对原始图像具有不同的感受野,初始层相对于最终层具有较小的感受野。在本节中,我们将学习 SSD
如何利用这一现象来预测图像中目标对象的边界框。
SSD
(Single Shot Multibox Detector
) 使用了多层感受野的特性来解决多尺度目标检测问题,检测图像中不同尺度的目标对象,具体来说:
- 使用额外的网络层扩展