SSD:Single Shot MultiBox Detector
很经典的one-stage
Faster-RCNN难以检测小目标,是因为高维特征会丢失一些细节,而小目标就是靠细节检测出来的,SSD实现低维到高维的多层检测,不会丢失小目标信息
Faster-RCNN检测速度慢是因为进行了两次检测,第一次是在RPN结构中生成proposal,然后与特征图进行映射,第二次是全连接层,进行分类和预测框的回归
得到6个预测特征层,我们会在这6个预测特征层上分别去预测不同大小的目标
比如说在第一层当中我们会预测相对较小的目标,而随着我们的层数不断加深,会检测相对较大的目标。
8*8特征矩阵与目标较小的猫进行匹配
4*4特征矩阵与目标较大的狗进行匹配
在不同的特征图上面去分别匹配预测不同尺度的目标
Default Box的scale(尺度)以及aspect(比例)的设定
当比例为1的时候,在每一个特征层上面都会额外添加一个default Box,这个额外的scale
Sk=根号下Sk*Sk+1
Predictor(预测器)的实现(如何在6个特征矩阵上进行预测)
对于m*n*p的特征层,使用3*3*p的卷积核进行预测
对于特征图上面的每一个位置,会生成k个default Box,对每个default box分别去计算C个类别分数,以及4个坐标偏移量。那我们就需要(c+4)*k个卷积核来进行处理
SSD算法中正负样本的选取问题:
正样本:1.对于每一个GTBOX去匹配跟他Iou值最大的default box
2.对于任意的default box只要与任何一个GTbox的Iou值大于0.5
负样本:一般来说,除了正样本,剩下的都是负样本。但是一张图片只有几个到十几个正样本,这样会造成正负样本严重失衡的情况。计算它的最大confidence loss,去选取排在前面的负样本,选取的负样本数量是正样本的三倍。