【即插即用】漲點(diǎn)神器AFF:注意力特征融合(已經(jīng)開(kāi)源,附論文和源碼鏈接)
點(diǎn)擊上方“AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)

這篇文章一種新注意力特征融合機(jī)制AFF!性能優(yōu)于SKNet、SENet等方法,可應(yīng)用于分類(lèi)、語(yǔ)義分割和目標(biāo)檢測(cè)等方向。
1、簡(jiǎn)介
特征融合是指來(lái)自不同層或分支的特征的組合,是現(xiàn)代網(wǎng)絡(luò)體系結(jié)構(gòu)中很常見(jiàn)的一種操作。它通常通過(guò)簡(jiǎn)單的操作(例如求和或串聯(lián))來(lái)實(shí)現(xiàn),但這可能不是最佳選擇。在本論文中提出了一個(gè)統(tǒng)一而通用的方案,即注意力特征融合,該方案適用于大多數(shù)常見(jiàn)場(chǎng)景,包括由short and long skip connections以及在Inception層內(nèi)的特征融合。
為了更好地融合語(yǔ)義和尺度不一致的特征,提出也了一個(gè)多尺度的通道注意力模塊,該模塊解決了在融合不同尺度的特征時(shí)出現(xiàn)的問(wèn)題。同時(shí)還通過(guò)添加另一個(gè)注意力級(jí)別(稱(chēng)為迭代注意力特征融合)來(lái)緩解特征圖的初始集成的瓶頸。
2、相關(guān)工作
2.1、Multi-scale Attention Mechanism
深度學(xué)習(xí)中的注意機(jī)制模仿人類(lèi)視覺(jué)注意機(jī)制,比如Squeeze-and-Excitation Networks (SENet)將全局空間信息壓縮到通道描述中,以捕獲與通道的依賴(lài)關(guān)系。近年來(lái),研究者開(kāi)始考慮注意機(jī)制的scale尺度問(wèn)題:
第1類(lèi):將多個(gè)尺度上的特征或它們連接的結(jié)果輸入注意模塊生成多尺度上的Faeture map,注意模塊內(nèi)上下文聚合的特征尺度要保持統(tǒng)一。 第2類(lèi):也被稱(chēng)為多尺度空間注意,通過(guò)大小不同的卷積核或從注意模塊內(nèi)的金字塔聚集上下文的特征。
提出的MS-CAM遵循ParseNet的思想,結(jié)合局部和全局特征和空間注意的想法融合注意力模塊內(nèi)部的多尺度特征,在以下2個(gè)重要方面有所不同:
1)、MS-CAM通過(guò)逐點(diǎn)卷積來(lái)關(guān)注通道的尺度問(wèn)題,而不是大小不同的卷積核。 2)、MS-CAM不是在主干網(wǎng)中,而是在通道注意力模塊中局部本地和全局的特征上下文特征。
2.2、Skip Connections in Deep Learning
skip connection可以分為:Short Skip和Long Skip;
Short Skip:即在Res Block中添加的標(biāo)識(shí)映射快捷方式,為反向傳播期間梯度流提供了一種連續(xù)的替代路徑;
Long Skip:通過(guò)連接較低層次的細(xì)節(jié)特征和較粗分辨率的高級(jí)語(yǔ)義特征,幫助網(wǎng)絡(luò)獲得高分辨率的語(yǔ)義特征。
最近,一些基于注意的方法,如全局注意Upsampe(GAU)和跳躍注意(SA),被提出使用高級(jí)特征作為引導(dǎo)來(lái)調(diào)節(jié)長(zhǎng)跳躍連接中的低級(jí)特征。然而,調(diào)制特征的融合權(quán)重仍然是固定的。Highway Networks(高速公路網(wǎng)絡(luò))首次引入在跳連機(jī)制(skip connection)中引入選擇機(jī)制(selection mechanism),而在某種程度上,注意力跳連接的提出可以被視為其后續(xù),但是有3個(gè)不同點(diǎn):
1)、高速公路網(wǎng)絡(luò)使用一個(gè)簡(jiǎn)單的完全連接層,只能生成一個(gè)標(biāo)量融合權(quán)重,MSCAM通過(guò)dynamic soft選擇元素的方式生成融合權(quán)重大小相同的特征圖; 2)、高速公路網(wǎng)絡(luò)只使用一個(gè)輸入特征來(lái)生成權(quán)重,而AFF模塊同時(shí)感知這兩個(gè)特征; 3)、指出了初始特征集成的重要性,提出了iAFF模塊作為解決方案;
3 本文方法---MS-CAM
3.1、Multi-Scale Channel Attention Module(MS-CAM)
其核心思想是通過(guò)改變空間池的大小,可以在多個(gè)尺度上實(shí)現(xiàn)通道關(guān)注。為了使其盡可能輕量化只在attention模塊中將局部上下文添加到全局上下文中。選擇逐點(diǎn)卷積(PWConv)作為通道上下文融合器,它只利用每個(gè)空間位置的點(diǎn)向通道融合。



