您的位置:首页 > 其它

目标检测:SSD算法的Default Box

2018-02-13 22:20 591 查看
1:SSD的anchor尺寸的选择:    下面来看下SSD选择anchor的方法。首先每个点都会有一大一小两个正方形的anchor,小方形的边长用min_size来表示,大方形的边长用sqrt(min_size*max_size)来表示(min_size与max_size的值每一层都不同)。同时还有多个长方形的anchor,长方形anchor的数目在不同层级会有差异,他们的长宽可以用下面的公式来表达,ratio的数目就决定了某层上每一个点对应的长方形anchor的数目:上面的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    其中0.2表示的是训练图片的大小是300的,就是300*0.2=60; 特征map的每一个pixel都有多个default box的;假如其中aspect ratio = 2话就会生成两个正方形和两个长方形的default box;其中的minSize和maxSize是需要的自己设置的,如果根据面积的比例来算的话,也是固定的,aspect ratio也是需要自己设置的;2:特征anchors的计算方式以feature map上每个点的中点为中心(offset=0.5),生成一些列同心的prior box(然后中心点的坐标会乘以step,相当于从feature map位置映射回原图位置)
正方形prior box最小边长为

,最大边长为:


每在prototxt设置一个aspect ratio,会生成2个长方形,长宽为:

 和 




而每个feature map对应prior box的min_size和max_size由以下公式决定,公式中m是使用feature map的数量(SSD 300中m=6):



3: 回归的default box

    回归之后的box送去计算loss,default box 会生成prior box。后续通过softmax分类+bounding box regression即可从priox box中预测到目标,熟悉Faster RCNN的读者应该对上述过程应该并不陌生。其实prior box的与Faster RCNN中的anchor非常类似,都是目标的预设框,没有本质的差异。区别是每个位置的prior box一般是4~6个,少于Faster RCNN默认的9个anchor;同时prior box是设置在不同尺度的feature maps上的,而且大小不同。还有一个细节就是上面prototxt中的4个variance,这实际上是一种bounding regression中的权重,主要是smoothL1Loss计算loss是需要的;这些回归的框之后NMS之后提取前400个去计算loss;
问题1:计算loss的框是如何生成的?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: