论文状态:已完成

Mining Hard Samples Globally and Efficiently for Person Reidentification

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

TL;DR 精炼摘要

本研究提出了一种全局高效的难样本挖掘系统,用于行人重识别(ReID),通过结合多重损失的排名列表网络,实现了从整个训练集中挖掘正负样本,显著提升了模型训练效率,解决了现有方法的计算复杂性问题。

摘要

Person reidentification (ReID) is an important application of Internet of Things (IoT). ReID recognizes pedestrians across camera views at different locations and time, which is usually treated as a ranking task. An essential part of this task is the hard sample mining. Technically, two strategies could be employed, i.e., global hard mining and local hard mining. For the former, hard samples are mined within the entire training set, while for the latter, it is done in mini-batches. In literature, most existing methods operate locally. Examples include batch-hard sample mining and semihard sample mining. The reason for the rare use of global hard mining is the high computational complexity. In this article, we argue that global mining helps to find harder samples that benefit model training. To this end, this article introduces a new system to: 1) efficiently mine hard samples (positive and negative) from the entire training set and 2) effectively use them in training. Specifically, a ranking list network coupled with a multiplet loss is proposed. On the one hand, the multiplet loss makes the ranking list progressively created to avoid the time-consuming initialization. On the other hand, the multiplet loss aims to make effective use of the hard and easy samples during training. In addition, the ranking list makes it possible to globally and effectively mine hard positive and negative samples. In the experiments, we explore the performance of the global and local sample mining methods, and the effects of the semihard, the hardest, and the randomly selected samples. Finally, we demonstrate the validity of our theories using various public data sets and achieve competitive results via a quantitative evaluation.

思维导图

论文精读

中文精读

1. 论文基本信息

1.1. 标题

Mining Hard Samples Globally and Efficiently for Person Reidentification (全局高效挖掘行人重识别中的难样本)

1.2. 作者

  • Hao Sheng (Member, IEEE)
  • Yanwei Zheng
  • Wei Ke (Member, IEEE)
  • Dongxiao Yu
  • Xiuzhen Cheng (Fellow, IEEE)
  • Weifeng Lyu
  • Zhang Xiong

1.3. 作者所属机构

  • Beihang University (北京航空航天大学)
  • Shandong University (山东大学)
  • Macao Polytechnic Institute (澳门理工学院)

1.4. 发表期刊/会议

IEEE Internet of Things Journal (JIOT)

1.5. 发表年份

2020年

1.6. 摘要

行人重识别(ReID)是物联网(IoT)的一个重要应用,它旨在识别不同地点和时间下摄像头视图中的行人,通常被视为一个排序任务。该任务的一个重要组成部分是难样本挖掘。从技术上讲,可以采用两种策略:全局难样本挖掘和局部难样本挖掘。前者在整个训练集中挖掘难样本,而后者则在小批量(mini-batches)中进行。在现有文献中,大多数方法采用局部挖掘,例如批次硬样本挖掘(batch-hard sample mining)和半硬样本挖掘(semi-hard sample mining)。全局难样本挖掘使用较少的原因是其高计算复杂度。本文认为,全局挖掘有助于找到更难的样本,从而有益于模型训练。为此,本文引入了一个新系统,旨在:1) 从整个训练集中高效挖掘难样本(正样本和负样本);2) 在训练中有效利用这些样本。具体来说,本文提出了一种结合多重损失(multiplet loss)的排名列表网络(ranking list network)。一方面,多重损失使得排名列表能够逐步创建,从而避免了耗时的初始化过程。另一方面,多重损失旨在在训练过程中有效利用难样本和易样本。此外,排名列表使得全局和有效地挖掘难正样本和负样本成为可能。在实验中,我们探索了全局和局部样本挖掘方法的性能,以及半硬样本、最硬样本和随机选择样本的效果。最后,我们使用各种公共数据集验证了我们的理论,并通过定量评估取得了具有竞争力的结果。

1.7. 原文链接

/files/papers/69533c0a0394820b7e465231/paper.pdf 发布状态:已于2020年3月13日正式发表。


2. 整体概括

2.1. 研究背景与动机

行人重识别(Person Re-identification, ReID)作为物联网(Internet of Things, IoT)中的关键应用,旨在跨不同摄像头视图和时间识别同一行人。这在视频监控、跨摄像头追踪、内容图像检索等领域具有重要价值。然而,ReID面临巨大挑战,如光照变化、遮挡、视角差异、背景杂乱和图像分辨率不一等问题。

现有研究通常将ReID视为一个排序任务(ranking task),其中一个核心环节是难样本挖掘(hard sample mining)。难样本指的是那些模型难以正确分类或区分的样本,例如正样本(同一行人)之间的距离较大,或负样本(不同行人)之间的距离较小。有效地挖掘这些样本对于提升模型性能至关重要。

当前大多数ReID方法采用局部难样本挖掘(local hard mining)策略,即在每个小批量(mini-batch)内寻找难样本,如batch-hardsemi-hard挖掘。全局难样本挖掘(global hard mining),即在整个训练集上寻找难样本,因其高昂的计算复杂度而鲜有应用。然而,作者认为全局挖掘能够找到更具挑战性的样本,从而更能促进模型学习判别性特征。

因此,本研究的动机在于解决全局难样本挖掘的计算效率问题,同时证明其在ReID任务中的有效性。

2.2. 核心贡献/主要发现

本文的主要贡献体现在以下三个方面:

  1. 提出 LoopNet 架构与排名列表(Ranking List)机制: 本文设计了一个名为 LoopNet 的列表排序网络,其中包含正负排名列表,能够用于全局选择难正样本和难负样本。这种机制使得从整个训练集而非仅限于小批量中挖掘最难的样本成为可能。
  2. 引入多重损失(Multiplet Loss): 为了解决全局排名列表初始化耗时的问题,本文提出了一种多重损失函数。该损失函数利用多个正样本和负样本进行训练,并能逐步初始化排名列表,实现实时更新。同时,多重损失考虑了样本的优先级,使得更难的样本在训练中发挥更大的作用。
  3. 对样本挖掘方法的深入探索: 本文系统地探索了全局(基于排名列表)和局部(基于小批量)样本挖掘方法在性能上的差异,并对比了半硬样本(semi-hard samples)、最硬样本(hardest samples)和随机选择样本(randomly selected samples)对模型训练效果的影响。

主要发现:

  • 全局难样本挖掘的有效性: 论文实验结果表明,结合多重损失的全局最难样本挖掘方法 (GHH) 在多个公共数据集上取得了优于局部挖掘方法和多数现有最先进方法的性能。

  • 多重损失的优势: 多重损失能够有效利用样本优先级,使得模型更好地处理难样本,并结合全局挖掘进一步提升ReID性能。

  • 初始化效率: 逐步构建排名列表的策略成功避免了全局距离计算带来的高昂初始化成本。


3. 预备知识与相关工作

本节旨在为读者铺垫理解论文所需的前置知识,并总结作者提及的关键先前研究。

