SSD最大特点是速度快
1. 因为是end to end 的 网络,没有其他冗余机构
2. anchor 是在大格上(8x8),每个格子有5中尺寸,整体anchor比Faster-RCNN中少很多
3. 4-3,7,8-2,9-2,10-2,11层 5个层都做多尺度回归,为了改善小目标检测效果不佳
4. 整个网络是框回归的思想
generate anchor/原文中叫 default box
ssd用了6个尺寸不一的特种层来预测最后的得分和offset,每个层都会先得到默认边界框的尺寸,然后再在默认边界框的基础上添加不同的长宽比得到不同的边界狂。如何得到默认边界框的尺寸呢?利用以下公式:
论文中默认smin=0.2smax=0.9smin=0.2smax=0.9可以按照要检测的对象更改。
然后边界框的长宽比为(1,1,2,3,1/2, 1/3)第一个1是默认边界框,第二个1是添加的一个默认边界框,其尺度为
2、anchor尺寸的选择:
下面来看下SSD选择anchor的方法。首先每个点都会有一大一小两个正方形的anchor,小方形的边长用min_size来表示,大方形的边长用sqrt(min_size*max_size)来表示(min_size与max_size的值每一层都不同)。同时还有多个长方形的anchor,长方形anchor的数目在不同层级会有差异,他们的长宽可以用下面的公式来表达,ratio的数目就决定了某层上每一个点对应的长方形anchor的数目:
公式1
上面的min_size和max_size由公式2计算得到,Smin=0.2,Smax=0.95,m代表全部用于回归的层数,比如在SSD 300中m就是6。第k层的min_size=Sk,第k层的max_size=Sk+1
公式2
注:以上是作者论文中给的计算各层anchor尺寸的方法,但在作者源码中给的计算anchor方法有点差异,没有和论文的方法完全对应上。