1. 程式人生 > 實用技巧 >Weakly Supervised Semantic Segmentation with Boundary Exploration論文解讀

Weakly Supervised Semantic Segmentation with Boundary Exploration論文解讀

Weakly Supervised Semantic Segmentation with Boundary Exploration論文解讀

摘要:為了在弱監督下獲得語義分割,本文提出了一種簡單而有效的方法,該方法基於從訓練影象中顯式探索物件邊界以保持。 具體來說,我們通過利用從分割和邊界的一致率。具體來講,利用CNN分類器獲得的粗定位對映來合成邊界註釋,並使用註釋來訓練本文提出的稱為BENet的網路,BENet可以進一步挖掘更多的物件邊界來為語義分割提供約束。 最後,利用生成的訓練影象偽註釋來監督一個現成的分割網路。 我們在PASCALVOC2012基準上對所提出的方法進行了評價,最終結果分別在VAL和測試集上獲得了65.7%和66.6%的mIoU分數,其效能優於VAL和測試集 以前的方法是在影象級別的監督下訓練的。

再結合一下後面的知識可以得到:本文其實就是利用邊界探索的思想提出了一個名叫BENet的網路,該網路可以在影象級標籤的約束下得到邊界標籤,用這個邊界標籤的約束去修訂粗定位對映從而得到語義分割。最後是用得到的語義分割圖去訓練一個現成的語義分割網路(文中採用的deeplab)。這樣整個流程下來就實現了弱監督的語義分割。整個的演算法框架如下:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-Cerw0Sha-1603364941082)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201020162200439.png)\

一、第一個問題就是區域性定位位對映怎麼得到?也就是上圖中綠色框的部分。文中基於CAM,提出了一個基於注意力模型的CAM演算法,基於CAM,得到了區域性定位對映。原文3.2節(Attention-Pooling CAM to Obtain Localization Maps)

一、Location Map 的邊界探索

1.1 CAM背景知識補充

CAM,全稱class activation map。在Learning Deep Features for Discriminative Localization這篇文章中,作者提出了CNN網路除了具有很強的圖片處理,分類能力;同時還能夠針對圖片中的關鍵部分進行定位,這個過程被稱為Class Activation Mapping,簡稱CAM。簡單來講 CAM就是提取出一副影象中關鍵的資訊,畫素越關鍵,熱量就越高。

在這裡插入圖片描述

CAM的網路架構,如下圖所示。輸入一張圖片,然後進過CNN網路提取出許多feature map,每個fearure map都能夠表示出整個網路的部分特徵。這裡的CNN網路可以使用VGG啊,或者google net系列的例如inception等等,但是有這樣一個問題,我們認為feature map還保留著圖片的空間資訊,這也是為什麼最後通過ifeature map的疊加可以得到class activation map的原因。而通常的網路中會選擇全連線層進行圖片特徵圖向特徵向量的轉換在這個轉換過程中就會丟失空間資訊,所以文中採用global average pooling(GAP)來代替fully connected。然後將生成的這個值,最後通過一個全連線層實現相應的分類結果,相應的全連線層的權重稱為相應的權重w1,w2.。。。。。

在這裡插入圖片描述

我們這樣想最後生成的結果分類結果,其實就是pool之後的值與相應權重的乘積,相應的這個pool值是由GAP生成的,所以最後分類的結果可以看為是特徵圖與權重的乘積,這時候權重就代表了每個特徵圖對於最後結果的貢獻程度,那麼假如我們將特徵圖乘以權重直接相加,那麼對於最後結果影響大的地方因該有相對較大的值,小的地方有相對較小的值,這個過程也就是CAM的原理講解。具體的過程可以看圖二的下面部分,瞭解具體操作。

個人理解:通過cnn後我們可以得到很多通道特徵圖,每個特徵都對分類有貢獻,比如說綠色的特徵圖可能對分類為狗子貢獻更大,紅色的特徵圖可能對分類為人特徵更大,這個貢獻就體現在不同類別的對應權重上,所以在經過監督學習後,綠色特徵圖對應於類別為人的特徵就特別大(如圖中的綠色權重Wn,假設最後加黑的輸出時分類為人的可能性的話)。所以將每個特徵圖全域性池化後為向量後乘以不同類別的權重向量並求和得到的就是對應類別的得分,得分最高的即為最後的分類結果。CAM其實就是將各個特徵圖乘以不同權重後疊加組合成的熱度圖,如figure2的下面的那副圖。

GAP:全域性平均池化,把整個影象(通道)相加取平均,最後輸出一個數,最早出現在network in network 這篇文章中。

1.2 attention pooling CAM

用GAP來提取CAM雖然簡單有效,但也存在一些問題,即潛在的給每個畫素都分配了相同的權重,這會鼓勵不相關的區域也做出響應。所以本文作者在此基礎上提出了基於attention pooling 的CAM。

和之前一樣,attention pooling來提取CAM也保留了前面的FCN網路,然後把本來用GAP的地方用attention pooling來替代了。attention pooling其實就是通過類別C的location map MC來得到一個注意力圖AC。最後的類別分數是

在這裡插入圖片描述

其中,M_i^C是類別C的location map 的第i個畫素,AiC生成的注意力池化圖的第i個元素。AC的計算方法如下,K是一個常數。J是在M^C中的畫素集合。

在這裡插入圖片描述

