Mask R-CNN

Mask R-CNN是何凱明大神最近的新作。Mask R-CNN是一種在有效檢測目標(biāo)的同時輸出高質(zhì)量的實(shí)例分割mask。是對faster r-cnn的擴(kuò)展,與bbox識別并行的增加一個預(yù)測分割mask的分支。Mask R-CNN 可以應(yīng)用到人體姿勢識別。并且在實(shí)例分割、目標(biāo)檢測、人體關(guān)鍵點(diǎn)檢測三個任務(wù)都取得了現(xiàn)在最好的效果。

效果圖

上圖是Mask R-CNN的框架。是對faster r-cnn的擴(kuò)展,與bbox識別并行的增加一個預(yù)測每一個ROI的分割mask的分支。mask分支是應(yīng)用到每一個ROI上的一個小的FCN(Fully Convolutional Network),以pix2pix的方式預(yù)測分割mask。
如何正確的設(shè)計mask分支是結(jié)果好壞的關(guān)鍵。主要的要點(diǎn)有以下幾點(diǎn):

  1. 最重要的一點(diǎn)是Faster R-CNN沒有設(shè)計網(wǎng)絡(luò)輸入與輸出的pixel to pixel的對齊機(jī)制。特別明顯的是ROIpooling對特征提取執(zhí)行非常粗糙的空間量化(空間量化指什么還沒搞懂)。為了改進(jìn)未對齊的缺點(diǎn),本文提出了quantization-free layer叫作RoIAlign,它準(zhǔn)確的保存空間位置。盡管是很小的變化,但是作用很明顯。提高相對mask準(zhǔn)確率10%~50%。
  2. 非常必要的對mask和class prediction 去耦合。本文對每個類別獨(dú)立的預(yù)測一個二值mask,不依賴分類分支的預(yù)測結(jié)果。

整個算法的細(xì)節(jié)如下:

1. LOSS fuction

多任務(wù)損失函數(shù)對于每一個ROI,L=L_cls+L_box+L_mask.其中L_cls和L_box與Faster R-CNN一樣。mask分支對每一個ROI有Km^2維輸出。表示分辨率為m*m的K個二值mask。K是類別數(shù),每一類一個。對每個像素實(shí)行一個sigmoid,定義L_mask是平均二值cross-entropy loss。對于一個ROI的ground truth 是第k類,L_mask只定義在第k個mask上(其他mask輸出對于損失沒有貢獻(xiàn))。

2. Mask Representation

mask覆蓋輸入目標(biāo)的空間位置,所以不能像類標(biāo)和bbox一樣通過全連接層坍塌到很短的向量。提取空間結(jié)構(gòu)很自然的想到利用卷積的pixel to pixel 對應(yīng)的特性。
具體的對每一個ROI預(yù)測一個mm大小的mask用FCN。這能保證mask 分支的每一層都明確的保持mm目標(biāo)的空間布局,不會坍塌成缺少空間維度的向量。與前人工作使用全連接層預(yù)測mask相比,本文的FCN需要更少的參數(shù),得到更好的效果 。pixel to pixel 的任務(wù)需要ROI特征與原始輸入圖像有很好對齊來保持每個像素的空間對應(yīng)。這就是提出RoIAlign層的動機(jī)。

3. RoIAlign

ROIpool是對ROI提取小的特征映射(e.g. 7*7)標(biāo)準(zhǔn)的操作符。
量化導(dǎo)致了ROI和特征層的不對齊。這對分類任務(wù)沒什么影響,但是對pixel to pixel的任務(wù)就有很大的負(fù)面影響。
為了解決這個問題,本文提出了RoIAlign層,移除ROIPool粗糙的量化,正確的對齊特征和輸入。提出的改變非常簡單:避免任何ROI邊界或者bins的量化,即用x/16代替[x/16]。用雙向性插值法輸入特征在每個ROI bin的四個采樣點(diǎn)的精確值。(這一段不能理解說的什么意思)。

4. Network Architecture

將整個網(wǎng)絡(luò)分成兩部分,1)卷積主干結(jié)構(gòu)用來提取整幅圖像的特征。2)網(wǎng)絡(luò)頭用來對ROI進(jìn)行bbox識別和mask預(yù)測。

分別考察50層和101層Resnet和ResNeXt網(wǎng)絡(luò)作為卷積主干結(jié)構(gòu)。還探索另一種有效的主干結(jié)構(gòu),叫作FPN( Feature Pyramid Network)。更多關(guān)于FPN的結(jié)構(gòu)細(xì)節(jié)請參考文章(T.-Y. Lin, P. Dollar, R. Girshick, K. He, B. Hariharan, and′S. Belongie. Feature pyramid networks for object detection.)

網(wǎng)絡(luò)頭結(jié)構(gòu)如下圖:

網(wǎng)絡(luò)頭結(jié)構(gòu)

5. Implementation Details

Training

和Faster R-CNN一樣,IOU超過0.5的ROI被視為正例反之視為負(fù)例。mask loss只在正例上定義。mask target 是ROI和GT mask的交集。圖像被resize到短邊800。每個mini-batch 2幅圖像,每幅圖像采樣N個ROI,正負(fù)樣本比例1:3。N是64對于Resnet主干,512對于FPN主干。
160k iterations, with a learning rate of 0.02 which is decreased by 10 at the 120k iteration. We use a weight decay of 0.0001 and a momentum of 0.9. RPN anchors span 5 scales and 3 aspect ratios, following [21].

Inference

At test time, the number of proposals is 300 for the C4 backbone (as in [28]) and 1000 for FPN (as in [21]).
先在proposals上進(jìn)行box識別,然后進(jìn)行非最大值抑制。mask預(yù)測在得分最高的100個box上進(jìn)行。mask分支對每個ROI預(yù)測K個mask,但是只取第k個,k是classification分支輸出結(jié)果。
m*m的mask resize到ROI的大小,然后以閾值0.5二值化。

6. Experiments: Instance Segmentation

所有的實(shí)驗采用Coco數(shù)據(jù)集。

Instance segmentation mask AP on COCO test-dev

MNC [7] and FCIS [20] are the winners of the COCO 2015 and 2016
segmentation challenges, respectively. Without bells and whistles, Mask R-CNN outperforms the more complex FCIS+++, which includesmulti-scale train/test, horizontal flip test, and OHEM [29]. All entries are single-model results.

Ablation Experiments

Paste_Image.png

(a)說明網(wǎng)絡(luò)越深越好(并不是所有都對),F(xiàn)PN和ResneXt對結(jié)果有提升。
(b)說明對分類和mask去耦合效果好。
(c)和(d)說明對齊效果好。
(e)mask分支說明用FCN效果比MLP好。

Bounding Box Detection Results

Object detection single-model results (bounding box AP), vs. state-of-the-art on test-dev.

主意第五行和第六行對比說明加入mask分支對檢測任務(wù)也有提升效果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容