【语义分割】Fully Attentional Network for Semantic Segmentation
文章目錄
- 一、背景和動機
- 二、方法
- 三、效果
本文收錄于 AAAI2022
一、背景和動機
語義分割中,non-local (NL)的方法起到了很好了捕捉 long-range 信息的作用,大致可分為 Channel non-local 和 Spatial non-local 兩種變種。但是他們卻同時有一個問題——attention missing。
以 channel attention 為例:channel attention 能夠找到每個通道和其他通道的關聯,在計算的過程中,spatial 特征被整合了起來,缺失了不同位置之間的聯系
以 spatial attention 為例:spatial attention 能夠找到每個位置之間的關系,但所有channel 的特征也都被整合了起來,缺失了不同 channel 之間的聯系
作者認為這種 attention missing 問題會削弱三維上下文信息的存儲,這兩種 attention 方法都有各自的弊端。
為了驗證這個猜想,作者在圖 2 繪制了 cityscapes 的驗證集每個類別的準確率。
1、單個 attention 的效果:
channel NL 在大目標上表現較好,如 truck,bus,train
spatial NL 在小目標或細長目標上表現較好,如 poles,rider,mbike等
還有一些類別,兩者表現都較差
2、復合 attention 的效果:
為了驗證兩個 attention 同時使用的效果,作者也使用并聯的 DANet (Dual NL)和串聯的 channel-spatial NL (CS NL)進行對比。
當使用兩個 NL 的時候,每個類別的精度增長不亞于使用單個 NL
但是,Dual NL 在大尺度目標(truck,train)上的性能降低較多,CS NL 在細長類別 (pole,mbike)上的 IoU 較差。
所以作者認為,復合的 attention 結構,只能從 channel 和 spatial attention 中的某一方來獲得性能的提升,所以,注意力 attention missing 問題就損害了特征的表示能力,不能簡單地通過疊加不同的 NL 模塊來解決。
受此啟發,作者提出了一個新的 non-local 模塊——Fully Attention block(FLA)來在所有維度上進行有效的 attention 特征保留。
二、方法
全文的基本思路在于:
在計算 channel attention map 時,使用全局上下文特征來保存空間響應特征,這能夠使得在一個單一的 attention 中實現充分的注意并具有高的計算效率,圖 1c 為整體結構。
- 首先,讓每個空間位置來捕捉全局上下文的特征響應
- 之后,使用 self-attention 機制來捕捉兩個 channel 之間和相應空間位置的全注意力相似度
- 最后,使用全注意力相似度來對 channel map 進行 re-weight。
① channel NL 的過程如圖1a所示,生成的 attention map 為 C×CC\times CC×C 大小,也就是每個通道和其他所有通道的注意力權重。
② spatial NL 的過程如圖1b所示,生成的 attention map 為 HW×HWHW \times HWHW×HW 大小,也就是每個點和其他所有像素點的注意力權重。
③ FLA 的過程如圖 1c 所示,生成的 attention map 為 (C×C)(H+W)(C\times C)(H+W)(C×C)(H+W),其中 C×CC\times CC×C 還是通道注意力權重,(H+W)(H+W)(H+W) 是每行(共H行)和每列(共W列)的注意力權重。
Fully Attentional Block(FLA)結構:
FLA 結構如圖 3 所示,輸入為特征圖 Fin∈RC×H×WF_{in}\in R^{C\times H \times W}Fin?∈RC×H×W
生成 Q:
- 首先,將特征圖輸入下面的并行通路的最底下的通路(construction),這個兩個并行通路都是由 global average pooling + Linear 構成的,為了得到不同的輸出,作者也選用了不同的 pooling 核。
- 為了得到豐富的全局上下文信息,作者使用縱橫不等的核,即長方形的核
- 為了讓每個空間位置都和對應的同橫軸或同縱軸的位置都保持信息交互,也就是為了在計算channel 之間的關系的時候保持空間連續性,作者給生成 Q 的這兩個并行通道分別選用了 pooling window 大小分別為 H×1H\times 1H×1 和 1×W1\times W1×W 的核。
- 得到不同維度的 QWQ_WQW? 和 QHQ_HQH? 之后,分別進行橫向和縱向的擴展,得到維度相同的特征。正是因為這種不同維度的特征抽取,對應維度的空間特征就可以被保留下來。
- 最后,對兩種特征進行裁剪和融合
生成 K:
將輸入特征在 H 維度進行切分,切分成 H 片,每個 slides 大小為 RC×WR^{C\times W}RC×W,然后和 Q 進行 merge,得到
然后,就可以得到每個位置和其同行同列像素的注意力權重,得到全注意力 map A∈R(H+W)×C×CA \in R^{(H+W) \times C \times C}A∈R(H+W)×C×C。
- Ai,jA_{i,j}Ai,j? 是在特定位置上的 ithi^{th}ith 和 jthj^{th}jth channel 的相關程度
生成 V:
將輸入特征在 W 維度進行切分,切分成 W 片,每個 slides 大小為 RC×HR^{C\times H}RC×H,和 A 進行矩陣相乘后,得到經過 attention 后的特征
三、效果
可視化:
channel NL 和 FLA 在語義區域都比較突出,并且在大目標內部都比較連續。
FLA 的注意力特征圖比 channel 的注意力特征圖更整齊且細膩一些,如遠處的 pole 和 目標的邊界。
FLA 也能更好的區分不同類別,比如第三行的 bus 和 car
這也證明了,作者提出的 FLA 能在 channel attention 特征圖內部捕捉并使用空間相似性,來實現 full attention。
總結
以上是生活随笔為你收集整理的【语义分割】Fully Attentional Network for Semantic Segmentation的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Transformer】TransMi
- 下一篇: 女子不让6岁男童上女厕所遭痛骂 伤害孩子