这篇论文《Body Part-Based Representation Learning for Occluded Person Re-Identification》的作者是Vladimir Somers、Christophe De Vleeschouwer、Alexandre Alahi ,发表于期刊WACV 2023 (IEEE Winter Conference on Applications of Computer Vision)。
- 作者信息:Vladimir Somers来自EPFL(洛桑联邦理工学院)、UCLouvain(鲁汶大学)和Sportradar;Christophe De Vleeschouwer任职于UCLouvain;Alexandre Alahi来自EPFL。
- 期刊信息:论文是2023年WACV会议的开源版本,由计算机视觉基金会提供。最终发表版本可在IEEE Xplore上获取。WACV会议聚焦计算机视觉应用领域,在该领域具有较高的影响力,为相关研究成果的交流和传播提供了重要平台。
摘要
遮挡行人重识别(ReID)是一项人员检索任务,旨在将被遮挡的行人图像与完整的行人图像进行匹配。为了解决遮挡行人重识别问题,基于部分的方法已被证明是有益的,因为它们能提供细粒度的信息,并且非常适合表示部分可见的人体。然而,训练一个基于部分的模型是一项具有挑战性的任务,原因有两个。第一,单个身体部位的外观判别力不如整体外观(两个不同身份的人可能具有相同的局部外观),这意味着使用身份标签的标准行人重识别训练目标并不适用于局部特征学习。第二,行人重识别数据集没有提供人体拓扑注释。在这项工作中,我们提出了BPBreID,这是一种基于身体部位的行人重识别模型,用于解决上述问题。我们首先设计了两个模块,用于预测身体部位注意力图并生成行人重识别目标的基于身体部位的特征。然后,我们提出了GiLt,这是一种新的训练方案,用于学习对遮挡和非判别性局部外观具有鲁棒性的基于部分的表示。在流行的整体数据集和遮挡数据集上进行的大量实验表明了我们提出的方法的有效性,在具有挑战性的Occluded-Duke数据集上,该方法的平均精度均值(mAP)比最先进的方法高出0.7%,一级识别准确率(rank-1 accuracy)高出5.6%。我们的代码可在https://github.com/VlSomers/bpbreid上获取。
一、介绍
图1. 我们研究工作中关键概念的概述。第一行展示了我们提出的方法试图解决的遮挡和基于部分的行人重识别(ReID)的四个挑战。第二行展示了我们预生成的人体解析标签,以及由我们的BPBreID模型生成的与行人重识别相关的软注意力图。行人重识别(参考文献[34, 17],简称ReID)是一项人员检索任务,旨在将一张被称为查询图像的感兴趣人员的图像,与来自大型数据库(称为图库)中的其他人员图像进行匹配。行人重识别在智慧城市的视频监控(参考文献[42, 43])以及体育赛事理解(参考文献[26, 4])等领域有着重要应用。行人重识别通常被定义为一个表征学习任务,极具挑战性,这是因为人员图像普遍存在背景杂乱、边界框不准确、姿态变化、光照变化、图像质量差,以及受到街道物体或其他人的遮挡(参考文献[17] )等问题。
为了解决行人重识别(ReID)任务,大多数方法采用全局方法[14, 8],将目标人物的全局表示学习为单个特征向量。然而,这些方法无法应对遮挡带来的挑战,原因有两个,如图1所示:
- 基于部分的方法:通过将输入样本分解为多个局部部分,为每个部分生成对应的局部特征向量。以本文研究为例,会利用身体部位注意力模块生成身体部位注意力图,进而得到不同身体部位的特征 。该方法能够关注到人体的局部细节信息,在处理遮挡问题时,仅对相互可见的身体部位进行比较,避免了遮挡部分带来的干扰,更好地实现部分到部分的匹配。但挑战在于,个体身体部位的外观判别力不如整体外观,标准 ReID 训练目标不适用于局部特征学习;并且 ReID 数据集缺乏人体拓扑注释,难以准确确定局部区域进行特征池化。
- 基于全局的方法:将目标人物的图像视为一个整体,学习其全局表示,将其编码为单个特征向量。然而,这种方法在处理遮挡问题时存在局限性,因为其学习的全局表示可能包含来自遮挡物体和行人的误导性外观信息。在比较两个被遮挡的样本时,无法像基于部分的方法那样针对可见的局部部分进行精确匹配,导致在遮挡情况下的识别效果不佳
⟨1⟩障碍物和行人干扰:全局学习的特征表示可能包含来自遮挡物体和行人的误导性信息。
⟨2⟩部分对部分匹配的需求:在比较两个被遮挡的样本时,只有比较两张图像中都可见的身体部位才有意义。全局方法无法实现这种部分对部分的匹配,因为每次比较都使用相同的特征。
全局的方法提取的是整体的特征,如果被遮挡了,只能提取到身体一部分的特征,用全局去匹配局部差异应该会很大。
为了解决上述问题,基于部分的方法[23, 46, 37]已显示出有前景的结果。这些基于部分的方法通过生成多个局部特征向量来处理行人重识别任务,即针对输入样本的每个部分生成一个特征向量。然而,学习这种基于部分的表征涉及应对两个关键挑战:
⟨3⟩非判别性局部外观:标准的行人重识别损失,如身份损失或三元组损失,其工作原理基于不同身份具有不同外观这一假设,因此它们相应的全局特征向量也不同。然而,在处理基于部分的特征向量时,这一假设并不成立,因为两个不同身份的人在某些身体部位可能具有非常相似的外观,如图1所示。由于局部外观不一定具有判别性,用于学习全局表征的标准行人重识别损失并不适用于局部表征学习。之前基于部分的行人重识别研究忽视了学习局部特征的特殊性及其对训练损失选择的影响,而我们是第一个指出这一点的。为了解决这些问题,我们提出了GiLt,这是一种适用于基于部分的方法的新型训练损失。GiLt旨在对遮挡和非判别性局部外观具有鲁棒性,它旨在学习一组局部特征,这些特征各自代表其相应的局部部位,同时在综合考虑时具有判别性。
这个思路应该就是把人体拆分成各个部分,然后各个部分进行匹配,还要考虑这个部位能不能用来判别两个人
⟨4⟩缺乏人体拓扑结构注释:基于部分的方法通常依赖空间注意力图在全局特征图内进行局部池化,以构建行人重识别(ReID)目标的身体部位特征。然而,没有任何ReID数据集提供关于要进行池化的局部区域的注释,并且由于领域差异和图像质量较差,利用外部姿态信息或部件分割工具生成此类注释会产生不准确的结果。此外,基于身体部位的特征池化与像素级精确的人体解析有着根本区别。实际上,空间注意力图不仅要在图像中定位身体部位,还需要识别最能代表身体部位外观判别特征的特征向量。因此,理想的注意力图不一定是精确的分割形状。以前利用人体解析来构建基于部分特征的ReID研究,要么(i)直接将姿态估计模型的输出用作局部注意力掩码,而没有对其进行调整以处理ReID任务[3, 5, 15];要么(ii)在没有人体拓扑先验信息的情况下,通过部件发现来学习局部特征[13, 46, 39]。在这项工作中,我们提出了一种身体部位注意力模块,该模块通过一种新颖的双重监督进行训练,同时使用身份标签和粗略的人体解析标签。这个模块展示了如何有效地利用外部人类语义信息来生成与ReID相关的身体部位注意力图。
最后,我们将这个身体部位注意力模块与GiLt(全局身份-局部三元组)损失相结合,构建了我们基于身体部位的行人重识别模型BPBreID,该模型有效地解决了前面提到的所有四个挑战。我们将工作的主要贡献总结如下:
-
在行人重识别任务方面,我们首次提出了一种基于双重监督训练的软注意力机制,该机制利用了身份信息和先验人体拓扑信息。我们的研究表明,这种方法优于此前所有基于部分的方法。
-
我们提出了一种全新的用于训练基于部分的方法的GiLt策略。GiLt对遮挡和非判别性局部外观具有鲁棒性,并且可直接集成到任何基于部分的框架中。
-
在Occluded-Duke数据集上,BPBreID的平均精度均值(mAP)比最先进的方法高出0.7%,一级识别准确率(rank-1)比其高出5.6%。我们已发布BPBreID的代码库,以鼓励对基于部分的方法展开进一步研究。
二、相关工作
行人重识别中的基于部分的特征对齐:为了解决空间不对齐问题,一些研究[23, 30, 15, 20, 38, 41, 36, 5, 15, 27, 3]采用固定注意力机制,对输入图像进行预先确定的像素划分,并应用部分池化来生成局部特征表示。这些方法的特征选择和对齐效果较差,因为生成的注意力图并非用于汇聚与行人重识别相关的身体部位特征。为了解决这些问题,其他研究[21, 10, 46, 28]使用端到端训练的注意力机制来生成专门用于解决行人重识别任务的注意力图。其中一些方法[21, 10, 28]将姿态估计骨干网络作为并行分支,与外观骨干网络分支在行人重识别数据集上进行端到端的联合训练。然而,并行分支会带来显著的计算开销,并且这些方法没有明确解决遮挡行人重识别问题。其他基于部分的方法通过自监督的部分发现方式学习局部特征,没有利用人体拓扑先验信息[46, 13, 39]。这种方法可能会引入对齐错误、遗漏部分和背景杂波。与以往研究不同,我们的基于部分的特征由一个注意力分支构建,该分支:(i)经过明确训练,用于汇聚与行人重识别任务相关的局部特征;(ii)利用外部人体解析标签使空间注意力偏向于关注先验身体区域。
行人重识别中的局部特征学习:身份损失和批量硬三元组损失[8]是训练行人重识别模型的两种常用目标函数,它们也被应用于基于部分的方法[18, 15, 27, 5, 46, 9, 25, 3]中以学习局部表征。这些方法中的大多数[23, 33, 15, 18]仅对每个基于部分的特征应用身份损失。因此,它们对非判别性的身体部位更为敏感,并且错失了三元组损失作为行人重识别的补充深度度量学习目标的优势[8, 14]。为了处理部分特征的不完整信息,一些研究[46, 25]建议对由局部特征连接或求和得到的组合嵌入应用三元组损失和身份损失。文献[25]中提出了一种专门的改进硬三元组损失(IHTL)用于训练基于部分的特征,但这个目标函数无法很好地处理被遮挡的或相似的样本。最后,文献[9]对组合的部分特征同时应用了三元组损失和身份损失,但在训练过程中没有使用整体特征,这使得他们的训练方案对于不准确的身体部位预测和严重的遮挡情况的鲁棒性较差。我们提出的GiLt训练过程旨在解决上述问题,并解决在选择用于训练基于部分的方法的损失函数方面缺乏共识的问题。最后,值得注意的是,其他研究[13, 5]采取了相反的方法来处理标准行人重识别损失不适用于非判别性身体部位外观的问题。他们通过约束每个基于部分的特征自身具有判别性来解决这个问题,方法是要么让每个特征同时关注多个身体区域[13],要么通过消息传递在每个局部特征中添加高阶信息[5]。
三、方法
图2. BPBreID的结构,上方展示了详细的架构和训练过程,下方展示了推理过程。该模型包含一个用于生成身体部位注意力图的身体部位注意力模块,以及一个全局-局部表示学习模块,用于生成整体特征和基于身体部位的特征,同时生成这些特征对应的可见性分数 。对于整体特征,“g”代表“全局(global)”,“f”代表“前景(foreground)”,“c”代表“拼接(concatenated)”。“GWAP”代表全局加权平均池化。该网络以端到端的方式进行训练,使用身体部位注意力损失来监督部位预测,对整体特征应用标准的身份损失,对基于身体部位的特征应用部分平均三元组损失。在推理时,使用部分对部分的匹配策略来计算查询图像与图库图像之间的距离,该策略仅比较相互可见的身体部位。绿色/红色分别表示可见/不可见的身体部位。架构的每个组件都用灰色矩形框起来,并标注了其名称以及一个数字,该数字对应描述该组件的章节。为简洁起见,此处展示的BPBreID中 ,即头部、躯干、腿部、脚部。我们的模型BPBreID的整体架构如图2所示。它包含两个模块:3.1节中描述的身体部位注意力模块和3.2节中描述的全局-局部表征学习模块。BPBreID的整体训练过程在3.3节中介绍,推理时用于计算查询图像与图库图像之间距离的过程在3.4节中介绍。
3.1. 身体部位注意力模块
身体部位注意力模块将主干网络提取的特征图作为输入,并输出一组注意力图,这些注意力图突出显示行人重识别(ReID)目标的身体部位。该模块由一个像素级的部位分类器组成,该分类器使用我们的粗略人体解析标签,通过身体部位注意力损失进行训练。我们将在下面详细介绍这三个组成部分。由于我们的模型是端到端训练的,身体部位注意力模块还会从使用身份标签的行人重识别损失中接收训练信号,如3.3节中所述。因此,这个注意力分支是在身体部位预测目标和行人重识别目标的双重监督下进行训练的。由于这种双重监督,与使用预训练的人体解析模型的固定输出所得到的注意力图相比,该模块生成的注意力图与行人重识别任务更为相关。该模块如图2的左上角所示。
3.1.1 像素级部位分类器
身体部位注意力模块将外观特征图 作为输入,该外观特征图是由特征提取器生成的一个维度为 的张量。对于外观特征图 中的每个像素 ,像素级部位分类器会预测该像素是属于背景,还是属于 个身体部位中的某一个。这意味着共有 个目标类别,其中索引为 0 的类别代表背景。
在特征图 上应用一个参数为 的 1x1 卷积层,然后进行 softmax 操作,以得到分类得分 ,计算公式如下:
因此,这 个概率图 表明了哪些像素属于哪些身体部位(或属于背景)。
3.1.2 人体解析标签
训练我们的部位注意力模块所需的人体解析标签 ,是通过PifPaf [12]姿态估计模型生成的,具体过程详见补充材料。如果空间位置 属于个身体部位中的某一个,那么 被设为 中的某一个值;如果属于背景,则设为。对于给定的值,人体语义区域是手动定义的。例如,当 时,我们定义以下语义区域:{头部、左/右臂、躯干、左/右腿和左/右脚}。当 时,这些粗略的人体语义解析标签如图1所示。
3.1.3 身体部位注意力损失
像素级部位分类器由身体部位注意力损失 进行监督,实际上它是一种带有标签平滑的交叉熵损失函数[24, 1],公式如下:
其中,人体解析标签图在3.1.2节中描述,是批量大小,是标签平滑正则化率,是在空间位置处对于部位的预测概率,如公式(1)中所述。
3.2. 全局-局部表征学习模块
全局-局部表征学习模块将前一个模块生成的身体部位注意力图作为输入,并输出行人重识别(ReID)目标的整体特征、基于身体部位的特征,以及每个部位的可见性分数。该模块可在图2的右上角部分看到。基于部分的表征,结合其对应的可见性分数,是我们实现部分对部分匹配的方法,用于解决第1节中提到的挑战⟨1⟩和⟨2⟩。
3.2.1 整体特征和基于身体部位的特征
如3.1.1节所述,身体部位注意力模块会生成个空间热图,这些热图突出显示了输入图像中相应的个预测出的身体部位。我们首先将个身体部位图合并为一个单一的前景热图: 。然后,这些热图用于对外观特征图执行次全局加权平均池化(在图2中表示为),以获得前景嵌入和个基于身体部位的嵌入:
初始的全局外观特征图也会进行全局平均池化(),以获得全局嵌入: 。最后一个嵌入是通过沿着通道维度连接个基于身体部位的特征得到的: 。因此,我们的全局-局部表征学习模块会生成三个整体嵌入和个基于身体部位的嵌入 。
3.2.2 身体部位可见性估计
为了检测被遮挡的身体部位,我们为每个嵌入计算一个二值可见性分数,其中和分别对应不可见和可见的身体部位。在我们的BPBreID模型中,可见性分数仅在推理时使用。
对于所有的整体嵌入,可见性分数都设置为,即。
对于基于身体部位的特征,当时,如果中至少有一个像素的值高于阈值(根据经验将其设置为),则可见性分数设置为,如下公式所示:
3.3. 整体训练过程
在训练阶段用于优化网络的总体目标函数公式如下:
其中,是由人体解析标签监督的身体部位注意力损失(在3.1.3节中介绍),是我们的损失,由身份标签监督。参数用于控制总体身体部位注意力损失的权重,根据经验设置为。
3.3.1 GiLt损失
为了用身份标签监督模型训练,我们的GiLt损失依赖于两种损失:常用的身份分类损失和自定义的部分平均三元组损失,它是批量硬三元组损失的一种变体[8]。然而,我们必须仔细选择对模型产生的个嵌入中的每一个应用哪种损失。
首先,与其他流行的基于身体部位的方法[23, 15, 5, 3, 32, 13, 30, 47]不同,正如第1节中所介绍的,由于存在遮挡以及局部外观缺乏判别性,我们不会对基于身体部位的特征应用身份损失。实际上,基于身体部位的特征并不总是具有足够的判别力来识别一个人,这使得身份预测目标难以实现。因此,在这样的局部表征上添加身份损失会对性能产生负面影响。然而,与大多数最先进的行人重识别(ReID)方法类似,我们仍然通过将身份损失监督应用于整体特征而从中受益。
其次,我们通过在3.3.2节中详细介绍的自定义部分平均三元组损失,将三元组损失约束应用于基于身体部位的特征。在推理阶段,样本之间的距离将使用这些基于身体部位的特征来计算,因此直接用三元组损失约束来优化它们之间的相对距离是合理的。然而,我们认为由于存在遮挡情况,不应将三元组约束应用于整体嵌入。实际上,如果同一身份的两个整体嵌入中至少有一个存在部分遮挡,那么这两个整体嵌入在本质上会具有不同的表征,因为每个嵌入将代表整个目标身体的不同子集。因此,使用三元组损失将这两个整体特征在特征空间中拉近,会对性能产生负面影响。
总之,我们认为对于基于身体部位的方法而言,最佳的训练策略是:(i)仅对整体特征应用身份损失约束;(ii)仅通过我们自定义的部分平均三元组损失,对基于身体部位的特征应用三元组损失约束。我们将这种策略称为全局身份 - 局部三元组,简称为,并在我们的损失中进行了公式化表述:
其中,是带有标签平滑[24]和BNNeck技巧[14]的交叉熵损失,是我们的部分平均三元组损失,将在下文进一步详细介绍。对网络进行优化,以便从每个整体嵌入预测输入样本的身份。
我们在4.4节中进行了大量的消融实验,以验证我们的观点。这些实验还表明,与三元组损失和身份损失的其他组合相比,我们用于训练基于身体部位方法的GiLt策略具有优越性。据我们所知,我们是首个提出在训练基于身体部位的方法时采用这种三元组损失和身份损失组合方式的团队。我们也是首个开展大量实验,来展示当对整体嵌入和基于身体部位的嵌入施加这两种损失时,它们对训练性能产生的影响。GiLt策略如图2所示。
3.3.2 部分平均三元组损失
我们的部分平均三元组损失在计算两个样本之间距离的策略上与标准的批量难样本三元组损失[8]有所不同。实际上,它依赖于两个样本和之间各部位两两距离的平均值。这个部分平均距离是联合使用所有基于身体部位的特征来计算的:
其中,指的是欧几里得距离。与文献[8]类似,部分平均三元组损失随后分别使用最难正样本和最难负样本的部分平均距离和来计算:
其中,锚样本到最难正样本和最难负样本的距离分别用和表示,是三元组损失的边界值。因此,我们的部分平均三元组损失从全局上优化了对应部位之间局部距离的平均值,而不是像文献[5, 13]中那样为每个部位采用不同的三元组,如表2中“无部分平均三元组损失的BPBreID”所示,后者的效果较差。这一关键的设计选择让每个训练步骤都有机会聚焦于具有最强鲁棒性和判别性特征的部位,进而减轻了被遮挡和缺乏判别性的局部特征的影响。
3.4. 基于可见性的部位对部位匹配
给定一个查询样本和一个库样本,在推理时,通过基于可见性的部位对部位匹配策略,利用前景嵌入和基于身体部位的嵌入来计算两两之间的距离:
可见性分数用于确保仅对相互可见的身体部位进行比较。如果两个样本之间不存在相互可见的部位,则它们之间的距离设置为无穷大。该策略如图2的底部所示。在推理时不使用全局嵌入和拼接嵌入,因为它们可能会传达来自遮挡物体和行人的信息。
四、实验
4.1. 数据集与评估指标
我们在整体数据集Market1501[42]和DukeMTMC-reID[43],以及被遮挡数据集Occluded-Duke[15]、Occluded-ReID[48]和PDukeMTMC[48]上对我们的模型进行评估。我们报告了两种标准的行人重识别(ReID)指标: 第一名的累积匹配特性(CMC)以及平均精度均值(mAP)。在单查询设置下,在不进行重排序[44]的情况下评估性能。
4.2. 实现细节
模型架构:采用ResNet-50(RN)[6]作为主要的骨干特征提取器。去除最后的全连接层和全局平均池化层,并且将最后一个卷积层的步长设置为1而非2。为了与使用更复杂架构或训练方式的方法进行公平比较,我们还像文献[7, 35, 31]中那样采用了ResNet-50ibn(RI)[16],以及像文献[46]中那样采用HRNet-W32(HR)[22]作为骨干网络。具有更高分辨率的HRNet特征图对于BPBreID构建细粒度的注意力图特别有益。所有的骨干网络都在ImageNet[19]上进行了预训练。对于整体数据集,身体部位的数量K设置为5;对于被遮挡的数据集,K设置为8。在补充材料中提供了关于K的消融实验研究。
训练过程:训练过程主要采用了BoT[14]的方法。对于ResNet-50(RN),所有图像被调整大小为256×128;对于HRNet-W32(HR)和ResNet-50-ibn(RI),则调整为384×128。图像首先通过随机裁剪和10像素的填充进行增强处理,然后以0.5的概率进行随机擦除[45]操作。一个训练批次包含来自16个身份的64个样本,每个身份有4张图像。在一块英伟达Quadro RTX8000 GPU上,使用Adam优化器以端到端的方式对模型进行120个epoch的训练。在10个epoch后,学习率从线性增加到,并分别在第40个epoch和第70个epoch时衰减到和 。标签平滑正则化率设置为0.1,三元组损失边界值设置为0.3。
4.3. 与最先进方法的比较
分别表示全局方法和基于部件的方法。性能排名第一、第二和第三的情况分别用1、2、3来表示。表1展示了BPBreID与当前最优(SOTA)方法的比较。我们在表1中将我们的模型与其他行人重识别(ReID)方面的研究成果进行了比较,结果显示我们的模型总体排名第一。表中第一部分的方法使用了ResNet-50骨干网络,其训练过程与我们的以及BoT[14]的方法类似。表中第二部分的方法,要么采用了任意的训练过程,且使用了更大尺寸的图像[9, 3, 40, 35],要么使用了更先进的骨干网络[28, 29, 46, 31],或者采用了更复杂的架构,配备了额外的骨干网络或分支[28, 3, 5, 35, 40, 13]。
表2. 在被遮挡的杜克(Occluded-Duke)数据集上对BPBreID主要组件的消融研究。对于“无部分平均三元组损失”的实验,我们用针对每个部分的不同三元组损失,取代了公式(8)中所介绍的我们的部分平均三元组损失。
表3. 身体部位嵌入和整体嵌入的性能比较。被遮挡的杜克(Occluded-Duke)数据集和P-杜克多目标多摄像头(P-DukeMTMC)数据集:在这两个存在遮挡情况的数据集上,我们的模型性能优于所有先前的基于部件的方法(‡)。对于那些直接将姿态估计模型的输出用作局部注意力掩码的方法[5, 15, 3, 28],由于缺乏端到端的训练,就行人重识别(ReID)相关的特征池化而言,得到的注意力图并非最优。对于那些通过部件发现来生成局部特征的方法[46, 13],由于没有使用先验的人体拓扑信息,使得它们的模型更容易受到对齐误差、部件遗漏以及背景杂乱的影响。我们的研究表明,对一个带有身份标签和人体解析标签的空间注意力分支进行端到端的训练,在执行与行人重识别相关的基于部件的池化操作方面,要优于先前的架构。最近,专门为解决存在遮挡情况的行人重识别任务而设计的全局方法(†)[11, 29, 35, 31],与先前的基于部件的方法相比,已显示出良好的性能。然而,BPBreID的性能也超过了所有这些全局方法,这证明了基于部件的方法在解决存在遮挡的任务方面的优势,因为全局方法无法实现部件对部件的匹配。
Market-1501和DukeMTMC-ReID数据集:在Market-1501和DukeMTMC-ReID这两个数据集上,我们的方法在性能上超过了所有基于部件的方法(‡),不过在Market-1501数据集上的PFD [28]方法除外,该方法使用了更为复杂的架构,采用Vision Transformer(ViT)作为骨干网络,并配备一个HRNet-W48并行分支用于姿态估计。 至于全局方法(†),BPBreID在DukeMTMC-ReID数据集上的性能超过了所有这些方法,并且在Market-1501数据集上也取得了具有竞争力的性能,尽管在该数据集上大多数当前最优(SOTA)方法之间的性能差异并不显著。这表明,对于整体行人重识别任务而言,基于部件的方法是一个颇具竞争力的选择。
遮挡行人重识别(Occluded-ReID):这个存在遮挡情况的数据集需要很强的领域适应能力,因为它没有提供训练集,而且通常用于预训练的Market-1501数据集并不包含有遮挡情况的样本。在Occluded-ReID数据集上表现良好的所有方法,在推理时要么依赖于来自外部姿态估计模型的信息[3, 5, 40, 28],要么依赖于遮挡数据增强技术[29, 31],以便在新的存在遮挡的领域中实现稳健的部件池化。与这些方法不同的是,我们在推理时不使用任何外部模型,也不采用遮挡数据增强技术,但仍然取得了具有竞争力的性能。
4.4. 消融研究
在本节中,我们使用被遮挡的杜克(Occluded-Duke)数据集和基于ResNet-50骨干网络的BPBreID()进行了一些消融研究,以分析我们在模型架构方面的选择对行人重识别(ReID)性能的影响。
4.4.1 BPBreID的组成部分
我们模型不同组件所带来的性能提升情况见表2。我们采用“技巧集合(Bag of Tricks,BoT)”[14]作为基线,并在此基础上构建了BPBreID模型。
没有可学习注意力机制的BPBreID(BPBreID without learnable attention )是一种替代方法。在这种方法中,身体部位注意力模块所预测的个身体部位概率图,被直接从PifPaf输出中得到的固定注意力权重所取代,具体过程详见补充材料。性能下降主要表明,由于在注意力权重方面缺乏端到端的训练,导致固定的注意力掩码与行人重识别(ReID)在骨干特征池化方面的需求之间存在差异。这证实了以身体部位预测和行人重识别(ReID)为目标,以端到端的方式训练注意力机制,能够得到一个更专注于解决行人重识别任务的注意力机制,该机制能更好地选择具有判别性的外观特征。
没有可见性分数的BPBreID指的是这样一种策略:在推理时,无论各个嵌入的可见性如何,都会使用所有的嵌入,也就是说,公式(9)中的所有可见性分数都被设置为1。正如预期的那样,使用与不可见部分相对应的含噪嵌入会显著降低性能。这验证了我们基于可见性的部件对部件匹配策略在应对挑战⟨1⟩和⟨2⟩方面的有效性。
我们尝试在训练过程中考虑可见性分数,但这并未带来性能上的提升,不过这仍是未来研究中一条很有前景的方向。我们推测出现这种情况的原因是:(1)全局-局部交互学习(GiLt)对遮挡情况已经具有较强的鲁棒性;(2)被遮挡的杜克(Occluded-Duke)数据集中的大多数训练样本其实是没有被遮挡的。
最后,没有部分平均三元组损失的BPBreID指的是这样一种模型:在该模型中,基于部件的嵌入是由经典的三元组损失[8]分别进行监督的,而不是使用我们在公式(8)中所描述的部分平均三元组损失。这两种方法之间的区别在于它们潜在的目标:部分平均三元组损失优化的是两个样本之间的全局距离,该全局距离是通过局部距离的平均值计算得出的;而标准的三元组损失则是分别对所有的局部成对距离进行优化。后一种方法导致性能下降,因为它使得训练过程对被遮挡的身体部位以及缺乏判别性的局部外观更加敏感。这最后一项消融测试证明了我们的部分平均三元组损失对遮挡情况和缺乏判别性的局部特征具有鲁棒性,因而能够应对挑战⟨1⟩和⟨3⟩。
4.4.2 全局-局部交互学习(GiLt)策略的验证
表4. 当有选择地将身份损失和三元组损失应用于整体嵌入(全局“g”、前景“f”和拼接“c”)以及基于身体部位的嵌入(“”)时,它们对训练性能的影响。应用于的三元组损失是指我们在3.3.2节中描述的部分平均三元组损失。应用于其他嵌入(g、f和c)的三元组损失是指标准的批量难例三元组损失[8]。应用于的身份损失是指分别应用于每个基于身体部位的嵌入的身份损失。我们还给出了流行的基于部件的行人重识别(ReID)架构PCB [23]的性能,该架构不使用前景嵌入。在本节中,我们研究了身份损失和三元组损失的不同组合,对我们模型生成的个嵌入的影响。结果见表4。我们还给出了流行的模型架构PCB [23]的性能,该架构将输入图像划分为六个水平条带,以此来证明我们的训练方案相较于其他基于部件的架构的优越性。原始的PCB论文提出仅对基于部件的嵌入应用简单的身份损失:相应的次优性能在表的第二行中给出。第一行的实验对应于我们在3.3节中描述的全局-局部交互学习(GiLt)策略:整体特征仅由身份损失进行监督,而基于部件的特征则由我们的部分平均三元组损失进行监督。正如实验1到实验4所表明的,三元组损失和身份损失是相辅相成的,并且当同时使用它们时能达到最佳性能。然而,盲目地对所有嵌入都应用这两种损失(实验2)并不是一个最优的解决方案。我们可以从实验5到实验8中得出两个结论,这些实验是我们的GiLt策略在身份损失方面的一些小变化。首先,对所有三个整体嵌入应用身份损失会带来更稳健的训练方案以及更好的性能。这个实验验证了我们选择计算全局嵌入和拼接嵌入用于训练的合理性,尽管我们在推理时并不使用它们。其次,实验5验证了我们的直觉,即对基于部件的特征应用身份损失会对性能有害,因为这会使训练过程对遮挡情况以及缺乏判别性的局部特征变得敏感。实验9到实验12验证了我们仅对基于部件的嵌入施加三元组损失约束的GiLt策略。
4.4.3 输出嵌入的判别能力
图3. 基于单个基于身体部位的嵌入(每个查询的上一行)或所有基于身体部位的嵌入与前景嵌入相结合(每个查询的下一行)的排序结果可视化。对于“所有部位”的行,为简洁起见,仅显示前景注意力图。在每个查询的上一行中,检索到的图库样本在与所比较的身体部位方面非常相似,但身份不匹配,因为单个身体部位的判别性不够。绿色/红色边框表示匹配正确/错误。建议以彩色并放大查看效果最佳。在本节中,我们研究当时,整体嵌入以及基于身体部位的嵌入 的判别能力。为此,我们分别使用每个嵌入或者它们的组合来计算查询样本与图库样本之间的距离,并在表3中报告相应的排序性能。当使用多个嵌入时,我们按照公式(9)中所述,根据可见性分数对平均距离进行加权计算。如表3所示,使用整体嵌入的性能并非最优,因为全局嵌入对背景杂乱较为敏感,而前景嵌入无法实现部件对部件的匹配。拼接嵌入解决了这些问题,但仍然对遮挡情况较为敏感,因为它包含了来自不可见身体部位嵌入的含噪信息。正如表中所示,单独使用基于身体部位的嵌入会导致性能欠佳。来自上半身部位的嵌入性能更好,原因在于:(1)这些部位更具判别性;(2)下半身部位常常被遮挡。使用所有部位的嵌入 能获得最佳性能,因为这种策略是克服与遮挡行人重识别相关的重大挑战的关键,即:(1)实现特征对齐;(2)减少背景杂乱;(3)仅比较相互可见的身体部位。最后,加入来自前景嵌入的信息会使性能略有提升,因为它有助于减轻因身体部位预测失败以及图像对中相互可见部位很少或没有而导致的错误。图3展示了分别使用这些嵌入时的一些排序结果。
五、结论
在这项工作中,我们提出了我们的模型BPBreID,通过学习身体部位表征来解决被遮挡行人的重识别(ReID)任务,并做出了两项贡献。首先,我们设计了一个身体部位注意力模块,该模块在身份标签和人体解析标签的双重监督下进行训练。借助这种注意力机制,我们展示了如何有效地利用外部人体语义信息来生成与行人重识别(ReID)相关的基于身体部位的特征。其次,我们研究了三元组损失和身份损失对学习基于身体部位的特征的影响,并提供了一种简单而有效的全局-局部交互学习(GiLt)策略,用于训练任何基于身体部位的方法。我们的模型在五个流行的行人重识别(ReID)数据集上取得了领先的性能。
致谢:这项工作得到了Sportradar、瓦隆地区“ReconnAIssance”项目以及比利时法语区科学研究基金会(Fonds de la Recherche Scientifique – FNRS)的资助。