值得注意的是對於一張輸入圖片,會有C個location map,C 是總類數。第一次迭代時的CAM圖是由隨機的W權重得到的。

1.3合成邊界標籤

我們通過CAM得到了location map後,就可以來合成一些可以信賴的邊界標籤了,並用這些來標籤來訓練BENet,BENet在訓練好後又可以得到更多物體的邊界標籤。原文We fifirstly exploit localization maps tosynthesize a small amount of credible boundary labels, and then these are used to explore more boundary cues through training BENet

由於上面得到的邊界標籤是一個高維矩陣,矩陣的每個元素代表了對應位置的畫素是類別C_i的可能性,所以我們先把這個矩陣合成為類別矩陣(即得到確定的每個畫素的類別)。公式如下

在這裡插入圖片描述

其中0和255分別代表背景標籤和不確定類別的標籤, θ f g \theta_fg θfg θ b g \theta_bg θbg 分別代表判斷前景和後景的閾值。這之後又加了個dCRF(密集條件隨機場)

有了上面的畫素類別矩陣後,我們就可以開始合成邊界了。合成邊界的假設是:當相鄰區域包含近似數目的相同前景後景畫素,我們假設這個區域的中心畫素是一個邊界。原文:According to the defifinition of boundary, we assume that there exist boundaries where adjacent regions contain approximate numbers of identical foreground and background pixels.

而這個區域我們用一個滑動的視窗去獲取,並統計視窗內的對應統計資訊。給定一箇中心位於i畫素,尺寸為w的窗,我們用 N i c N^c_i Nic 來表示視窗內屬於C類別的畫素數目。視窗內每個類別的統計比例 S i c S^c_i Sic 的計算方式為:

在這裡插入圖片描述

一個畫素是否被判定為邊界的準則為:

  1. 窗內要有足夠多的畫素來支撐判別
  2. 窗內前景和背景區域的尺寸要足夠接近

依據上面兩條思想,邊界判定的公式為:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-a18ZrISv-1603364941090)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022170528871.png)]

其中,1代表是邊界,0代表不是邊界。255是其他。

1.4訓練BENet

既然我們已經通過location map 得到了一批可信的標籤,接下來我們就可以用他們去訓練我們的BENet,進而得到更多邊界了。BENet的損失函式如下:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-5gLa1Xot-1603364941090)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022171127094.png)]

其中,Pi是BENet輸出的i 畫素是邊界的可能性。三個 Φ \Phi Φ 分別是邊界集合,前景畫素集合以及背景畫素集合。上面其實就是針對三個集合的交叉熵。其中 W i = P i W_i=\sqrt{P_i} Wi=Pi ,他的作用文中是這樣說的:To reduce the heavy dependence on synthetic boundary labels which may contain some misclassifified samples, we relax the assumption that all boundary labels are reliable by adding a weight parameter W i W_i Wi in the boundary loss term. 我們可以這樣思考,如果某個畫素被標記為邊界,單很低的 P i P_i Pi 代表著是前景或者背景的可能性更大,那麼開根號後的權重就會想必別的權重進一步減小,從而降低他的影響。

2、修改已探索邊界的的location map

訓練好的BENet可以挖掘物體的大邊界,所以,我們可以用BENet的預測輸出來作為約束來指導粗location map的傳播。約束的方法用的是random walk,隨機徘徊。

之後,再將生成的邊界矩陣B轉化為語義親和矩陣,親和矩陣的每個元素 a i j a_ij aij 表示表示原邊界矩陣B中i和j 畫素間的親和度。其計算方法如下:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-8Hex4pZC-1603364941091)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022173423426.png)]

其中 Π i j \Pi_ij Πij 表示從i到j的畫素集合。最後將隨機遊走迭代完後的矩陣乘以location map,就完成了傳播,最後再用dCRF來輕微的修正分割的效果。

3.用BES框架生成的語義分割圖去訓練現有的語義分割網路,文中選取的是deeplab。

一些其餘的實現細節

Attention Pooling CAM:文章CAM這塊用的是ResNet50作為骨幹,只是將最後的全連線改成了1*1的卷積,此外還將resnet50中最後一個階段的卷積步長由2變成了1,因為最後location map的解析度是原始影象的1/16.具體見下圖:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-SzXs5gh0-1603364941092)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022184402286.png)]

BENet: BENet是基於在ImageNet上預訓練好的ResNet50來構建的。為了完全混合不同尺度的特徵,來自淺層和深層網路的特徵在第五階段被concat並且連線上一個1*1的卷積層。

3、實驗結果

3.1消融實驗

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-n1ITmnfT-1603364941092)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022185301362.png)]

3.2 邊界評估

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-f9CUUyk4-1603364941092)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022185920015.png)]

3.3語義分割的效果

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-AdXc3uYK-1603364941093)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022185953696.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-ijjppRYu-1603364941093)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022190007862.png)]

3.4一些失敗的案例

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-9QT5aOZH-1603364941094)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022190324309.png)]

文章中說這種失敗的原因主要有兩個。

3.5和當前前沿技術的比較

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-rzAcPk99-1603364941094)(C:\Users\Ambition_Kingo\AppData\Roaming\Typora\typora-user-images\image-20201022190509049.png)]

我們可以觀察到,由BES生成的語義標籤有助於DeppLab-ASPP在Val和測試集中優於所有列出的影象級監督方法。