摘要
典型的行人重新识别 (ReID) 方法通常用单个特征向量描述每个行人,并将它们匹配到特定于任务的度量空间中。然而,基于单个特征向量的方法不足以克服视觉模糊,这在现实场景中经常发生。在本文中,我们提出了一种新颖的端到端可训练框架,称为双注意力匹配网络 (DuATM),用于学习上下文感知特征序列并同时执行注意力序列比较。我们 DuATM 框架的核心组件是双重注意机制,其中序列内和序列间注意策略分别用于特征细化和特征对对齐。因此,可以自动利用和适当比较中间特征序列中包含的详细视觉线索。我们通过三元组损失辅助去相关损失和交叉熵损失将提议的 DuATM 网络训练为连体网络。我们对基于图像和视频的 ReID 基准数据集进行了广泛的实验。实验结果表明,与最先进的方法相比,我们的方法具有显着优势。
1.引言
行人重新识别 (ReID) 旨在跨多个摄像头关联同一行人 [13, 63],由于其对许多潜在应用的重要性,例如视频监控分析和内容-基于图像/视频的检索。典型的 person ReID 管道通常首先用单个特征向量描述每个行人图像或视频片段,然后在特定任务的度量空间中匹配它们,其中相同行人的特征向量比不同行人特征向量有更短的距离。最近,得益于深度学习的成功,基于特征向量的方法获得了显着的性能提升[14,37,28,26]。然而,当个体经历剧烈的外表变化或穿着相似的衣服时,使用基于单一特征向量的表示来进行可靠的人 ReID 变得非常困难。如图1(a)所示,不同的个体在外观上非常相似,除了裙子上的一些局部图案。不幸的是,基于单一特征向量的方法通常更关注整体外观而不是局部判别部分,因此无法产生准确的匹配结果。此外,如图1(d)所示,每个视频序列中也存在一些干扰帧,这将严重污染整个特征向量,从而导致不匹配。
图 1. 个人 ReID 中的硬示例。 (a):具有相似外观的负对。 (b):空间位移较大的正对。 (c):由于遮挡而缺少身体部分的正对。(d):带有干扰帧(用椭圆标记)和时间错位(用红色“×”标记表示)的正视频对
解决这些问题的另一种方法是用一组特征向量描述每个人,并根据特征集或特征序列进行匹配。例如,在 [18, 1, 32, 59, 60] 中,空间块从行人图像中提取基于局部特征序列或基于身体部位的语义特征集,并根据一些启发式对应结构进行匹配;在 [44, 43, 69] 中,多个子段或帧级别比较基于视频计算和聚合匹配行人。在这些方法中,基于通用对应结构的局部特征序列匹配在遇到严重的序列错位时很容易失败,例如由图1(b)所示的空间位移或图1所示的局部干扰引起的( d)。此外,当遇到如图 1(c)所示的身体部位遮挡时,基于人体结构的语义特征集匹配也可能失败。
为了应对上述挑战,我们提出了一种新颖的端到端可训练框架,称为双注意力匹配网络(DuATM),用于联合学习上下文感知特征序列并执行注意力序列比较。我们的框架由两个级联模块组成,一个用于特征序列提取,一个用于特征序列匹配,如图 2 所示。特征序列提取模块建立在空间/双循环卷积神经网络 (CNN) 上,用于图像/视频输入以提取空间/时空上下文感知特征序列。序列匹配模块基于双重注意机制——其中包含一种用于序列内细化的注意策略和一种用于序列间对齐的注意策略——前者通过利用序列内的上下文信息来细化每个损坏的特征向量,而后者则对齐通过选择语义一致的对应物交叉配对序列来进行特征对。在特征序列细化和对齐之后,通过聚合每个成对序列的细化和对齐成对特征向量之间的多个局部距离来计算整体序列距离分数。我们将提出的 DuATM 训练为具有三重损失加去相关损失和交叉熵损失的孪生网络,以减少特征序列冗余并增强特征序列辨别力。
图 2. DuATM 示意图
论文的主要贡献如下。
2.相关工作
Person ReID 系统通常由两个主要组件组成:a) 特征提取和 b) 度量学习。以前关于人重识别的工作侧重于构建信息特征或寻找有区别的距离度量。根据匹配阶段使用的表示形式,我们将现有方法大致分为两类:基于特征向量的方法,例如[10,4,19,37,41,17,12,45,35];以及基于特征集或特征序列的方法,例如 [69, 60, 59, 57, 36, 18, 1, 38]。
在基于特征向量的方法中,图像或视频由特征向量表示,并且基于特征向量执行度量学习。例如,在 [2, 20, 29, 47, 56, 51, 54, 64, 70, 21] 中,将手工制作的局部特征集成到特征向量中,通过同时最大化类间边距来学习距离度量并最小化类内变化。同时,最近的许多作品通过神经网络直接从原始输入数据中学习可比较的特征嵌入。例如,在 [33, 26] 中,首先从图像或视频中探索高质量的局部模式,然后聚合成信息特征向量;在 [28, 39, 49] 中,使用时间池化策略提取和集成循环外观数据的局部特征;在 [14, 5] 中,为了增强学习嵌入的泛化能力,将成对相似性标准扩展到三元组或四元组。尽管上面提到的这些方法能够学习特定任务的紧凑嵌入,但这些方法仍然存在不匹配问题,尤其是当一些重要的视觉细节无法捕获时。
与基于特征向量的方法不同,基于特征集或特征序列的方法能够通过利用互补特征向量或空间信息来保留更详细的视觉线索。例如,在 [32, 3] 中,在计算基于空间补丁的特征集相似度时采用局部空间约束;在[43]中,在计算时间特征序列的距离时,采用了密集的元素对应关系;在 [36, 18, 1, 38] 中,通过插入深度网络的补丁比较层探索空间对应结构;在 [59, 60] 中,身体结构信息用于促进特征序列的语义对齐。虽然上面提到的这些方法利用启发式对应结构来比较特征序列,当特征序列中出现严重的错位或干扰时,它们可能很容易失败。
最近,注意力机制已经在许多匹配序列或学习表示的任务中被提出,例如 [40, 48, 50, 42, 24, 69]。在 [40, 42] 中,注意机制用于在自然语言处理任务中软对齐每个文本序列对之间的词嵌入。在 [48, 24] 中,通过神经注意力为每个图像生成一瞥表示,以便可以逐步比较每个输入对。在 [50, 69] 中,固定维度的特征向量分别通过注意力聚合从可变长度的视频中学习,用于人脸识别和人物 ReID。然而,这些方法要么考虑从特征集/序列中选择特征的单个序列内注意力,要么考虑特征集/序列匹配的单个序列间注意力。虽然序列间注意能够解决序列错位问题,但在发生干扰或损坏时可能会失败。另一方面,序列内注意力能够解决损坏问题,但不能对齐序列。
在本文中,我们将注意力机制利用到基于特征序列的人 ReID 中。与现有的通过启发式对应结构比较序列的方法不同,我们尝试通过双重注意过程比较两个序列,其中序列间注意过程用于执行序列比对,同时使用序列内注意过程执行序列细化。
3.我们的方法:双重注意力匹配网络(DuATM)
本节将介绍一个端到端的可训练框架——DuATM,它由两个模块组成:一个用于提取特征序列,一个用于匹配特征序列,如图 2 所示。
3.1 特征序列提取模块
在 DuATM 中,我们采用 DenseNet-121 [15] 作为特征序列提取模块的主干。由于 DenseNet 中每一层与所有后续层之间的直接连接,局部细节可以更好地传播到输出以丰富最终的特征序列。具体来说,图像和视频输入的网络架构略有不同。
为方便起见,我们将特征序列提取表示为 X = F(X ; ΘF),其中 X 是提取的对空间或时间信息进行编码的特征向量序列,F(·; ΘF) 表示用 ΘF 参数化的特征提取模块。更具体地说,我们将 X = {xi ∈ RD}S i=1 表示为长度为 S 的特征序列。每个特征向量 xi 在传递给下一个模块之前被归一化为单位 ℓ2 范数。
3.2.序列匹配模块
序列匹配模块是 DuATM 最重要的组成部分。请注意,没有可用于强制特征提取模块学习语义对齐的特征序列的监督信息,因此该模块的目标之一是比较每对可能未对齐的特征序列 (Xa, Xb),其中 Xa = {xi a}S i=1 a 和 Xb = {xj b}S j=1 b 。然而,每个序列也可能包含一定数量的损坏特征向量(例如,由噪声输入引起)。一种简单的方法是通过平均池化将特征序列转换为可比较的特征向量,其中忽略不对齐或损坏。相反,我们建议首先细化和对齐每个特征序列对,然后计算和聚合多个特征对的距离。
由于从我们的特征提取模块获得的中间特征序列包含丰富的上下文信息,我们使用这些上下文来去除特征损坏并比较特征序列。具体来说,我们尝试利用上下文信息通过注意力机制帮助特征序列细化和特征序列对对齐。更具体地说,如果将特征序列对之一视为内存,该序列中每个特征向量的细化可以通过序列内注意过程来实现;反之,如果把另一个序列当作记忆,每个特征向量的对齐可以通过一个序列间注意力过程来实现;反之亦然。
为了清楚起见,我们在图 4(a)中说明了 DuATM 的序列匹配模块,其中将两种类型的注意程序集成到一个双注意块中,用于特征序列的细化和对齐,如图 4(b)所示。在细化和对齐之后,通过聚合每个序列对的细化和对齐的成对特征向量之间的多个局部距离来计算整体序列距离分数。
图 4. 序列匹配模块和双重注意块的图示
3.2.1 双注意力块
双注意力块由一个变换层和一个注意层组成,其中变换层用于生成特征感知滤波器,注意层用于生成相应的注意权重。在不失一般性的情况下,作为详细介绍双重注意块的示例,我们描述了 (¯xi a, ˆxi b) 的生成过程,如图 4 (b) 所示。具体来说,设 xi a 是要细化和对齐的参考特征。
其中 W 和 b 是线性层的权重矩阵和偏置向量,BN 和 ReLU 分别表示批量归一化 [16] 和整流线性单元 (ReLU) 函数。
其中< , >表示内积。
其中 σ(·) 是用于归一化的 soft-max 函数,其中 σ(tj) = for t ∈ RS
遵循等式(1)到(3),可以得到关于每个特征向量的可比较特征对。
3.2.2 距离计算和聚合
由于在双注意力块中执行的特征序列细化和对齐,直接计算两个细化和同时对齐的特征之间的距离,并将计算的特征对的距离聚合成一个整体的序列距离是合理的。
在 DuATM 中,双重注意力是双向的,即对 {xi a} 和 {xj b} 分别执行两次双重注意力过程。因此,我们使用两个比较方向上的序列对的距离来定义整体序列的距离。具体来说,我们使用欧几里得距离来计算特征对之间的距离,即
然后,我们通过平均池化聚合这些距离来定义特征序列 Xa 和 Xb 的距离,如下所示:
其中 ||Xa -Xb||是序列匹配模块定义的距离。为方便起见,我们将序列匹配模块中的所有参数表示为ΘM((即W、b和BN层中的参数)。
3.3.训练 DuATM 的损失函数
为了训练整个网络以执行人员 ReID 并在未见过的数据上很好地泛化,我们在训练期间使用具有三元组损失的孪生架构,如图 5 所示。此外,为了使学习的中间特征序列紧凑、鲁棒等为了区分,我们还结合了两个辅助损失,即去相关损失和交叉熵损失。因此,整体损失函数定义为:
其中 λ1>0 和 λ2>0 是两个权衡参数。
三重损失。使用三元组损失的目的是迫使网络使正对之间的距离小于负对之间的距离。给定三组人物图像/视频,提取模块通过三分支连体子网提取空间/时空上下文感知特征序列,匹配模块通过双分支仔细计算正负对之间的距离连体子网。
令 X = (X⊥, X+, X−) 为三元组输入。为了强制网络预测正对的距离小于负对的边距为 γ,我们将三元组损失 ℓ(0)(X , ΘF, ΘM) 定义为:
其中 γ > 0(例如,在我们的实验中,γ = 0.2)。
去相关损失。在 [9] 中,已将去相关表示作为正则化器进行研究,以减少深度网络中的过度拟合。在本文中,我们制定了一个相似但不同的去相关损失,以使我们的特征序列更加紧凑。具体来说,我们对序列内相关矩阵施加如下约束:
其中 I 是单位矩阵,N 是序列中特征向量的总数。
数据增强的交叉熵损失。为了学习更多信息和鲁棒的特征序列,我们还使用了交叉熵损失和数据增强方法。具体来说,我们使用具有相同标签的数据来生成更多用于训练的数据。
假设 X = F(X ) 是一个中间特征序列,我们首先将序列池化为 z = PS i=1 ωixi,其中 Pi ωi = 1 且 ωi ≥ 0,然后将聚合向量传递给 FC层后跟一个交叉熵损失:
其中 c 是与输入 X 相同的标签,{wc, bc} 分别表示 FC 层的权重矩阵和偏置向量的第 c 行,θ 包含新 FC 层中的参数。请注意,我们建议通过随机生成 ωi ∈ [0, 1] 将随机凸组合策略引入池化阶段,甚至以概率 p > 0 将其重置为 0,而不是通过简单的平均池化来生成 z,但保持πωi = 1。这可以看作是用于扩充训练数据集的插值方法 [11] 的简化版本。
4.实验
为了评估我们的提议,我们对三个大规模数据集进行了广泛的实验,包括 Market-1501 [62]、DukeMTMC-reID [65] 和 MARS [61]。
4.1 数据集、评估和实现
数据集描述。 Market-1501 是从 6 个摄像头收集的,总共包含 1,501 个身份和由 DPM 检测器生成的 32,668 个边界框。如 [62] 中定义的那样,它被分成 12,936/19,732 个图像的非重叠训练/测试集,我们的实验中采用单查询评估模式。 DukeMTMC-reID 是 DukeMTMC [30] 的一个子集,使用 8 个摄像头捕获,用于跨摄像头跟踪。它包括 1,404 个身份,其中一半用于训练,另一半用于测试。具体来说,分别有 2,228 个查询、17,661 个画廊和 16,522 个训练图像。 MARS 是 Market-1501 的扩展,用于基于视频的 ReID。它由 [61] 中定义的 8,298 个用于训练的 625 个身份的 tracklet 和 12,180 个用于测试的 636 个身份的 tracklet 组成,其中 tracklet 通常包含 25-50 帧。
评估协议。对于性能评估,我们采用大多数人 ReID 文献中的标准指标,即累积匹配治愈率 (CMC) 和平均平均精度 (mAP)。为了计算这些分数,我们用 Python 重新实现了 [61] 提供的评估代码。
实施细节。我们使用在 ImageNet 上训练的 DenseNet-121 [15] 来初始化 DuATM 中的 DenseNet 部分,并使用随机梯度下降 (SGD) 方法训练我们的网络。更具体地说,我们冻结预训练的 DenseNet 参数并首先训练我们的模型100个epoch,并继续对整个网络进行其他 200 个 epoch 的训练。学习率初始化为 0.01,并在最后 50 个 epoch 中变为 0.001。
训练具有三元组损失的 DuATM 的一个障碍是,与负对相比,正对缺乏。为了缓解数据不平衡问题,我们采用硬三元组挖掘策略 [31, 14] 来生成三元组小批量。具体来说,每个 mini-batch 包含 P 个人,有 V 个图像/轨迹,它们都被视为锚点,以选择相应的硬正负。在实验中,我们为图像数据集设置(P = 10,V = 4)大小为 256 × 128,默认为视频数据集设置(P = 7,V = 3)大小为 128 × 64。此外,我们遵循常规做法,通过使用随机水平翻转和随机裁剪 [28] 来增强图像数据集,并通过随机选择 16 个连续帧的视频子序列来增强视频数据集。
对于图像和视频输入,每个序列中特征向量的维度 D 都设置为 256。此外,损失函数的超参数,即 λ1、λ2 和腐败率 p,与基线相比,设置为 λ1 = 0.1、λ2 = 0.5 和 p = 0.2。在参数分析实验中,它们被调整为更合适的值。在评估过程中,除了与最先进的方法进行比较外,我们丢弃了数据增强过程,并使用 64 个连续帧的子序列进行视频 ReID2。所有实验均使用 PyTorch 在 2 个 Nvidia Titan-X GPU 上实现。
4.2. DuATM性能评估
DuATM 训练有不同的损失。为了评估每个损失和双重注意力块的贡献,我们训练 DuATM 并使用以下四种设置报告结果:a) DuATM+ℓ(0),b) DuATM+ℓ(0)+ℓ(1),c ) DuATM+ℓ(0)+ℓ(2),和 d) DuATM+ℓ(0)+ℓ(1)+ℓ(2)。请注意,DuATM 是基于 DenseNet 构建的。因此,我们以 DenseNet 作为基线提取特征序列,使用平均池化层形成整体特征向量,并使用欧几里德距离来比较特征向量。baseline用三元组损失 ℓ(0) 进行训练,表示为 AvePool+ℓ(0)。实验结果如表 1 所示。从表 1 中可以看出,在所有三个数据集上,DuATM+ℓ(0) 的结果始终优于 AvePool+ℓ(0)。这证实了在 DuATM 中使用双注意力块的有效性:使用具有双注意力匹配机制的上下文感知特征序列比基于平均池的单特征向量方法更有效。加入去相关损失 ℓ(1) 和交叉熵损失 ℓ(2) 后,性能进一步提高。由于去相关损失 ℓ(1) 不会带来任何额外的监督信息用于判别,因此 DuATM+ℓ(0)+ℓ(1) 相对于 DuATM+ℓ(0) 的性能增益较小。有趣的是,当加入交叉熵损失时,性能得到了显着提升。这可以归因于身份标签带来的监管信息。最后,当结合所有三个损失函数时,精度进一步提高。
DuATM 的消融研究。为了验证 DuATM 中序列内和序列间注意力的效果,我们在 Market1501 上分别评估它们中的每一个,表示为 Intra+ℓ(0) 和 Inter+ℓ(0)。实验结果如表 2 所示,其中 DuATM+ℓ(0) 只不过是 Intra+Inter+ℓ(0)。我们可以从表 2 中观察到,联合使用两种注意力,即双重注意力,比只使用一种注意力可以提高性能。这证实了使用双重注意力机制的重要性。
DuATM中的参数评估。在 DuATM 的损失函数中,有两个参数 λ1 和 λ2。在训练交叉熵损失时,还有一个参数 p 来控制生成辅助数据时的损坏率。为了评估这些参数的影响,我们通过更改一个参数同时固定另外两个参数来处理三个数据集进行了实验。实验结果如图6所示。
从这些结果中,我们可以得出三个结论:a)虽然适中的值 λ1 可以使序列更紧凑,但过大的 λ1 会损害特征向量之间的上下文关系,导致性能略有下降; b) 适度的 λ2 值可以带来额外的监督信息,但过大的 λ2 可能导致过拟合; c) 性能对参数 p 不敏感。此外,我们发现 DuATM 在 Market- 1501、DukeMTMC-reID 和 MARS。我们在表 1 的底部两行列出了这些结果。
此外,我们在 Market-1501 和 MARS 上进行了实验,以评估视频的特征维度 D 和序列长度 T 的影响。实验结果如图 7 所示。对于基于图像的 ReID,当每个人由一个大小为 D×T 的序列表示时,即使使用较低的维度,整个序列仍然可以包含足够的辨别信息,例如 rank1 的结果对于 D = 16 或 D = 32,仍分别保持在 78.50% 或 87.71%。对于基于视频的 ReID,由于特征序列长度由 tracklet 大小决定,较长的序列将包含更多在不同时间点捕获的视觉线索,从而导致更高的准确度,例如,mAP 在 T = 1 时从 21.87% 提高T = 96 时为 59.42%。
与其他注意方法的比较。为了证明我们的双重注意力机制的有效性,在表 3 中,我们将我们的方法与几种现有的注意力方法进行了比较,包括 CAN [24]、HP-Net [25]、STRNN[69]和 QAN [26],其中显着的局部模式通过注意力策略提取并聚合成单个可比较的特征向量。相反,我们在特征提取期间保留所有信息丰富的局部模式,并在匹配阶段使用双重注意机制来执行局部模式细化和模式对对齐。我们的模型进行了更合理的比较,从而实现了卓越的性能。
与其他基于特征序列/特征集的方法的比较。在表 4 中,我们将我们的方法的性能与几种现有的基于序列/集合的方法进行了比较 [3、59、60、52]。因此,DuATM 不仅可以自适应地推断局部模式之间的语义对应结构,还可以自动消除序列中的局部损坏,我们的方法比基于 body-part 的方法(例如 SpindleNet [59]、DRLPL [52])和密集的- 基于数据集 Market-1501 的匹配(例如,SCSP [3])方法。
与最先进方法的比较。在表 5、表 6 和表 7 中,我们分别将我们的方法与 Market-1501、DukeMTMCreID 和 MARS 上的最先进方法进行了比较。所提出的 DuATM 在所有这些上都实现了卓越的性能,这进一步证实了我们基于深度上下文感知特征序列的方法的有效性。具体来说,在 Market-1501 和 DukeMTMC-reID 中,DuATM 超越了所有逐步模型和端到端网络,每个数据集的 rank-1 准确率分别为 91.24% 和 81.37%。在 MARS 中,DuATM 仍然优于上述大多数方法。如果我们的 DuATM 像 [14] 那样使用更大的图像尺寸 256 × 128 进行训练,则 rank-1 将是 81.16%,这超过了最先进的结果。
双注意力机制的可视化。为了更好地理解 DuATM 中使用的双重注意机制,我们在图 8 中显示了一些中间可视化结果。由于每个序列中的学习特征向量是上下文感知的,参考每个特征向量,序列内注意力可以集中在来自同一图像或视频的与上下文相关的身体部位或步态上以改进自身,而序列间注意力可以同时集中在语义一致的身体部位或来自相反图像或步态的图像或步态上视频生成其对齐的对应物,即使参考特征是从图 8 (c) 中的损坏区域导出的。因此,在 DuATM 中,特征序列在语义上进行了细化和对齐,从而进行了适当的比较。
5.结论
我们提出了一个端到端的可训练框架,即双注意力匹配网络 (DuATM),用于学习上下文感知特征序列并为人员 ReID 执行双重注意力比较。 DuATM 的核心组件是双重注意力块,它同时执行特征细化和特征对对齐。 DuATM 通过三元组损失和去相关损失和交叉熵损失进行训练。在大规模图像和视频数据集上进行的实验证实了我们提议的显着优势。