白话详细解读(七)----- CBAM:Convolutional Block Attention Module
一、CBAM簡介
論文鏈接:https://x.sci-hub.org.cn/scholar?hl=zh-TW&as_sdt=0%2C5&q=CBAM%3A+Convolutional+Block+Attention+Module&btnG=&oq=CB
CBAM這篇論文是在2018年提出的,自提出之后,已經被引用上千次,可見其影響力。CBAM是一種專門為了卷積神經網絡而設計的注意力模塊,傳統的卷積存在只關注局部信息,而往往忽略全局信息的弊端,以3*3卷積為例,濾波器有9個像素點,目標像素的值只參照自身與周圍的8個像素點,這就意味著卷積操作只能利用局部信息來計算目標像素,這可能會帶來一些偏差,因為卷積操作只能看到局部信息,而對全局信息了解甚少。
二、論文的主要貢獻及創新點
- (1)提出了一種簡單而有效的注意模塊(CBAM),可以廣泛應用于提高CNN的表征能力。這也是該篇論文的最大創新點。
- (2)通過廣泛的消融實驗,驗證了我們的注意模塊的有效性。
- (3)在多個基準測試數據集(ImageNet-1K、MS Coco和VOC 2007)上,通過插入我們的CBAM,驗證了各種網絡的性能都得到了極大的提升。
三、CBAM網絡結構
3.1 CBAM的大致流程
- 大致流程
- (1)首先,輸入一張中間的特征圖
- (2)輸入圖像經過Channel Attention Module,Channel Attention Module我們用Mc表示,得到Channel Attention maps Mc(F)。
- (3)得到的Mc(F)與輸入圖像進行像素級別的相乘操作,得到F’
- (4)F’繼續進入到Spatial Attention Module,Spatial Attention Module我們用Ms表示,得到Spatial Attention maps Ms(F’)。
- (5)得到的Ms(F’)與輸入圖像F’進行像素級別的相乘操作,得到F’'
大致了解CBAM的工作流程之后,我們需要來看一下CBAM內部是如何計算出Attention maps的。
3.2 Channel Attention Module(通道注意力模塊)
Channel Attention Module為什么要用AvgPool和MaxPool兩條并行的池化路徑呢?
這是因為對于空間信息的聚合,到目前為止,普遍采用的是平均池化方法(Average Pooling),因此使用AvgPool來獲得聚合的空間信息。而MaxPooling收集的是特征的重要線索,以推斷更精細的通道注意力,也可以這樣理解,AvgPool是獲得宏觀上的信息,而MaxPool是獲得局部的信息,同時使用MaxPool有利用網絡獲得魯棒性。
- Channel Attention Module具體計算過程
- (1)輸入Input feature F
- (2)經過AvgPool獲得特征圖AvgPool(F)、經過MaxPool獲得特征圖MaxPool(F)
- (3)同時,兩條池化路徑共享一個MLP(多層感知機結構),AvgPool(F)、MaxPool(F)分別經過MLP處理,得到MLP(AvgPool(F))、MLP(MaxPool(F))
- (4)然后經過激活函數,得到最終的輸出Mc(F)
note: Mc(F)是一個1維的channel attention map,在與輸入圖像進行像素級別的乘法時,Python會自動的使用廣播技術。
這里的W0、W1是分別MLP的第1層、第2層的權重參數。
3.3 Spatial Attention Module(空間注意力模塊)
- Spatial Attention Module具體計算過程
- (1)經Channel Attention Module處理得到的輸出F’輸入到Spatial Attention Module中
- (2)經過MaxPool、AvgPool、7*7Conv的卷積操作,得到特征圖
- (3)最后經過sigmoid激活函數,得到最終的Spatial Attention Maps
note: Ms(F)是一個2維的Spatial attention map.
四、Experiments
實驗不是重點,就是普通的消融實驗,簡單了解以下即可。
(1)Comparison of different channel attention methods.
(2)Comparison of different spatial attention methods.
(3)Combining methods of channel and spatial attention.
(4)Classification results on ImageNet-1K.
參考文獻
- CBAcM: Convolutional Block Attention Module
- https://my.oschina.net/u/1416903/blog/4582792
總結
以上是生活随笔為你收集整理的白话详细解读(七)----- CBAM:Convolutional Block Attention Module的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021公益数字化研究报告
- 下一篇: PyTorch基础(五)----- to