SSD目标检测算法中default box在ssd_pascal.py的设置
2017-12-26 15:18
585 查看
在ssd_pascal.py中对default boxes(prior boxes)的设置由如下代码完成:
mbox_source_layers即产生box的层,一共有6个,可看成6个feature map,尺度分别为38*38,3*3,1*1,19*19,10*10,5*5
现在重点看box的大小是怎么设置的,box比例为
aspect_ratios = [[2], [2, 3], [2, 3], [2, 3], [2], [2]]
第一个[2]即有[1,2,1/2]三个比例,其中1对应最大和最小的正方形尺度,所以此map上的box有4个尺度
[2, 3]即有[1,2,1/2,3,1/3],同样1对应最大和最小的正方形尺度,所以此map上的box有6个尺度
ssd中,对于6个feature map,每个map中box的ratios:38*38,3*3,1*1map都是4个,19*19,10*10,5*5都是6个
steps = [8, 16, 32, 64, 100, 300]又是什么?
steps其实是box映射回原图的比例因子,即default box在feature map上的尺度乘以steps中的值,则对应到输入的原图上的尺度,这里原图是300×300。
为什么映射回原图,看我之前一篇http://blog.csdn.net/tigerda/article/details/78527870
中anchor部分
# parameters for generating priors. # minimum dimension of input image min_dim = 300 # conv4_3 ==> 38 x 38 # fc7 ==> 19 x 19 # conv6_2 ==> 10 x 10 # conv7_2 ==> 5 x 5 # conv8_2 ==> 3 x 3 # conv9_2 ==> 1 x 1 mbox_source_layers = ['conv4_3', 'fc7', 'conv6_2', 'conv7_2', 'conv8_2', 'conv9_2'] # in percent % min_ratio = 20 max_ratio = 90 step = int(math.floor((max_ratio - min_ratio) / (len(mbox_source_layers) - 2))) min_sizes = [] max_sizes = [] for ratio in xrange(min_ratio, max_ratio + 1, step): min_sizes.append(min_dim * ratio / 100.) max_sizes.append(min_dim * (ratio + step) / 100.) min_sizes = [min_dim * 10 / 100.] + min_sizes max_sizes = [min_dim * 20 / 100.] + max_sizes steps = [8, 16, 32, 64, 100, 300] aspect_ratios = [[2], [2, 3], [2, 3], [2, 3], [2], [2]] # L2 normalize conv4_3. normalizations = [20, -1, -1, -1, -1, -1] # variance used to encode/decode prior bboxes. prior_variance实际上是一种bounding regression中的权重 if code_type == P.PriorBox.CENTER_SIZE: prior_variance = [0.1, 0.1, 0.2, 0.2] else: prior_variance = [0.1]
mbox_source_layers即产生box的层,一共有6个,可看成6个feature map,尺度分别为38*38,3*3,1*1,19*19,10*10,5*5
现在重点看box的大小是怎么设置的,box比例为
aspect_ratios = [[2], [2, 3], [2, 3], [2, 3], [2], [2]]
第一个[2]即有[1,2,1/2]三个比例,其中1对应最大和最小的正方形尺度,所以此map上的box有4个尺度
[2, 3]即有[1,2,1/2,3,1/3],同样1对应最大和最小的正方形尺度,所以此map上的box有6个尺度
ssd中,对于6个feature map,每个map中box的ratios:38*38,3*3,1*1map都是4个,19*19,10*10,5*5都是6个
steps = [8, 16, 32, 64, 100, 300]又是什么?
steps其实是box映射回原图的比例因子,即default box在feature map上的尺度乘以steps中的值,则对应到输入的原图上的尺度,这里原图是300×300。
为什么映射回原图,看我之前一篇http://blog.csdn.net/tigerda/article/details/78527870
中anchor部分
相关文章推荐
- SSD目标检测算法中default box在ssd_pascal.py的设置
- 目标检测:SSD算法的Default Box
- 目标检测算法SSD源码解读~~~~~~~~~~ssd_pascal.py
- 目标检测框架py-faster-rcnn修改anchor_box
- 目标检测算法中的bounding box regression
- 目标检测实例ssd_detect.py
- 深度学习笔记之目标检测算法系列(包括RCNN、Fast RCNN、Faster RCNN和SSD)
- 基于深度学习的目标检测算法:SSD
- 目标检测框架py-faster-rcnn修改anchor_box
- 【修改anchor】目标检测框架py-faster-rcnn修改anchor_box
- SSD目标检测算法改进:DSOD(不需要预训练的目标检测算法)
- opencv3.3中基于ssd算法的目标检测示例教程
- SSD目标检测算法改进DSSD(反卷积)
- 目标检测算法SSD在window环境下GPU配置训练自己的数据集
- 目标检测算法SSD之训练自己的数据集
- 深度学习 目标检测算法 SSD 论文简介
- 目标检测算法SSD在Ubuntu+CPU下运行
- 目标检测方法总结(RFCN/SSD/RCNN/FastRCNN/FasterRCNN/SPPNet/DPM/OverFeat/YOLO)
- 【R-CNN系列目标检测】(1)R-CNN算法
- OpenCV中feature2D学习——SIFT和SURF算法实现目标检测