Author: Yu Zhang網絡
兩篇文章都是將self-attention機制應用到分割當中,擴大感覺野。第二篇文章採用了更巧妙的方法來減小參數。架構
Dual Attention Network for Scene Segmentation框架
self-attention在分割中應用的大體思想是:特徵圖與特徵圖的轉置進行矩陣相乘,因爲特徵圖有channel維度,至關因而每一個像素與另外每一個元素都進行點乘操做,而向量的點乘幾何意義爲計算兩個向量的類似度,兩個向量越類似,它們點乘越大。看下圖,特徵圖轉置與特徵圖矩陣相乘後用softmax進行歸一化就獲得了Attention map S。S再與特徵圖的轉置進行矩陣相乘,這個操做把相關性信息從新分佈到原始特徵圖上,最後再將這個信息與特徵圖A相加,獲得最終輸出,這個輸出結合了整張圖的相關性結果。spa
整個網絡的框架以下圖:很是簡單,特徵提取->attention module->上採樣獲得分割圖.net
除了上面說的那一部分attention,做者還加了藍色channel attention,在這裏計算特徵圖與特徵圖轉置矩陣相乘操做時,相乘的順序調換了一下,這至關因而讓channel與channel之間進行點乘操做,計算channel之間的類似性,在這裏我認爲每張channel map表明了不一樣類別,這樣讓類別與類別計算距離,來進行輔助。做者並無解釋爲何這麼作,估計這也是論文不中的緣由之一。blog
實驗結果在cityscapes,PASCAL Context,COCO Stuff上都達到了SOTA。ci
CCNet: Criss-Cross Attention for Semantic Segmentationget
本篇文章的亮點在於用了巧妙的方法減小了參數量。在上面的DANet中,attention map計算的是全部像素與全部像素之間的類似性,空間複雜度爲(HxW)x(HxW),而本文采用了criss-cross思想,只計算每一個像素與其同行同列即十字上的像素的類似性,經過進行循環(兩次相同操做),間接計算到每一個像素與每一個像素的類似性,將空間複雜度降爲(HxW)x(H+W-1),以圖爲例爲下:it
整個網絡的架構與DANet相同,只不過attention模塊有所不一樣,以下圖:在計算矩陣相乘時每一個像素只抽取特徵圖中對應十字位置的像素進行點乘,計算類似度。io
通過一輪此attention計算獲得的attention map以下圖R1所示,對於每一個元素只有十字上的類似性,而經過兩輪此計算,對於每一個元素就會獲得整張圖的類似性,如R2。
獲得此結果的緣由以下圖,通過一輪計算,每一個像素能夠獲得在其十字上的類似性,對於不一樣列不一樣行(不在其十字上)的像素是沒有類似性的,可是這個不一樣行不一樣列像素一樣也進行了類似性計算,計算了在其十字上的類似性,那麼兩個十字必有相交,在第二次attention計算的時候,經過交點,至關因而間接計算了這兩個不一樣列不一樣行像素之間的類似性。
實驗結果達到了SOTA水平,但沒有計算所有像素的attention方法準確率高。