MXNet中MultiBoxDetection、MultiBoxPrior、MultiBoxTarget的使用

文章转载自:https://blog.csdn.net/XiangJiaoJun_/article/details/84679596

    MXNet在目标检测提供了许多API供用户调用,灵活使用这些函数能大大降低编程难度,其中跟锚框有关的三个函数MultiBoxDetection、MultiBoxPrior、MultiBoxTarget,下面总结一下这三个函数的用法。

常用函数

一、MultiBoxPrior

    该函数是用来在一张给定的特征图中,对于给定的大小比例和宽高比例,生成不同锚框,函数原型为 

    mxnet.ndarray.contrib.MultiBoxPrior(data=None, sizes=_Null, ratios=_Null, clip=_Null, steps=_Null, offsets=_Null, out=None, name=None, **kwargs)

    下面总结一下一些常用参数的作用。

参数作用说明
data输入的特征图,一般形状为(批量大小,通道数、宽、高)
sizes要生成的锚框的大小比例列表,比如 sizes=[0.2,0.5,0.75]
ratios要生成的锚框的宽高比例列表,比如 ratios=[0.5,1,2]
clipboolean 类型变量,设置是否要剪切超出边界的锚框,默认为0

   输出:生成的锚框,形状为 (1,锚框总数,4) ,其中最后一维为生成的锚框的四个坐标,均除以了宽和高进行了归一化,锚框总数 = 宽*高*每个像素锚框个数,各个批量之间共享这些锚框。

二、MultiBoxTarget

     该函数是用来对生成锚框进行标记,函数原型为

    MultiBoxTarget(anchor=None, label=None, cls_pred=None, overlap_threshold=_Null, ignore_label=_Null, negative_mining_ratio=_Null, negative_mining_thresh=_Null, minimum_negative_samples=_Null, variances=_Null, out=None, name=None, **kwargs)

    下面总结一下一些常用参数的作用。

参数作用说明 
anchor输入的锚框,一般是通过MultiBoxPrior生成,形状为(1,锚框总数,4) 
label训练集的真实标签,一般形状为(批量大小,每张图片最多的真实锚框数,5),第二维中,如果给定图片没有这么多锚框,将会用-1填充空白,最后一维中的元素为 类别标签+四个坐标值(归一化) 
cls_pred对于第一个输入参数,即输入的锚框,预测的类别分数,形状一般为(批量大小,预测的总类别数+1,锚框总数),这个输入的作用是为了负采样(negative_mining),如果不设置负采样,那么这个输入并不影响输出 
negative_mining_ratio设置负采样的比例大小 
negative_mining_thresh设置负采样的阈值 
minimum_negative_samples最少的负采样样本 

 其中输出为一个列表,有三个元素,分别为bbox_offset、bbox_mask、cls_labels,注意以上三个输出均为二维矩阵

输出说明
bbox_offset每个锚框的标注偏移量,形状为(批量大小,锚框总数*4)
bbox_mask每个锚框的掩码,这些掩码一一对应上面的偏移量,由于我们不关心背景的偏移量,所以负类锚框坐标对应的掩码均为0,正类锚框坐标对应的掩码均为1,形状为(批量大小,锚框总数*4)
cls_labels每个锚框的标注类别,其中0表示为背景,当设置了负采样后,标签为-1表示负采样中被丢弃,计算损失函数时应丢弃该样本,输出形状为 (批量大小,锚框总数)

三、MultiBoxDetection

    该函数是用来对预测完毕的锚框进行例如加上偏移量,非极大值抑制等处理,函数原型为

    MultiBoxDetection(cls_prob=None, loc_pred=None, anchor=None, clip=_Null, threshold=_Null, background_id=_Null, nms_threshold=_Null, force_suppress=_Null, variances=_Null, nms_topk=_Null, out=None, name=None, **kwargs)

    下面总结一下一些常用参数的作用。

参数说明
cls_prob预测的各个锚框的概率,一般要经过softmax运算,形状为(批量大小,预测总类别数+1,锚框总数)
loc_pred预测的各个锚框的偏移量,一般形状为 (批量大小,锚框总数*4)
anchor生成的默认锚框,一般形状为(1,锚框总数,4)
clip是否要剪切超出边界的锚框,默认为1
threshold正类预测的阈值,当对某一个锚框预测的类别置信度大于设置的阈值时,会被当做正类锚框处理,否则视为负类
background_id背景的类别id,默认为0
nms_threshold非极大值抑制的阈值

    输出为经过处理之后的锚框,形状为(批量大小,锚框总数,6)其中最后一维组成为,类别标签+置信度+边界框四个坐标(归一化处理),其中类别标签为-1表示为背景或者在NMS中被移除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值