目标检测:SSD算法的Default Box

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的框是如何生成的?


  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值