class?ResGlobLocaChaFuse(HybridBlock):
????def?__init__(self,?channels=64):
????????super(ResGlobLocaChaFuse,?self).__init__()
????????with?self.name_scope():
????????????self.local_att?=?nn.HybridSequential(prefix='local_att')
????????????self.local_att.add(nn.Conv2D(channels,?kernel_size=1,?strides=1,?padding=0))
????????????self.local_att.add(nn.BatchNorm())
????????????self.global_att?=?nn.HybridSequential(prefix='global_att')
????????????self.global_att.add(nn.GlobalAvgPool2D())
????????????self.global_att.add(nn.Conv2D(channels,?kernel_size=1,?strides=1,?padding=0))
????????????self.global_att.add(nn.BatchNorm())
????????????self.sig?=?nn.Activation('sigmoid')
????def?hybrid_forward(self,?F,?x,?residual):
????????xa?=?x?+?residual
????????xl?=?self.local_att(xa)
????????xg?=?self.global_att(xa)
????????xlg?=?F.broadcast_add(xl,?xg)
????????wei?=?self.sig(xlg)
????????xo?=?2?*?F.broadcast_mul(x,?wei)?+?2?*?F.broadcast_mul(residual,?1-wei)
????????return?xo
4. 模塊
4.1、AFF模塊
基于多尺度信道的注意模塊M,Attentional Feature Fusion (AFF) 可以被表達(dá)為:


class?AXYforXplusYAddFuse(HybridBlock):
????def?__init__(self,?channels=64):
????????super(AXYforXplusYAddFuse,?self).__init__()
????????with?self.name_scope():
????????????self.local_att?=?nn.HybridSequential(prefix='local_att')
????????????self.local_att.add(nn.Conv2D(channels,?kernel_size=1,?strides=1,?padding=0))
????????????self.local_att.add(nn.BatchNorm())
????????????self.global_att?=?nn.HybridSequential(prefix='global_att')
????????????self.global_att.add(nn.GlobalAvgPool2D())
????????????self.global_att.add(nn.Conv2D(channels,?kernel_size=1,?strides=1,?padding=0))
????????????self.global_att.add(nn.BatchNorm())
????????????self.sig?=?nn.Activation('sigmoid')
????def?hybrid_forward(self,?F,?x,?residual):
????????xi?=?x?+?residual
????????xl?=?self.local_att(xi)
????????xg?=?self.global_att(xi)
????????xlg?=?F.broadcast_add(xl,?xg)
????????wei?=?self.sig(xlg)
????????xo?=?F.broadcast_mul(wei,?residual)?+?x
????????return?xo
4.2、iAFF模塊
完全上下文感知方法有一個(gè)不可避免的問(wèn)題,即如何初始地集成輸入特性。初始融合質(zhì)量作為注意力模塊的輸入會(huì)對(duì)最終融合權(quán)重產(chǎn)生影響。由于這仍然是一個(gè)特征融合問(wèn)題,一種直觀(guān)的方法是使用另一個(gè)attention模塊來(lái)融合輸入的特征,即iterative Attentional Feature Fusion (iAFF):


class?AXYforXYAddFuse(HybridBlock):
????def?__init__(self,?channels=64):
????????super(AXYforXYAddFuse,?self).__init__()
????????with?self.name_scope():
????????????self.local_att?=?nn.HybridSequential(prefix='local_att')
????????????self.local_att.add(nn.Conv2D(channels,?kernel_size=1,?strides=1,?padding=0))
????????????self.local_att.add(nn.BatchNorm())
????????????self.global_att?=?nn.HybridSequential(prefix='global_att')
????????????self.global_att.add(nn.GlobalAvgPool2D())
????????????self.global_att.add(nn.Conv2D(channels,?kernel_size=1,?strides=1,?padding=0))
????????????self.global_att.add(nn.BatchNorm())
????????????self.sig?=?nn.Activation('sigmoid')
????def?hybrid_forward(self,?F,?x,?residual):
????????xi?=?x?+?residual
????????xl?=?self.local_att(xi)
????????xg?=?self.global_att(xi)
????????xlg?=?F.broadcast_add(xl,?xg)
????????wei?=?self.sig(xlg)
????????xo?=?F.broadcast_mul(wei,?xi)
????????return?xo
5 實(shí)驗(yàn)和可視化結(jié)果
以下是作者根據(jù)現(xiàn)存的模型設(shè)計(jì)的部分模塊以進(jìn)行實(shí)驗(yàn)和對(duì)比:

通過(guò)下面的表格可以看出本文所提方法的效果:
以下是基于Cifar100進(jìn)行的實(shí)驗(yàn):
以下是基于ImageNet進(jìn)行的實(shí)驗(yàn):
以下是Heatmap的輸出圖,可以看出該方法的注意力的聚焦更加的集中和突出重點(diǎn):

更多詳細(xì)信息,可以參考論文原文:鏈接如下:
https://arxiv.org/abs/2009.14082
https://github.com/YimianDai/open-aff
參考:
[1].Attentional Feature Fusion
下載1:OpenCV黑魔法
在「AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):OpenCV黑魔法,即可下載小編精心編寫(xiě)整理的計(jì)算機(jī)視覺(jué)趣味實(shí)戰(zhàn)教程
下載2 CVPR2020 在「AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):CVPR2020,即可下載1467篇CVPR?2020論文 個(gè)人微信(如果沒(méi)有備注不拉群!) 請(qǐng)注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱(chēng)
覺(jué)得有趣就點(diǎn)亮在看吧


