AiPaper
论文状态:已完成

Characteristics Matching Based Hash Codes Generation for Efficient Fine-grained Image Retrieval

发表:2024/06/16
原文链接
价格:0.10
已有 1 人读过
本分析由 AI 生成,可能不完全准确,请以原文为准。

TL;DR 精炼摘要

针对细粒度图像检索中哈希模型设计中的固有矛盾,本文提出了一种基于特性匹配的哈希码生成方法。结合跨层语义信息传递和多区域特征嵌入模块,该方法有效捕获细微差异,提升检索效率。在广泛实验中表明,该方法显著优于现有研究。

摘要

The rapidly growing scale of data in practice poses demands on the efficiency of retrieval models. However, for fine-grained image retrieval task, there are inherent contradictions in the design of hashing based efficient models. Firstly, the limited information embedding capacity of low-dimensional binary hash codes, coupled with the detailed information required to describe fine-grained categories, results in a contradiction in feature learning. Secondly, there is also a contradiction between the complexity of fine-grained feature extraction models and retrieval efficiency. To address these issues, in this paper, we propose the characteristics matching based hash codes generation method. Coupled with the cross-layer semantic information transfer module and the multi-region feature embedding module, the proposed method can generate hash codes that effectively capture fine-grained differences among samples while ensuring efficient inference. Extensive experiments on widely used datasets demonstrate that our method can significantly outperform state-of-the-art methods.

思维导图

论文精读

中文精读

1. 论文基本信息

1.1. 标题

Characteristics Matching Based Hash Codes Generation for Efficient Fine-grained Image Retrieval (基于特性匹配的哈希码生成,用于高效细粒度图像检索)

1.2. 作者

Zhen-Duo Chen, Li-Jun Zhao, Zi-Chao Zhang, Xin Luo, Xin-Shun Xu* 隶属于中国山东大学软件学院。其中,Xin-Shun Xu 为通讯作者。

1.3. 发表期刊/会议

CVPR 2024 (计算机视觉与模式识别会议)。CVPR 是计算机视觉领域顶级会议之一,在全球范围内享有极高的学术声誉和影响力,代表了该领域最前沿的研究成果。

1.4. 发表年份

2024年。

1.5. 摘要

随着实践中数据规模的快速增长,对检索模型效率的要求也日益提高。然而,对于细粒度图像检索 (Fine-grained Image Retrieval, FGIR) 任务,基于哈希 (Hashing) 的高效模型设计中存在固有的矛盾。首先,低维二值哈希码 (binary hash codes) 的信息嵌入能力有限,而描述细粒度类别需要详细信息,这导致了特征学习方面的矛盾。其次,细粒度特征提取模型 (fine-grained feature extraction models) 的复杂性与检索效率之间也存在矛盾。为了解决这些问题,本文提出了一种基于特性匹配的哈希码生成方法 (characteristics matching based hash codes generation method)。结合跨层语义信息传递模块 (cross-layer semantic information transfer module) 和多区域特征嵌入模块 (multi-region feature embedding module),所提出的方法能够生成有效捕获样本之间细微差异的哈希码,同时确保高效的推理 (inference)。在广泛使用的数据集上进行的广泛实验表明,该方法显著优于最先进 (state-of-the-art) 的方法。

1.6. 原文链接

https://openaccess.thecvf.com/content/CVPR2024/papers/Chen_Characteristics_Matching_Based_Hash_Codes_Generation_for_Efficient_Fine-grained_Image_CVPR_2024_paper.pdf 该论文已在 CVPR 2024 会议上正式发表。


2. 整体概括

2.1. 研究背景与动机

核心问题

随着大规模数据的普及,高效图像检索变得越来越重要。在众多检索任务中,细粒度图像检索 (Fine-grained Image Retrieval, FGIR) 由于其需要区分非常相似的子类别(例如不同种类的鸟、飞机型号),具有更高的挑战性。

现有研究的挑战与空白 (Gap)

哈希 (Hashing) 方法因其高速检索和低存储成本,被视为解决大规模检索效率问题的有效方案。然而,将哈希方法应用于细粒度图像检索时,作者指出存在两个核心的“固有矛盾 (inherent contradictions)”,而这些矛盾在以往的研究中几乎都被忽略了:

  1. 特征学习矛盾 (Contradiction in Feature Learning):

    • 细粒度数据的特性: 细粒度类别间的差异极小,需要非常详细和丰富的特征信息来准确描述和区分。
    • 哈希码的限制: 哈希方法通常生成低维度的二值哈希码。这些二值码的信息嵌入能力是有限的。
    • 矛盾所在: 复杂的细粒度特征向量在映射到低维二值哈希码时,不可避免地会发生信息损失。这意味着,即使特征提取模型再强大、提取的特征向量维度再高,最终的哈希码也可能无法充分保留细粒度信息,导致性能瓶颈。
  2. 效率矛盾 (Contradiction between Effectiveness and Efficiency):

    • 细粒度特征提取的复杂性: 为了捕获细微的差异,细粒度特征提取模型通常需要非常复杂的设计,例如多区域分析、多层特征融合、注意力机制等,这导致模型参数量大、计算成本高。
    • 哈希检索的目标: 哈希方法的核心目标是实现高效的检索。
    • 矛盾所在: 复杂的特征提取模型在推理 (inference) 阶段会带来显著的计算开销,这与哈希检索追求高效率的初衷背道而驰。

论文的切入点与创新思路

作者认为,传统的思路——即“简单地将复杂模型提取的特征向量映射到哈希码”——并非最佳选择。相反,论文提出,细粒度哈希检索的最终目标是用低维二值码来表示样本之间的细粒度差异,而非提供对输入样本的详尽描述。这启发了作者的创新思路:

  • 抽象化关键特性: 细粒度特征向量可以被抽象为描述区分细粒度类别的“关键特性 (critical characteristics)”。
  • 特性匹配: 将样本的特征表示为与这些关键特性向量的“匹配度 (matching score)”,然后将这些匹配度映射为哈希码。
  • 解耦训练与推理: 允许复杂的特征学习过程在训练阶段进行,以优化这些特性向量,但在推理阶段仅使用简化的特性匹配过程,从而保证效率。

2.2. 核心贡献/主要发现

本文的贡献可以总结为以下三点:

  1. 首次分析并提出解决方案: 首次系统性地分析了高效细粒度图像检索任务中存在的特征学习矛盾和效率矛盾,并提出了基于特性匹配的哈希码生成 (Characteristics Matching Based Hashing, CMBH) 方法来解决这些问题。这种策略将关注点从具体的样本描述转移到与特定特性匹配的抽象级别,极大地简化了哈希码需要嵌入的信息,同时确保了区分细粒度差异的能力。

  2. 设计辅助模块优化特性向量: 为了确保特性向量 (C-vectors) 能够有效描述和代表每个细粒度类别,设计了两个仅在训练阶段运行的辅助模块:

    • 跨层语义信息传递模块 (Cross-layer Semantic Information Transfer Module): 将来自不同网络层的细粒度语义信息集成到特性向量中,以增强其描述能力。
    • 多区域特征嵌入模块 (Multi-region Feature Embedding Module): 通过从图像的不同区域提取特征并将其与特定的特性向量关联,以确保特性向量之间的独特性 (distinctiveness),并提升特征学习效果。这两个模块在推理阶段几乎不引入额外的参数和计算成本。
  3. 显著超越最先进方法: 在广泛使用的数据集上进行的综合实验表明,所提出的 CMBH 方法在有效性和效率方面均显著优于现有最先进的方法。尤其是在短哈希码长度下,其优势更为明显,进一步验证了该方法的有效性。


3. 预备知识与相关工作

本章旨在为读者铺垫理解论文所需的前置知识,并回顾相关领域的发展。

3.1. 基础概念

细粒度图像检索 (Fine-grained Image Retrieval, FGIR)

细粒度图像检索是图像检索领域的一个分支,其核心任务是在包含大量视觉上高度相似的子类别(例如,不同品种的狗、不同型号的汽车或飞机)的数据集中,根据查询图像找到最相关的图像。与粗粒度检索(例如,区分猫和狗)不同,细粒度检索要求模型能够识别和利用图像中极其微小的、局部的、具有区分性的特征。例如,区分两种外观非常相似的鸟类,可能需要关注它们的喙的形状、翅膀的颜色纹理等细微之处。FGIR 的难点在于类间差异小 (small inter-category difference)类内方差大 (large intra-category variance),后者通常由不同的姿态、视角、背景等因素引起。

哈希 (Hashing)

哈希是一种将高维数据(例如图像的特征向量)映射到低维二值码(通常为 {1,1}b\{ -1, 1 \}^b{0,1}b\{ 0, 1 \}^b 形式)的技术。其主要目标是:

  • 高效检索: 通过计算二值码之间的汉明距离 (Hamming distance) 来近似原始数据之间的相似度,显著加快检索速度。
  • 低存储成本: 二值码相比于高维浮点向量占用的存储空间大大减少。
  • 相似性保持: 理想的哈希函数应尽可能地保持原始数据空间中的相似性,即相似的图像映射到相似的哈希码(汉明距离小),不相似的图像映射到不相似的哈希码(汉明距离大)。

近似最近邻搜索 (Approximate Nearest Neighbor Search, ANNS)

