参考:
SSD算法详解
SSD网络解析之PriorBox层
postprecess:
ssd caffe PriorBox参数计算box 个数
SSD框架详细解读
训练时修改对应分辨率的同时需要修改参数中的min_dim、max_dim对应的值,通过此组值计算min_size、max_size .
并且aspect_ratio值可以自定义,原SSD使用的6个priorbox输出对应的是4、6、6、6、4、4
计算默认使用sx_min = 0.2,sx_max = 0.9
layer {
name: "conv4_3_norm_mbox_priorbox"
type: "PriorBox"
bottom: "conv4_3_norm"
bottom: "data"
top: "conv4_3_norm_mbox_priorbox"
prior_box_param {
min_size: 30.0 #根据公式计算
max_size: 60.0
aspect_ratio: 2 #包含 1、1、2、1/2四种宽高比的defaultbox(两个正方形,两个长方形)
flip: true #注意如果没有flip参数,aspect_ratio=2只能产生一个纵横比为1:2的默认框
clip: false
variance: 0.1
variance: 0.1
variance: 0.2
variance: 0.2
step: 8 #该层特征图尺寸为38*38,38*8约等于300,用于尺度映射
# step_w: -- # step 和 step_w/step_h 两组参数只使用一组
# step_h: --
offset: 0.5
}
}
step计算:Caffe中Conv计算下采样是向下取整使用floor,pool计算是向上取整使用ceil
其中的Real_scale和Cal_scale对应不上一般是人为操作取整设置,不知道是不是,因为找了很多并没有说像conv8_2本应是30,而真实scale为32,而conv10_2为100,真实也为100,这里就没有任何的技巧我认为应该是经验设置如此吧,如果有大佬知道,烦请告知,谢谢!