論文筆記之:Instance-aware Semantic Segmentation via Multi-task Network Cascades


 

Instance-aware Semantic Segmentation via Multi-task Network Cascades

Jifeng Dai Kaiming He Jian Sun

 

本文的出發點是做Instance-aware Semantic Segmentation,但是為了做好這個,作者將其分為三個子任務來做:

1) Differentiating instances. 實例區分

2) Estimating masks.    掩膜估計

3) Categorizing objects.   分類目標

 

通過這種分解,作者提出了如下的多任務學習框架,即:Multi-task Network Cascades (MNCs),示意流程如下:

 

下面詳細的介紹下這個流程,即:

1. Multi-task Network Cascades

1). Regressing Box-level Instances 

  第一個階段是回歸出物體的bbox,這是一個全卷積的子網絡。本文follow了Faster R-CNN的提取proposal的方法Region Proposal Networks (RPNs)。在共享feature之前,作者先用了一個 3*3的Conv 用於降維,緊跟着用2個1*1的Conv層回歸出其位置,並且對目標進行分類。該階段的loss function是:

其中,B是該階段的輸出,是一系列的box,B = { Bi }, Bi = { xi; yi; wi; hi; pi },box的中心點和長寬分別是:xi yi wi hi, yi是物體的概率。

 

2). Regressing Mask-level Instances 

  該階段的輸出是對每一個box的proposal進行像素級的mask分割。

    Given a box predicted by stage 1, we extract a feature of this box by Region-of-Interest (RoI) pooling . The purpose of RoI pooling is for producing a fixed-size feature from an arbitrary box, which is set as 14*14 at this stage. (給定階段1產生的box,我們用RoI pooling的方法提取該box的特征。用RoI pooling的原因是從一個任意的box中產生一個固定長度的feature。)

  在每一個box的feature之后,添加兩個fc層,第一個fc將維度降到256, 第二個fc 回歸出像素級的mask。

  第二階段的loss function符合下面的形式:

  其中,M是該階段的輸出,代表一系列的mask,M = { Mi }, Mi = m^2 維的邏輯回歸輸出(用sigmoid回歸到 [0,1])。該階段的loss不僅依賴於M,而且依賴於B。

 

 3). Categorizing Instances

  給定第一階段的box,也對其進行特征的提取。然后用第二階段的mask估計進行二值化。這么做的好處是:this lead to a feature focused on the foreground of the prediction mask. 掩膜化的feature計算方式如下:

 

  其中,元素級乘積的左邊是RoI pooling之后的特征,右邊是第二階段的mask prediction. 可以看出乘積的結果Fi^Mask(*)依賴於Mi(*).將該feature輸入給兩路fc層。這是:mask-based pathway. 所給流程圖中並未畫出的一路是:box-based pathway,是將RoI pooling features直接輸入到4096維的fc層。然后將mask-based pathway 和 box-based pathway 連接起來(concatenated)。緊接着是 N+1類的Softmax分類器,其中N類是物體,1類是背景。

  第三個階段的loss term是:

  其中,C(*)是物體種類的預測結果。 

 

 2. End-to-End Training

  總的級聯的損失函數定義為:

  此處,該loss function並不像傳統的multi-task learning,因為后一階段的輸入依賴於前一階段的輸出。例如:根據后向傳播(BP)的鏈式法則,L2的梯度和B有關。對上述loss function采用鏈式法則的主要技術挑戰在於:預測box Bi(*)決定RoI pooling的空間轉換(spatial transformation)。對於RoI pooling層來說,其輸入是預測的box B(*) 和 卷及特征映射 F(*),這兩者都是*的函數。

  在Fast R-CNN中,the box proposal 都是預先計算的且是固定的。RoI pooling的回傳僅僅和F(*)有關,但是這個僅僅在B(*)不出現的情況下才可以。在End-to-End的訓練過程中,這兩項的梯度都要考慮。

  本節提出了可微分的RoI warping layer來解決梯度問題,即:預測的box的位置和對B(*)的依賴。

 

Differentiable RoI Warping Layers.

  too many things, waiting for my understanding ... will add this part in the future ...   

  sorry ...

 

Masking Layers. 

  我們也需要計算設計 L3 的梯度,其依賴於B(*) 和 M(*),有了differentiable RoI Warping module (Fi^RoI),就可以通過元素級乘積模塊來執行該操作。

  有了這些東西,其余的都是一樣的了,直接利用SGD就可以在caffe的框架下進行求解了。

 

3. Cascades with More Stages

  本文參考Fast R-CNN的用class-wise bbox 回歸出 (N+1)-way的分類器,在第三階段,添加了 4(N+1)-d fc layer和分類器層是兄弟層。由於本文的目標不是box 而是 mask,所以作者將第三個階段產生的 regressed boxes, 然后將這些boxes再看做是 proposals,然后在此基礎上,再運行一次階段2和3. 這實際上是一種5級的級聯網絡:

 

  作者提到此處可以迭代的進行此處inference的過程,但是貌似精度並未有明顯的提升。

 

4. 實驗部分:

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM