簡要介紹一篇非常牛的論文

《Learning a Discriminative Feature Network for Semantic Segmentation》

論文地址:https://arxiv.org/pdf/1804.09337.pdf

代碼地址:https://github.com/YuhuiMa/DFN-tensorflow

一、 總覽:

1、文章提出的判別特征網絡(DFN)包含兩個子網絡SmoothNetwork 和 BorderNetwork

2、文章致力於解決兩個圖像多類分割出現的問題

a、類內不一致

b、類間無差別

本文從一個更加宏觀的角度重新思考語義分割,將其看作一項把一致的語義標簽分配給一類物體而不是每一個單一像素的任務。

二、DFN框架:

圖中的(a)模塊,分為兩個部分SmoothNetwork 和 BorderNetwork

SmoothNetwork:解決類內不一致的問題,如下圖所示

BorderNetwork:負責區分外觀相似但標簽不同的相鄰圖像塊,如下圖所示

網絡框架中的基本單元即:RRB

在這個小模塊中,先對輸入進行1X1卷積,然後根據殘差網絡的概念,將1X1卷積之後的輸入sum到模塊最後。主分支做的工作是:3x3Conv+BN+ReLU+3x3Conv。將之前的一起sum之後,再通過一層ReLU激活輸出。

網絡框架中最重要的,也是本文的high light。CAB(通道註意力模塊)

CAB模塊的結構如上圖所示,黃色的是訓練網絡中的低層次訓練得到的n通道輸出特征圖,粉紅的的是訓練網絡中的高層次訓練得到的m通道的輸出特征圖。在CAB中,將這兩者先Concat起來,然後對著n+m個通道的特征圖做全局池化(即對其中的每一個特征圖做全局池化,每一個特征圖得到一個值),得到一個n+m的一個向量,之後再1X1Conv+ReLU+1X1Conv+Sigmoid,得到最終的一個一維向量(長度n+m),文章中稱之為Attention Vector。接著將得到的Attention Vector與黃色的是訓練網絡中的低層次訓練得到的n通道輸出特征圖相乘,賦予這些特征圖不同的權重。

CAB模塊提出的意義就是在這裡。我們通常的卷積網絡用來提取特征的時候,通過卷積得到的一些列特征圖,其實它們在網絡中的存在是平等的。但是在實際中,特征是有不同的意義的。有的特征對於判別來說很重要,有些特征就很冗餘。所以,作者提出瞭CAB模塊,可以賦予平等的特征圖不同的權重,來提高網絡的判別能力。

三、網絡詳解

  1. 文章使用預訓練的 ResNet 作為基礎網絡。
  2. Smooth Network 通過在網絡頂部添加全局平均池化層以獲得最強的一致性。
  3. 接著利用 CAB 改變通道的權重進一步提升一致性。同時,Border Network 通過明確的語義邊界監督獲得精確的語義邊界並使兩邊的特征更易區分。由此,類內特征更加一致,類間特征更易區分。
  4. Smooth Network 借助 softmax loss 監督每一階段的上采樣輸出(全局平均池化層除外),而本文借助focal loss 監督 Border Network 的輸出。兩個子網絡在一起聯合訓練,其loss 通過一個參數控制兩者的權重。

四、展望

大傢可以借鑒文章CAB模塊的思想,將其融入到自己的網絡,比如現在比較流行的分割網絡U-Net,V-Net等等之列的圖像語義分割中。比如在特征卷積之後添加,然後使用skip connection,類似於U-Net。

還可以將CAB的思想用於金字塔網絡中。比如說下面這篇文章

《PAN:Pyramid AttentionNetworkfor Semantic Segmentation》

論文地址:https://arxiv.org/pdf/1805.10180v1.pdf

在文章命名為GAU,(其實大同小異O_O)自由組合,怎麼有效怎麼拼。具體的各位讀者可以繼續瞭解下去。

參考:

[1]Yu C, Wang J, Peng C, et al. Learning a Discriminative Feature Network for Semantic Segmentation[J]. 2018.

[2]Li H, Xiong P, An J, et al. Pyramid Attention Network for Semantic Segmentation[J]. 2018.