mask rcnn 中 ROI Align及SmoothL1loss

来源:互联网 发布:win网络不显示 编辑:程序博客网 时间:2024/06/05 07:05

ROI pooling层

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

  • 回顾ROIpooling。
  • 具体caffe层可以观察ROIpooling层解析

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)

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

Lreg(t,ti)=R(titi)(2)

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

Lreg的公式如下,其中 x=titi

smoothL1(x)={0.5x2,if|x|<1|x|0.5,otherwise(3)

piLreg(ti,ti)表明只有有fg(20个物体类别)的才有regression loss.