在处理大规模数据集时,精确地找到最近邻 (Exact Nearest Neighbor) 的计算成本可能过高。近似最近邻搜索是一种退而求其次的策略,它允许在检索结果中存在一定程度的误差,以换取显著的效率提升。哈希就是 ANNS 的一种代表性策略,因为它通过汉明距离的计算近似了欧氏距离等原始特征空间的相似度。

L2 范数 (L2-norm)

L2 范数,也称为欧几里得范数 (Euclidean norm),是一个向量的长度或大小。对于一个 nn 维向量 x=[x1,x2,,xn]\mathbf{x} = [x_1, x_2, \dots, x_n],其 L2 范数定义为: x2=i=1nxi2 ||\mathbf{x}||_2 = \sqrt{\sum_{i=1}^n x_i^2} 在本文中,L2 范数主要用于特征向量的归一化 (normalization),将向量的长度缩放到 1。归一化后的向量,其点积 (dot product) 等价于余弦相似度 (cosine similarity),这有助于消除特征向量长度对相似度计算的影响,使比较更加关注方向而非大小。

Softmax 交叉熵损失 (Softmax Cross-Entropy Loss, CE)

Softmax 交叉熵损失是多分类任务中最常用的损失函数之一。它结合了 Softmax 激活函数和交叉熵损失。

  • Softmax 函数: 将模型的原始输出(称为 logits)转换为表示每个类别概率分布的向量。对于一个 KK 类分类问题,Softmax 函数将 KK 维的 logit 向量 z=[z1,z2,,zK]\mathbf{z} = [z_1, z_2, \dots, z_K] 转换为概率向量 p=[p1,p2,,pK]\mathbf{p} = [p_1, p_2, \dots, p_K],其中: pj=ezjk=1Kezk p_j = \frac{e^{z_j}}{\sum_{k=1}^K e^{z_k}} pjp_j 表示样本属于第 jj 类的预测概率。
  • 交叉熵损失: 衡量预测概率分布与真实标签分布之间的差异。对于一个样本,其真实标签为 yy(通常表示为一个独热编码 (one-hot encoding) 向量),预测概率分布为 p\mathbf{p},交叉熵损失定义为: CE(y,p)=j=1Kyjlog(pj) \mathrm{CE}(\mathbf{y}, \mathbf{p}) = - \sum_{j=1}^K y_j \log(p_j) 其中 yjy_j 是真实标签向量中第 jj 个元素的值(对于独热编码,只有真实类别的 yjy_j 为 1,其余为 0)。该损失函数旨在最大化正确类别的预测概率。

知识蒸馏 (Knowledge Distillation)

知识蒸馏是一种模型训练技术,其中一个预训练的“教师模型 (teacher model)”(通常是一个大型、复杂的模型或模型集合)将其学到的知识“传授”给一个“学生模型 (student model)”(通常是一个小型、简单的模型)。这种传授通常通过让学生模型去模仿教师模型的软目标 (soft targets)(即教师模型的 Softmax 输出概率分布,而非硬标签)来实现。这使得学生模型能够学到教师模型捕获的更多泛化能力,即使它参数量更少。在本文中,跨层信息传递模块利用了类似知识蒸馏的思想,用多个网络层输出的集成结果来指导目标层的学习。

残差网络 (ResNet)

残差网络 (Residual Network, ResNet) 是由 Kaiming He 等人于 2015 年提出的深度卷积神经网络。其核心创新是引入了“残差块 (residual block)”或“跳跃连接 (skip connection)”,允许信息跳过一个或多个层直接传递。这种设计有效解决了深度神经网络训练中的梯度消失 (vanishing gradient) 和退化 (degradation) 问题,使得训练数百甚至数千层的深度网络成为可能。ResNet 系列模型(如 ResNet-18, ResNet-50)因其优异的性能和泛化能力,被广泛用作各种计算机视觉任务的主干网络 (backbone network),用于提取图像特征。

平均精度 (Mean Average Precision, MAP)

平均精度 (MAP) 是在信息检索和目标检测等任务中常用的评估指标,尤其适用于评估排序任务。

  • 精度 (Precision): 在检索到的结果中,相关文档的比例。
  • 召回率 (Recall): 所有相关文档中,被检索到的比例。
  • 平均精度 (Average Precision, AP): 对于单个查询,AP 是在不同召回率阈值下,精度的加权平均值。通常计算为 PR 曲线下方的面积。 AP=k=1NP(k)Δr(k) \mathrm{AP} = \sum_{k=1}^N P(k) \Delta r(k) 其中 NN 是检索结果的总数,P(k) 是在检索到第 kk 个结果时的精度,Δr(k) \Delta r(k) 是从第 k-1 个结果到第 kk 个结果时召回率的变化量。
  • 平均平均精度 (Mean Average Precision, MAP): 是所有查询的 AP 的平均值。 MAP=1Qq=1QAP(q) \mathrm{MAP} = \frac{1}{|Q|} \sum_{q=1}^{|Q|} \mathrm{AP}(q) 其中 Q|Q| 是查询的总数,AP(q)\mathrm{AP}(q) 是第 qq 个查询的平均精度。MAP 值越高,表示检索系统的性能越好。在本文中,MAP@all 表示在考虑所有检索结果的情况下计算的 MAP。

3.2. 前人工作与技术演进

细粒度图像检索领域的研究经历了从关注高精度实值向量到平衡精度与效率的哈希方法的演进。

早期实值向量方法

早期的细粒度图像检索方法(如 SCDA [20], CRL [29], DGCRL [30], MPFE [2], KAE-Net [16])主要关注如何通过提取更具判别力的实值特征向量 (real-valued vectors) 来提高检索精度。这些方法通常设计复杂的特征提取网络,利用多尺度特征、局部特征、注意力机制等来捕获细微的视觉差异。尽管它们在精度上取得了显著进展,但由于需要存储和比较高维实值向量,在大规模数据集上的检索效率往往不高。

哈希基细粒度图像检索的兴起

随着数据规模的爆炸式增长,对检索效率的需求变得日益迫切。哈希被引入细粒度图像检索任务,以在精度和效率之间取得平衡。

  • 开创性工作: FPH [26] 和 DSaH [11] 是最早将哈希引入细粒度图像检索的方法。

    • FPH (Feature Pyramid Hashing): 提出了一种双金字塔哈希架构,从多个网络层捕获细微差异。
    • DSaH (Deep Saliency Hashing): 设计了一个额外的注意力网络来发现显著图像区域。 这两项工作都将主要精力放在提取更全面的细粒度特征向量上,这一基本思想也被后续方法沿用。
  • 基于注意力与区域的方法: 许多后续方法继续深挖如何更有效地提取细粒度特征:

    • ExchNet [4]: 首先利用注意力机制定位多个区域,然后通过交换操作 (exchanging operation) 对不同图像的局部特征向量进行对齐。
    • A2^2-Net [21]: 采用类似的定位模块,并尝试学习高层属性向量 (attribute vectors) 来生成哈希码。其改进版 A2\mathrm{A^2}-Net++^{++} [23] 进一步增强了模型的自洽性。
    • sRLH [24] (Sub-Region Localized Hashing): 提出子区域定位模块,用于定位非重叠子区域的峰值,以捕获多样化的局部信息。
    • FISH [3] (Fine-grained Hashing with Double Filtering) 和 FCAENet [28] (Feature Consistency Driven Attention Erasing Network): 都采用了基于注意力的擦除策略 (attention-based erasing strategy) 来强制模型关注图像的不同部分。FISH 进一步引入了特征细化模块 (feature refinement module),而 FCAENet 则添加了增强空间关系损失 (enhancing space relation loss)。
    • SEMICON [18]: 提出了一种抑制-增强掩码 (suppression-enhancing mask) 来探索发现区域之间的关系。
    • CNET [27]: 设计了一个级联网络 (cascaded network) 和注意力引导的数据增强策略 (attention-guided data augmentation strategy),并引入了一种平衡多任务损失的新方法。
    • AGMH [13] (Attributes Grouping and Mining Hashing): 提出注意力分散损失 (attention dispersion loss) 和逐步交互式外部注意力模块 (step-wise interactive external attention module),以分组和嵌入多描述符中的类别特定视觉属性,实现全面的特征表示。
  • 其他方法:

    • DLTH [12] (Deep Listwise Triplet Hashing): 设计了一种新颖的列表式三元组损失函数 (list-wise triplet loss function) 来捕获相对相似性,而非直接优化特征提取。

      可以看到,尽管方法众多,但绝大多数研究的核心思路依然是优化细粒度特征提取,以期生成更具判别力的哈希码。

3.3. 差异化分析

