;嘿嘿嘿,昨天抽空又讀了一篇,讀完這篇我得去看原始碼了,fighting!!!

論文:Gated-SCNN: Gated Shape CNNs for Semantic Segmentation(2019年滴)

一。Abstract

影象分割的資料集包括顏色,形狀和文字資訊,但是現存的最優的網路架構都是將所有資訊直接輸入給網路,但由於資料集的形式是多樣的,所以這樣的處理當然不是最佳的。所以這篇文章就提出two-stream CNN架構,讓它們去處理不同的資訊。two-stream包括shape stream 和regular stream,二者處理的側重點 不同,shape stream處理的是和邊界相關的資訊,regular stream和之前CNN的架構是相似的,二者是並行的,是相互協作的關係。接下來介紹一下其網路架構。

二。網路架構

語義分割之Gated-SCNN

圖1。Gated-SCNN

從圖1就可以看到該網路有two-stream,分別是regular stream和shape stream。regular stream可以是任意的主幹架構,如Resnet-50,Resnet-101,WideResnet等。而regular stream是一系列殘差和GCL(Gated Conv Layer)的組合,且其輸入有兩個,分別是regular stream第一層的輸出和原圖的梯度。其後,ASPP會以多尺度融合的方式結合二者輸出特徵圖資訊,最後輸出兩個損失函式,其中用二交叉熵預測邊界圖的損失函式(dualtask loss),用標準交叉熵預測語義分割(segmentation loss)。注意:該網路包含兩個輸入,即原圖和原圖的梯度。

三.細節分析

如何讓shape stream只處理和邊界相關的資訊?

本文的方法就是精心設計GCL結構且利用本地監督來讓shape stream只處理和邊界相關的資訊。GCL的目的就是確保該部分只處理和邊界相關的資訊,具體GCL為什麼可以達到這個目的可以接下來再說。

多工學習的誤差函式長啥樣?

語義分割之Gated-SCNN

該誤差函式包括BCE(binary cross entropy)和CE(cross entropy)。λ1,λ2是二者的權重。加帽s是預測的真值邊框,加帽y是預測的真值語義標籤。注意:如圖1所示,BCE監督的是shape stream還沒有送到ASPP前的邊界圖!所以BCE更新的是two-stream的引數,而CE更新的是所有的引數,包括ASPP滴。

dual task regularizer? (雙任務的正則化)

最後的輸出結構是得到two-stream的誤差函式,為了不過擬合,在誤差函式中依舊加入正則化項。輸出代表某個pixel是否屬於某張圖片的某個類別,它可以由輸出圖片的空間倒數計算得到:

語義分割之Gated-SCNN

當然,資料集中會存在一個真值,真值和預測值之間的差的絕對值可以用來當正則化項,其中P+代表的是真值和預測值二者非零pixel的座標:

語義分割之Gated-SCNN

就經驗來說,我們肯定是希望在和邊界真值之間存在差異的pixel被懲罰,而避免不是邊界的pixel被懲罰。所以在上面的正則項中利用的是邊界預測和在邊界區域的語義分割的二元性。

和上面分析相似,我們利用來自shape stream的邊界預測去確保邊界預測和預測的語義之間的額連續性(也存在一些小問題,過後知曉更新):

語義分割之Gated-SCNN

最後的正則化項可以前二者合二為一,其中的λ3,λ4都是超引數:

語義分割之Gated-SCNN

GCL(gated convolutional layer)?

GCL是本架構的一個核心成分,幫助shape stream只處理和邊界相關的資訊而濾除其他的資訊。且要注意的一點就是shape stream並不會整合來自regular 的資訊。

在論文中,是將不同層的regular stream和shape stream的特徵圖進行concatenate,然後透過1x1的標準卷積,最後透過sigmoid函式得到attenion map。如下圖所式,其中||就是concatenate操作!:

語義分割之Gated-SCNN

得到attention map之後,GCL用於將shape stream的輸出特徵圖st和attention map (at)的元素點積,卷積之後透過一次殘差網路且通道加權值為wt,最後GCL計算如下所示:

語義分割之Gated-SCNN

注意:α可以被當做是attention map,它用很重要的邊界資訊去給區域進行加權!(這個後期看程式碼會了再來補充哈!)

至此,該網路的小心思好像差不多了,再細節的地方估計還是得啃程式碼!看完我肯定還得做筆記!待續……。