CAP:多重注意力机制,有趣的细粒度分类方案 | AAAI 2021 DATE: 2024-04-27 23:09:46
论文提出细粒度分类解决方案CAP ,多的细通过上下文感知的重注注意力机制来帮助模型发现细微的特征变化 。除了像素级别的意力有趣注意力机制 ,还有区域级别的机制注意力机制以及局部特征编码方法,与以往的粒度视觉方案很不同,值得一看
来源:晓飞的分类方案算法工程笔记 公众号
论文: Context-aware Attentional Pooling (CAP) for Fine-grained Visual Classification
- 论文地址:https://arxiv.org/abs/2101.06635
- 论文代码:https://github.com/ArdhenduBehera/cap
Introduction
论文认为大多数优秀的细粒度图像识别方法通过发掘目标的局部特征来辅助识别 ,却没有对局部信息进行标注,重注而是意力有趣采取弱监督或无监督的方式来定位局部特征位置
。而且大部分的机制方法采用预训练的检测器,无法很好地捕捉目标与局部特征的粒度关系。为了能够更好地描述图片内容,分类方案需要更细致地考虑从像素到目标到场景的多的细信息,不仅要定位局部特征/目标的重注位置,还要从多个维度描述其丰富且互补的意力有趣特征 ,从而得出完整图片/目标的内容
。
论文从卷积网络的角度考虑如何描述目标,提出了context-aware attentional pooling(CAP)模块 ,能够高效地编码局部特征的位置信息和外观信息。该模块将卷积网络输出的特征作为输入 ,学习调整特征中不同区域的重要性 ,从而得出局部区域的丰富的外观特征及其空间特征
,进而进行准确的分类
。
论文的主要贡献如下 :
- 提出在细粒度图像识别领域的扩展模块CAP,能够简单地应用到各种卷积网络中,带来可观的细粒度分类性能提升 。
- 为了捕捉目标/场景间的细微差别 ,提出由区域特征引导的上下文相关的attention特征。
- 提出可学习的池化操作 ,用于自动选择循环网络的隐藏状态构成空间和外观特征 。
- 将提出的算法在8个细粒度数据集上进行测试 ,获得SOTA结果。
- 分析不同的基础网络 ,扩大CAP模块的应用范围 。
Proposed Approach
论文算法的整体流程如上图所示,输入图片 ,输出具体从属类别,包含3个组件(3组参数) :
- 基础CNN网络
- CAP模块
- 分类模块
Context-aware attentional pooling (CAP)
定义卷积网络输出的特征为,CAP的模块综合考虑像素级特征、小区域特征、大区域特征以及图片级特征的上下文信息进行分类。
- pixel-level contextual information
像素级特征的上下文信息主要学习像素间的关联度 ,在计算位置的输出时根据关联度综合所有其他像素特征,直接使用self-attention实现 ,特征转化使用卷积。这一步直接对主干网络输出的特征进行操作 ,但没在整体流程图中体现 。
- Proposing integral regions
为了更高效地学习上下文信息,论文在特征图上定义不同粒度级别的基本区域,粒度级别由区域的大小决定。假设位置上的最小的区域为为例,可通过放大宽高衍生出一系列区域, ,。在不同的位置产生相似的区域合集,得到最终的区域合集。覆盖了所有的位置的不同宽高比区域,可以提供全面的上下文信息,帮助在图片的不同层级提供细微特征。
- Bilinear pooling
按照上一步,在特征图上得到个区域 ,大小从最小的到最大的,论文的目标是将不同大小的区域表示为固定大小的特征 ,主要采用了双线性插值 。定义为坐标转换函数,为区域坐标 ,对应的特征值为 ,则转换后的图片的坐标上的值为:
为采样函数,为核函数,这里采用的是最原始的方法 ,将目标坐标映射回原图 ,取最近的四个点 ,按距离进行输出,最终得到池化后的固定特征。
- Context-aware attention
这里 ,论文使用全新的注意力机制来获取上下文信息 ,根据与其他特征的相似性进行加权输出 ,使得模型能够选择性地关注更相关的区域 ,从而产生更全面的上下文信息。以查询项和一组关键词项,输出上下文向量: