我是靠谱客的博主 高高大叔,最近开发中收集的这篇文章主要介绍Single Shot Detection(SSD)bbox prediction相关的(超)参数image_sizenum_classesno_annotation_labelfeat_layersfeat_shapesanchor_size_boundsanchor_sizesanchor_offsetanchor_stepsnormalizationsprior_scaling,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考https://github.com/balancap/SSD-Tensorflow 记录SSD中与bbox prediction相关的(超)参数。



ssd_vgg_300.py

SSDParameters(
    img_shape=(300, 300), 
    num_classes=21, 
    no_annotation_label=21, 
    feat_layers=['block4', 'block7', 'block8', 'block9', 'block10', 'block11'], 
    feat_shapes=[(38, 38), (19, 19), (10, 10), (5, 5), (3, 3), (1, 1)], 
    anchor_size_bounds=[0.15, 0.9], 
    anchor_sizes=[(21.0, 45.0), (45.0, 99.0), (99.0, 153.0), (153.0, 207.0), (207.0, 261.0), (261.0, 315.0)], 
    anchor_ratios=[[2, 0.5], [2, 0.5, 3, 0.3333333333333333], [2, 0.5, 3, 0.3333333333333333], [2, 0.5, 3, 0.3333333333333333], [2, 0.5], [2, 0.5]], 
    anchor_steps=[8, 16, 32, 64, 100, 300], 
    anchor_offset=0.5, 
    normalizations=[20, -1, -1, -1, -1, -1], 
    prior_scaling=[0.1, 0.1, 0.2, 0.2]
)

image_size

SSD中没有全连接层, 可适应各种大小的图片。指定图片大小的目的是为了方便成batch训练。

num_classes

待检测的物体类别数量, 一般还需要加上背景类。

no_annotation_label

没用

feat_layers

特征层。使用哪几层来预测bbox

feat_shapes

特征层的shape

anchor_size_bounds

每个特性层上的anchor大小都不一样, 越靠近输入的层其anchor越小。
确定第一个与最后一个feature层的anchor大小以后, 处于中间的层的anchor大小则通过线性插值计算而来。例如,假如anchor_size_bounds = [0.2, 0.7], 有6个feature layer,则每个layer对应的default anchor大小为:[0.2, 0.3, 0.4, 0.5, 0.6, 0.7].

anchor_sizes

这个不是超参数。
它是论文中 sk=sksk+1 里的 sk,sk+1
除了21与315, 其余的都是通过anchor_size_bounds计算出来的。

anchor_offset

用于计算anchor中心点的偏移。论文中 (i+0.5|fk|,i+0.5|fj|) 0.5

anchor_steps

由网络结构和feat_layers决定。例如,在conv4_3上移动一个像素相当于在原图上移动8个像素。

normalizations

正则化参数。大于0则将对应的feature map L2norm一下, 然后在其上预测bbox。所以这个20也没啥特殊涵义。
ssd_common.py

    if normalization > 0:
        net = custom_layers.l2_normalization(net, scaling=True)

prior_scaling

(应该是用于调节 x,y 回归与 w,h 回归在loss中占的比例。
ssd_common.py

    feat_cy = (feat_cy - yref) / href / prior_scaling[0]
    feat_cx = (feat_cx - xref) / wref / prior_scaling[1]
    feat_h = tf.log(feat_h / href) / prior_scaling[2]
    feat_w = tf.log(feat_w / wref) / prior_scaling[3]

最后

以上就是高高大叔为你收集整理的Single Shot Detection(SSD)bbox prediction相关的(超)参数image_sizenum_classesno_annotation_labelfeat_layersfeat_shapesanchor_size_boundsanchor_sizesanchor_offsetanchor_stepsnormalizationsprior_scaling的全部内容,希望文章能够帮你解决Single Shot Detection(SSD)bbox prediction相关的(超)参数image_sizenum_classesno_annotation_labelfeat_layersfeat_shapesanchor_size_boundsanchor_sizesanchor_offsetanchor_stepsnormalizationsprior_scaling所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部