Paper Notes:Mask R-CNN
05-08
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 |