锚框训练简洁流程实现

对于计算机视觉,比较容易理解的是真实标签(ground truth),人为为每个目标标记的标签。但是在加入anchor box思想之后,在训练集中,我们将每个锚框视为一个训练样本。因此,为了训练目标模型,需要标记每个anchor box的标签,这里的标签包括两个部分:

  • 类别标签
  • 偏移量

有多个anchor box,到底该选取哪一个呢?这是就要通过交并比进行选择。试想一下,如果用一个固定尺寸的anchor,那么对于anchor的标记就没有了针对性。

举例说明一下,图中棕色的为行人的真实标签,黄色的为车辆的真实标签,红色的框是从feature map映射的anchor box,这样的话通过交并比就很难获取feature map中每个单元对应的标签。

这样的话,可以用anchor box1与行人的交并比比较大,可以用于训练和预测行人,anchor box 2与汽车的交并比较大,可以用于训练和预测汽车。使用不同长宽比和尺寸的anchor box,这样更加具有针对性。

1.训练阶段

标注

在训练阶段,是把anchor box作为训练样本,为了训练样本我们需要为每个锚框标注两类标签:一是锚框所含目标的类别,简称类别;二是真实边界框相对锚框的偏移量,简称偏移量(offset)。在目标检测时,我们首先生成多个锚框,然后为每个锚框预测类别以及偏移量,接着根据预测的偏移量调整锚框位置从而得到预测边界框,最后筛选需要输出的预测边界框。

 就是生成很多锚框,找到IOU比最大的那个边界框,计算锚框和边界框的偏移,并得到边界框的标签。

(这玩意我是真的看过,现在给忘了)

这样的话就标记好了每个anchor box:标签和偏移量。

 anchor的ground truth是我们根据IOU比自动生成的,来训练一个更准确的锚框的类别和偏差的预测器。

 

 就是随机生成的锚框,来预测它的标签和偏移,根据给定的真实边界框的标签和偏移来训练模型。

2.预测阶段

在模型的预测阶段,怎么才能获得预测的边界框呢?

首先在图像中生成多个anchor box,然后根据训练好的模型参数去预测这些anchor box的类别和偏移量,进而得到预测的边界框。由于阈值和anchor box数量选择的问题,同一个目标可能会输出多个相似的预测边界框,这样不仅不简洁,而且会增加计算量,为了解决这个问题,常用的措施是使用非极大值抑制(non-maximum suppression,NMS)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值