本文提出的 CMBH 方法与上述现有工作存在根本性的区别。

  • 传统方法的局限性: 几乎所有现有的哈希基细粒度图像检索方法都致力于通过设计更复杂的网络结构和特征提取模块来获取更强大的细粒度特征,然后将这些特征直接或间接映射到哈希码。这种做法在抽象信息量大的粗粒度任务中表现良好,但在细粒度任务中,面对低维哈希码的信息嵌入瓶颈和复杂模型带来的效率问题,就显得力不从心了。它们忽略了本文指出的“特征学习矛盾”和“效率矛盾”。
  • CMBH 的创新点:
    1. 特性匹配而非直接映射: CMBH 不再尝试将全部细粒度特征嵌入到哈希码中,而是提出了一种“特性匹配”的思路。它不是直接描述样本本身,而是描述样本与一组预定义的“关键特性向量 (C-vectors)”之间的匹配程度。这种抽象层面的表示可以极大地压缩信息量,同时保留细粒度类别间的关键判别信息,从而缓解了特征学习矛盾

    2. 训练与推理的分离: 为了优化这些特性向量并使其具备强大的判别力,CMBH 在训练阶段引入了复杂的跨层语义信息传递模块和多区域特征嵌入模块。这些模块负责学习和优化 C-vectors。然而,在推理阶段 (inference phase),这些复杂的模块被完全移除,仅保留特征提取主干网络和简化的 C-vector 匹配及哈希码生成过程。这保证了推理的高效率,从而解决了效率矛盾

    3. 更符合人类认知: 作者类比人类在快速判断样本相似性时,往往是寻找其是否具备某些关键特性,而非事无巨细地检查每一个细节。CMBH 的设计思路与此类似,使其在概念上更具合理性。

      简而言之,CMBH 的核心在于改变了哈希码的生成逻辑,从“全面描述样本”转变为“抽象匹配关键特性”,并巧妙地将复杂性从推理阶段转移到训练阶段,从而在细粒度哈希检索的有效性和效率之间实现了更好的平衡。


4. 方法论

本节将详细阐述本文提出的基于特性匹配的哈希码生成方法(CMBH)。该方法的核心思想是将图像表示为与预定义特性向量 (C-vectors) 的匹配分数,并利用这些分数生成哈希码。为了优化 C-vectors,确保它们能有效描述细粒度类别,作者还设计了两个辅助模块:跨层语义信息传递模块和多区域特征嵌入模块。

4.1. 方法原理

CMBH 的基本原理是,对于细粒度图像检索任务,哈希码不需要详尽地描述图像的所有细节,而只需要有效地捕获区分不同细粒度类别的“关键特性”。这些关键特性可以被抽象为特性向量 (C-vectors)。当一张图像输入时,模型计算该图像的特征向量与这些 C-vectors 的匹配分数。这些匹配分数构成的向量被视为图像的一种抽象表示,然后通过一个映射层将其转换为二值哈希码。

这种方法的优势在于:

  1. 信息压缩: 匹配分数将复杂的细粒度特征信息压缩成与预设特性相关的抽象表示,降低了哈希码的信息承载压力。
  2. 解耦复杂性: 复杂的特征学习和 C-vectors 优化过程仅在训练阶段发生。一旦 C-vectors 训练完成,推理阶段的计算流程将非常简洁,仅涉及基础特征提取和匹配计算,从而保证了效率。

4.2. 核心方法详解

4.2.1. 框架与符号 (Framework and Notations)

整个方法的框架如图 1 所示。它主要包括一个哈希码生成主组件(包含一个用于特征提取的主干网络 (backbone network))和两个辅助模块(跨层语义信息传递模块和多区域特征嵌入模块),这两个辅助模块仅在训练阶段起作用。

在接下来的部分中,我们将使用以下符号:

  • Ii{I1,,In}\mathbf{I}_i \in \{ \mathbf{I}_1, \ldots, \mathbf{I}_n \}:表示原始像素输入图像,其中 nn 是训练样本的总数。

  • N()N(\cdot):表示主干网络(例如 ResNet)。

  • 特征提取过程简化为: {Fijj{1,,L}}=N(Ia) \{ \mathbf { F } _ { i } ^ { j } | j \in \{ 1 , \dots , L \} \} = N ( \mathbf { I } _ { a } ) 其中,FijRcj×wj×hj\mathbf{F}_i^j \in \mathbb{R}^{c_j \times w_j \times h_j}主干网络jj 个阶段(从上到下)的输出特征图 (feature map)。LL主干网络中用于特征提取的阶段总数。

  • 为了后续处理,特征图 Fij\mathbf{F}_i^j 会被进一步转换为向量: fij=Nsubj(Fij)Rd \mathbf { f } _ { i } ^ { j } = N _ { s u b - j } ( \mathbf { F } _ { i } ^ { j } ) \in \mathbb { R } ^ { d } 其中,每个 Nsubj()N_{sub-j}(\cdot) 是一个子网络,包含两个卷积层、一个全局最大池化层 (global max pooling layer) 和一个全连接层 (fully connected layer),用于将特征图转换为维度为 dd 的特征向量。

  • bi{1,1}b\mathbf{b}_i \in \{ -1, 1 \}^b:表示图像 Ii\mathbf{I}_i 经过学习得到的 bb 比特二值哈希码。

  • yi{0,1}y\mathbf{y}_i \in \{ 0, 1 \}^y:表示图像 Ii\mathbf{I}_i 的独热编码 (one-hot) 标签向量,其中 yy 是类别的数量。

  • CRy×k×d\mathbf{C} \in \mathbb{R}^{y \times k \times d}:预定义的特性向量 (C-vectors)kk 是每个类别预设的关键特性 (critical characteristics) 的数量。C\mathbf{C} 随机初始化,并在训练过程中进行优化。

    该图像是一个示意图,展示了基于特征匹配的哈希码生成方法及其在细粒度图像检索中的应用。图中展示了多层特征提取、特征区域定位和语义信息传递模块的设计,包含了 \(M_i i ext{R}^{p imes k imes d}\) 及 \(b_i\) 等符号。 该图像是一个示意图,展示了基于特征匹配的哈希码生成方法及其在细粒度图像检索中的应用。图中展示了多层特征提取、特征区域定位和语义信息传递模块的设计,包含了 MiiextRpimeskimesdM_i i ext{R}^{p imes k imes d}bib_i 等符号。

以下是原文 Figure 1 的内容,展示了本文方法的整体框架: 描述: 该图像是一个示意图,展示了基于特征匹配的哈希码生成方法及其在细粒度图像检索中的应用。图中展示了多层特征提取、特征区域定位和语义信息传递模块的设计,包含了 MiRy×kM_i \in \mathbb{R}^{y \times k}bi\mathbf{b}_i 等符号。该框架分为训练阶段(Training Phase)和推理阶段(Inference Phase)。

  • Training Phase: 包含主干网络(Backbone Network)、特征提取(Feature Extraction)、特性向量匹配与哈希码学习(C-vectors Matching and Hash Codes Learning)、跨层语义信息传递模块(Cross-layer Semantic Information Transfer Module)和多区域特征嵌入模块(Multi-region Feature Embedding Module)。其中,跨层和多区域模块通过损失函数优化特性向量 C\mathbf{C}
  • Inference Phase: 仅保留主干网络、特征提取和特性向量匹配与哈希码生成的核心路径,确保推理效率。

4.2.2. C-向量匹配与哈希码学习 (C-vectors Matching and Hash Codes Learning)

