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 計算一張圖片的損失函數

(1)λ1NregipiLreg(ti,ti)
  • i : mini-batch 的 anchor 的索引。
  • pi :目標的預測概率。
  • pi :target二分類是否有物體,有物體爲1,否則爲0。
  • ti 是一個四點向量,預測座標
  • ti 是一個四點向量,是ground truth boungding box的座標(真實座標)

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

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

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

piLreg(ti,ti) 表明只有有fg(20個物體類別)的纔有regression loss.

SmoothL1loss的優點:

當預測值與目標值相差很大時, 梯度容易爆炸, 因爲梯度裏包含了x−t. 所以rgb在Fast RCNN裏提出了SmoothL1Loss. 將L2的梯度轉換爲L1的梯度。L1相對於L2來說更魯棒。L2在拐點處更平滑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章