3.1. 基础概念

  • 行人重识别 (Person Re-identification, ReID)ReID 是计算机视觉领域的一个重要任务,目标是在不同时间、不同地点、不同摄像机视角下识别出同一个行人。例如,在多个监控摄像头中,判断画面中的两个行人图像是否属于同一个人。这对于智能监控、公共安全等应用至关重要。

  • 排序任务 (Ranking Task):在 ReID 中,通常将查询(probe)图像与一个画廊(gallery)图像库中的所有图像进行比较,并按照相似度从高到低进行排序。目标是让与查询图像属于同一行人的图像排在更高的位置。因此,ReID 往往被建模为一个排序任务。

  • 难样本挖掘 (Hard Sample Mining):在机器学习模型的训练过程中,有些样本很容易被模型正确分类(易样本),而有些样本则很难(难样本)。难样本挖掘是一种策略,通过识别和优先处理这些难样本来加速模型收敛并提高模型的判别能力。在 ReID 中,难样本通常指:

    • 难正样本 (Hard Positive Samples):与查询图像属于同一行人,但特征距离较远(相似度较低),模型容易误判为不同行人。
    • 难负样本 (Hard Negative Samples):与查询图像属于不同行人,但特征距离较近(相似度较高),模型容易误判为同一行人。
  • 全局难样本挖掘 (Global Hard Mining)局部难样本挖掘 (Local Hard Mining)

    • 局部难样本挖掘 (Local Hard Mining):在每个训练小批量(mini-batch)内寻找难样本。由于计算量较小,是目前大多数方法的常用策略。缺点是只能看到局部信息,可能错过全局上更难的样本。
    • 全局难样本挖掘 (Global Hard Mining):在整个训练数据集上寻找难样本。优点是能够找到真正最难的样本,但计算复杂度高,通常需要在训练前进行耗时的大规模距离计算。
  • 小批量 (Mini-batch):在深度学习训练中,一次迭代(iteration)中用于计算梯度和更新模型参数的一小批样本。相对于一次处理整个数据集(批量训练)或单个样本(随机梯度下降),小批量训练在效率和收敛性之间取得了平衡。

  • 三元组损失 (Triplet Loss):一种常用的度量学习损失函数。它需要一个三元组作为输入:一个锚点(anchor)样本 aa、一个正样本(positive,与 aa 属于同一类别)pp 和一个负样本(negative,与 aa 属于不同类别)nn。其目标是使锚点与正样本之间的距离小于锚点与负样本之间的距离,并且至少保持一个 margin(间隔)。即:D(a,p)+margin<D(a,n)D(a, p) + margin < D(a, n)

  • 四元组损失 (Quadruplet Loss):在三元组损失的基础上,增加了一个额外的负样本 nn',形成一个四元组 (a, p, n, n')。其目标不仅是让 D(a, p) 小于 D(a, n),还要让 D(a, p)D(a, n) 小于 D(n, n'),旨在进一步增大类间距离并减小类内距离。

  • 欧氏距离 (Euclidean Distance):在特征空间中衡量两个样本相似度的一种常见方法,即两点之间直线距离。给定两个向量 x=(x1,,xk)x = (x_1, \ldots, x_k)y=(y1,,yk)y = (y_1, \ldots, y_k),其欧氏距离为: D(x,y)=i=1k(xiyi)2 D(x, y) = \sqrt{\sum_{i=1}^k (x_i - y_i)^2} ReID 中,通常使用深度学习模型提取的特征向量来计算欧氏距离。

  • 卷积神经网络 (Convolutional Neural Networks, CNNs):一种专门用于处理具有网格状拓扑数据(如图像)的深度学习模型。通过卷积层、池化层等操作,CNN 能够自动学习图像中的层次化特征,广泛应用于计算机视觉任务。GoogLeNetv3 (或 Inception-v3) 和 ResNet50 都是著名的 CNN 骨干网络(backbone networks)。

  • Softmax 损失 (Softmax Loss):在分类任务中,通常用于多类别分类。它结合了 Softmax 函数(将模型的原始输出转化为表示每个类别的概率分布)和交叉熵损失(cross-entropy loss),用于衡量预测概率分布与真实标签之间的差异。

  • 平均精度均值 (Mean Average Precision, mAP):在 ReID 任务中,mAP 是一个常用的评估指标,它综合考虑了模型的查准率(precision)和查全率(recall)。AP 是对单个查询的查准率-查全率曲线下面积的度量,而 mAP 则是所有查询的 AP 的平均值。mAP 能够更全面地反映模型在所有查询上的整体性能。

  • 单查询准确率 (Single Query Accuracy, SQ) / Rank-1 准确率 (Rank-1 Accuracy)Rank-1 准确率衡量的是,在检索结果中,与查询图像属于同一行人的图像是否排在第一位。如果排在第一位,则该查询计为成功。SQ 通常指 Rank-1 准确率,即只关心最靠前的检索结果是否正确。

3.2. 前人工作

论文在“相关工作”部分主要围绕“损失函数改进”和“难样本挖掘”两大主题展开。

3.2.1. 损失函数改进 (Loss Function Improvement)

ReID 任务中的损失函数可以分为三类:

  • 点对方法 (Pointwise Approach):将 ReID 视为分类问题,使用分类网络将图像分类到行人类别,然后提取特征计算相似度。例如 [14]-[18] 中的分类网络。这种方法使用多分类器学习排序分数,并通过组合分类器输出来生成排名。
  • 对对方法 (Pairwise Approach):使用孪生网络(Siamese network)[20]-[24],输入一对图像,输出相似度分数或判断是否为同一行人的分类。重点在于如何有效连接交叉对应对。
  • 列表对方法 (Listwise Approach):使用三元组(triplet)[7], [9], [11], [25]、四元组(quadruplet)[26] 或 DeepList [27] 框架。
    • 三元组网络 (Triplet Network):输入锚点、正样本、负样本三张图像,通过最小化匹配图像距离、最大化不匹配图像距离来改进损失函数。如 [9] 旨在使匹配对的 L2L_2 特征距离小于不匹配对。
    • 四元组网络 (Quadruplet Network):[26] 在三元组基础上增加一个不匹配图像,以实现更大的类间方差和更小的类内方差。
    • DeepList [27]:实现了列表式损失函数,使用排名列表训练样本,并采用自适应间隔为更难的负样本分配更大的间隔。该方法基于单次拍摄假设(single-shot assumption)。
    • 学习排序损失 (Learning-to-rank loss):[8] 提出了一种学习排序损失,通过累积正负匹配图像之间的相似度差异来最小化低排名带来的成本。

3.2.2. 难样本挖掘 (Hard Sample Mining)

难样本选择是实现快速收敛的关键任务。

  • 离线难样本挖掘 (Offline Hard Sample Mining):[22] 随机选择负样本集训练网络,然后用训练好的模型选择难负样本对来重新训练网络的连接层。这种方法在训练阶段耗时。

  • 在线难样本挖掘 (Online Hard Sample Mining):通常在小批量内选择难样本。

    • Batch Hard [29]:Hermans 等人随机采样类别和图像构成批次,然后从批次中选择最难的正样本和负样本组成三元组。
    • 半硬样本 (Semi-hard Samples) [28]FaceNet 提出,选择那些距离锚点最近但仍比正样本距离更远的负样本。目的是避免选择太难的负样本导致训练不稳定。
    • 基于阈值 (Threshold-based) [26], [27]:[26] 使用正负样本对距离的组合平均值设置自适应阈值来挖掘难样本。[27] 在列表式损失函数中引入自适应偏移参数,为更难的负样本分配更大的间隔。
    • 其他策略:[30] 选择分数高于阈值的难样本。[35] 先随机选择负样本,然后选择损失最高的 Top K 个。
  • 基于集合的方法 (Set-based Methods) 用于重排序 (Reranking):[36] 基于互惠最近邻(reciprocal nearest neighbor)消除难负标签匹配。[37] 计算 kk-互惠最近邻来召回难正画廊图像。

  • 概率或权重更新方法 (Probability or Weight Updating Methods):[38] 引入标签重加权方案过滤假阳性(false positives)和易负样本(easy negatives)。[20] 根据上一轮结果更新概率分数,增加长时间未被选择的负样本的选择概率。[40] 认为模型应先学习易正样本,再学习难样本,通过网络生成分数逐渐添加稍难的正样本。[41] 先生成易样本改进初始模型,随着模型判别力增强,再选择具有挑战性但可靠的样本。

3.3. 技术演进

ReID 技术从早期的手工特征(如 LOMO [52])和度量学习(metric learning),逐渐发展到基于深度学习的端到端方法。在深度学习框架下,损失函数的设计经历了从简单的分类损失(pointwise)到复杂的度量学习损失(pairwiselistwise)的演变。三元组损失及其变体(如四元组损失)是度量学习的里程碑,它们旨在直接优化特征空间中的距离关系。

与损失函数设计并行发展的是样本挖掘策略。早期方法多采用随机采样或离线挖掘,效率较低。随着计算资源的提升和对模型训练效率的追求,在线难样本挖掘成为主流,如 batch hardsemi-hard 策略,它们尝试在小批量内动态地选择更有价值的样本。然而,这些方法本质上仍是局部的,可能无法捕捉到全局最具挑战性的样本。

本文的工作正处于这种演进的交叉点上。它认识到全局难样本挖掘的潜力,并致力于克服其计算复杂度高的缺点,通过引入排名列表和逐步初始化策略,将全局视野融入到在线训练中,并结合多重损失来更精细地处理样本优先级,从而在性能上超越了许多仅依赖局部挖掘或传统损失函数的方法。

3.4. 差异化分析

本文提出的方法与相关工作的核心区别和创新点在于:

  1. 全局难样本挖掘的效率与有效性: 多数现有方法,如 batch hardsemi-hard 挖掘,都属于局部挖掘,仅在小批量内选择难样本。本文通过引入排名列表(ranking list)实现了全局难样本挖掘,这使得模型能够访问整个训练集中最难的正负样本,从而获得更强的判别力。同时,为了解决全局挖掘初始化耗时的问题,提出了逐步初始化和在线更新的策略,使其在计算上变得高效。

  2. 多重损失(Multiplet Loss)的设计: 传统的 triplet lossquadruplet loss 在每次迭代中通常只处理一个或两个负样本。本文提出的 multiplet loss 能够同时利用多个正样本和多个负样本,并且通过递减的阈值 αj\alpha_jβj\beta_j 赋予不同难度的样本不同的优先级和权重。这不仅能促进类内距离更小、类间距离更大,还能更精细地利用样本信息。此外,multiplet loss 还能辅助排名列表的逐步构建和实时更新。

  3. 循环网络(LoopNet)的创新架构: LoopNet 引入了一个独特的循环结构,其中排名列表既是网络的输出(通过距离计算和排序生成),又是网络的输入(通过采样层选择难样本)。这种设计使得样本选择和网络训练形成一个闭环,能够动态地优化样本挖掘过程,确保始终选择最具挑战性的样本进行训练,但又通过打破反向传播中的循环,避免了复杂的梯度计算。


4. 方法论

本节将详细拆解 LoopNet 的技术方案,深入讲解其核心方法原理、架构和数学公式。

4.1. 方法原理

LoopNet 的核心思想是实现全局高效的难样本挖掘,以提升行人重识别模型的性能。它通过两个主要机制来实现这一目标:

  1. 排名列表 (Ranking List):维护全局的正样本和负样本排名列表,以确保能够访问到整个训练集中最难的样本。

  2. 多重损失 (Multiplet Loss):一种能够同时处理多个正样本和负样本的损失函数,它考虑样本优先级,并支持排名列表的逐步初始化和在线更新,从而解决了全局挖掘的计算效率问题。

    整个系统形成一个“循环网络”,其中排名列表根据模型输出的特征距离动态更新,而采样层又依据排名列表选择难样本输入模型训练。

4.2. 核心方法详解

4.2.1. 排名列表 (Ranking List)

排名列表是 LoopNet 实现全局难样本挖掘的关键。它为每个查询(probe)图像维护两个列表:一个正样本排名列表和一个负样本排名列表。这些列表根据样本与查询图像之间的距离进行排序,使得最难的样本位于列表的顶部。

  • 距离度量与难样本定义:

    • 在特征空间中,如果锚点(anchor)与正样本之间的距离较大,则该正样本被认为是难正样本。
    • 如果锚点与负样本之间的距离较小,则该负样本被认为是难负样本。
    • 因此,正样本列表按距离降序排列,负样本列表按距离升序排列。
  • 符号定义:

    • P=<p1,p2,...,pnp>P = <p_1, p_2, ..., p_{n_p}> 表示探针(probe)图像的排列,其中 pip_i 是第 ii 个探针图像。
    • G=<g1,g2,...,gng>G = <g_1, g_2, ..., g_{n_g}> 表示画廊(gallery)图像的排列,其中 gjg_j 是第 jj 个画廊图像。
    • id(x)\mathrm{id}(x) 表示图像 xx 的行人身份标签。
    • f(pi,gj)f(p_i, g_j) 表示探针图像 pip_i 与画廊图像 gjg_j 之间的特征距离。
  • 正样本排名列表的定义: 对于每个探针图像 pip_i,其正样本排名列表 πi+\pi_i^+ 定义为: πi+=<πi+(1),πi+(2),,πi+(m+)>s.t.id(gπi+(k))=id(pi)f(pi,gπi+(j))f(pi,gπi+(j+1)) \begin{array} { r l } & { \pi _ { i } ^ { + } = < \pi _ { i } ^ { + } ( 1 ) , \pi _ { i } ^ { + } ( 2 ) , \dots , \pi _ { i } ^ { + } \big ( m ^ { + } \big ) > } \\ { \mathrm { s . t . } \quad \mathrm { i d } \Big ( g _ { \pi _ { i } ^ { + } ( k ) } \Big ) = \mathrm { i d } ( p _ { i } ) } \\ & { f \Big ( p _ { i } , g _ { \pi _ { i } ^ { + } ( j ) } \Big ) \geq f \Big ( p _ { i } , g _ { \pi _ { i } ^ { + } ( j + 1 ) } \Big ) } \end{array} 其中:

    • πi+(k)\pi_i^+(k) 是在排名列表第 kk 个位置的画廊图像在 GG 中的索引。
    • m+m^+ 是正样本排名列表的长度。
    • 条件 id(gπi+(k))=id(pi)\mathrm{id}\Big(g_{\pi_i^+(k)}\Big) = \mathrm{id}(p_i) 确保列表中的画廊图像与探针图像 pip_i 属于同一行人。
    • 条件 f(pi,gπi+(j))f(pi,gπi+(j+1))f\Big(p_i, g_{\pi_i^+(j)}\Big) \geq f\Big(p_i, g_{\pi_i^+(j+1)}\Big) 确保列表按照距离降序排列,即最难的正样本(距离最大)位于列表顶部。
  • 负样本排名列表的定义: 同样,对于每个探针图像 pip_i,其负样本排名列表 πi\pi_i^- 定义为: πi=<πi(1),πi(2),,πi(m)>s.t.id(gπi(k))id(pi)f(pi,gπi(j))f(pi,gπi(j+1)). \begin{array} { r l r } & { } & { \pi _ { i } ^ { - } = < \pi _ { i } ^ { - } ( 1 ) , \pi _ { i } ^ { - } ( 2 ) , \dots , \pi _ { i } ^ { - } ( m ^ { - } ) > } \\ & { } & { \mathrm { s . t . } \quad \mathrm { i d } \Big ( g _ { \pi _ { i } ^ { - } ( k ) } \Big ) \ne \mathrm { i d } ( p _ { i } ) } \\ & { } & { f \Big ( p _ { i } , g _ { \pi _ { i } ^ { - } ( j ) } \Big ) \le f \Big ( p _ { i } , g _ { \pi _ { i } ^ { - } ( j + 1 ) } \Big ) . \qquad } \end{array} 其中:

    • πi(k)\pi_i^-(k) 是在排名列表第 kk 个位置的画廊图像在 GG 中的索引。
    • mm^- 是负样本排名列表的长度。
    • 条件 id(gπi(k))id(pi)\mathrm{id}\Big(g_{\pi_i^-(k)}\Big) \ne \mathrm{id}(p_i) 确保列表中的画廊图像与探针图像 pip_i 属于不同行人。
    • 条件 f(pi,gπi(j))f(pi,gπi(j+1))f\Big(p_i, g_{\pi_i^-(j)}\Big) \le f\Big(p_i, g_{\pi_i^-(j+1)}\Big) 确保列表按照距离升序排列,即最难的负样本(距离最小)位于列表顶部。

4.2.2. 多重损失 (Multiplet Loss)

受四元组损失的启发,本文设计了一种多重损失,旨在实现更小的类内方差和更大的类间方差。此外,多重损失还考虑了样本的优先级,并支持排名列表的逐步初始化。

  • 多重组 (Multiplet) 的构建: 对于一个锚点(anchor)图像 pip_i,从画廊集中选择 nn 个正样本 gi,1+,,gi,n+g_{i,1}^+, \dots, g_{i,n}^+nn 个负样本 gi,1,,gi,ng_{i,1}^-, \dots, g_{i,n}^-,共同构成一个 (2n+1)(2n+1)-元组。其中 pip_i 是探针样本,gi,j+g_{i,j}^+ 是第 jj 个正画廊样本,gi,kg_{i,k}^- 是第 kk 个负画廊样本。

  • 损失函数的定义: 多重损失 Li\mathcal{L}_i 定义为: Li=j=1n[f(pi,gi,j+)f(pi,gi,j)+αj]+ +j=1n1[f(pi,gi,j+)f(gi,j,gi,j+1)+βj]+ \begin{array} { l } { { \displaystyle { \cal L } _ { i } = \sum _ { j = 1 } ^ { n } \left[ f \big ( p _ { i } , g _ { i , j } ^ { + } \big ) - f \big ( p _ { i } , g _ { i , j } ^ { - } \big ) + \alpha _ { j } \right] _ { + } } } \\ { { \displaystyle ~ + \sum _ { j = 1 } ^ { n - 1 } \left[ f \big ( p _ { i } , g _ { i , j } ^ { + } \big ) - f \big ( g _ { i , j } ^ { - } , g _ { i , j + 1 } ^ { - } \big ) + \beta _ { j } \right] _ { + } } } \end{array} 其中:

    • [x]+=max{x,0}[x]_+ = \max\{x, 0\}hinge loss 函数,表示只有当括号内的值为正时才产生损失,否则为零。
    • f(,)f(\cdot, \cdot) 是特征距离函数(本文使用欧氏距离)。
    • αj\alpha_jβj\beta_j 是最小间隔(margins)。
    • 第一项 \sum_{j=1}^n \left[ f \big ( p _ { i } , g _ { i , j } ^ { + } \big ) - f \big ( p _ { i } , g _ { i , j } ^ { - } \big ) + \alpha _ { j } \right] _ { + } 类似于三元组损失,旨在让锚点 pip_i 与其正样本 gi,j+g_{i,j}^+ 的距离小于与负样本 gi,jg_{i,j}^- 的距离,并保持 αj\alpha_j 的间隔。
    • 第二项 \sum_{j=1}^{n-1} \left[ f \big ( p _ { i } , g _ { i , j } ^ { + } \big ) - f \big ( g _ { i , j } ^ { - } , g _ { i , j + 1 } ^ { - } \big ) + \beta _ { j } \right] _ { + } 是一个辅助项,旨在使锚点 pip_i 与正样本 gi,j+g_{i,j}^+ 的距离,与相邻的两个负样本 gi,jg_{i,j}^-gi,j+1g_{i,j+1}^- 之间的距离,保持 βj\beta_j 的间隔。这有助于进一步分离负样本,增加类间方差。
  • 递减阈值 (Gradually Decreasing Thresholds): 为了考虑样本优先级(越难的样本应该有更大的影响),αj\alpha_jβj\beta_j 被设计为递减序列: αj=1jα,βj=1jβ \alpha _ { j } = \frac { 1 } { j } \alpha , \beta _ { j } = \frac { 1 } { j } \beta 其中 α\alphaβ\beta 是基本常数。论文中将距离归一化到 [0, 1] 范围,并设置 α=1.0\alpha = 1.0, β=0.5\beta = 0.5。条件 αβ\alpha \geq \beta 确保四元组项的阈值小于对应的三元组项,因为四元组项是相对较弱的辅助约束。

  • 理想样本选择: 理论上,多重损失中的正负样本 gi,j+g_{i,j}^+gi,jg_{i,j}^- 应该从对应的排名列表 πi+\pi_i^+πi\pi_i^- 中选择最靠前的 nn 个,即: gi,j+=gπi+(j)gi,j=gπi(j). \begin{array} { l } { { g _ { i , j } ^ { + } = g _ { \pi _ { i } ^ { + } ( j ) } } } \\ { { g _ { i , j } ^ { - } = g _ { \pi _ { i } ^ { - } ( j ) } . } } \end{array} 然而,这要求排名列表在训练开始时已经完全初始化,需要计算所有探针图像与所有画廊图像的距离,这在计算上是不可接受的。论文在第4.2.4节“采样层”中提出了解决方案。

4.2.3. 反向传播 (Backpropagation)

多重损失的反向传播涉及对距离函数 f()f(\cdot) 的偏导数。令 I{x}I\{x\} 为指示函数,当 xx 为真时取值为 1,否则为 0。

  • f(pi,gi,j+)f(p_i, g_{i,j}^+) 的偏导数: Lif(pi,gi,j+)=j=1nI{f(pi,gi,j+)f(pi,gi,j)+αj>0}+j=1n1I{f(pi,gi,j+)f(gi,j,gi,j+1)+βj>0} \begin{array} { c } { { \displaystyle \frac { \partial L _ { i } } { \partial f \big ( p _ { i } , g _ { i , j } ^ { + } \big ) } = \sum _ { j = 1 } ^ { n } I \big \{ f \big ( p _ { i } , g _ { i , j } ^ { + } \big ) - f \big ( p _ { i } , g _ { i , j } ^ { - } \big ) + \alpha _ { j } > 0 \big \} } } \\ { { + \displaystyle \sum _ { j = 1 } ^ { n - 1 } I \big \{ f \big ( p _ { i } , g _ { i , j } ^ { + } \big ) - f \big ( g _ { i , j } ^ { - } , g _ { i , j + 1 } ^ { - } \big ) + \beta _ { j } > 0 \big \} } } \end{array} 此偏导数包含两部分:第一部分对应多重损失的第一项(三元组形式),第二部分对应第二项(四元组形式)。只有当对应的损失项大于零时(即违反了间隔条件),才会有非零梯度。

  • f(pi,gi,j)f(p_i, g_{i,j}^-) 的偏导数: Lif(pi,gi,j)=j=1nI{f(pi,gi,j+)f(pi,gi,j)+αj>0} \frac { \partial L _ { i } } { \partial f \Big ( p _ { i } , g _ { i , j } ^ { - } \Big ) } = - \sum _ { j = 1 } ^ { n } I \Big \{ f \Big ( p _ { i } , g _ { i , j } ^ { + } \Big ) - f \Big ( p _ { i } , g _ { i , j } ^ { - } \Big ) + \alpha _ { j } > 0 \Big \} 此偏导数仅对应多重损失的第一项,且符号为负,表示当损失发生时,需要增大 f(pi,gi,j)f(p_i, g_{i,j}^-)

  • f(gi,j,gi,j+1)f(g_{i,j}^-, g_{i,j+1}^-) 的偏导数: Lif(gi,j,gi,j+1)=j=1n1I{f(pi,gi,j+)f(gi,j,gi,j+1)+βj>0}. \frac { \partial L _ { i } } { \partial f \Big ( g _ { i , j } ^ { - } , g _ { i , j + 1 } ^ { - } \Big ) } = - \sum _ { j = 1 } ^ { n - 1 } I \Big \{ f \Big ( p _ { i } , g _ { i , j } ^ { + } \Big ) - f \Big ( g _ { i , j } ^ { - } , g _ { i , j + 1 } ^ { - } \Big ) + \beta _ { j } > 0 \Big \} . 此偏导数对应多重损失的第二项,且符号为负,表示当损失发生时,需要增大 f(gi,j,gi,j+1)f(g_{i,j}^-, g_{i,j+1}^-)

4.2.4. LoopNet 的流水线 (Pipeline of LoopNet)

LoopNet 的整体架构是一个循环网络,如图 2 所示。

该图像是示意图,展示了通过 LoopNet 进行样本挖掘和特征提取的过程。图中说明了如何选择样本、挖掘困难样本、计算距离、以及通过 multiplet loss 効果性利用样本进行训练。 该图像是示意图,展示了通过 LoopNet 进行样本挖掘和特征提取的过程。图中说明了如何选择样本、挖掘困难样本、计算距离、以及通过 multiplet loss 効果性利用样本进行训练。

图2. LoopNet 的流水线图。

整个流水线包含以下步骤:

  1. 采样层 (Sampling Layer):同时从排名列表(ranking list)中挖掘难样本,并从打乱(shuffled)的样本中随机选择样本,然后输出图像数据和对应的行人标签。
  2. 通用网络 (General Network):例如 GoogLeNetv3ResNet50,用于训练模型以学习输入样本的隐式模式特征。
  3. 全连接层 1 (Fully Connected Layer 1):将通用网络输出的特征图(feature map)转换为 384 维的特征向量。
  4. 全连接层 2 (Fully Connected Layer 2):将提取的特征映射到行人分类空间,作为分类器。
  5. Softmax 损失层 (Softmax Loss Layer):使用 Softmax 损失计算分类结果与真实行人标签之间的误差。
  6. 配对层 (Pairing Layer):接收特征向量和行人标签,将其配对以生成样本对之间的距离和配对标签。
  7. Softmax 层 (Softmax Layer):将配对距离归一化到 [0, 1] 区间。
  8. 排名层 (Ranking Layer):接收归一化后的配对距离和行人标签,生成并更新排名列表。
  9. 多重损失层 (Multiplet Loss Layer):使用归一化后的配对距离构建多重组(multiplets),并计算多重损失。
  10. 最终损失层 (Final Loss Layer):将 Softmax 损失 (LSL_S) 和多重损失 (LML_M) 结合起来,形成最终损失 LFL_FLF=λLS+(1λ)LM L _ { F } = \lambda L _ { S } + ( 1 - \lambda ) L _ { M } 其中 λ=0.5\lambda = 0.5,表示两种损失以相等权重结合。

值得注意的是,排名列表是网络的输出,同时也是采样层的输入,从而形成了一个循环。然而,在反向传播过程中,采样层不包含可训练参数,且仅依赖排名列表中的样本顺序,因此不需要上层提供残差来计算偏导数,从而打破了反向传播中的循环,保证了训练的可行性。

以下是 LoopNet 的结构表:

Layer Input Output
Sampling Layer Ranking List Image Data, Person Labels
General Network Image Data Feature Map
Fully Connected Layer 1 Feature Map Features
Fully Connected Layer 2 Features Person Classes
Softmax Loss Layer Person Classes Softmax Loss
Pairing Layer Features, Person Labels Pair Distances, Pair Labels
Softmax Layer Pair Distances Normalized Pair Distances
Ranking Layer Normalized Pair Distances, Person Labels Ranking List
Multiplet Loss Layer Normalized Pair Distances Multiplet Loss
Final Loss Layer Softmax Loss Multiplet Loss Final Loss

表1. LoopNet 的结构。

4.2.5. 采样层 (Sampling Layer)

为了解决排名列表初始化耗时的问题,采样层采用了逐步初始化和更新的方法。

  • 逐步初始化和更新: 在训练开始时,正负排名列表都是空的。在每次迭代中,采样层根据当前的排名列表状态,随机生成需要挖掘的硬正样本数量 s+s^+ 和硬负样本数量 ss^-0s+min{m+,n}0smin{m,n}. 0 \leq s ^ { + } \leq \operatorname* { m i n } \{ m ^ { + } , n \} \qquad 0 \leq s ^ { - } \leq \operatorname* { m i n } \{ m ^ { - } , n \} . 其中 m+m^+mm^- 分别是当前正样本和负样本排名列表的长度,nn 是多重损失所需的正负样本维度。

  • 样本选择策略: 采样层从排名列表中选择 s+s^+ 个硬正样本和 ss^- 个硬负样本。剩余的 (ns+)(n - s^+) 个正样本和 (ns)(n - s^-) 个负样本则从训练集中随机选择。这些新选择的且不在排名列表中的样本将被添加到排名列表中。

    • 正样本采样: gi,j+={gπi+(j),if js+gtj,if j>s+1tjng,id(gtj)=id(pi)tj∉{πi+(1),,πi+(s+),ts++1,ts++2,,tj1} \begin{array} { r l } & { g _ { i , j } ^ { + } = \left\{ \begin{array} { l l } { g _ { \pi _ { i } ^ { + } ( j ) } , } & { \mathrm { i f ~ } j \leq s ^ { + } } \\ { g _ { t _ { j } } , } & { \mathrm { i f ~ } j > s ^ { + } } \end{array} \right. } \\ & { \quad 1 \leq t _ { j } \leq n _ { g } , \mathrm { i d } \bigl ( g _ { t _ { j } } \bigr ) = \mathrm { i d } ( p _ { i } ) } \\ & { \qquad \forall t _ { j } \not \in \left\{ \pi _ { i } ^ { + } ( 1 ) , \ldots , \pi _ { i } ^ { + } \bigl ( s ^ { + } \bigr ) , t _ { s ^ { + } + 1 } , t _ { s ^ { + } + 2 } , \ldots , t _ { j - 1 } \right\} } \end{array} 其中 tjt_j 是一个随机生成的画廊图像索引,ngn_g 是画廊图像总数,且 id(gtj)=id(pi)\mathrm{id}(g_{t_j}) = \mathrm{id}(p_i) 确保是正样本。同时,随机选择的样本 tjt_j 不能与已选择的硬样本或之前随机选择的样本重复。

    • 负样本采样: gi,j={gπi(j), if jsgtj, if j>ss.t.1tjng,id(gtj)id(pi)tj{πi(1),,πi(s),ts+1,ts+2,,tj1}id(gi,j)id(gi,k)(k=1,2,,j1)(13) \begin{array} { r l r } & { } & { g _ { i , j } ^ { - } = \left\{ \begin{array} { l l } { g _ { \pi _ { i } ^ { - } ( j ) } , } & { \mathrm { ~ i f ~ } j \leq s ^ { - } } \\ { g _ { t _ { j } } , } & { \mathrm { ~ i f ~ } j > s ^ { - } } \end{array} \right. } \\ & { } & { \mathrm { s . t . } \quad 1 \leq t _ { j } \leq n _ { g } , \mathrm { i d } \bigl ( g _ { t _ { j } } \bigr ) \neq \mathrm { i d } ( p _ { i } ) } \\ & { } & { \forall t _ { j } \notin \left\{ \pi _ { i } ^ { - } ( 1 ) , \ldots , \pi _ { i } ^ { - } \bigl ( s ^ { - } \bigr ) , t _ { s ^ { - } + 1 } , t _ { s ^ - { - } + 2 } , \ldots , t _ { j - 1 } \right\} } \\ & { } & { \mathrm { i d } \Bigl ( g _ { i , j } ^ { - } \Bigr ) \neq \mathrm { i d } \Bigl ( g _ { i , k } ^ { - } \Bigr ) ( k = 1 , 2 , \ldots , j - 1 ) \qquad ( 1 3 ) } \end{array} 其中 id(gtj)id(pi)\mathrm{id}(g_{t_j}) \ne \mathrm{id}(p_i) 确保是负样本,且随机选择的负样本不能与已选择的硬负样本或之前随机选择的负样本重复。

  • 处理画廊图像数量不足: 如果画廊集中正样本图像数量 ng+n_g^+ 小于多重损失所需的维度 nn,则通过重复选择“最硬”的样本 nng+n-n_g^+ 次来满足维度要求。 gi,j+={gπi+(1),if jnng,m+>0gπi+(jn+ng+1),if nng<jm++nnggt1,if jnng,m+=0gtjn+ng,if m++nng<jn1tjng,id(gtj)=id(pi)tj∉{πi+(1),,πi+(s+),ts++1,ts++2,,tj1} \begin{array} { r } { g _ { i , j } ^ { + } = \left\{ \begin{array} { l l } { g _ { \pi _ { i } ^ { + } ( 1 ) } , } & { \mathrm { i f ~ } j \leq n - n _ { g } , m ^ { + } > 0 } \\ { g _ { \pi _ { i } ^ { + } ( j - n + n _ { g } + 1 ) } , } & { \mathrm { i f ~ } n - n _ { g } < j \leq m ^ { + } + n - n _ { g } } \\ { g _ { t _ { 1 } } , } & { \mathrm { i f ~ } j \leq n - n _ { g } , m ^ { + } = 0 } \\ { g _ { t _ { j - n + n _ { g } } } , } & { \mathrm { i f ~ } m ^ { + } + n - n _ { g } < j \leq n } \end{array} \right. } \\ { 1 \leq t _ { j } \leq n _ { g } , \mathrm { i d } \bigl ( g _ { t _ { j } } \bigr ) = \mathrm { i d } ( p _ { i } ) } \\ { \forall t _ { j } \not \in \left\{ \pi _ { i } ^ { + } ( 1 ) , \ldots , \pi _ { i } ^ { + } \bigl ( s ^ { + } \bigr ) , t _ { s ^ { + } + 1 } , t _ { s ^ { + } + 2 } , \ldots , t _ { j - 1 } \right\} } \end{array} 此处的 ngn_g 实际上是指当前查询图像的可用正样本数。如果列表已初始化(m+>0m^+ > 0),则重复最硬的样本。如果列表未初始化(m+=0m^+ = 0),则随机选择样本。

4.2.6. 配对层 (Pairing Layer)

配对层负责根据采样层提供的样本组织方式,构建图像对并计算它们之间的距离。如图 3(a) 所示,一个迷你批次(mini-batch)由一个探针图像、紧随的 nn 个正样本和 nn 个负样本组成。

Fig. 3. Pair images. (a) Mini-batch samples. An anchor is followed by \(n\) positive samples and \(n\) negative samples, which form the mini-batch. (b) Image pairs. Each sample is paired with the anchor, and each negative sample is paired with its previous negative sample. (c) Multiplet loss triplets and quadruplets. The columns with red and blue masks are the triplets and quadruplets, respectively. 该图像是图表,展示了用于行人重识别的正负样本组织。图中包含三个部分:(a) 针对锚定样本的正样本和负样本的展示;(b) 结合多个锚定样本的排列;(c) 以及最终的样本安排。

图 3. 图像配对。(a) 小批量样本。一个锚点后跟着 nn 个正样本和 nn 个负样本,它们构成小批量。(b) 图像对。每个样本都与锚点配对,每个负样本都与它之前的负样本配对。(c) 多重损失的三元组和四元组。红色和蓝色遮罩的列分别代表三元组和四元组。

配对层计算多重损失所需的距离,包括 f(pi,gi,j+)f(p_i, g_{i,j}^+), f(pi,gi,j)f(p_i, g_{i,j}^-), 和 f(gi,j,gi,j+1)f(g_{i,j}^-, g_{i,j+1}^-)。本文使用欧氏距离作为距离度量函数 f()f(\cdot)

在反向传播时,如果配对层是第 ll 层,并且来自下一层(多重损失层)的误差项是 δ(l+1)\delta^{(l+1)},则本层的误差项(梯度)计算如下:

  • 探针图像 pip_i 的误差项: δpi(l)=j=1nδk(l+1)f(pi,gi,j+)pi+j=1nδn+k(l+1)f(pi,gi,j)pi \delta _ { p _ { i } } ^ { ( l ) } = \sum _ { j = 1 } ^ { n } \delta _ { k } ^ { ( l + 1 ) } \frac { \partial f \big ( p _ { i } , g _ { i , j } ^ { + } \big ) } { \partial p _ { i } } + \sum _ { j = 1 } ^ { n } \delta _ { n + k } ^ { ( l + 1 ) } \frac { \partial f \big ( p _ { i } , g _ { i , j } ^ { - } \big ) } { \partial p _ { i } } 其中 δpi(l)\delta_{p_i}^{(l)}pip_i 在第 ll 层的误差项,kk 是索引,δk(l+1)\delta_k^{(l+1)}δn+k(l+1)\delta_{n+k}^{(l+1)} 是来自下一层的误差信号。此公式表示 pip_i 的梯度是其与所有正样本和负样本距离梯度的总和。

  • 正样本 gi,j+g_{i,j}^+ 的误差项: δgi,j+(l)=δk(l+1)f(pi,gi,j+)gi,j+ \delta _ { g _ { i , j } ^ { + } } ^ { ( l ) } = \delta _ { k } ^ { ( l + 1 ) } \frac { \partial f \left( p _ { i } , g _ { i , j } ^ { + } \right) } { \partial g _ { i , j } ^ { + } } 其中 δgi,j+(l)\delta_{g_{i,j}^+}^{(l)}gi,j+g_{i,j}^+ 在第 ll 层的误差项。

  • 负样本 gi,jg_{i,j}^- 的误差项: δgi,j(l)=δn+k(l+1)f(pi,gi,j)gi,j+δ2n+k(l+1)f(gi,j,gi,j+1)gi,jI{j<n}+δ2n+k1(l+1)f(gi,j1,gi,j)gi,jI{j>1}(17) \begin{array} { r l r } { { \delta _ { g _ { i , j } ^ { - } } ^ { ( l ) } = \delta _ { n + k } ^ { ( l + 1 ) } \frac { \partial f \big ( p _ { i } , g _ { i , j } ^ { - } \big ) } { \partial g _ { i , j } ^ { - } } + \delta _ { 2 n + k } ^ { ( l + 1 ) } \frac { \partial f \big ( g _ { i , j } ^ { - } , g _ { i , j + 1 } ^ { - } \big ) } { \partial g _ { i , j } ^ { - } } I \{ j < n \} } } \\ & { } & { + \delta _ { 2 n + k - 1 } ^ { ( l + 1 ) } \frac { \partial f \big ( g _ { i , j - 1 } ^ { - } , g _ { i , j } ^ { - } \big ) } { \partial g _ { i , j } ^ { - } } I \{ j > 1 \} \quad \qquad ( 1 7 ) } \end{array} 其中 δgi,j(l)\delta_{g_{i,j}^-}^{(l)}gi,jg_{i,j}^- 在第 ll 层的误差项。负样本的梯度包含三部分:来自与探针图像距离的梯度、来自与下一个负样本距离的梯度(如果不是最后一个负样本),以及来自与前一个负样本距离的梯度(如果不是第一个负样本)。

4.2.7. 样本排序 (Rank Samples)

在排名层,排名列表被逐步初始化并逐次迭代更新。

  • 初始化和更新过程:

    • 训练开始时,正负排名列表都是空的。
    • 在每次迭代后,迷你批次中已经存在于排名列表中的样本,其距离会根据新计算的特征距离进行更新。
    • 迷你批次中未在排名列表中的新样本会被添加到列表中。
    • 随后,正排名列表使用 Bitonic sorting 方法按距离降序排序,负排名列表按距离升序排序,以确保最难的样本始终位于列表顶部。
  • 内存优化: 为了节省内存,负样本排名列表的长度会受到限制。在 Bitonic sorting 后,超出长度限制的样本将被从列表中删除。这意味着在每次迭代中,一些较“不难”的样本可能会被新发现的更难样本替换。这种策略保证了排名列表中始终存储着当前模型视角下最具挑战性的样本。


5. 实验设置

本节详细介绍论文在实验中使用的数据集评估指标以及对比基线

5.1. 数据集

实验在三个广泛使用的公共行人重识别数据集上进行了评估:Market-1501CUHK03DukeMTMC-ReID(简称为 Duke)。

  • Market-1501 [45]:
    • 包含 32,688 个边界框,来自 1,501 个行人身份 (ID)。
    • 每个行人由 6 个非重叠摄像头捕获。
    • 测试集中包含 2,798 个干扰项(由 DPM 错误检测产生)和 3,819 个无用图像(对 ReID 准确率无影响)。
  • CUHK03 [20]:
    • 是最大的行人 ReID 数据集之一,包含 1,467 个行人身份 (ID)。
    • 图像来自校园内 5 对不同的摄像头。
    • 实验中同时使用检测框(detected bounding boxes)和手动标注框(manual labeled bounding boxes)进行训练,平均每个视图有 4.8 个检测框和手动标注框。
  • DukeMTMC-ReID (Duke) [46]:
    • DukeMTMC [47] 的一个子集,用于基于图像的 ReID

    • 原始数据集包含 8 个不同摄像头拍摄的 85 分钟高分辨率视频。

    • 包含 1,404 个出现在多于两个摄像头的行人身份和 408 个仅出现在一个摄像头的行人身份。

    • 训练集:随机选择 702 个 ID 的 16,522 张图像。

    • 测试集:剩余 702 个 ID 用于测试。每个 ID 在每个摄像头中选择一张查询图像作为探针(probe),其余图像作为画廊(gallery)。

    • 测试集包含 2,228 张查询图像和 17,661 张画廊图像。

      以下是原文表2展示的数据集分组情况:

      Dataset #cameras #identities #images
      total train & val test probe test gallery train & val test probe test gallery
      Market-1501 6 1,501+2 751 750 750+2 12,936 3,368 19,732
      CUHK03 10 1,467 1,367 100 100 26,253 952 988
      Duke 8 1404 + 408 702 702 702 + 408 16,522 2,228 17,661
      Total 4,782 2,820 1,552 1,962 55,711 6,548 38,381

表2. 用于训练、验证和测试的数据集分组。

5.2. 评估指标

论文采用行人重识别领域常用的两种评估指标:单查询准确率 (Single Query, SQ)平均精度均值 (Mean Average Precision, mAP)

  • 单查询准确率 (Single Query, SQ) / Rank-1 准确率 (Rank-1 Accuracy):

    1. 概念定义 (Conceptual Definition): SQRank-1 准确率衡量的是模型将查询图像(query image)的正确匹配项排在检索列表首位的概率。对于每个查询,如果检索到的第一个画廊图像(gallery image)与查询图像属于同一行人,则认为该查询成功。这个指标只关注检索结果中的最靠前一项。
    2. 数学公式 (Mathematical Formula): Rank-1 准确率的计算公式为: Rank1 Accuracy=1Nqi=1NqI(top-1 match for query i is correct) \mathrm{Rank-1 \ Accuracy} = \frac{1}{N_q} \sum_{i=1}^{N_q} \mathbb{I}(\text{top-1 match for query } i \text{ is correct})
    3. 符号解释 (Symbol Explanation):
      • NqN_q: 查询图像的总数量。
      • I()\mathbb{I}(\cdot): 指示函数,当括号内的条件为真时取值为 1,否则为 0。
      • top-1 match for query ii is correct: 表示对于第 ii 个查询图像,其检索列表中的第一个画廊图像与查询图像属于同一行人。
  • 平均精度均值 (Mean Average Precision, mAP):

    1. 概念定义 (Conceptual Definition): mAP 是一个更全面的评估指标,它综合了查准率(precision)和查全率(recall),尤其适用于每个查询可能有多个正确匹配项的情况。它首先计算每个查询的平均精度(Average Precision, AP),然后对所有查询的 AP 值取平均。AP 反映了检索列表的整体质量,而 mAP 则反映了模型在整个查询集上的平均性能。
    2. 数学公式 (Mathematical Formula): 单个查询的平均精度(AP)计算公式为: AP=k=1NP(k)Δr(k) \mathrm{AP} = \sum_{k=1}^N P(k) \Delta r(k) 其中,mAP 的计算公式为: mAP=1Nqi=1NqAPi \mathrm{mAP} = \frac{1}{N_q} \sum_{i=1}^{N_q} \mathrm{AP}_i
    3. 符号解释 (Symbol Explanation):
      • NN: 画廊集中所有图像的数量。
      • P(k): 在检索列表截断到第 kk 个位置时的查准率。
      • Δr(k)\Delta r(k): 从第 k-1 个位置到第 kk 个位置时查全率的变化量。
      • NqN_q: 查询图像的总数量。
      • APi\mathrm{AP}_i: 第 ii 个查询的平均精度。

5.3. 对比基线

论文使用 ResNet50 [43] 和 GoogLeNetv3 [42] 作为基础网络(baselines),分别简称为 ResInc。实验还对不同的样本挖掘策略组合进行了比较,使用三符号序列表示:

  • 第一个符号 (样本挖掘范围):

    • LL: 局部挖掘(Local mining),在小批量(mini-batch)内进行。
    • GG: 全局挖掘(Global mining),在排名列表(ranking list)中进行。
  • 第二和第三个符号 (正负样本挖掘模式):

    • RR: 随机选择样本(Randomly choose samples)。
    • SS: 选择半硬样本(Semi-hard samples)。
    • HH: 选择最硬样本(Top hardest samples)。
  • 示例说明:

    • LRS: 在小批量内随机选择正样本,并选择对应的半硬负样本。如果所有正样本都保留在小批量中,则此方法等同于 FaceNet [28] 中描述的半硬样本挖掘。

    • GHS: 在排名列表中全局挖掘最硬的正样本和半硬负样本。

    • RR*RR: 随机选择正负样本。这里的 * 表示随机选择时,局部挖掘和全局挖掘没有区别。

      这些不同的组合方式旨在系统地探索样本挖掘策略对 ReID 性能的影响。


6. 实验结果与分析

本节详细分析论文的主要实验结果,包括不同样本挖掘方法和损失函数的效果,以及与最先进方法的比较。

6.1. 核心结果分析

6.1.1. Inception-v3 基线下的比较

以下是原文表3展示的 Inception-v3 基线下的 mAPSQ 比较结果:

Mode mAP SQ
Triplet Best Multiplet Triplet Best Multiplet
*RR 58.76 68.26 78.50 84.44
LRS 64.52 66.87 82.24 83.46
LRH 68.60 68.60 84.74 84.44
LHS 61.07 68.14 79.45 85.12
LHH 67.09 67.09 83.46 83.46
GRS 62.56 67.36 80.67 83.73
GRH 62.54 67.07 80.20 84.95
GHS 51.48 59.38 74.05 78.89
GHH 63.25 70.06 81.21 85.75

表3. Inception-v3 基线的比较 (%)

观察与分析:

  • 三元组损失 (Triplet Loss) 下的表现:
    • RR*RR(随机选择)方法表现不佳,验证了样本挖掘对于 triplet loss 是有效的。
    • LRH(局部挖掘,随机正样本,最硬负样本)方法表现最好(mAP 68.60%,SQ 84.74%)。这表明在 triplet loss 中,挖掘最硬的负样本比半硬负样本更有效。
    • 局部挖掘方法普遍优于全局挖掘方法。
  • 多重损失 (Multiplet Loss) 下的表现:
    • GHH(全局挖掘,最硬正样本,最硬负样本)方法表现最佳(mAP 70.06%,SQ 85.75%)。这表明当结合多重损失时,全局最硬样本挖掘能够带来显著的性能提升。

    • multiplet loss 使得全局难样本挖掘的性能超越了局部挖掘方法。这归因于 multiplet loss 考虑了样本的全局重要性,并能有效利用难样本和易样本。

      该图像是图表,展示了Inceptionv3模型在不同多重体维度下的mAP和SQ准确率。图表(a)显示了mAP,图表(b)显示了SQ,纵坐标为准确率(%),横坐标为多重体的维度。这些结果展示了各种方法在不同维度上的性能变化。 该图像是图表,展示了Inceptionv3模型在不同多重体维度下的mAP和SQ准确率。图表(a)显示了mAP,图表(b)显示了SQ,纵坐标为准确率(%),横坐标为多重体的维度。这些结果展示了各种方法在不同维度上的性能变化。

图 4. 与 Market-1501 数据集上的 Inception-v3 基线进行比较。(a) mAP。(b) SQ。

图4进一步直观展示了不同 multiplet 维度(nn 值)下,各种策略的 mAPSQ 性能。可以看出,随着 nn 值的增加,GHH 方法的性能持续提升,并在 n=4n=4n=5n=5 时达到峰值,再次印证了其有效性。

6.1.2. ResNet50 基线下的比较

以下是原文表4展示的 ResNet50 基线下的 mAPSQ 比较结果:

Mode mAP SQ
Triplet Best Multiplet Triplet Best Multiplet
*RR 38.63 42.03 56.56 62.32
LRS 53.37 53.37 74.23 74.23
LRH 52.35 54.33 72.65 74.67
LHS 50.23 50.23 71.05 71.05
LHH 54.85 54.85 74.85 74.85
GRS 39.66 53.14 59.47 72.68
GRH 38.10 41.78 57.75 59.53
GHS 34.28 46.55 57.07 69.60
GHH 41.31 57.56 60.75 75.92

表4. ResNet50 基线的比较 (%)

观察与分析:

  • 三元组损失下的表现:
    • Inception-v3 相似,RR*RR 方法性能最低,再次证明样本挖掘的有效性。
    • LHH(局部挖掘,最硬正样本,最硬负样本)方法表现最佳(mAP 54.85%,SQ 74.85%)。这进一步支持了挖掘最硬样本的重要性。
    • 所有局部挖掘方法均优于全局挖掘方法。
  • 多重损失下的表现:
    • GHH 方法表现最佳(mAP 57.56%,SQ 75.92%)。再次验证了 multiplet loss 和全局最硬样本挖掘结合的强大性能。

      Fig. 5. Compare with the ResNet50 baseline on the Market-1501 data set. (a) mAP. (b) SQ. 该图像是图表,比较了ResNet50基线在Market-1501数据集上的mAP和SQ性能。图(a)展示了不同多重体维度下的mAP变化,图(b)则展示了SQ的变化。各条曲线代表不同的实验配置,反映了它们在各维度下的准确率表现。

图 5. 与 Market-1501 数据集上的 ResNet50 基线进行比较。(a) mAP。(b) SQ。

图5同样展示了 ResNet50 在不同 multiplet 维度下的性能。 GHH 方法在 multiplet 维度增加时,性能有显著提升。

6.1.3. 总结不同损失函数和挖掘策略的有效性

  • 样本挖掘的有效性: 无论使用 triplet loss 还是 multiplet loss,随机选择样本(RR*RR)的性能都低于大多数样本挖掘方法,这明确表明样本挖掘对于提升 ReID 性能是有效的。
  • 最硬负样本的重要性:triplet loss 设置下,挖掘最硬的负样本(例如 LRHLHH)通常比半硬负样本(例如 LRSLHS)更有效。这与 FaceNet 中为解决人脸识别问题而提出的半硬样本策略不同,说明 ReID 任务可能需要更强的负样本约束。
  • 局部挖掘 vs. 全局挖掘 (针对 triplet loss): 对于传统的 triplet loss,局部挖掘方法通常优于全局挖掘方法。这可能是因为 triplet loss 的结构使得它在小批量内更关注局部优化。
  • 全局挖掘与多重损失的协同效应: 当使用本文提出的 multiplet loss 时,全局最硬样本挖掘(GHH)的性能超越了所有其他全局样本挖掘方法以及局部挖掘方法。这表明 multiplet loss 能够有效利用样本优先级,并与全局难样本挖掘协同工作,进一步提升 ReID 性能。

6.1.4. 时间消耗

论文指出,在 ResNet50GoogLeNetv3 上,全局挖掘的时间消耗分别比局部挖掘多 2.9% 和 2.2%。这表明 LoopNet 提出的全局挖掘方法在计算上是高效的,其额外开销相对较小。

6.1.5. 与最先进方法 (State-of-the-Art) 的比较

以下是原文表5展示的 LoopNet 与其他最先进方法在三个数据集上的性能比较:

Method Ref. Market-1501 CUHK03 Duke
Rank-1 Rank-5 Rank-10 mAP Rank-1 Rank-5 Rank-10 mAP Rank-1 Rank-5 Rank-10 mAP
LOMO+XQDA[52] CVPR15 43.80 22.20 52.00 30.80 17.00
APR[51] arXiv17 84.29 93.20 95.19 64.67 70.69 51.88
MSCAN[53] CVPR17 80.31 57.53 67.99 91.04 95.36 -
Re-ranking[37] CVPR17 77.11 63.63 61.60 67.60
CSBT[54] CVPR17 42.9 20.3 55.5 84.3
P2S [32] CVPR17 70.72 44.27
Spindle[55] CVPR17 76.90 91.50 94.60 88.50 97.80 98.60
MI[56] CVPR17 82.10 77.70 68.10
ACRN[57] CVPR17 83.61 92.61 95.34 62.60 62.63 89.69 94.72 70.20 72.58 84.79 88.87 51.96
LSRO[46] ICCV17 78.06 56.23 73.10 92.70 96.70 77.40 67.70 47.10
SPGAN+LMP[58] CVPR18 58.10 76.00 82.70 26.90 46.90 62.60 68.50 26.40
MCAM[59] CVPR18 83.55 74.25 49.29 49.89
TJ-AIDL[60] CVPR18 58.20 74.80 81.10 26.50 44.30 59.60 65.00 23.00
Our GHH 85.36 94.30 96.23 70.06 89.08 94.85 96.74 86.59 75.63 87.30 89.99 57.90

表5. 与最先进方法的比较

观察与分析:

  • Market-1501 和 Duke 数据集: 本文提出的 GHH 方法在 Market-1501Duke 数据集上,无论在 Rank-1 准确率、Rank-5Rank-10 还是 mAP 方面,均超越了所有列出的最先进方法。这强有力地验证了 LoopNetmultiplet loss 结合全局最硬样本挖掘的有效性。

  • CUHK03 数据集:CUHK03 数据集上,Spindle [55] 方法在 Rank-5Rank-10 性能上略优于 Our GHH。然而,Spindle 方法结合了所有现有数据集进行训练,其训练数据量远大于本文方法。尽管如此,本文方法在 Rank-1 准确率和 mAP(最重要的两个指标)上仍然高于 Spindle 方法,再次证明了其竞争力。

    总体而言,实验结果清晰地表明,全局难样本挖掘结合多重损失的策略在行人重识别任务中具有显著优势,能够取得领先的性能,并且在计算效率上也具有竞争力。


7. 总结与思考

7.1. 结论总结

本文专注于行人重识别(ReID)中的难样本挖掘问题,并提出了一个名为 LoopNet 的列表排序网络。该网络引入了正负排名列表,能够全局地挖掘最硬或半硬样本,实验证明这优于在随机小批量中进行的局部挖掘方法。为了解决全局排名列表初始化耗时的问题,本文设计了一种多重损失(multiplet loss),它支持排名列表的逐步创建,从而避免了在训练前计算所有样本对距离的开销。此外,多重损失还考虑了样本的优先级,使得更具挑战性的样本在训练中发挥更大的作用。

通过实验,本文得出了以下重要结论:

  1. 难样本挖掘对 ReID 性能提升是有效的。 随机选择样本的方法通常不如经过挖掘的样本。

  2. 当使用传统的三元组损失时,局部样本挖掘往往能获得最佳性能。

  3. 当考虑样本的优先级和有效性时,多重损失能够进一步提升 ReID 性能。 结合多重损失后,全局最硬样本挖掘方法(GHH)的性能超越了所有其他全局样本挖掘方法和局部挖掘方法。

    这些发现不仅为 ReID 领域提供了新的方法,也为理解难样本挖掘和损失函数设计提供了有价值的见解。

7.2. 局限性与未来工作

论文作者指出了以下局限性与未来研究方向:

  • 结论的泛化性: 本文的结论主要针对 ReID 这一特定的排序问题。未来的工作需要探索这些结论是否能够泛化到其他机器学习问题,例如分类(classification)、检测(detection)和生成(generation)任务。
  • 难样本分布的一致性: 不同应用领域中难样本的分布可能差异很大。因此,需要进一步研究难样本是否遵循相同的分布,以及难样本挖掘方法的结果在不同任务中是否保持一致性。

7.3. 个人启发与批判

7.3.1. 个人启发

  1. 全局视野的重要性: 本文的核心启发在于,尽管局部难样本挖掘在计算上更高效,但全局视角能找到真正最难的样本,从而为模型提供更强的判别力。通过巧妙设计“逐步初始化”和“在线更新”的机制,成功地在效率和全局性之间取得了平衡,这为解决其他领域中“全局最优但计算昂贵”的问题提供了思路。
  2. 损失函数的精细化: 多重损失不仅是传统三元组或四元组损失的简单扩展,其引入递减的间隔(margins)来加权不同难度的样本,并额外增加负样本之间的约束,展现了损失函数设计在利用样本间复杂关系方面的潜力。这种对样本优先级的考量,可以迁移到其他度量学习任务中。
  3. 循环架构的实用性: LoopNet 的循环架构(排名列表作为输出和输入)是一种优雅的设计,它通过动态反馈机制使得样本挖掘过程与模型训练紧密结合。同时,通过在反向传播中打破这个循环,避免了不必要的计算复杂性,这是一种工程实践与理论设计的巧妙结合。

7.3.2. 批判

  1. “难”的定义与动态性: 论文将“难”定义为距离的相对大小。然而,这种“难”是动态变化的,随着模型训练的进行,之前被认为是难的样本可能变得容易,反之亦然。虽然排名列表能够在线更新,但其更新频率和如何平衡新旧信息可能还需要更深入的探讨。例如,如果模型在早期阶段被引导去关注一些并非真正“难”的样本,是否会影响长期收敛。
  2. 超参数敏感性: 多重损失引入了 nn(维度)、α\alphaβ\beta 以及最终损失中的 λ\lambda 等多个超参数。论文中只给出了固定的 α=1.0,β=0.5,λ=0.5\alpha=1.0, \beta=0.5, \lambda=0.5,并未详细探讨这些参数的敏感性分析。这些超参数的选取对模型性能可能具有显著影响,尤其是递减的间隔 αj,βj\alpha_j, \beta_j 的具体形式(如 1/j1/j)是否是最优的。
  3. Bitonic Sorting 的选择: 论文提及使用 Bitonic sorting 进行排名列表排序。虽然 Bitonic sorting 是一种并行高效的排序算法,但在每次迭代中对可能很长的列表进行排序仍会引入计算开销。文中提到“时间消耗差异很小”,但未提供更细致的分析来比较 Bitonic sorting 在这种在线更新场景下与增量排序或其他近似排序算法的效率。
  4. 采样策略的随机性: 在采样层中,硬样本的数量 s+s^+ss^- 是随机生成的,而剩余的样本也是随机选择的。这种随机性在一定程度上保证了多样性,但也可能引入不稳定性。是否可以通过更智能、更有策略的方式来动态调整 s+s^+ss^- 的比例,或者采用更复杂的随机采样策略,可能会进一步优化训练过程。
  5. Rank-1SQ 的细微差异: 论文中对 SQ 的描述是“只计算第一个匹配项,无论画廊中有多少真实匹配”,这在概念上与 Rank-1 准确率一致。但在 Market-1501 等数据集中,一个查询可能有多个正确匹配项。如果 SQ 仅仅是指 Rank-1,那么它只关注了列表最顶部的准确性,而 mAP 则更全面。在某些上下文中,SQ 可能被理解为“在所有画廊中是否有至少一个正确匹配”,但从论文的描述和结果来看,其含义更倾向于 Rank-1。这种术语的细微统一性值得注意。

相似论文推荐

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

暂时没有找到相似论文。