1. 程式人生 > >目前最新的Mask R-CNN框架分析

目前最新的Mask R-CNN框架分析

先來看這張圖,faster rcnn,雖然已經是很老的結構了,但是目前很多CVPR的論文還是根據他來改的,在對比一下凱明大神的結構,


很明顯對吧,其中之一就是把ROI pool layer換成了ROIAlign layer ,下面解釋一下ROIAlign,


ROIPool和ROIAlign本質上都是提取特徵的過程,其區別在於ROIAlign利用了continuous bins還有bilinear interpoplation,字面翻譯過來就是連讀的視窗,和雙線性差值,我們用直觀的圖來理解,


首先是原始的ROIPool,可以看見池化的視窗都是取整,所以存在一個不對齊的問題,

那麼再來看ROIAlign


目的就是為了解決ROI池化中的不對齊問題,希望由此提升精度,筆者認為其實不會有多大提升。那麼什麼又叫雙線性差值呢,看圖。。


一目瞭然,實際上就是對每個池化視窗劃分為4個區域,然後進行一個最大池化,



輸出大小為:

  • Km2K∗m2,其中KK為類別數量,mm表示RoI Align特徵圖的大小
    • 對每一個畫素應用sigmoid,然後取RoI上所有畫素的交叉熵的平均值作為LmaskLmask
    • 反向傳播:Loss只對ground-truth那一層進行計算和反響傳播。該操作有效避免了類別競爭

    Mask Representation

    • 不同於其他的RoI特徵提取,最後將RoI提取成一個固定長度的特徵向量vector,Mask R-CNN最終將RoI區域預測稱一個m×mm×m的mask 
      • 如SPPNet最終輸出的是一個固定長度的特徵向量,丟失了空間資訊
      • 該操作有效的保留了空間資訊,但是需要更加精確的畫素對齊操作