Faster RCNN

Faster RCNN

3.1.2 Loss Function

为了训练rpn,我们为每个anchor分配一个二进制类标签(不管是否为对象)。我们给两种anchor分配一个正标签:(i)与ground-truth box有最高IoU的anchor。(ii)与ground-truth box的IoU交集大于0.7的anchor。请注意,一个ground-truth box可以将正标签分配给多个anchor。通常第二个条件足以确定阳性样本;但我们仍然采用第一个条件,因为在某些罕见的情况下,第二个条件可能找不到阳性样本。如果一个非正anchor的IoU比率低于0.3,我们给它分配一个负标签.anchor无论是positive的还是negative的,都无助于实现训练目标。

利用这些定义,我们在Fast R-CNN[2]中最小化了多任务丢失后的目标函数。我们对图像的损失函数定义为:

这里,i是一个小批量anchor的索引, p i p_i pi是anchor i作为对象的预测概率。如果anchor是positive的,对应的ground-truth label p i ∗ p_i^* pi为1,如果是negative的,为0。 t i t_i ti是表示预测边界框的4个参数化坐标的向量, t i ∗ t_i^* ti是positive anchor对应的ground-truth box。分类损失 L c l s L_{cls} Lcls是对数损失。对于回归损失,我们用 L r e g ( t i , t i ∗ ) = R ( t i − t i ∗ ) L_{reg}(t_i,t_i^*)=R(t_i-t_i^*) Lreg(ti,ti)=R(titi)其中R为[2]中定义的鲁棒损失函数(光滑L1)。 p i ∗ L r e g p_i^*L_{reg} piLreg项意味着只被激活的positive anchor的回归损失 ( p i ∗ = 1 ) (p_i^*=1) (pi=1)否则就会被禁用 ( p i ∗ = 0 ) (p_i^*=0) (pi=0)。cls层和reg层的输出分别由 p i {p_i} pi t i {t_i} ti组成。

这两项用 N c l s N_{cls} Ncls N r e g N_{reg} Nreg规范化,并用平衡参数 λ \lambda λ加权。在我们当前的实现中(如在发布的代码中),Eqn(1)中的cls项通过小批量大小(即 N c l s N_{cls} Ncls=256)规范化,而reg项通过anchor 位置的数量(即 N r e g N_{reg} Nreg大约2400)规范化。默认情况下,我们将 λ \lambda λ =10,因此cls和reg项的权重大致相等。我们通过实验表明,结果在很大范围内对 λ \lambda λ 值不敏感(表9)。我们还注意到,上述规范化是不需要的,可以简化。

对于边界框回归,我们采用[5]之后的4个坐标的参数化:
在这里插入图片描述

其中x、y、w和h表示方框的中心坐标及其宽度和高度。变量x、 x a x_a xa x ∗ x^* x 分别用于预测框、anchor框和groundtruth box(同样用于y,w,h)。这可以被认为是从anchor框到附近groundtruth box的边界框回归。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值