multi_box_head

    基于SSD(Single Shot MultiBox Detector)算法,在不同层输入特征上提取先验框、计算回归的坐标位置和分类的置信度,并合并到一起作为输出,具体参数解释和输出格式参考下面说明。更详细信息,请参阅SSD论文 的2.2节。

    参数:

    • inputs (list(Variable) | tuple(Variable)) - 输入特征的列表,仅支持格式为NCHW的4-D Tensor。

    • image (Variable) - 一般是网络输入的图像数据,仅支持NCHW格式。

    • base_size (int) - 输入图片的大小,当输入个数len(inputs) > 2,并且 min_sizemax_size 为None时,通过 baze_size, min_ratiomax_ratio 来计算出 min_sizemax_size 。计算公式如下:

    • num_classes (int) - 类别数。

    • aspect_ratios (list(float) | tuple(float) | list(list(float)) | tuple(tuple(float)) - 候选框的宽高比, aspect_ratios 和 的个数必须相等。如果每个特征层提取先验框的 aspect_ratio 多余一个,写成嵌套的list,例如[[2., 3.]]。

    • min_ratio (int)- 先验框的长度和 base_size 的最小比率,注意,这里是百分比,假如比率为0.2,这里应该给20.0。默认值: None。

    • max_ratio (int)- 先验框的长度和 base_size 的最大比率,注意事项同 min_ratio 。默认值: None。

    • max_sizes (list | tuple | None)- 每层提取的先验框的最大长度,如果len(inputs)<= 2,则必须设置 max_sizes ,并且 min_sizes 的长度应等于len(inputs)。默认值:None。

    • steps (list(float) | tuple(float)) - 相邻先验框的中心点步长 ,如果在水平和垂直方向上步长相同,则设置steps即可,否则分别通过step_w和step_h设置不同方向的步长。如果 , ste_wstep_h 均为None,步长为输入图片的大小 base_size 和特征图大小的比例。默认值:None。

    • step_w (list(float)| tuple(float)) - 水平方向上先验框中心点步长。默认值:None。

    • step_h (list | tuple) - 垂直方向上先验框中心点步长。默认值:None。

    • offset (float) - 左上角先验框中心在水平和垂直方向上的偏移。默认值:0.5

    • variance (list | tuple) - 先验框的方差。默认值:[0.1,0.1,0.2,0.2]。

    • flip (bool) - 是否翻转宽高比。默认值:False。

    • kernel_size (int) - 计算回归位置和分类置信度的卷积核的大小。默认值:1。

    • stride (int | list | tuple) - 计算回归位置和分类置信度的卷积核的步长。默认值:1。

    • name (str) - 具体用法请参见 Name ,一般无需设置,默认值为None。

    • min_max_aspect_ratios_order (bool) - 如果设置为True,则输出先验框的顺序为[min,max,aspect_ratios],这与Caffe一致。请注意,此顺序会影响卷积层后面的权重顺序,但不会影响最终检测结果。默认值:False。

    返回:

    • mbox_loc(Variable) - 预测框的回归位置。格式为[N,num_priors,4],其中 N 是batch size, num_priors 是总共提取的先验框的个数。

    • mbox_conf(Variable) - 预测框的分类信度。格式为[N,num_priors,C],其中 num_priors 同上,C是类别数。

    • variances(Variable) - 提取的先验框方差。布局是[num_priors,4], num_priors 同上。

    返回类型:list(Variable) | tuple(Variable)

    代码示例2: 设置min_sizes和max_sizes