目录
1.SSD系列算法简介
1.1 SSD算法介绍
(1)它是one-stage算法
- Wei Liu在ECCV2016提出
- 直接回归目标类别和位置
- 不同尺度的特征图上进行预测
- 端到端的训练
- 图像的分辨率时 比较低也能保证检测的精度
1.1.1框架图
它的框架图如下:
- 主干网络:VGGNet。上面图中主干网络里只用了5层卷积
- 多尺度Feature Map预测。指的是在预测的时候会对VGG后面六个不同的尺寸分别进行预测。这六个尺寸分别包括六个feature map,分别作为后面检测层的输入。
- Default bouding boxes的类别分数、偏移量。将上面六层的每一层进行此操作。每个尺度都会提取anchor box。
2.详细介绍
2.1主干网络介绍
(1)VGG、ResNet、MobileNets等各种卷积神经网络都可以作为主干网络提取特征。
(2)VGG作为输入的时候,最后两个FC改成卷积,并增加4个卷积层
2.2多尺度Feature Map预测:
(1)针对不同层不同尺度的feature map进行预测。在上面图中分别对应了3838,1919,1010,55,33,11,这六种不同尺度的feature map分别作为后续预测网络的输入,不同尺度的网络通常会使用max pooling的方法来进行下采样
(2)Prior box:不同尺寸的feature map会输入到后层的预测网络中,后续网络中会包括Prior box层的提取过程,prior box对应faster rcnn中anchor的概念,在prior box层中,针对于feature map每一个点都会将它作为一个cell,以这个cell为中心,会通过等比的方法找到它在原始图像中的位置,以这个点为中心提取不同尺度的bounding box,这些不同尺度的bounding box即为prior box。对于不同的prior box通过和真值的比较就能拿到它的label。对于每个prior box会预测它的类别概率和坐标(x,y,w,h)。如果有C类,则prior box的输出大小则为C+4, 如果当前feature map大小为mn,即有mn个anchor,如果每个anchor提取k个prior box,则最终的prior box的维度为(c+4)km*n。总结如下:
- m*n个cell
- 每个cell上生成固定scale和aspect ratio的box,这是两个超参数
假设一个feature Map有mc×n个cell,每个cell对应k个default box,每个defaultbox预测C个类别score和4个o则一共有(c+4)×k×m×n个输出。 - Scale:sk=Smin+(Smax-Smin)*(K+1)/(m-1),k∈[1,m]。这里表示第k个bouding box的尺