【Panoptic Feature Pyramid Networks】--- 閱讀筆記.md

論文名稱:Panoptic Feature Pyramid Networks
論文作者:Alexander Kirillov, Ross Girshick, Kaiming He, Piotr Dollár
發行時間:Submitted on 8 Jan 2019, last revised 10 Apr 2019
論文地址:https://arxiv.org/abs/1901.02446
代碼開源:暫未開源


1. 概要

這篇paper更適合作爲baseline, 將 Semantic Segmentation(語義分割) 和 Instance Segmentation(實例分割) 結合在了一個FPN + Mask R-CNN 的框架中,即Panoptic(全景分割). writers通過大量實驗驗證了有效性. 結構比較乾淨, 值得一看.

2. Panoptic Feature Pyramid Network

Panoptic FPN

從 Mask R-CNN with FPN 入手,增加了兩個分支來處理語義分割和全景分割.

2.1. Feature Pyramid Network

簡要對 FPN 結構進行介紹

FPN結構:

以標準的網絡結構–ResNet作爲骨架來生成多尺度的特徵.

FPN

2.2. Instance Segmentation branch

writers直接在Mask R-CNN上增加了一個branch來輸出 Instance Segmentation

IS branch

由於在特徵金字塔中不同尺度的feature的channel的維度是相同的, 直接使用Faster R-CNN來對不同尺度的feature進行RoI Pooling, 然後利用共享的網絡分支對每個區域預測得到 boxclass label.

2.3. Semantic Segmentation branch

writers在原Mask R-CNN上增加了一個branch來輸出 Semantic Segmentation

SS bramch

該 branch 將 特徵金字塔的各層通過不同次數的連續上採樣來放到同一尺寸,其中上採樣操作的組成有:

  • 3×33 \times 3 conv
  • GN
  • RELU
  • 2×2 \times 雙線性插值

然後對這些各層的同一尺度的features按元素求和後, 再通過一個1×11 \times 1的conv和4×4 \times的雙線性插值的上採樣及softmax來生成爲原始圖片分辨率下的各個 class label.

3. Inference and Training

3.1. Panoptic inference

由於在Panoptic FPN中, 實例分割和語義分割的輸出可能會有重疊, 故提出 post-processing 來解決之.

3.1.1. post-processing

該方法的思想類似NMS(Non-Maximum Supression):

  • 針對不同實例(instance)的置信度(confidence score)來解決重疊問題
  • 解決實例分割和語義分割之間的重疊問題來利於instance的區分(這句話筆者不是很理解,原文是"resolving overlaps between instance and semantic segmentation outputs in favor of instances")
  • 去除被標記爲"other"或比給定的閾值低的stuff regions

3.2. Joint training

在聯合訓練的過程中:

  • 針對 Instance Segmentation:
    • LcL_c: classfication loss
    • LbL_b: bound-box loss
    • LmL_m: mask loss
    • 其中:
      • LcL_cLbL_b是由樣本的RoI進行歸一化得到的
      • LmL_m則是由前景(foreground)經過歸一化得到的
    • LiL_i: instance loss, Li=Lc+Lb+LmL_i = L_c + L_b + L_m
  • 針對 Semantic Segmentation:
    • LsL_s: semantic loss, 是通過對每個像素上預測的 class label 和其對應的 Ground Truth labels之間的cross-entropy loss(交叉熵)並按照已經標註了的圖像的像素數量進行歸一化操作.

最終, 模型的loss爲:
L=λi(Lc+Lb+Lm)+λsLsL=\lambda_i(L_c+L_b+L_m)+\lambda_s L_s
通過對λi\lambda_iλs\lambda_s進行tuning來訓練模型.

4. 總結

writers提出在一個model中同時對語義分割和實例分割進行訓練, 方法簡介較乾淨. 並且做到了只訓練一個model, 就做到了之前爲這兩個任務分別做一個模型的效果, 且節約了約一半的計算, 很適合作爲baseline.

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