论文阅读_CBAM卷积网络中使用注意力模型

论文地址:https://arxiv.org/pdf/1807.06521.pdf
代码地址:https://github.com/Jongchan/attention-module

《CBAM: Convolutional Block Attention Module》是2018年收录于cs.CV的一篇论文,文中提出在基础网络(如ResNet)的Block块中加入Attention机制的方法,以提升图片分类和目标检测效果。

之前改进图像模型的方法常常是加大网络的深度、宽度、基数(cardinality),这些都需要占用更多的资源,而CBAM引入的Attention注意力方法增加的开销非常小。

CBAM原理

注意力机制模仿人看物体时的方法:通过简单一瞥,分析图像的重要部分,然后聚焦于该位置,而不是对画面中所有区域给予同等重视。

CBAM通过之前提取到图像的feature map,在通道channel和空间spatial分别学习了What(注意什么)和Where(注意哪儿)的Attention map。基本原理如下所示:

Channel Attention Model

从卷积网络提取的特征一般是CxHxW,其中C为通道数,W和H分别为经过卷积后得到的缩小后的图片宽高,即Input Feature,将它作为输入。CBAM依次建立了1D的通道卷积层Cx1x1,和2D的空间卷积层1xHxW。公式如下:

其中⊗表示矩阵中对应元素相乘,类似对图像的mask操作,具体方法如下图所示:

在Channel Attention部分,将每一个Channel视为一种对图片的特征提取器(每个通道从图片中提取各类特征,如纹理,样式)。此处,把每一个通道中的HxW个小块通过最大池化和平均池化压缩成单块,将这两部分分别送入同一网络Mc分别计算,Mc是含有一个隐藏层的多层感知机MLP,隐藏层大小rx1x1,r通常小于通道数,引入它为了简化计算,否则,当通道数很大时,直接用全连接网络计算量太大,由此,上图中的Mc呈漏斗形。

Mc计算公式如下:

其中σ表示sigmoid函数,W1和W0分别是MLP的两层,中间夹着隐藏层h和ReLU激活函数(c->h,h->c)。通过训练,学习到参数W1和W0。

Spatial attention module

空间层用于提取内部空间的关系,计算哪一小块应该被重点关注,该层的输入是经过Channel Attention处理的数据,同样也使用了两种池化方法,分别将多个通道的值压缩到单个通道,在Spatial层经过7x7的2维卷积,计算得到对空间的加权,具体方法如下式所示。

其中σ表示sigmoid函数,f为卷积层处理(由卷积、归一化、ReLU组成)。

与CNN网络结合

下图展示了CBAM与ResNet结合的一种方式(也可以根据不同的需求加在不同位置)。

它在Block层与ResNet相结合,注意此处将Attention加入到每一个Block里面,而不是只加在最后,CBAM也由此得名:Convolutional Block Attention Module卷积块中的注意力模型。

模型效果

对ResNet50模型分别加入了AvgPool和AvgPool后,模型大小几乎没有变化,同时可以看到模型效果的提高,下表展示了加入Channel Attention后的效果:

其中AvgPool提取平均特征,MaxPool提取了显著特征,相互结合效果最好,由于它们提取的都是同种特征,因此使用了同一网络。

使用了Spatial Attention后模型效果对比如下图所示:

Channel提取的特征相对全局化,Spatial提取的特征相对局部,Channel和Spatial模块分开处理比合并处理效果更好,处理的先后顺序理论上可以互换,实验效果是Channel放在前面效果更好一些。从下图可以看到不同组合的效果。

除了提升现有模型的能力,CBAM也增强了模型对特征的提取能力,使用Grad-CAM工具分析最后一个卷积层的输出,可以看到在目标识别任务中,不同模型标识的不同重点区域,从p值可以看到,CBAM有明显的优势:

把CBAM插入到基础网络中,目标识别效果也有提高,且性能几乎不受影响。下表展示了在COCO数据集上目标识别的提升效果。

源码

从源码中可以看到Attention层在图像处理中的具体用法:先加入Attention层的计算,然后将Attention与原有特征x进行元素相乘。BCAM的核心代码不过百行,下面摘录了其Spatial Attention部分:

其最后两行,先用sigmoid计算类似门控的值,用于过滤重要部分和次要部分,然后与具体特征数据x相乘即可,非常简单直接。该部分的完整代码请见:

https://github.com/Jongchan/attention-module/blob/master/MODELS/cbam.py

以此方式,无论是使用从图片中提取的信息作为Attention,还是使用其它额外信息作为Attention加强对图片描述都非常方便。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354