mask rcnn 中 ROI Align及SmoothL1loss

ROI pooling层

说起ROI Alignment,就要说道faster-rcnn的ROI pooling,
ROIpooling层结构是为了将原图像的rois映射到固定大小的feature map上。而此方法有一些缺点,会带来边缘像素的缺失。

ROI Align的作用

如果roi大小为(7,6),而roipooling是分成了(6,6)的部分,(7,6)到(6,6)的转换必然带来了边缘某像素的损失。而roialign利用双线性插值,将roi(7,6)插值扩充到(12,12),此时再做(6,6)的roipooling,会提高精度,充分利用了roi的像素。

SmoothL1Loss

faster rcnn的源码理解(一)SmoothL1LossLayer论文与代码的结合理解
SmoothL1LossLayer 计算一张图片的损失函数

λ1NregipiLreg(ti,ti)(1) (1) λ 1 N r e g ∑ i p i ∗ L r e g ( t i , t i ∗ )

  • i i : mini-batch 的 anchor 的索引。
  • pi:目标的预测概率。
  • pi p i ∗ :target二分类是否有物体,有物体为1,否则为0。
  • ti t i 是一个四点向量,预测坐标
  • ti t i ∗ 是一个四点向量,是ground truth boungding box的坐标(真实坐标)

Lreg(t,ti)=R(titi)(2) (2) L r e g ( t , t i ∗ ) = R ( t i − t i ∗ )

bottom[0]预测坐标,即 ti t i
bottom[1]target坐标,即 ti t i ∗
bottom[2]inside,有物体,即有前景(foreground)时为1,否则为0,即 pi p i ∗
bottom[3]outside,没有前景(fg)也没有后景(bg)的为0,其他为1/(bg+fg),对应于加号右边的系数部分。

Lreg的公式如下,其中 x=titi x = t i − t i ∗

smoothL1(x)={0.5x2,if|x|<1|x|0.5,otherwise(3) (3) s m o o t h L 1 ( x ) = { 0.5 x 2 , i f | x | < 1 | x | − 0.5 , o t h e r w i s e

piLreg(ti,ti) p i ∗ L r e g ( t i , t i ∗ ) 表明只有有fg(20个物体类别)的才有regression loss.

SmoothL1loss的优点:

当预测值与目标值相差很大时, 梯度容易爆炸, 因为梯度里包含了x−t. 所以rgb在Fast RCNN里提出了SmoothL1Loss. 将L2的梯度转换为L1的梯度。L1相对于L2来说更鲁棒。L2在拐点处更平滑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值