本文的核心思想是利用 C-vectors 与图像特征向量之间的匹配分数来压缩信息,以便嵌入到哈希码中。

  • 匹配分数计算: 给定输入图像 Ii\mathbf{I}_i 和其从第 ll 个网络层提取的特征向量 fil\mathbf{f}_i^l (其中 l{1,,L}l \in \{1, \ldots, L\} 是一个选定的层),匹配分数矩阵 MiRy×k\mathbf{M}_i \in \mathbb{R}^{y \times k} 的每个元素 Mi,(a,b)\mathbf{M}_{i, (a, b)}(表示图像 ii 与第 aa 类别的第 bb 个特性向量的匹配分数)计算如下: Mi,(a,b)=((Ca,b,Ca,b,2)filfil2) \mathbf { M } _ { i , ( a , b ) } = \bigg ( \bigg ( \frac { \mathbf { C } _ { a , b , * } } { | | \mathbf { C } _ { a , b , * } | | _ { 2 } } \bigg ) ^ { \top } \frac { \mathbf { f } _ { i } ^ { l } } { | | \mathbf { f } _ { i } ^ { l } | | _ { 2 } } \bigg ) 其中:

    • Ca,b,\mathbf{C}_{a,b,*}:表示类别 aa 的第 bb 个特性向量(维度为 dd)。
    • 2||\cdot||_2:表示 L2 范数,用于将向量进行L2 归一化 (L2 normalization),使其长度为 1。
    • ()()^\top:表示向量转置。
    • 通过 L2 归一化后计算点积,实际上计算的是余弦相似度 (cosine similarity),衡量了特性向量和图像特征向量之间的方向相似性。
  • 哈希码生成: 学习得到的哈希码 bi\mathbf{b}_i 可以通过一个映射层 Nhash()N_{hash}(\cdot) 从匹配分数矩阵 Mi\mathbf{M}_i 获得: bi=Nhash(Mi)=sign(Wh(vec(Mi))) \mathbf { b } _ { i } = N _ { h a s h } ( \mathbf { M } _ { i } ) = \mathrm { s i g n } ( \mathbf { W } _ { h } ( \mathrm { v e c } ( \mathbf { M } _ { i } ) ) ) 其中:

    • sign()\mathrm{sign}(\cdot):是一个逐元素的符号函数,将正值映射为 1,负值映射为 -1,从而生成二值哈希码。
    • WhRb×(yk)\mathbf{W}_h \in \mathbb{R}^{b \times (yk)}:是哈希码映射矩阵,将匹配分数向量映射到 bb 维哈希码空间。
    • vec()\mathrm{vec}(\cdot):是一个简单的函数,将矩阵 MiRy×k\mathbf{M}_i \in \mathbb{R}^{y \times k} 重塑 (reshape) 为一个一维向量,其维度为 yk
  • 哈希码损失函数: 为了学习有效的哈希码,本文采用了一个简单的损失函数,结合了成对相似性保持 (pair-wise similarity preservation)代理相似性保持 (proxy-based similarity preservation)Lhash=Lhashpair+Lhashproxy { \cal L } _ { h a s h } = { \cal L } _ { h a s h - p a i r } + { \cal L } _ { h a s h - p r o x y } 对于第 tt 个训练周期 (epoch),具体的损失函数定义如下:

    • 成对损失 (Pair-wise Loss) Lhashpair\mathcal{L}_{hash-pair} 确保同一类别的样本哈希码相似,不同类别的样本哈希码不相似。 Lhashpair=1nni=1nj=1n(ui(t)Tbj(t1)bSi,jp)2 { \cal { L } } _ { h a s h - p a i r } = \frac { 1 } { n n } { \sum _ { i = 1 } ^ { n } \sum _ { j = 1 } ^ { n } ( { \bf { u } } _ { i } ^ { ( t ) } { } ^ { \mathsf { T } } { \bf { b } } _ { j } ^ { ( t - 1 ) } - b { \bf { S } } _ { i , j } ^ { p } ) ^ { 2 } } 其中:

      • ui(t)\mathbf{u}_i^{(t)}:是 bi(t)\mathbf{b}_i^{(t)} 的松弛 (relaxed) 版本,通过将 Eq. (4) 中的 sign\mathrm{sign} 操作替换为 tanh\tanh 函数获得(tanh\tanh 是一个平滑的近似函数,便于梯度反向传播)。
      • bj(t1)\mathbf{b}_j^{(t-1)}:是第 jj 个样本在第 t-1 个训练周期中生成的哈希码(或其松弛版本)。
      • bb:哈希码的位数。
      • Sp{1,0}n×n\mathbf{S}^p \in \{1, 0\}^{n \times n}:是一个相似性矩阵。
        • 初始定义:如果图像 iijj 属于同一类别,Si,jp=1\mathbf{S}_{i,j}^p = 1;否则为 0。
        • 调整后:为了平衡正负样本,矩阵中所有 0 的值会被替换为 (Sp/(1Sp))-(\sum \mathbf{S}^p / \sum (1 - \mathbf{S}^p))。这使得不相似对的惩罚能够与相似对的惩罚在量级上保持一致。
    • 代理损失 (Proxy-based Loss) LhashproxyL_{hash-proxy} 确保样本的哈希码与其所属类别的代理(即该类别所有样本哈希码的平均值)相似。 Lhashproxy=1nyi=1nj=1y(ui(t)Tcj(t1)bSi,jc)2 L _ { h a s h - p r o x y } = \frac { 1 } { n y } { \sum _ { i = 1 } ^ { n } \sum _ { j = 1 } ^ { y } ( \mathbf { u } _ { i } ^ { ( t ) } } ^ { \mathsf { T } } \mathbf { c } _ { j } ^ { ( t - 1 ) } - b \mathbf { S } _ { i , j } ^ { c } ) ^ { 2 } 其中:

      • cj(t1)\mathbf{c}_j^{(t-1)}:是属于第 jj 类别的 u(t1)\mathbf{u}^{(t-1)} 的平均值,可以看作该类别的哈希代理。
      • Sc{1,0}n×y\mathbf{S}^c \in \{1, 0\}^{n \times y}:是另一个相似性矩阵。
        • 初始定义:如果图像 ii 属于第 jj 类别,Si,jc=1\mathbf{S}_{i,j}^c = 1;否则为 0。

        • 调整后:所有 0 的值会被替换为 (Sc/(1Sc))-(\sum \mathbf{S}^c / \sum (1 - \mathbf{S}^c))

          在训练开始时,cj(t1)\mathbf{c}_j^{(t-1)}bj(t1)\mathbf{b}_j^{(t-1)} 可以随机初始化。

4.2.3. C-向量训练与优化 (C-vectors Training and Optimization)

为了使上述哈希码生成框架有效工作,C-vectors 必须能够充分描述细粒度类别。本节将介绍如何通过跨层和多区域学习来训练和优化 C-vectors。这些辅助模块仅在训练阶段使用,推理阶段不引入额外计算成本和参数。

跨层语义信息传递模块 (Cross-layer semantic information transfer module)

从多个网络层集成不同粒度的信息是增强特征向量对细粒度类别描述能力的有效方法。然而,传统的级联 (cascading) 策略会引入更多参数和计算成本,并导致高维向量,这对于哈希方法而言并不合理。因此,本文的目标是将多层信息集成到 C-vectors 中,使其作为信息传递的媒介,最终只使用单层输出 fil\mathbf{f}_i^l 生成哈希码。信息传递过程包括两个组件:

  1. 基于早期融合策略 (Early Fusion Strategy) 的信息传递: 首先,通过拼接 (concatenate) 不同层的特征向量来获得统一的跨层特征表示 fi0\mathbf{f}_i^0fi0=Ncon(concat(fi1;;fiL))Rd \mathbf { f } _ { i } ^ { 0 } = N _ { c o n } ( \mathrm { c o n c a t } ( \mathbf { f } _ { i } ^ { 1 } ; \cdot \cdot \cdot ; \mathbf { f } _ { i } ^ { L } ) ) \in \mathbb { R } ^ { d } 其中,NconN_{con} 是一个映射层,包含一个全连接层,用于统一特征维度到 dd。 然后,fi0\mathbf{f}_i^0 也用于计算一个匹配分数矩阵 Micon\mathbf{M}_i^{con}Mi,(a,b)con=((Ca,b,Ca,b,2)fi0fi02) \mathbf { M } _ { i , ( a , b ) } ^ { c o n } = \Big ( \Big ( \frac { \mathbf { C } _ { a , b , * } } { | | \mathbf { C } _ { a , b , * } | | _ { 2 } } \Big ) ^ { \top } \frac { \mathbf { f } _ { i } ^ { 0 } } { | | \mathbf { f } _ { i } ^ { 0 } | | _ { 2 } } \Big ) 通过联合优化 Eq. (3) 和 Eq. (9),集成的信息可以嵌入到 C-vectors 中,使 C-vectors 成为信息传递的媒介。 由于 Micon\mathbf{M}_i^{con} 不直接参与哈希码学习,为了训练,采用分类损失 (classification losses) 来确保这些匹配分数矩阵在语义层面也是一致的: Lcls=i=1nj=0LCE(y^ij,yi) L _ { c l s } = \sum _ { i = 1 } ^ { n } \sum _ { j = 0 } ^ { L } \mathrm { C E } ( \hat { \mathbf { y } } _ { i } ^ { j } , \mathbf { y } _ { i } ) 其中:

    • CE\mathrm{CE} 是标准的 Softmax 交叉熵损失。
    • y^ij\hat{\mathbf{y}}_i^j 是从不同层生成的类别向量。具体地:
      • y^i0=αj=1kMi,(,j)con\hat{\mathbf{y}}_i^0 = \alpha \sum_{j=1}^k \mathbf{M}_{i, (*, j)}^{con}:从早期融合的匹配分数矩阵 Micon\mathbf{M}_i^{con} 聚合得到(对 kk 个特性向量的匹配分数求和)。
      • y^il=αj=1kMi,(,j)\hat{\mathbf{y}}_i^l = \alpha \sum_{j=1}^k \mathbf{M}_{i, (*, j)}:从用于哈希码生成的匹配分数矩阵 Mi\mathbf{M}_i 聚合得到。
      • α\alpha:是一个超参数,大于 1,用于放大梯度并加速训练过程。
      • 对于 j{1,,L}j \in \{1, \ldots, L\}jlj \neq l 的层,y^ij=Nclsj(fij)\hat{\mathbf{y}}_i^j = N_{cls-j}(\mathbf{f}_i^j),其中 Nclsj()N_{cls-j}(\cdot) 是一个单层分类层。这些额外的分类层和损失旨在改进特征学习。
  2. 基于后期融合策略 (Later Fusion Strategy) 的信息传递: 根据上述分类向量,多层分类结果的集成通常优于任何单一层的分类结果。受知识蒸馏 (Knowledge Distillation) 思想的启发,设计了以下跨层信息传递损失 (cross-layer information transfer loss),用于监督输出层 ll 的训练,使其融合多层的结果: Ltrans=i=1n(softmax(j=0Ly^ij)Tlog(softmax(y^il))) L _ { t r a n s } = - \sum _ { i = 1 } ^ { n } \Bigl ( \mathrm { s o f t m a x } ( \sum _ { j = 0 } ^ { L } \hat { \mathbf { y } } _ { i } ^ { j } ) ^ { \mathsf { T } } \mathrm { l o g } ( \mathrm { s o f t m a x } ( \hat { \mathbf { y } } _ { i } ^ { l } ) ) \Bigr ) 该损失函数的目标是让第 ll 层的预测(学生)尽可能地接近所有层预测的集成(教师)的软目标分布。这有效地将来自所有层的语义信息“蒸馏”到第 ll 层。

    此外,为了进一步减少关键信息在映射到哈希码过程中的潜在损失(尤其是对于较短的哈希码),本节中获得的语义保持信息可以用于强化哈希码映射中 C-vectors 的相应权重。因此,Eq. (4) 被修改为: bi=sign(Wh(vec(exp(y^il)j=1yexp(y^i,jl)Mi))) \mathbf { b } _ { i } = \mathrm { s i g n } \Big ( \mathbf { W } _ { h } \big ( \mathrm { v e c } \big ( \frac { \exp \big ( \hat { \mathbf { y } } _ { i } ^ { l } \big ) } { \sum _ { j = 1 } ^ { y } \exp \big ( \hat { \mathbf { y } } _ { i , j } ^ { l } \big ) } \odot \mathbf { M } _ { i } \big ) \big ) \Big ) 其中:

    • \odot 表示带广播操作的逐元素乘法 (element-wise multiplication with broadcasting operation)。
    • 分数项 exp(y^il)j=1yexp(y^i,jl)\frac { \exp \big ( \hat { \mathbf { y } } _ { i } ^ { l } \big ) } { \sum _ { j = 1 } ^ { y } \exp \big ( \hat { \mathbf { y } } _ { i , j } ^ { l } \big ) } 实际上是 softmax(y^il)\mathrm{softmax}(\hat{\mathbf{y}}_i^l),它为匹配分数矩阵 Mi\mathbf{M}_i 提供了类别相关的权重。这意味着对当前图像属于某个类别的可能性越大,该类别的特性向量匹配分数在哈希码生成中的影响就越大。

