BlendMask: Top-Down Meets Bottom-Up for Instance Segmentation

Paper link: https://arxiv.org/abs/2001.00309

GitHub (PyTorch, 基於Detectron2): https://github.com/aim-uofa/adet

Introduction

實例分割任務需要執行dense per-pixel prediction,在完成像素級語義分類的同時,需要鑑別出目標實例鑑。基於深度學習的實例分割模型,通常包括Top-down架構與Bottom-up架構,兩種結構各有優劣勢。文章提出的BlendMask實例分割模型,以Anchor-free FCOS檢測器爲主體結構,通過融合High-level實例信息與Low-level逐像素預測結果,達到了SOTA的分割效果。mask mAP最高能到41.3,實時版本BlendMask mAP性能和速度分別爲34.2和25FPS (1080ti GPU)。

  • Top-down架構:

Top-down模型先通過一些方法 (如RPN、detector等)獲取bbox,然後從high-level特徵區域中提取ROI特徵,進而對區域內的像素進行mask提取,這種模型一般有以下幾個問題:

  1. 由於使用了high-level特徵圖,位置信息容易損失;
  2. 特徵和mask之間的局部一致性會丟失,容易導致mis-align;
  3. 冗餘的特徵提取,不同的bbox會重新提取一次mask;

以Mask-RCNN爲例:

  1. 基於Faster-RCNN,屬於two-stage架構,RPN獲取的bbox用於提取ROI特徵;
  2. mask分支與detection分支共享ROIAlign features;

  • Bottom-up架構:

Bottom-up模型先對整圖進行逐像素預測(per-pixel prediction),每個像素生成一維特徵向量 (embedding)。由於進行的是逐像素級預測、且stride很小,局部一致性和位置信息可以很好的保存,但依然存在以下幾個問題:

  1. 嚴重依賴逐像素預測的質量,context信息匱乏,容易導致非最優分割;
  2. 由於mask在低維提取,缺乏context信息,對於複雜場景的分割能力有限;
  3. 由於逐像素生成embedding,需要複雜的後處理方法;

以Deeplab-v3+的Decoder爲例 (語義分割):

  1. Decoder以low-level特徵爲輸入,執行per-pixel prediction;

  • "Two-stage vs. One-stage" and "Anchor-based vs. Anchor-free":

以Mask-RCNN作爲對比模型:

  1. One-stage模型的執行效率更高;
  2. Anchor-free模型的優勢:
    1. 避免了anchor相關的超參設置,包括aspect-ratio、scale以及anchor匹配閾值等;
    2. Anchor-free模型通常執行per-pixel預測,樣本召回率更高;
    3. 節省了anchor相關的計算,尤其是anchor數目較多的情況下,能夠提升執行效率;

BlendMask實現結構與算法原理

  • 概述:

文章綜合top-down和bottom-up方法,利用instance-level信息 (bbox)對low-level per-pixel prediction進行ROI截取、以及attention加權,進而預測輸出instance mask,主要貢獻有以下幾點:

  1. 設計了blender,用於生成proposal-based instance mask,在COCO上對比YOLACT和FCIS,分別提升了1.9和1.3 mAP;
  2. 基於FCOS提出簡潔的算法網絡BlendMask;
  3. BlendMask的推理時間不會像two-stage detector一樣,隨着預測數量的增加而增加;
  4. BlendMask的準確率和速度都優於Mask-RCNN,且mask mAP比最好的全卷積實例分割網絡Tensor-Mask高1.1;
  5. 結合instance-level信息,bottom模塊能同時分割多種物體,因而BlendMask可直接用於全景分割;
  6. Mask-RCNN的mask輸出固定爲28×28,而BlendMask的mask輸出像素可以很大;
  7. BlendMask通用且靈活,只要一些小修改,就可以用於其它instance-level識別任務,例如關鍵點檢測;
  • 基於FCOS的總體實現結構:

關鍵模塊包括基於FCOS的top layers,執行per-pixel prediction的bottom module,以及融合instance信息與per-pixel score map的blender模塊:

  • Top-layers:

主體結構爲FCOS目標檢測模型,FPN輸出的multi-level features一方面應用於常規目標檢測,獲得bbox與 cls score;另一方面接入conv. towers生成spatial attentions: 

每個pixel位置的spatial attention屬於3D結構: K*M*M表示bottom module預測的per-pixel score map的embedding維度;M*M表示attention的二維空間維度(通常取值爲4或8等),表明spatial attention具備捕獲instance-level信息的能力,如目標的姿態、粗略形狀信息等。

Top-layers基於cls score對不同目標的bbox與attention進行排序,篩選出Top-D個proposals,應用於blender的信息融合:

  • Bottom Module:

Bottom module採用Deeplab-v3+的decoder結構,以backbone的C3、C5特徵作爲輸入 (亦可用FPN特徵),輸出per-pixel score maps (記作B: bases):。表示per-pixel的embedding維度。

  • Blender Module:

Blender是BlendMask的核心模塊,其輸入爲bottom-level的基底以及選擇的top-level attentions A、bbox P。首先,使用Mask R-CNN的ROIPooler截取每個bbox pd對應的基底區域,並resize成R*的特徵圖:

需要注意的是:訓練階段使用gt bbox作爲proposals;而在推理時,使用FCOS的檢測結果。

attention大小爲M*M (小於R*R),因此需要對ad進行上採樣插值:

然後沿K-dimension執行softmax歸一化處理,獲得attention weight map:

最後基於attention weight map,沿K-dimension對截取的bbox特徵進行加權求和:

信息融合過程如下,沿K-dimension,每個attention可表示instance的某個部位:

  • 超參數設置:

主要的超參數如下,文章根據R, MK的設置,將模型標記爲R_K_M

實驗結果

實驗設置、Ablation對比及實驗結果詳見文章。

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