:用于细粒度视觉分类的上下文感知注意池
:用于细粒度视觉分类的上下文感知注意池2.方法为了在 CNN 中以传统的方式描述物体并保持其视觉外观,我们设计了一个上下文感知注意池(CAP)来有效地编码空间排列和视觉外观。该模块将输入作为基本 CNN 的卷积特征,然后学习强调多重积分区域(不同粗糙度)的潜在表示,以描述对象和零件中的层次结构。每个区域在特征图中都有一个锚点,因此由于整体特征,许多区域具有相同的锚点。这些完整的区域然后被输入一个循环网络(例如 LSTM)来捕捉它们的空间排列,并受到视觉识别文献的启发,这表明人类不会一次将注意力集中在整个场景上。取而代之的是,他们通过参加不同的部分来提取相关的信息。我们的 CAP 的一个重要特征是,它通过聚焦于一个给定的区域来生成一个新的特征图,该区域以所有其他区域和它自身为条件。此外,它通过双线性池通过亚像素梯度有效地捕捉每个区域的细微变化。递归网络主要用于序列分析/识别。我们的目标是捕捉积分区域和它们的空间排列之间的细微变化
引用
Behera A Wharton Z Hewage P et al. Context-aware Attentional Pooling (CAP) for Fine-grained Visual Classification[J]. arXiv preprint arXiv:2101.06635 2021.
摘要
深度卷积神经网络(CNNs)在挖掘有区别的物体姿态和部位信息进行图像识别方面表现出很强的能力。对于细粒度识别,对象/场景的上下文感知丰富特征起着关键作用,因为其在相同的子类别中表现出显著的差异,而在不同的子类别中表现出的差异甚微。要找到完全体现对象/场景特征的细微变化并不容易。为了解决这一问题,我们提出了一种新的上下文感知注意池(CAP),它通过亚像素梯度有效地捕捉细微的变化,并学习关注信息积分区域及其在区分不同子类别中的重要性,而不需要边界框和/或可区分的部分注释。我们还引入了一种新的特征编码方法,通过考虑积分区域的信息量与其空间结构之间的内在一致性来捕捉它们之间的语义关联。我们的方法简单但非常有效,可以轻松地应用于标准分类主干网络中。我们使用六个最先进的主干网(SotA)和八个基准数据集来评估我们的方法。我们的方法在六个数据集上显著优于 SotA 方法,并且在其余两个数据集上也与 SotA 有着非常强的竞争力。
1.导言
近年来,由于 CNN 对快速、可扩展和端到端学习框架的适应和增强,计算机视觉领域取得了重大进展。其性能的提高主要来自于模型通过从纹理和形状中分离有区别的物体姿态和部分信息来推理图像内容的能力。大多数区别特征通常基于全局形状和外观的变化,它们通常不适合区分从属类别。为了解决这一问题,一个全局描述符是必不可少的,它集成了来自多个局部部分及其层次结构的特征,以便细微的变化可以被区分为局部部分或模式的错位,且描述符还应该能够强调零件的重要性。
在细粒度视觉识别(FGVC)方面已经有一些优秀的研究成果,包括弱监督互补部分、部分注意、对象部分注意、多智能体合作学习、重复注意,以及破坏和构造学习。这些方法都避免了零件级标注,并以无监督/弱监督的方式自动识别局部零件。它们大多使用预先训练好的对象/零件检测器,缺乏丰富的区域/零件表示,无法更好地捕捉对象/零件之间的关系。为了真实地描述一幅图像,我们需要以更细粒度的方式考虑从像素到对象再到场景的图像生成过程,不仅要调整对象/部分及其空间排列,还要使用多个部分描述来定义它们的外观,以及它们在辨别细微变化方面的重要性。这些部分描述应该是丰富的,并且相互补充,以提供对对象/图像的完整描述。在这项工作中,我们提出了一个简单而有说服力的方法,包括上述属性系统地解决与 FGVC 相关的挑战。
为了在 CNN 中以传统的方式描述物体并保持其视觉外观,我们设计了一个上下文感知注意池(CAP)来有效地编码空间排列和视觉外观。该模块将输入作为基本 CNN 的卷积特征,然后学习强调多重积分区域(不同粗糙度)的潜在表示,以描述对象和零件中的层次结构。每个区域在特征图中都有一个锚点,因此由于整体特征,许多区域具有相同的锚点。这些完整的区域然后被输入一个循环网络(例如 LSTM)来捕捉它们的空间排列,并受到视觉识别文献的启发,这表明人类不会一次将注意力集中在整个场景上。取而代之的是,他们通过参加不同的部分来提取相关的信息。我们的 CAP 的一个重要特征是,它通过聚焦于一个给定的区域来生成一个新的特征图,该区域以所有其他区域和它自身为条件。此外,它通过双线性池通过亚像素梯度有效地捕捉每个区域的细微变化。递归网络主要用于序列分析/识别。我们的目标是捕捉积分区域和它们的空间排列之间的细微变化。因此,我们引入了一个可学习的池来自动强调循环网络中信息量最大的隐藏状态。它学习编码积分区域潜在表示的空间排列,并使用它来推断细粒度的子类别。
2.方法
我们模型的整体管道如图 1a 所示。它接受一个输入图像并作为一个从属类标签提供输出。为了解决这个问题,我们给出了 N 个图像以及它们各自的细粒度标签。目的是找到一个映射函数 F 来预测输出,与真标签匹配。最终目标是通过最小化损失使得预测准确。我们的模型由三个元素组成(图 1a):1)基础 CNN、2)CAP、3)分类模块。我们的目标是通过端到端学习训练模型的参数 θ={θb θc θd} 。
图 1. a) 模型(左)。b) CAP 详细结构(右)。
图 2. a)从大小 WHC 的卷积特征图学习像素级关系。b)CAP 使用积分区域来捕获自我和邻域上下文信息。c)使用 LSTM 封装积分区域的空间结构。d)通过 LSTM 隐藏状态的可学习聚合进行分类。
上下文感知注意池(CAP)
它将基本 CNN 的输出作为输入。假设 x 是卷积特征映射,作为输入图像 In 的基本网络 Fb 的输出。该算法考虑了从像素级到小面片、从大面片到图像级的上下文信息。目的是从层次上获取上下文信息,以便更好地模拟从 FGVC 任务中观察到的细微变化。我们的注意力机制学习强调像素,以及位于图像中不同部分的不同大小的区域。在像素级中,我们明确地了解像素之间的关系。
提出积分区域:为了有效地学习上下文信息,我们在特征图上提出了具有不同粗糙度的多重积分区域。粗糙度水平由矩形区域的不同大小获得。目标是在不同空间位置生成相似的区域|R|集。通过这种方式,我们生成了一组最终的区域 R,这些区域位于不同的位置,具有不同的尺寸和纵横比,如图 1b 所示。该方法是一种全面的上下文感知表示方法,能够从层次上获取表征图像细微变化的丰富上下文信息。
双线性池:有| R |个区域,其大小至少为 ∆x×∆y×C,至最大 W×H×C。我们使用双线性池(通常是双线性插值)配合索引操作来实现可微图像变换。
上下文感知注意:我们使用新的注意机制捕获上下文信息,其添加了加权信息,并以其余的特征映射 f 为条件,使我们的模型能够有选择地关注更相关的整体区域,从而生成整体的上下文信息。
空间结构编码:上下文向量 c={cr|r=1...|R|}表征注意力和显式积分。为了包含涉及区域的空间排列的结构信息(参见图 1b 和 2b),我们将 c 表示为区域序列(图 2c),并使用其内部状态(通过隐藏单元 hr 建模)调整递归网络以捕获结构知识。我们使用完全门控的 LSTM 作为 Fh,它能够学习长期的依赖关系。为简单起见,我们省略了计算这些参数的方程式。为了提高 CAP 的泛化能力并降低 CAP 的计算复杂度,我们通过全局平均池(GAP)从上下文向量 cr 中提取上下文特征 fr。
分类
为了进一步指导我们的模型区分细微的变化,我们提出了一种可学习的池方法(图 2c),它通过将隐藏状态的相似响应分组来聚合信息。它的灵感来自于现有的特征编码方法,比如 NetVLAD。我们将这种可微聚类方法应用于从隐藏状态 hr 到聚类的响应的软分配 K 以及它们对 VLAD 编码的贡献。在最初的 VLAD 实现中,使用了残差的加权和,而我们采用简化版本,使用了平均实际反应,而非残差,这使得需要的参数和计算操作更少。
3.实验
我们在广泛使用的八个 FGVC 基准数据集上综合评估了我们的模型:Aircraft, Food-101,Stanford Cars,Stanford Dogs,Caltech Birds,Oxford Flower,Oxford-IIIT Pets,和 NABirds。我们不使用任何边界框/零件注释。因此,我们不与依赖这些的方法进行比较。数据集及其训练/测试分割的统计数据如表 1 所示。我们使用 top-1 准确度(%)进行评估。
实验设置:在我们所有的实验中,我们调整图像大小为 256X256,应用随机旋转的数据增强技术,并将图像随机缩放,然后随机裁剪以从 256X256 中选择出 224X224 大小的最终图像。通过使用上采样层将基础 CNN 的最后一个卷积层(例如 7X7 像素)增加到 42X42 像素,然后输入我们的 CAP(图 1a)以汇集来自多个积分区域的特征。我们使用连续锚之间 7 个像素的空间位置间隙来生成|R|=27 个积分区域。这是通过考虑实验精确度和计算复杂性之间的权衡决定的。并使用 Keras Tensorflow 来实现我们的算法。
定量结果和与 SotA方法的比较:总体而言,除了 Stanford Dogs 和 Oxford Flower 数据集之外,我们的模型在所有数据集上都明显优于 SotA 方法。在表 1 中,我们将性能进行了比较。值得一提的是,我们只使用主要数据集,而且我们在大多数数据集中的性能明显优于使用其他数据集的性能。这证明了所提出的方法在识别次要类别时能够区分细微的变化。此外,我们只使用一个网络进行端到端的训练,并且我们新颖的 CAP 和分类层添加在一个基本的 CNN 上。因此,其主要计算与基础 CNN 相关。
表 1. 数据集统计和绩效评估。我们的模型的 FGVC 准确率(%)和以前仅使用主要数据集的最佳值。最后一列涉及由多个数据集组成的转移/联合学习策略。
使用我们的模型,分别在 Food-101 和 NABirds 数据集中,最高收益分别为 5.6%和 3.1%。在 Stanford Dogs 中,我们的方法(96.1%)明显优于仅使用原始数据的最佳 SotA 方法(93.9%)。然而,当使用与所选 ImageNet 图像的联合微调时,它们的精确度提高到 97.1%。同样,在 Oxford Flower 中,我们的准确率为 97.7%,与最佳 SotA 方法相比,我们实现了 1.3%的改进。而使用我们的模型,在 Food-101 和 NABirds 中,两个最高收益分别为 5.6%和 3.1%。
表 2. 与最近五大 SotA 方法的准确率(%)比较。标记为*的方法涉及对包含多个数据集(主要和次要)的对象/补丁/区域的转移/联合学习策略。
消融研究:我们使用基准的基础 CNN 架构,如 ResNet-50、Inception-V3、Exception 和 DenseNet121,以及 NASNetMobile 和 MobileNetV2 等 SotA 轻量级架构。比较了我们的方法的性能,如表 3 所示。在所有数据集中,当我们提出的 CAP 和分类模块被合并时,标准和轻量级架构都表现得异常出色。即使我们的模型在标准和轻型基础 CNN 方面都优于以前的最佳模型。然而,我们使用任何标准主干的模型的准确性优于 SotA。在 Flowers 和 Pets 数据集中,轻量级 NAS-NetMobile 表现最好,MobileNetV2 次之。这可能与数据集大小有关,因为这两个数据集与其他数据集相比最小。然而,在其他数据集中,标准 CNN 和轻型 CNN 之间的性能有一点差距。这些轻量级 CNN 显著降低了计算成本,通过添加我们的模块,性能可以与标准 CNN 一样具有竞争力。这证明了我们的模块在提高性能和更广泛的适用性方面的重要性。
表 3. 我们的模型在不同 SotA 基 CNN 结构下的精度(%)
我们还评估了上述基础 CNN(B),以及我们的新 CAP( C)和分类模块( E)对 Aircraft、Stanford Cars 和 Oxford-IIIT Pets 数据集的识别精度的影响。结果如表 4 所示。很明显,当我们将我们的模块添加到基本网络时,精确度提高了,这使得我们的新 CAP(B C)贡献了最大的增益。这意味着我们的上限的影响。我们还发现,在更大的数据集中,轻量化和标准基础 CNN 之间的基线精确度存在显著差距。添加上限因素后,这些差距就大大缩小了。当我们添加分类模块(B C E)时,精确度进一步提高。对于基础 CNN,我们使用标准的迁移学习。而对于我们的模型,我们使用预先训练好的权值来加快收敛速度。实验发现,随机初始化比预先训练好的权值需要两倍的迭代才能收敛,而其精度相近。
表 4. 在各种 SotA 基(B)CNN 中添加我们的新型 CAP( C)和分类( E)模块后,我们模型的性能(准确率%)。
我们利用不同的区域数|R|(一个根据 ∆x 和 ∆y 获得的超参数)对模型的精度进行了比较。结果如表 5 所示。我们还在最后提供的补充文件中提供了 top-N 精度的结果。前 2 名的准确率约为 99%,其与 CNN 类型无关。
表 5. 我们的模型在不同积分区域数下的精度(%)
模型复杂度:考虑到可训练参数的数量(9.7M)和推理时间(3.5ms),轻量级 NASNetMobile 的性能与其他产品相比非常有竞争力。然而,用二次数据的作用提高数据准确性的这种模式涉及多个步骤和资源密集型,容易导致实施困难。相反,我们的模型可以在一个 GPU 上训练,图像推断时间为 4.1ms。以 27 个积分区域和 ResNet50 为基础,150 个周期的训练时间为大约 4.75 小时。Stanford Cars 和 Stanford Dogs 数据集的训练时间约为 5.7 小时和 8.5 小时。
定性分析:我们使用 t-SNE 来可视化从基本 CNN 提取的特征中的类可分性和紧密性,以及我们新颖的 CAP 和分类模块。并分析了我们的 CAP 在增强基础 CNN 的可辨别性方面的影响。我们使用 Aircraft 上的测试图像和 Exception 作为 CNN 的基础。在图 3(a-d)中,很明显,当我们包括我们的 CAP 编码模块时,这些簇相距较远且紧凑,导致代表不同子类别的各种簇的明显区别。此外,与没有图 3a 所示的模块相比,基本 CNN 的可辨别性显著提高(图 3b)。这样的结果清楚地显示了我们的模型在捕获上下文信息以区分 FGVC 问题中的细微变化方面的能力。
图 3. 使用 t-SNE 来可视化类可分性和紧性(a-d)的可辨别性
4.结论
我们提出了一种新的识别子类别的方法,该方法引入了一个简单的上下文感知注意公式,通过学习在图像中汇集特征时的关注区域。我们的注意力通过利用积分区域及其重要性来实现自下而上的显式积分,而无需绑定框/零件注释。我们还提出了一种特征编码方法,通过考虑区域之间的语义相关性和空间布局来编码互补的部分信息。最后,我们的模型在八个基准数据集上的 SotA 结果、定量/定性结果和消融研究证明了我们方法的有效性。
我们提出了一种新的方法来识别子类别,该方法引入一个简单的上下文感知的注意公式,通过学习在图像上汇集特征时的关注区域。我们的注意力支持通过利用积分区域及其重要性来显式集成自下而上的显示积分,而不需要边界框/部件注释。我们还提出了一种特征编码方法,考虑区域之间的语义相关性和空间布局来编码互补的部分信息。最后,我们的模型在八个基准数据集上的 SotA 结果、定量/定性结果和消融研究证明了我们方法的有效性。
致谢
本文由南京大学软件学院 2021 级硕士林聚翻译转述。