論文閱讀:《Mask R-CNN》ICCV2017

概述

Mask R-CNN是用於目標檢測分割的框架,即對一張圖片,既輸出圖片中已有的目標,還能爲每一個實例生成一個高質量的分割掩碼。一句話概括object instance segmentation = object detection + semantic segmentation。

特點

1.mask R-CNN是在faster R-CNN的基礎上,在每一個RoI都增加一個預測分割的 mask,這和分類以及bounding box迴歸是並行的一條分支。
2.訓練簡單,僅僅比faster R-CNN多一點計算開銷
3.易於泛化到多個任務上,例如人體姿態估計
4.在不加任何的trick的情況下,再COCO數據集上超越其他的方法

網絡框架

這裏寫圖片描述

Mask R-CNN整體框架是faster R-CNN的基礎上又加入了全連接的分割子網絡,由原來的兩個任務(檢測+分類),變化了現在的三個任務(檢測+分類+分割)。maks R-CNN有兩條並行的分支,第一個分支是使用faster R-CNN的基礎結構,對候選bounding box進行分類和bounding box座標迴歸。第二個分支是對每一個RoI區域預測分割mask,他的結構實際上是一個小的FCN。

實現細節

(1)faster R-CNN 的輸出是兩個:類別標籤和bounding box,它的算法步驟是

第一,RPN(region proposal network),給出候選的bounding box
第二,通過RoIpooling,在各個候選框中進行分類和座標迴歸。

所謂RoIpooling就是將大小不同的bounding box映射到矩形框中

(2)mask R-CNN也是分爲兩步:

第一,RPN給出候選bounding box
第二,一個分支對bounding box進行分類和迴歸,另一個分支對每一個RoI輸出binary mask

(3)loss function:classification loss + box loss + mask loss。mask分支對每一個RoI有Km2維度的輸出,即K個類別,分辨率爲m*m的二值mask。因此作者使用的是單像素sigmoid二值交叉熵,而不是單像素的softmax多項式交叉熵。二值交叉熵會使得每一類的mask不互相競爭,而不是和其他類的mask比較。

(4)RoIAlignment:是對RoIpooling的改進,RoIpooling會使得在pooling的時候存在不對準的情況,因此作者採用先雙線性插值,再聚合的方法。可以用來進行pixel-to-pixel的對準。

開源實現

https://github.com/CharlesShang/FastMaskRCNN (TensorFlow)
https://github.com/xilaili/maskrcnn.mxnet(MxNet)

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