多区域特征嵌入模块 (Multi-region feature embedding module)

理想的 C-vectors 应该能够充分描述细粒度类别的独特特性,并保持 C-vectors 之间的独特性 (distinctiveness)。为了实现这一目标,本文通过从输入图像的不同区域提取特征并将其与特定的 C-vectors 关联起来,从而嵌入多区域信息。

尽管存在许多多区域特征提取技术,但为了避免引入额外的可训练模块和损失,本文设计了一个独立的无参数算法 (parameter-free algorithm) 来定位关键图像区域。

  • 特征图准备: 所有在 Eq. (1) 中生成的特征图首先被调整到与最后一个阶段特征图相同的空间尺寸。即,{FijRcj×wL×hLj{1,,L}}\{ \overline{\mathbf{F}}_i^j \in \mathbb{R}^{c_j \times w_L \times h_L} | j \in \{1, \dots, L\} \}。然后,将通道维度上求平均的特征图 AiRwL×hL\mathbf{A}_i \in \mathbb{R}^{w_L \times h_L} 作为输入,其中: Ai=1j=1Lcja=1j=1Lcjstack(Fi1;;FiL)(a,,) \mathbf { A } _ { i } = \frac { 1 } { \sum _ { j = 1 } ^ { L } c _ { j } } \sum _ { a = 1 } ^ { \sum _ { j = 1 } ^ { L } c _ { j } } \mathrm { s t a c k } ( \overline { { \mathbf { F } } } _ { i } ^ { 1 } ; \ldots ; \mathbf { F } _ { i } ^ { L } ) _ { ( a , * , * ) } 其中 stack()\mathrm{stack}(\cdot) 是一个通道维度的堆叠操作,将所有调整大小后的特征图在通道维度上堆叠起来。Ai\mathbf{A}_i 实际上是聚合了所有层特征图的激活热力图 (activation heatmap)。

  • 区域定位算法 (Algorithm 1): 根据 Algorithm 1,可以生成输入图像的 MM 个独特信息区域 (informative regions) 的边界框坐标。 以下是原文 Algorithm 1 的内容: Algorithm 1 Distinct critical image regions localization. Input: Feature map matrix $\mathbf { A } _ { i }$ , bounding box set $B = \varnothing$ . Output: Bounding box set $B$ . 1:for $m = 1$ to $M$ do 2: $a \gets$ The maximum value in $\mathbf { A } _ { i }$ ; 3: $\mathbf { H } _ { i } \gets$ Values greater than $a \cdot ( 0 . 9 - m \cdot 0 . 0 5 )$ in $\mathbf { A } _ { i }$ are 1, and other values are O; 4: $\bar { \mathbf { H } } _ { i } \gets$ Calculate the largest connected component of $\mathbf { H } _ { i }$ ; 5: $[ x _ { 1 } , y _ { 1 } , x _ { 2 } , y _ { 2 } ] \gets { \bf C }$ alculate the bounding box coordinates of $\bar { \bf { H } } _ { i }$ ; 6: $[ \hat { x } _ { 1 } , \hat { y } _ { 1 } , \hat { x } _ { 2 } , \hat { y } _ { 2 } ] \gets ($ Calculate the original image coordinates corresponding to `[ x _ { 1 } , y _ { 1 } , x _ { 2 } , y _ { 2 } ]` ; 7: $\mathbf { A } _ { i } \mathbf { A } _ { i } \cdot ( 1 - \mathbf { H } _ { i } ) + ( \mathbf { H } _ { i } \cdot a - \mathbf { H } _ { i } \cdot \mathbf { A } _ { i } )$ 8: $B B \cup \{ [ \hat { x } _ { 1 } , \hat { y } _ { 1 } , \hat { x } _ { 2 } , \hat { y } _ { 2 } ] \}$ ; 9end for 10: return Bounding box set $B$ . 算法步骤详解:

    1. 初始化: 输入是聚合的特征图 Ai\mathbf{A}_i,输出是边界框集合 BB

    2. 循环 MM 次: 每次循环找到一个关键区域。

    3. 寻找最大激活值: 找到当前特征图 Ai\mathbf{A}_i 中的最大值 aa

    4. 阈值化生成热力图: 根据一个动态阈值 a(0.9m0.05)a \cdot (0.9 - m \cdot 0.05),将 Ai\mathbf{A}_i 中大于该阈值的所有位置设为 1,其余设为 0,生成一个二值热力图 Hi\mathbf{H}_i。这个阈值会随着 mm 的增加而降低,以便在每次迭代中发现更不显著但仍重要的区域。

    5. 寻找最大连通分量:Hi\mathbf{H}_i 中找到最大的连通分量 Hˉi\bar{\mathbf{H}}_i。这有助于聚焦于最显著的激活区域。

    6. 计算边界框: 计算 Hˉi\bar{\mathbf{H}}_i 的最小外接矩形,得到特征图空间中的边界框坐标 [x1,y1,x2,y2][x_1, y_1, x_2, y_2]

    7. 映射到原图坐标: 将特征图空间中的边界框坐标映射到原始图像的坐标 [x^1,y^1,x^2,y^2][ \hat{x}_1, \hat{y}_1, \hat{x}_2, \hat{y}_2 ]

    8. 抑制已发现区域: 更新 Ai\mathbf{A}_i:将已发现区域的激活值降低。具体操作是,对 Hi\mathbf{H}_i 为 1 的区域,将其在 Ai\mathbf{A}_i 中的值设为 aa 减去其原始值,再乘以 Hi\mathbf{H}_i。或者更直观地理解,就是将已发现区域的激活值清零或显著降低,以防止在下一次迭代中再次被检测到。原公式为 AiAi(1Hi)+(HiaHiAi)\mathbf { A } _ { i } \leftarrow \mathbf { A } _ { i } \cdot ( 1 - \mathbf { H } _ { i } ) + ( \mathbf { H } _ { i } \cdot a - \mathbf { H } _ { i } \cdot \mathbf { A } _ { i } )。这实际上是将当前显著区域的激活值降权,以便后续迭代能发现其他次要区域。

    9. 添加边界框: 将新的边界框添加到集合 BB 中。

    10. 返回边界框集合。

      通过这个算法,可以从图像 Ii\mathbf{I}_i 中裁剪出 MM 个图像块 (patches) {Ii1,,IiM}\{ \mathbf{I}_i^1, \dots, \mathbf{I}_i^M \}。这些图像块再经过 Eq. (1)-(2) 的相同处理流程,生成对应的特征向量 {fim,jj{1,,L},m{1,,M}}\{ \mathbf{f}_i^{m,j} | j \in \{1, \ldots, L\}, m \in \{1, \ldots, M\} \},以及匹配分数 Mim\mathbf{M}_i^mMim,con\mathbf{M}_i^{m,con}(通过 Eq. (3), (8) 和 (9) 计算)。

  • 多区域损失: 为了确保 C-vectors 之间的独特性,这里使用 max\max 函数替换了 Eq. (10) 中对应的 \sum 函数来计算类别向量:

    • y^imˉ,0=αmax(Mim,con)\hat{\mathbf{y}}_i^{\bar{m},0} = \alpha \operatorname*{max}(\mathbf{M}_i^{m,con})
    • y^im,l=αmax(Mim)\hat{\mathbf{y}}_i^{m,l} = \alpha \operatorname*{max}(\mathbf{M}_i^m) 其中 max()\operatorname*{max}(\cdot) 是一个行级最大值操作 (row-wise max operation)。这意味着每个图像块的特征向量只与其最相似的 C-vector 相关联,从而促进 C-vectors 之间逐渐产生独特性。

    然后,遵循 Eq. (10) 和 Eq. (11) 中介绍的相同程序,可以得到与多区域特征嵌入相关的损失函数: Lregion=j=1M(Lclsj+Ltransj) L _ { r e g i o n } = \sum _ { j = 1 } ^ { M } ( L _ { c l s } ^ { j } + L _ { t r a n s } ^ { j } ) 其中 LclsjL_{cls}^jLtransjL_{trans}^j 是对第 jj 个图像块计算的分类损失和跨层信息传递损失。

4.2.4. 训练与推理 (Training and Inference)

  • 总损失函数: 整个方法可以通过基于批次 (batch-based) 的随机梯度下降 (Stochastic Gradient Descent, SGD) 和反向传播 (back-propagation) 算法进行端到端 (end-to-end) 训练,并由以下总损失函数进行监督: L=Lhash+Lcls+Ltrans+Lregion { \cal L } = { \cal L } _ { h a s h } + { \cal L } _ { c l s } + { \cal L } _ { t r a n s } + { \cal L } _ { r e g i o n } 其中,每个项已在 Eq. (5), (10), (11) 和 (14) 中分别介绍。

  • 推理过程: 训练完成后,给定一个查询图像 Iq\mathbf{I}_q,其对应的哈希码可以根据 Eq. (1) - (3) 和 Eq. (12) 获得。需要注意的是,在推理和测试过程中,不涉及跨层和多区域特征提取。这意味着推理阶段的计算路径非常简洁,仅包含主干网络的特征提取和 C-vectors 匹配以及哈希码生成,从而保证了所提出方法在测试时的检索效率。


5. 实验设置

本节详细介绍论文中用于评估 CMBH 方法的实验设置,包括使用的数据集、评估指标以及用于比较的基线方法。

5.1. 数据集

实验在五个广泛使用的细粒度数据集上进行。以下是这些数据集的详细信息和原文表格的转录。

以下是原文 Table 1 的结果:

Datasets Category Training Testing
CUB-200-2011 [19] 200 5,994 5,794
FGVC-Aircrafts [15] 100 6,667 3,333
Food101 [1] 101 75,750 25,250
NABirds [8] 555 23,929 24,633
VegFru [9] 292 29,200 116,931

数据集特点:

  • CUB-200-2011 [19] (Caltech-UCSD Birds-200-2011): 包含 200 种鸟类,是细粒度图像分类和检索的经典数据集。图像通常包含背景干扰,且鸟类姿态多样。

  • FGVC-Aircrafts [15] (Fine-Grained Visual Classification of Aircrafts): 包含 100 种飞机型号,图像背景相对干净,但飞机型号间的视觉差异细微。

  • Food101 [1]: 包含 101 种食物类别,图片风格多样,食物之间可能存在高度相似性,对细粒度识别提出挑战。

  • NABirds [8]: 比 CUB-200-2011 规模更大的鸟类数据集,包含 555 种鸟类,具有更高的类别数量和图像多样性。

  • VegFru [9]: 包含 292 种蔬菜和水果,同样具有高类别数量和类内差异大、类间差异小的特点。

    选择这些数据集是为了全面评估方法在不同细粒度类别数量、图像复杂度以及数据规模下的性能。它们都是细粒度视觉分类和检索领域广泛使用的基准数据集。

5.2. 评估指标

所有模型的性能都通过最广泛采用的平均精度 (Mean Average Precision, MAP@all) 进行评估。

平均精度 (Mean Average Precision, MAP@all)

  1. 概念定义: MAP 是一种衡量信息检索系统性能的指标,特别适用于评估基于排名的检索任务。它结合了精度 (Precision) 和召回率 (Recall),反映了在所有检索结果中,相关项目被检索到的平均质量和顺序。MAP@all 表示在考虑所有可能的检索结果(即不设定检索数量上限)的情况下计算的平均精度。对于细粒度图像检索,MAP 越高,表示模型能够将更多与查询图像属于同一细粒度类别的图像排在检索列表的前面。

  2. 数学公式: 对于单个查询 qq,其平均精度 (Average Precision, AP) 定义为: AP(q)=k=1NqP(k)Δr(k) \mathrm{AP}(q) = \sum_{k=1}^{N_q} P(k) \cdot \Delta r(k) 其中:

    • NqN_q:是查询 qq 的所有相关图像总数。

    • kk:是检索列表中的排名。

    • P(k):是检索到第 kk 个图像时的精度。如果第 kk 个图像是相关图像,则 P(k)=检索到的相关图像数量检索到的图像总数P(k) = \frac{\text{检索到的相关图像数量}}{\text{检索到的图像总数}};如果第 kk 个图像不相关,则 P(k) 为 0。

    • Δr(k)\Delta r(k):是召回率从第 k-1 个相关图像到第 kk 个相关图像的变化量。通常,Δr(k)=1总相关图像数\Delta r(k) = \frac{1}{\text{总相关图像数}} 如果第 kk 个位置是相关项,否则为 0。

      则 MAP 是所有查询的 AP 的平均值: MAP=1Qq=1QAP(q) \mathrm{MAP} = \frac{1}{|Q|} \sum_{q=1}^{|Q|} \mathrm{AP}(q) 其中:

    • Q|Q|:是查询图像的总数。

  3. 符号解释:

    • AP(q)\mathrm{AP}(q):查询 qq 的平均精度。
    • NqN_q:与查询 qq 相关的总图像数量。
    • kk: 检索列表中图像的排名。
    • P(k): 在检索到第 kk 个图像时的精度。
    • Δr(k)\Delta r(k): 检索列表中第 kk 个相关图像带来的召回率增量。
    • MAP\mathrm{MAP}: 所有查询的平均平均精度。
    • Q|Q|: 查询集合中的查询总数。

5.3. 对比基线

为了充分代表最先进的性能,论文将所提出的方法与近三年发表的几乎所有基于哈希的 FGIR 方法进行了比较。这些基线方法在 Sec. 2 中已作介绍,包括:

  • ExchNet [4]

  • A2^2-Net [21]

  • FCAENet [28]

  • SEMICON [18]

  • FISH [3]

  • A2^2-Net++^{++} [23]

  • AGMH [13]

  • CNET [27]

  • DLTH [12]

  • sRLH [24]

    这些基线方法代表了该领域不同的技术路线,包括基于注意力机制、多区域学习、跨层信息融合以及不同损失函数设计等,因此它们具有很强的代表性。

5.4. 实现细节

  • 主干网络 (Backbone Network): 实验中使用了 ResNet-50 和 ResNet-18(均不带最终的池化层和分类层)作为特征提取的主干网络。

  • 超参数 (Hyper-parameters):

    • 网络层选择: 使用主干网络的最后三个阶段 (L=3L=3) 进行特征提取(如 Eq. (1) 所述)。
    • 哈希码生成层: 仅使用倒数第二个阶段 (l=2l=2) 的输出用于哈希码生成(即 fil\mathbf{f}_i^l)。
    • 特性向量数量 kk 每个类别预设的关键特性数量 k=2k=2
    • 裁剪图像块数量 MM 经验性地设置为 4,用于全面提取图像不同区域的特征。
  • 数据预处理:

    • 输入图像直接使用原始像素值。
    • 所有图像首先被调整大小到 255×255255 \times 255
    • 训练时进行随机裁剪 (random crop) 到 224×224224 \times 224
    • 测试时进行中心裁剪 (center crop) 到 224×224224 \times 224
  • 优化器: 使用标准随机梯度下降 (Stochastic Gradient Descent, SGD) 优化器,动量 (momentum) 为 0.9,权重衰减 (weight decay) 为 5e-4。

  • 训练周期 (Epochs): 总训练周期设置为 100。

  • 学习率 (Learning Rate): 初始学习率为 0.001,在第 70 个周期时除以 10。

  • 批次大小 (Batch Size): 对于 CUB-200-2011 和 Aircrafts 数据集,批次大小为 16;对于其他三个大规模数据集,批次大小为 64,以加速训练。


6. 实验结果与分析

本节将详细解读论文的实验结果,包括与最先进方法的比较、消融研究以及超参数分析,以验证所提出方法的有效性和效率。

6.1. 核心结果分析

论文通过广泛的实验证明了 CMBH 方法在细粒度图像检索任务中,无论是在有效性(通过 MAP 衡量)还是效率(通过参数量和 FLOPs 衡量)方面,都显著优于现有最先进的方法。

6.1.1. 与最先进方法的 MAP 比较

以下是原文 Table 2 的结果,展示了基于 ResNet-50 主干网络,不同哈希码长度下的平均精度 (MAP)。

以下是原文 Table 2 的结果:

dataset bits MAP (%)
ExchNet A2-Net FCAENet SEMICON FISH A2-Net++ AGMH CNET Ours
CUB 12 25.14 33.83 34.76 37.76 76.77 37.83 56.42 77.10 84.07
24 58.98 61.01 67.67 65.41 79.93 71.73 77.44 82.11 85.79
32 67.74 71.61 73.85 72.61 80.09 78.39 81.95 83.09 86.21
48 71.05 77.33 80.14 79.67 80.88 82.71 83.69 83.92 86.47
Aircrafts 12 33.27 42.72 43.92 49.87 88.29 57.53 71.64 86.15 89.11
24 45.83 63.66 75.46 75.08 89.20 73.45 83.45 88.27 91.45
32 51.83 72.51 81.61 80.45 89.28 81.59 83.60 88.40 91.60
48 59.05 81.37 81.34 84.23 89.49 86.65 84.91 89.17 92.88
Food101 12 45.63 46.44 44.97 50.00 - 54.51 62.59 83.06 87.85
24 55.48 66.87 76.56 76.57 - 81.46 80.94 85.85 88.71
32 56.39 74.27 81.37 80.19 82.92 82.31 86.35 89.28
48 64.19 82.13 83.14 82.44 - 83.66 83.21 86.42 88.87
NABirds 12 5.22 8.20 12.56 8.12 - 8.80 - 68.42 74.42
24 15.69 19.15 23.90 19.44 - 22.65 75.73 81.04
32 21.94 24.41 31.58 28.26 29.79 - 77.11 81.64
48 34.81 35.64 49.74 41.15 - 42.94 - 78.81 82.07
Vegfru 12 23.55 25.52 21.76 30.32 79.17 30.54 43.99 81.63 84.37
24 35.93 44.73 50.36 58.45 85.33 60.56 68.05 86.41 88.63
32 48.27 52.75 67.46 69.92 85.43 73.38 76.73 86.80 88.46
48 69.30 69.77 79.76 79.77 85.51 82.80 84.49 87.75 89.06

分析: 从 Table 2 可以清楚地看到,CMBH 方法在所有五个数据集和所有哈希码长度(12, 24, 32, 48 比特)上都取得了最佳性能,显著优于所有基线方法。

  • 尤其是在短哈希码长度下: 例如,在 CUB-200-2011 数据集上,当哈希码长度为 12 比特时,CMBH 的 MAP 达到了 84.07%,远超排名第二的 CNET (77.10%) 和 FISH (76.77%)。在 Aircrafts 和 Food101 数据集上,12 比特时的优势也同样明显。这对于哈希方法至关重要,因为短哈希码能带来更高的检索效率和更低的存储成本。这一结果有力地支持了本文提出的特性匹配 (characteristics matching) 策略的有效性,即通过抽象关键特性来生成哈希码,能够更好地应对低维二值码的信息嵌入能力有限的问题。

  • 在大规模数据集上: 在 NABirds 和 VegFru 这样包含更多类别和更大数据量的数据集上,CMBH 依然保持了领先优势,例如在 NABirds 的 12 比特设置下,CMBH 达到了 74.42% 的 MAP,而第二名的 CNET 只有 68.42%。这表明该方法在大规模细粒度检索任务中具有良好的泛化性和鲁棒性。

    以下是原文 Table 3 的结果,展示了 CUB-200-2011 数据集上基于不同主干网络和哈希码长度的额外 MAP 结果。

以下是原文 Table 3 的结果:

Method Backbone 16bits 32bits 48bits 64bits
DLTH ResNet50 68.84 77.82 79.97 81.32
sRLH ResNet18 62.68 69.37 71.27 71.60
FISH ResNet18 76.03 77.14 78.06 78.34
AGMH ResNet18 59.68 76.71 80.73 81.43
Ours ResNet18 82.10 82.86 83.36 83.31

分析: Table 3 提供了在 CUB-200-2011 数据集上,针对不同主干网络(特别是 ResNet-18)和更多哈希码长度(16, 64 比特)的补充结果。

  • 同样,CMBH 在 ResNet-18 主干网络下,无论哈希码长度如何,都显著优于其他基线方法。这表明 CMBH 的优势不仅限于特定的主干网络或哈希码长度,而是具有普适性。
  • 特别是,当使用较小的 ResNet-18 主干网络时,CMBH 仍然能取得非常高的 MAP 值(例如 16 比特时达到 82.10%),这进一步证明了其在效率和有效性之间的良好平衡。

6.1.2. 参数量和计算成本对比

效率是哈希方法的核心目标。论文进一步比较了 CMBH 与其他基线方法的参数量和计算成本 (FLOPs)。

以下是原文 Table 5 的结果:

Method Backbone Params(M) Flops(G)
12 bits 24 bits 32 bits 48 bits 12 bits 24 bits 32 bits 48 bits
SEMICON ResNet50 42.3937 42.3691 42.4346 42.4676 7.0910 7.091 7.0911 7.0911
CNET ResNet50 41.1342 41.1797 41.2100 41.2706 9.3546 9.3546 9.3547 9.3547
FISH ResNet50 23.9202 23.9227 23.9243 23.9275 4.1321 4.1321 4.1321 4.1321
Ours ResNet50 14.3219 14.3267 14.3299 14.3363 4.3492 4.3492 4.3492 4.3492
FISH ResNet18 11.2815 11.2839 11.2855 11.2887 1.8236 1.8236 1.8236 1.8236
sRLH ResNet18 11.1827 11.1888 11.1929 11.2011 1.8235 1.8235 1.8235 1.8235
Ours ResNet18 4.2330 4.2378 4.2410 4.2474 1.6696 1.6696 1.6696 1.6696

分析:

  • 参数量 (Params(M)): 结合 Table 2 和 Table 5,可以发现 CMBH 在参数量方面具有显著优势。例如,在使用 ResNet-50 作为主干网络时,CMBH 的参数量仅为 14.3M 左右,远低于 SEMICON (42.3M) 和 CNET (41.1M),甚至低于 FISH (23.9M)。在使用 ResNet-18 时,CMBH 的参数量更是低至 4.2M 左右,而 FISH 和 sRLH 均在 11M 左右。更少的参数量意味着更小的模型体积和更快的加载速度。
  • 计算成本 (Flops(G)): 在计算成本方面,CMBH (ResNet-50: 4.3G FLOPs) 与 FISH (4.1G FLOPs) 相当,但显著低于 SEMICON (7.0G FLOPs) 和 CNET (9.3G FLOPs)。在使用 ResNet-18 时,CMBH (1.6G FLOPs) 略低于 FISH (1.8G FLOPs) 和 sRLH (1.8G FLOPs)。较低的 FLOPs 意味着在推理阶段更快的计算速度,这直接转化为更高的检索效率。

综合结论: 这些结果有力地证明了 CMBH 成功解决了“效率与有效性矛盾”。它不仅在检索精度上显著超越了所有最先进的方法,而且在推理阶段的参数量和计算成本上也更具优势(或至少保持竞争力)。这种优势尤其体现在短哈希码长度下,这对于实际应用中对效率有严格要求的场景至关重要。这归功于其独特的特性匹配策略,以及将复杂学习过程限制在训练阶段的设计。

6.2. 消融实验/参数分析

6.2.1. 消融实验

为了验证模型中每个模块的有效性和必要性,论文进行了消融实验。在 CUB-200-2011 数据集上,不同哈希码长度(12 到 48 比特)下的 MAP 结果总结在 Table 4 中。

以下是原文 Table 4 的结果:

B L T R 12bits 24bits 32bits 48bits
17.89 48.07 55.25 51.90
77.56 81.12 81.61 82.26
80.30 82.16 82.68 82.80
84.07 85.79 86.21 86.47

组件说明:

  • (B):表示基础的哈希码生成和训练过程 (Sec. 3.2)。
  • (L):表示基于多层语义信息集成的 C-向量优化 (Sec. 3.3.1 中除了跨层信息传递损失的部分)。
  • (T):表示由 Eq. (11) 监督的跨层信息传递模块 (Sec. 3.3.1 的知识蒸馏部分)。
  • (R):表示多区域特征嵌入模块 (Sec. 3.3.2)。

分析:

  • 基础模型 (B): 仅有基础哈希码生成过程时,性能非常低 (12 比特 MAP 仅为 17.89%)。这表明,特性匹配的核心思想虽然有潜力,但如果没有有效的 C-vectors 优化,其性能会受到严重限制。这强调了 C-vectors 必须能够充分、准确地描述细粒度类别。

  • 添加 (L): 当加入多层语义信息集成的 C-vectors 优化模块 (L) 后,性能显著提升 (12 比特 MAP 从 17.89% 跃升至 77.56%)。这说明通过整合多层信息来优化 C-vectors 极大地增强了它们对细粒度类别的描述能力。

  • 添加 (T): 在 (B)+(L) 的基础上,引入跨层信息传递模块 (T) 后,性能进一步提高 (12 比特 MAP 从 77.56% 提升至 80.30%)。这验证了知识蒸馏式的跨层信息传递策略能更有效地将多层集成信息指导到目标层的 C-vectors 学习中。

  • 添加 (R): 最终,加入多区域特征嵌入模块 (R) 后,模型达到最佳性能 (12 比特 MAP 达到 84.07%)。这表明多区域学习策略能够增强 C-vectors 捕捉局部细节的能力,并确保 C-vectors 之间的独特性,从而进一步提升了整体性能。

    结论: 消融实验结果清晰地展示了 CMBH 模型中每个组件的有效性和对最终性能的积极贡献。各个模块协同工作,共同提升了方法的性能。

6.2.2. 超参数分析

论文进一步分析了两个关键超参数对模型性能的影响:kk(每个类别的特性向量数量)和 α\alpha(梯度放大系数)。

Figure 2. Parameter analysis on the CUB-200-2011 dataset. 该图像是图表,展示了在CUB-200-2011数据集上不同参数下的平均精度(MAP)分析。左侧子图(a)显示了在不同kk值下的MAP变化,右侧子图(b)呈现了在不同α\alpha值下的MAP表现。图中使用不同颜色线条分别表示不同的位数:12位、24位、32位和48位,反映了各参数对检索效果的影响。

以下是原文 Figure 2 的内容,展示了在 CUB-200-2011 数据集上不同参数下的平均精度(MAP)分析。 描述: 该图像是图表,展示了在CUB-200-2011数据集上不同参数下的平均精度(MAP)分析。左侧子图(a)显示了在不同kk值下的MAP变化,右侧子图(b)呈现了在不同α\alpha值下的MAP表现。图中使用不同颜色线条分别表示不同的位数:12位、24位、32位和48位,反映了各参数对检索效果的影响。

参数 kk (每个类别的关键特性数量)

图 2a 展示了在 CUB-200-2011 数据集上,不同 kk 值对 MAP 性能的影响。

  • k=1k=1 vs. k>1k>1kk 大于 1 时,模型的性能普遍优于 k=1k=1,尤其是在哈希码长度较高时。这证明了使用多个 C-vectors 来描述每个细粒度类别内部的多样性是必要的。单一的 C-vector 难以完全捕捉一个类别内的所有关键细微特征。
  • 最佳 kk 值:k=2k=2k=4k=4 时,模型通常能取得较好的性能。
  • 过大的 kk 值: 随着 kk 进一步增大(例如 k=8k=8k=16k=16),性能反而可能下降。这可能是由于哈希码的有限信息表示能力,以及过多的 C-vectors 可能导致过拟合 (over-fitting) 问题,增加了模型的复杂性。
  • 关键发现: 值得注意的是,即使在 k=1k=1 的情况下,CMBH 的性能也已超越了大多数现有的 SOTA 基线方法(参考 Table 2, 3)。这再次强调了论文的核心观点:细粒度哈希的本质在于通过哈希码反映样本间的差异,而不是进行全面的细粒度特征提取和嵌入。即使每个类别只有一个抽象特性,只要这个特性被有效学习,也能取得优异的效果。

参数 α\alpha (梯度放大系数)

图 2b 展示了参数 α\alpha 对 MAP 性能的影响。在匹配分数矩阵的计算中,L2 归一化会减小其元素的绝对值,可能导致反向传播 (BP) 过程中的梯度收缩,影响模型训练。引入 α\alpha 是为了放大梯度。

  • α\alpha 的作用: 只要 α\alpha 达到一定大小,模型就能获得稳定的结果。
  • α\alpha 与哈希码长度: 相对较高的 α\alpha 值(例如 16、32)在较长哈希码(例如 32、48 比特)上表现稍好;而相对较低的 α\alpha 值(例如 4、8)在较短哈希码(例如 12 比特)上表现更优。这可能暗示了更大的 α\alpha 鼓励模型学习更多样化的特征并产生更大的梯度,而较长的哈希码可以封装更多信息。
  • 通用设置: 通常将 α\alpha 设置为 12 或 16 即可在各种数据集上获得相对稳定和有效的结果。
  • 未来工作: 论文指出,可以根据哈希码长度自适应地调整 α\alpha 值,以实现更普遍的性能提升,但这不是本文的重点。

6.3. 可视化分析 (未在原文提供,但可推断)

虽然原文未提供 C-vectors 或区域定位的可视化,但如果提供,将能进一步增强对方法理解:

  • 区域定位可视化: 展示算法 1 识别出的多个关键区域,可以直观地验证其是否能捕获到有判别力的局部信息。

  • C-vectors 可视化: 如果 C-vectors 能通过某种方式(如与图像区域的激活对应)进行可视化,将有助于理解不同 C-vectors 各自代表了哪些细粒度特征,以及它们如何区分不同的子类别。


7. 总结与思考

7.1. 结论总结

本文深入分析了细粒度图像检索 (FGIR) 中基于哈希方法存在的两个核心矛盾:特征学习矛盾(低维哈希码信息嵌入能力有限与细粒度描述所需详细信息之间的冲突)和效率矛盾(复杂特征提取模型与检索效率之间的冲突)。

为了解决这些问题,论文提出了一种新颖的基于特性匹配的哈希码生成 (CMBH) 方法。其核心思想是将图像表示为与预定义特性向量 (C-vectors) 的匹配分数,而非直接将详细特征映射到哈希码。这种策略将关注点从具体的样本描述转移到抽象的关键特性匹配,从而简化了哈希码所需嵌入的信息。

为了确保 C-vectors 的有效性和判别力,CMBH 在训练阶段引入了两个辅助模块:

  1. 跨层语义信息传递模块: 通过早期融合和后期融合策略,将来自网络不同层次的语义信息有效地集成到 C-vectors 中,并利用类似知识蒸馏的损失函数指导学习。

  2. 多区域特征嵌入模块: 采用一个无参数算法动态定位图像中的多个关键区域,并关联这些区域的特征与 C-vectors,从而增强 C-vectors 捕捉局部细节和保持独特性。

    最重要的是,这两个辅助模块仅在训练阶段运行,推理阶段仅保留简化的特性匹配和哈希码生成流程,从而极大地保证了检索效率。

在 CUB-200-2011、FGVC-Aircrafts 等五个广泛使用的数据集上进行的综合实验表明,CMBH 在不同哈希码长度下均显著超越了现有的最先进方法,尤其是在极短哈希码长度下表现突出。同时,CMBH 在推理阶段的参数量和计算成本也更低或与 SOTA 方法相当,成功地在有效性和效率之间取得了更好的平衡。

7.2. 局限性与未来工作

论文本身没有明确指出其方法的局限性,但可以从其设计中推断出一些潜在的考量:

  • C-vectors 的数量 kk 的选择: 尽管论文进行了超参数分析,但 kk 的最佳值仍需通过实验确定。对于新的数据集或更复杂的细粒度任务,如何自动或更鲁棒地确定 kk 仍是一个挑战。过多的 kk 可能导致过拟合或哈希码信息承载能力不足。

  • C-vectors 的可解释性: C-vectors 是抽象的特征表示,虽然它们被证明有效,但其具体代表的视觉意义可能不如直接的局部特征或属性特征直观。增强 C-vectors 的可解释性可能是未来的一个研究方向。

  • 动态阈值策略: 算法 1 中用于区域定位的阈值 a(0.9m0.05)a \cdot (0.9 - m \cdot 0.05) 是一个经验性设定。这种固定模式的动态阈值可能不是所有图像或所有细粒度任务的最佳选择,自适应的阈值策略可能更具鲁棒性。

    作者在论文中提到了未来工作的一个方向:

  • 自适应调整 α\alpha 值: 根据哈希码长度自适应地调整梯度放大系数 α\alpha 的值,以实现更普遍的性能改进。

7.3. 个人启发与批判

个人启发

  1. 核心矛盾的洞察力: 这篇论文最大的亮点在于其对细粒度哈希检索固有矛盾的深刻洞察。许多研究者可能盲目追求更复杂的特征提取,但忽视了哈希码的本质限制。CMBH 敢于跳出“直接映射”的传统思维,提出“特性匹配”的抽象化思路,这是非常宝贵且具有普适性的。这种将信息压缩为“匹配度”的思路,可能不仅适用于哈希,也能为其他需要高效、低维表示的任务提供新的视角。
  2. 训练与推理的解耦: 将复杂的特征学习和优化过程严格限制在训练阶段,而在推理阶段保持极简高效,这是非常优雅的设计。这种设计原则在许多工业级应用中都具有重要意义,因为它直接解决了部署时的效率瓶颈。
  3. 人类认知的类比: 论文将“特性匹配”类比为人类快速判断相似性的过程,这使得方法直观且易于理解。这种从人类智能中汲取灵感的做法,往往能产生更具鲁棒性和泛化能力的模型。
  4. C-vectors 的潜力: C-vectors 作为一种可学习的“关键特性”表示,其本身就是一种紧凑且具有判别力的知识表示。未来的工作可以探索 C-vectors 在除了哈希之外的其他应用,例如作为知识蒸馏的教师、少样本学习 (few-shot learning) 的类别原型 (class prototypes),甚至用于生成具有特定特性的图像。

批判

  1. C-vectors 数量 kk 的敏感性: 尽管实验证明 k=2k=2k=4k=4 表现良好,但这个数值仍是超参数。对于类别数量非常庞大或类别内方差极高的细粒度数据集,如何设定甚至动态调整 kk 是一个实际挑战。如果 kk 过小,可能无法充分捕捉类别多样性;如果 kk 过大,又可能导致过拟合或增加计算负担。
  2. 区域定位的鲁棒性: 论文中的 Algorithm 1 是一个无参数的区域定位方法,基于激活热力图的峰值和连通分量。虽然其参数少、计算效率高,但其对不同图像质量、背景复杂度和目标尺度的鲁棒性可能不如端到端训练的注意力或检测模块。例如,当目标物体很小或被严重遮挡时,这种基于最大激活值的定位方法可能会失效。
  3. 损失函数的权重平衡: 总损失函数 L\mathcal{L} 由四个部分组成,但论文未提及这些损失项之间的权重。在实践中,不同损失项的权重平衡对于模型的训练稳定性和最终性能至关重要,这通常需要大量调参。
  4. 对主干网络的依赖: 虽然 CMBH 增强了哈希码的生成,但它依然依赖于强大的主干网络来提取高质量的初始特征。如果主干网络本身在特定细粒度任务上表现不佳,CMBH 也可能受限。

相似论文推荐

基于向量语义检索推荐的相关论文。

暂时没有找到相似论文。