Paper Notes:Mask R-CNN

Mask R-CNN

arXiv: 20 Mar 2017

Kaiming He, Georgia Gkioxari, Piotr Dollar, Ross Girshick (Facebook AI Research)

Abstract

Approach:

  • R-CNN efficiently detects objects in an image while generating a high-quality segmentation mask for each instance.
  • Mask R-CNN extends Faster R-CNN by adding a branch for predicting an object mask in parallel with the existing branch for bounding box recognition.

Performance:

  • Simple to train
  • Adds a small overhead to Faster R-CNN, running at 5 fps
  • Easy to generalize to other tasks

1. Introduction

  • Instance segmentation combines object detection and semantic segmentation. Mask R-CNN的目標是成為instance segmentation的baseline system
  • Mask R-CNN的實現是在Faster R-CNN的基礎上,加入了一個mask branch。mask branch實際上是在每個RoI layer上加入一個小的FCN,使得可以進行pixel-to-pixel方式的segmentation predicting。
  • Faster R-CNN在input和output之間不是pixel-to-pixel的方式,因此提出了RoIAlign RoIAlign提高了mask accuracy,並且可以將mask和class prediction的任務分離。

2. Related Work

  • R-CNN用於數目較少的候選物體的區域,獨立地在每個RoI評估CNN,使用RoIPool。
  • Faster R-CNN使用了RPN,提升了R-CNN的性能。
  • Instance Segmentation的發展

3. Mask R-CNN

Faster R-CNN:

  • Faster R-CNN的輸出有兩個:class label和bounding-box offset。Mask-RCNN在此基礎上,增加了第三個輸出mask,這要求對於物體的空間位置有更精確的提取,包括pixel-to-pixel alignment。
  • Faster R-CNN包括兩步,第一步是RPN,用於bounding box;第二步是使用RoIPool提取每個box的特徵,然後進行分類和bounding-box regression。

Mask R-CNN:

  • Mask R-CNN也採用了兩步,第一步是RPN;第二步在原有的基礎上,增加了對每個RoI的binary mask的輸出。
  • 在訓練中,我們定義了multi-task loss在每個sampled RoI上,L(multi-task loss)=L(cls)+L(box)+L(mask)。每個mask branch的輸出維度為K*m*m,其中K表示數據集中有K個類,m*m是矩形框的大小。我們進行per-pixel sigmoid,並將L(mask)定義為average binary cross-entropy loss。由於每個RoI只屬於一個類k,因此L(mask)只被定義在第k個mask上。
  • 我們對於L(mask)的定義允許網路可以在每個類都生成mask,我們依賴專門的class branch預測class label用來選擇最終輸出的mask。因此可以分離mask和class prediction。
  • FCN在進行semantic segmentation時,使用per-pixel softmax和multinomial cross-entropy loss。因此,在進行計算的時候,所有的類一起進行預測,但Mask R-CNN計算per-pixel sigmoid和binary loss,獨立出每個類的預測。

RoIAlign:

  • RoIPool用於將每個RoI映射到feature map上,在映射的過程中,通常會進行量化處理,這導致輸入與輸出之間無法pixel-to-pixel。
  • RoIAlign去掉了RoIPool中所有的量化過程,使用bilinear interpolation(雙線性插值)保證輸入和輸出之間的對應關係。

Network Architecture:

網路的backbone使用ResNet-50或者FPN,head architecture有以下兩種:

4. Experiment:Instance Segmentation

表中的AP值為IoU閾值的平均數,其中IoU閾值為ground truth與分割結果的交集和並集的比值,用來衡量分割的準確度,比值越大越好。

Instance segmentation mask:

Ablations for Mask R-CNN:

Object detection:

5. Mask R-CNN for Human Pose Estimation

Keypoint detection:

Multi-task learning:

RoIAlign vs. RoIPool:


推薦閱讀:

傳統演算法和深度學習的結合和實踐,解讀與優化 deepfake
【論文筆記】Harmonious Attention Network for Person Re-Identification
車道線檢測
車輛識別(特徵提取+svm分類器)
基於深度學習的計算機視覺應用之目標檢測

TAG:計算機視覺 | 深度學習DeepLearning | semanticsegmentation |