SSD feature map 选择解析

 
 

SSD feature map 选择解析

针对不同的物体大小(Object Scales),传统的方法将图像转化成不同的大小,分别处理然后把结果综合。 这里ssd从不同的卷积层利用featuremap,可以达到同样的效果 生成预测的方法 如下图所示:

ssd-feature map.png

最左侧是选取的神经网络中的一个“图像”层 每个层做3个处理: (1)生成loc预测,厚度4 x box (2)生成类别预测,厚度21(类别) x box (3)生成priorbox,这里面有个box大小范围、宽长比(2 3)等等
prior_box_param {
    min_size: 276.0
    max_size: 330.0
    aspect_ratio: 2
    aspect_ratio: 3
    flip: true
    clip: true
    variance: 0.1
    variance: 0.1
    variance: 0.2
    variance: 0.2
  }

ssd实例说明
(1)基本网络

Layer name"图像"规格
input3x300x300
conv1_164x300x300
conv1_264x300x300
pool_164x150x150
conv2_1128x150x150
conv2_2128x150x150
pool_2128x75x75
conv3_1256x75x75
conv3_2256x75x75
conv3_3256x75x75
pool_3256x38x38
conv4_1512x38x38
conv4_2512x38x38
conv4_3512x38x38
pool_45121919
conv5_1512x19x19
conv5_2512x19x19
conv5_3512x19x19
-----------VGG昏割线
fc6(convolution kernel dilation)1024x19x19
fc71024x19x19
conv6_1256x19x19
conv6_2512x10x10
conv7_1128x10x10
conv7_2(10-3+1*2)/2+1256x5x5
conv8_1128x5x5
conv8_2256x3x3
pool625611

选取提取特征的层

Layer name"图像"规格特征生成特征说明
conv4_3512x38x38mbox-loc conv38x38x12(=3x4)
 mbox-conf conv38x38x63(=3x21)
 prior-boxbox min:30
fc71024x19x19mbox-loc conv19x19x24(=6x4)
 mbox-conf conv19x19x126(=6x21)
 prior-boxbox min:60 max:114
conv6_2512x10x10mbox-loc conv10x10x24(=6x4)
 mbox-conf conv10x10x126(=6x21)
 prior-boxbox min:114 max:168
conv7_2256x5x5mbox-loc conv5x5x24(=6x4)
 mbox-conf conv5x5x126(=6x21)
 prior-boxbox min:168 max:222
conv8_2256x3x3mbox-loc conv3x3x24(=6x4)
 mbox-conf conv3x3x126(=6x21)
 prior-boxbox min:222 max:276
pool_6256x1x1mbox-loc conv1x1x24(=6x4)
 mbox-conf conv1x1x126(=6x21)
 prior-boxbox min:276 max:330
loc-conf.png

所以对一张图一共提供:
38x38x3+(19x19+10x10+5x5+3x3+1x1)x6=7308个detection
每个detection包括4个值表示位置和21个值表示每个类的概率

为了实现ssd,原生的caffe是不行的
要定义新层:
Normalize
Permute
MultiBoxLoss等
一篇定义新层的方法如下所示:
http://blog.csdn.net/kuaitoukid/article/details/41865803

设计feature map##

已知一个神经网络,选特定层,再后面加:

layer {
  name: "conv6_2_mbox_loc"
  type: "Convolution"
  bottom: "conv6_2"
  top: "conv6_2_mbox_loc"
  param {
    lr_mult: 1
    decay_mult: 1
  }
  param {
    lr_mult: 2
    decay_mult: 0
  }
  convolution_param {
    num_output: 24/////////////////////////////////////////////////////////////////////n*4
    pad: 1/////////////////////////////////////////////////////////////////////这样feature size由所选层长宽决定
    kernel_size: 3
    stride: 1
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}
layer {
  name: "conv6_2_mbox_loc_perm"
  type: "Permute"
  bottom: "conv6_2_mbox_loc"
  top: "conv6_2_mbox_loc_perm"
  permute_param {
    order: 0
    order: 2
    order: 3
    order: 1
  }
}
layer {
  name: "conv6_2_mbox_loc_flat"
  type: "Flatten"
  bottom: "conv6_2_mbox_loc_perm"
  top: "conv6_2_mbox_loc_flat"
  flatten_param {
    axis: 1
  }
}
layer {
  name: "conv6_2_mbox_conf"
  type: "Convolution"
  bottom: "conv6_2"
  top: "conv6_2_mbox_conf"
  param {
    lr_mult: 1
    decay_mult: 1
  }
  param {
    lr_mult: 2
    decay_mult: 0
  }
  convolution_param {
    num_output: 126/////////////////////////////////////////////////////////////////////n*种类
    pad: 1/////////////////////////////////////////////////////////////////////这样feature size由所选层长宽决定
    kernel_size: 3
    stride: 1
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}
layer {
  name: "conv6_2_mbox_conf_perm"
  type: "Permute"
  bottom: "conv6_2_mbox_conf"
  top: "conv6_2_mbox_conf_perm"
  permute_param {
    order: 0
    order: 2
    order: 3
    order: 1
  }
}
layer {
  name: "conv6_2_mbox_conf_flat"
  type: "Flatten"
  bottom: "conv6_2_mbox_conf_perm"
  top: "conv6_2_mbox_conf_flat"
  flatten_param {
    axis: 1
  }
}
layer {
  name: "conv6_2_mbox_priorbox"
  type: "PriorBox"
  bottom: "conv6_2"
  bottom: "data"
  top: "conv6_2_mbox_priorbox"
  prior_box_param {
    min_size: 114.0 /////////////////////////////////////////////////////////////////////适配图像
    max_size: 168.0
    aspect_ratio: 2
    aspect_ratio: 3
    flip: true
    clip: true
    variance: 0.1
    variance: 0.1
    variance: 0.2
    variance: 0.2
  }
}
作者:陈继科
链接:https://www.jianshu.com/p/3a378b1db08d
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值