SSD 的Default box /prior box生成原理

Default box 超参数设定:

mbox_source_layers = ['conv4_3', 'fc7','conv6_2', 'conv7_2', 'conv8_2', 'conv9_2'] //多尺寸检测

min_ratio = 20 

max_ratio = 90

step = int(math.floor((max_ratio -min_ratio) / (len(mbox_source_layers) - 2))) //17

min_sizes = []  //none

max_sizes = []  //none

for ratio in xrange(min_ratio, max_ratio +1, step):

 min_sizes.append(min_dim * ratio / 100.)  //[60,111,162,213,264]

 max_sizes.append(min_dim * (ratio + step) / 100.)  //[111,162,213,264,315]

min_sizes = [min_dim * 10 / 100.] +min_sizes  //[30,60,111,162,213,264]

max_sizes = [min_dim * 20 / 100.] +max_sizes  //[60,111,162,213,264,315]

steps = [8, 16, 32, 64, 100, 300]  //当前feature对应原图需要扩充的倍数

aspect_ratios = [[2], [2, 3], [2, 3], [2,3], [2], [2]]  //每层default box对应的宽高比

# L2 normalize conv4_3.

normalizations = [20, -1, -1, -1, -1, -1]   // -1表示不进行正则化,这里只对conv4-3进行了normaliation

# variance解答:https://github.com/weiliu89/caffe/issues/75

除以variance是对预测box和真实box的误差进行放大,从而增加loss,增大梯度,加快收敛。 offse一般都是4个参数的offset(n,c,w,h),设置相应的参数就可以指到下一张图(以四位张量为例)

if code_type == P.PriorBox.CENTER_SIZE: //

 prior_variance = [0.1, 0.1, 0.2, 0.2]

else:

 prior_variance = [0.1]

flip = True  //此参数将宽高比求导数,如给定宽高比为2,在fliptrue条件下自动计算出另外的一个宽高比为0.5

clip = False  //此参数是保证超过尺寸的框能缩减到规定范围内,例如特征图的尺寸为[300,300],得到的boxxmaxymax均为330cliptrue的话会将其修正为300.源码中

 Default box 计算过程:

  假设当前的特征图尺寸为W*H,对于特征图上的每一个像素点(i,j),其对应的defaults box的中心点在原图上的坐标为((i+offset)*step,(j+offset)*step),中心点确定之后根据宽高比aspect_ratios以及min_size确定defaults box的((xmin,ymin),(xmax,ymax)),值得注意的是,如果宽高比为1,defaults box除了包含以min_size为边长的正方形外,还包含边长为 sqrt(min_size_ * max_size_)的正方形,其他的按正常值计算(W,H)对应(sqrt(aspect_ratio)*min_size,min_size/sqrt(aspect_ratio))。

 注意:

1:prototxt一定要提供min_size,并且该值大于0,min_size可选。

2:超参数设置宽高比时不必加入1,caffe源码里直接加入了1,一个宽高比代表其本身和其倒数,举例,第conv_4层的aspect_ratio=[2],对应了[1/2,1,2]三个宽高比。

3:源码里的offset和Faster RCNN 一样,就是把featuremap上的点映射回原图,这里加上0.5也是为了四舍五入,和faster rcnn python代码类似。      


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值