注意力机制在计算机视觉中的应用研究
2021-04-12沈阳理工大学黄海新刘孝阳王瑞鹏
沈阳理工大学 黄海新 刘孝阳 王瑞鹏
注意力机制是机器学习领域的主流方法和研究热点之一,计算机视觉中的注意力机制旨在让系统能够忽略无关信息而更多的关注重点的有效信息,具有参数少、计算快、效果好的优点。本文先对注意力的原理进行探索,在此基础上对一些经典的注意力模型和当前流行的注意力模型进行详细地分析讨论,最后对注意力机制未来的发展进行了一定的展望。
注意力机制是机器学习任务中一个基础性问题,按照作用域的不同,可以分为空间域注意力机制、通道域注意力机制以及混合域注意力机制。由于其参数少、计算快、效果好三大优点而在视觉任务的检测、分类、分割、行为识别等方面有着良好的表现。
1 基于视觉的注意力模型的研究
视觉任务中,注意力可以是施加在空间域,也可以在通道域,或者是将二者结合施加在混合域。空间域的注意力机制,首先对输入特征图进行通道压缩,然后利用压缩之后的特征图进行相似度计算得到自相关矩阵,将自相关矩阵归一化成为[0,1]之间的权重矩阵后与原特征矩阵相乘。通道域的注意力机制一般需要对输入的特征图C×H×W进行全局池化得到一个一维向量1×1×C,然后对这个一维向量进行特征交互,计算相关性,最后将交互之后的特征向量进行归一化得到通道权重向量,将通道权重向量施加到原特征图中。混合域的注意力机制在空间域和通道域都需要做相关性处理,这种处理方式可以是先空间域后通道域(也可以是先通道域再空间域)的串行处理方式也可以是空间域和通道域并行处理的方式。
2 主流注意力模型
注意力按照作用域不同可以分为空间域注意力、通道域注意力、混合域注意力,下文基于这三个方面对当前流行的一些注意力模型进行介绍分析。
2.1 空间域注意力模型
空间域注意力机制主要依靠计算特征图中每一个位置与其他所有位置的相关性得到注意力权重。Max Jaderberg等提出Spatial Transformer Networks通过注意力模型将空间信息进行转换实现对图片旋转、缩放变换的功能。XiaolongWang等提出Non-local方法通过计算自相关矩阵捕获像素值与其他所有像素之间的长期依赖。
空间注意力机制的具体实现过程如图1所示。
2.2 通道域注意力模型
通道域的注意力机制是为了捕获通道间的依赖关系,将注意力权重施加在通道上实现。Hu Jie等提出SENET通过建模各个特征通道之间的依赖关系,给有效的特征通道施加更大的权重,忽略无效的通道;Changqian Yu等为了解决语义分割中类内不一致性问题,设计了一个平滑网络,通过信道注意块和全局平均池来选择更具区别性的特征。
图1 Non-local Neural Networks
通道域注意力的计算分为三个部分:挤压(squeeze),激励(excitation),以及scale(attention),具体计算过程如图2所示:
图2 通道域注意力计算过程
图3 并行混合域注意力机制
(1)挤压(squeeze)部分,对卷积后的特征图U做全局平均池化,这一步相当于得到所有特征通道的数值分布;(2)激励(excitation)部分,对各个特征通道进行交互,捕获通道间的依赖关系,为每个特征通道生成权重;(3)scale(attention)部分,将生成的权重乘回到原输入特征图中。
2.3 混合域注意力模型
混合域的注意力模型兼顾空间域和通道域,混合域的注意力模型有很多,主要的区别在两个方面:第一,在空间域注意力和通道域注意力的计算方式上存在差异;第二,有的注意力采用空间域通道域并行处理的方式,有的采用空间域通道域串行处理的方式Woo Sanghyun等提出Convolutional Block Attention Module,在通道域的处理上,先经过通道压缩得到一维向量之后对一维向量进行操作,空间上则是将Max Pooling和Average Pooling两种方式得到的特征图直接拼接在一起之后进行卷积操作;Yue Cao等提出将Non-local与SEnet融合的Global Context(GC)block,实现一种无Query依赖的建模方式;Jun Fu等提出Dual Attention Network,分别在通道域和空间域利用non-local的思想,使用自相关矩阵捕获长距离依赖。
并行处理的混合域注意力和串行处理的混合域注意力的实现过程可分别总结为图3和图4所示:
图4 串行混合域注意力机制
图3所示为并行处理的混合域注意力机制,其处理过程可以总结为式(1)所示:
3 注意力机制在视觉任务中的应用比较
3.1 注意力机制在图像识别中的应用
图像识别任务中,以CBAM、SENet等注意力模型为代表,在ImageNet数据集的实验结果如表1所示:
表1 图像识别对比结果
从表1得出,在ImageNet数据集上进行图像识别,Backbone为ResNet50的前提下,相较于不增加注意力模块的ResNet-50,增加注意力模块之后准确率有明显提升,有更好的表现,证明了注意力机制在图像识别任务中的有效性。
3.2 注意力机制在语义分割中的应用
图像语义分割方面,在Cityscapes数据集上,采用mIoU作为评价标准,实验对比结果如表2所示:
表2 语义分割对比结果
从表2可以看出,Backbone为ResNet50的前提下,相较于没有注意力机制的ResNet50,含有注意力机制的DANet和CCNet在语义分割任务中有更高的准确率,证明注意力机制在语义分割任务中的有效性。
4 总结
本文着重研究了注意力机制的原理、主流注意力机制的实现方式、注意力机制在计算机视觉中的应用及其效果对比。目前的主流空间注意力机制都是以计算相关性矩阵为主,主要的区别在于相关性矩阵的计算;在通道域的注意力机制则以全局池化或者平均池化为主,从而得到通道上的远距离依赖性,这种相关性可以帮助深度神经网络扩大感受野,捕获像素之间的依赖关系。
这种利用相关性得到注意力机制的方式取得了不错的效果,但是还有很大的改进空间,比如在计算方式、参数的优化以及通道注意力和空间注意力的特征之间的融合等方面可以有进一步的研究。