目前最新的Mask R-CNN框架分析
阿新 • • 發佈:2019-02-14
先來看這張圖,faster rcnn,雖然已經是很老的結構了,但是目前很多CVPR的論文還是根據他來改的,在對比一下凱明大神的結構,
很明顯對吧,其中之一就是把ROI pool layer換成了ROIAlign layer ,下面解釋一下ROIAlign,
ROIPool和ROIAlign本質上都是提取特徵的過程,其區別在於ROIAlign利用了continuous bins還有bilinear interpoplation,字面翻譯過來就是連讀的視窗,和雙線性差值,我們用直觀的圖來理解,
首先是原始的ROIPool,可以看見池化的視窗都是取整,所以存在一個不對齊的問題,
那麼再來看ROIAlign
目的就是為了解決ROI池化中的不對齊問題,希望由此提升精度,筆者認為其實不會有多大提升。那麼什麼又叫雙線性差值呢,看圖。。
一目瞭然,實際上就是對每個池化視窗劃分為4個區域,然後進行一個最大池化,
輸出大小為:
- K∗m2K∗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最終輸出的是一個固定長度的特徵向量,丟失了空間資訊
- 該操作有效的保留了空間資訊,但是需要更加精確的畫素對齊操作