一、摘要
无监督行人重识别(ReID)旨在无需标注的情况下学习具有判别性的身份特征。近来,自监督对比学习因其在无监督表征学习中的有效性而日益受到关注。实例对比学习的主要理念是在不同的增强视图中匹配同一实例。然而,在以往的对比方法中,不同实例间的关系尚未得到充分探究,尤其在实例级对比损失方面。为解决此问题,我们提出了实例间对比编码(ICE),其利用实例间的成对相似性得分来提升先前的类别级对比 ReID 方法。我们首先将成对相似性排名用作硬实例对比的独热硬伪标签,旨在降低类内方差。接着,我们运用相似性得分作为软伪标签来强化增强视图与原始视图间的一致性,使我们的模型对增强扰动更具鲁棒性。在多个大规模行人 ReID 数据集上进行的实验验证了我们所提出的无监督方法 ICE 的有效性,它甚至可与监督方法相媲美。代码可在 https://github.com/chenhao2345/ICE 获取。
二、介绍
行人重识别(ReID)旨在通过比较外观表征的相似性,在非重叠摄像头间检索感兴趣的行人。监督式 ReID 方法[28, 2, 22]使用人工标注的标签构建对姿态、相机属性和视角变化具有鲁棒性的判别性外观表征。然而,标注跨摄像头的身份标签是一项繁琐的任务,这使得监督式方法在实际部署中的可扩展性较差。无监督方法[20, 21, 32]直接在未标注数据上训练模型,因此具有更好的可扩展性。
先前大多数无监督行人重识别(ReID)方法[27, 11, 41]基于无监督域适应(UDA)。 UDA 方法将模型从有标注的源域调整至未标注的目标域。源域提供了利于目标域适应的良好起点。借助大规模源数据集,先进的 UDA 方法[11, 41]大幅提升了无监督 ReID 的性能。然而,UDA 方法的性能深受源数据集规模与质量的影响。此外,大规模标注数据集在现实世界中并非总能获取。在此情形下,完全无监督方法[20, 21]更具灵活性,因其无需任何身份标注,可直接从目标域的无标签数据中学习。
UDA 通常指的是无监督域自适应(Unsupervised Domain Adaptation)。无监督域自适应旨在将在一个或多个源域上训练的模型,有效地迁移到一个不同但相关的目标域上,且在目标域上没有任何标注数据。在行人重识别中,源域和目标域可能是不同场景下的行人图像数据,例如源域是商场的监控图像,目标域是街道的监控图像。
完全无监督行人重识别(Completely Unsupervised Person Re-identification,简称 CU-ReID)是行人重识别领域中的一个研究方向,旨在解决在没有任何人工标注信息的情况下,对不同摄像头下的行人进行身份匹配的问题。
近期,对比学习在无监督表征学习中展现出卓越性能。前沿对比方法[38, 5, 14]将每个图像实例视作一个类别,通过匹配同一实例的增强视图来学习表征。由于一个类别通常由多个正样本实例构成,当同一身份的不同图像被视作不同类别时,会损害细粒度 ReID 任务的性能。自步对比学习(SpCL)[13]通过将一个实例与多个正样本的质心进行匹配来缓解此问题,其中每个正样本以均匀的速度收敛至其质心。尽管 SpCL 取得了令人瞩目的成果,但该方法未考虑实例间的亲和性,而这种亲和性可用于降低类内方差并使聚类更紧凑。在监督式 ReID 中,前沿方法[2, 22]通常采用硬三元组损失[16],以更着重关注类内的困难样本,从而使困难样本更接近普通样本。在本文中,我们引入实例间对比编码(ICE),在小批量中使一个实例与其最难的正样本相匹配,以使聚类更紧凑并提升伪标签质量。匹配最难正样本是指使用独热“硬”伪标签(one-hot "hard" pseudo labels)。
自步对比学习(Self - paced Contrastive Learning,SpCL)是一种用于域自适应目标重识别(包括行人重识别和车辆重识别等)的技术。SpCL 结合了自步学习和对比学习的思想。自步学习是一种让模型根据自身学习进度动态调整学习样本难度的方法,它根据训练损失来判断样本的难易程度,使模型先从容易的样本开始学习,逐渐过渡到复杂的样本。对比学习则通过设计对比任务,让模型学习到不同样本之间的差异和相似性,例如将同一目标在不同视角下的图像作为正样本对,将不同目标的图像作为负样本对,通过最大化正样本对之间的相似度、最小化负样本对之间的相似度来训练模型,使模型学习到具有区分性的特征。SpCL 将两者结合,在对比学习的过程中,利用自步学习的机制来动态调整样本的权重,从而更好地学习到适应不同域的特征表示。
由于没有可用的真实标签(ground truth),在聚类中挖掘最难区分的正样本很可能会在训练过程中引入假阳性样本。此外,当一个小批次(mini-batch)中存在多个伪正样本和伪负样本时,独热(one-hot)标签并不会考虑复杂的实例间关系。对比方法通常使用数据增强来模拟现实世界中的扭曲情况,例如遮挡、视角和分辨率变化。在数据增强操作之后,某些伪正样本可能变得与锚点不太相似,而某些伪负样本可能变得更相似。由于一个稳健的模型应当对数据增强带来的扭曲具有不变性,我们提议使用实例间成对相似性作为“软”伪标签,以增强增强前后的一致性。
这里说的没有真实标签,是因为本文用的是完全无监督行人重识别,所以采用的正样本很可能是错误的(也就是假阳性样本)
我们提出的 ICE 将类别级标签(质心对比)、实例成对硬标签(最难正样本对比)和实例成对软标签(增强一致性)整合到一个完全无监督的行人重识别框架中。在无需任何身份标注的情况下,ICE 在主流行人重识别数据集上显著优于最先进的 UDA 和完全无监督方法。
总之,我们的贡献如下: (1) 我们提议使用成对相似性排名挖掘最难样本作为硬实例对比的独热硬伪标签,这可降低类内方差。 (2) 我们提议使用成对相似性得分作为软伪标签来增强增强实例与原始实例之间的一致性,这可减轻标签噪声并使我们的模型对增强扰动更具鲁棒性。 (3) 大量实验凸显了实例间成对相似性在对比学习中的重要性。我们提出的方法 ICE 大幅超越现有最先进方法,有力推动无监督行人重识别走向实际应用。
三、相关工作
无监督行人重识别(ReID)。近期的无监督行人 ReID 方法大致可分为无监督域适应(UDA)和完全无监督方法。在基于 UDA 的方法中,一些工作[33, 19]利用语义属性来缩小源域与目标域之间的域差距。部分工作[37, 48, 8, 49, 51, 4]运用生成网络将已标注的源域图像转换为目标域的风格。另一种途径是为未标注图像分配伪标签,这些伪标签可通过聚类[27, 10, 42, 3]或参考数据[39]获取。通过挑选可信样本[1]或借助教师网络分配软标签[11],能够减少伪标签噪声。所有这些基于 UDA 的方法都需要一个已标注的源数据集。完全无监督方法在部署方面具备更强的灵活性。BUC[20]率先将每张图像视作一个聚类,并逐步合并聚类。Lin 等人[21]以基于相似性的软化标签取代基于聚类的伪标签。[40]中提出了层次聚类以提升伪标签质量。鉴于每个身份通常拥有多个正样本实例,MMCL[32]在无监督 ReID 中引入了基于记忆的多标签分类损失。JVTC[18]和 CycAs[35]挖掘时间信息以优化视觉相似性。SpCL[13]将每个聚类和离群点视作单个类别,随后开展实例到质心的对比学习。CAP[34]为每个相机计算身份质心,并进行相机内和相机间的质心对比学习。SpCL 和 CAP 均聚焦于实例到质心的对比,却忽略了实例间的亲和性。
对比学习。近期的对比学习方法[38, 14, 5]将无监督表征学习视作字典查找问题。吴等人[38]从存储数据集中所有图像表征的记忆库中检索目标表征。MoCo[14]引入动量编码器和类队列式记忆库,动态更新对比学习中的负样本。在 SimCLR[5]中,作者直接在大批量数据中检索表征。然而,所有这些方法将同一类的不同实例视为不同类别,这在细粒度的行人重识别任务中并不适用。这些方法从增强视图中学习不变性,可被视为一种一致性正则化形式。
一致性正则化。一致性正则化是指这样一种假设:当输入同一图像的扰动版本时,模型预测应保持一致,这在近期的半监督学习[29, 26, 6]中被广泛考虑。扰动可源于数据增强[26]、时间集成[29, 17, 12]以及浅层 - 深层特征[45, 6]。在对比学习中,人工扰动被用作强增强[7, 36]和动量编码器[14],以使模型对数据变化具有鲁棒性。基于时间集成,葛等人[12]利用实例间相似性减轻图像定位在不同训练时期之间的伪标签噪声。魏等人[36]提议对两组增强视图之间的实例间一致性进行正则化,但忽略了类内方差问题。我们同时降低类内方差并规范增强视图与原始视图之间的一致性,这更适用于细粒度的行人重识别任务。
四、提出的方法
3.1 总体概述
给定一个行人重识别数据集,我们的目标是在无标注的上训练一个鲁棒的模型。在推理时,同一个人的表征应尽可能接近。最先进的对比方法[14, 5]将每幅图像视为一个单独的类别,并使用InfoNCE损失[30]最大化同一实例的增强视图之间的相似性。
InfoNCE 损失公式为:
其中和是同一实例在候选集中的两个增强视图,是控制相似性尺度的温度超参数。该损失旨在通过最大化同一实例不同增强视图间的相似性,学习到更具判别力的特征表示,推动模型在无监督行人重识别任务中有效区分不同行人身份,提升识别准确性与鲁棒性。
InfoNCE损失是对比学习中经常采用的一种损失函数

图1:实例间对比编码(ICE)的通用架构。我们通过类间(一个实例表征与其聚类代理之间的代理一致性)和类内(与其伪正样本之间的实例一致性)这两种方式来最大化锚点与伪正样本之间的相似性。
遵循MoCo[14],我们设计了所提出的实例间对比编码(ICE),它包含一个在线编码器和一个动量编码器,如图1所示。在线编码器是一个常规网络,例如ResNet50[15],它通过反向传播进行更新。动量编码器(其权重记为)与在线编码器具有相同的结构,但它是通过在线编码器的累积权重(其权重记为)来更新的: ,其中是一个动量系数,用于控制动量编码器的更新速度。和分别指代当前迭代和上一次迭代。动量编码器利用移动平均权重构建动量表征,这种表征对于标签噪声更加稳定。
MoCo是一种比较先进的对比学习架构,在另一篇文章中我有说明MoCo的原理。
在每个训练轮次开始时,我们使用动量编码器提取训练集中所有样本的外观表征。我们在这些外观表征上使用一种聚类算法——DBSCAN[9]来生成伪身份标签。我们仅考虑聚类内的样本(内点)用于对比学习,而未聚类的离群点则被舍弃。我们计算代理质心(应该指的是聚类以后的簇的质心)并将它们存储在内存中,用于计算代理对比损失(见第3.2节)。请注意,这个代理内存可以是与相机无关的[13],也可以是与相机相关的[34]。
DBSCAN是基于密度的空间聚类算法,通过该算法可以生成伪标签。

3.2 代理质心对比基准
对于与相机无关的内存,聚类的代理被定义为属于该聚类的所有实例的平均动量表征:
其中是属于聚类的实例数量。(这里算的其实就是每个聚类的质心)
我们对应用一组数据增强操作,并将其输入在线编码器。对于属于聚类的在线表征,与相机无关的代理对比损失是一种带有一个正代理以及记忆库中所有负样本的softmax对数损失(这里算的其实就是查询目标和其所属的聚类的质心的距离,以及和所有聚类的质心的距离,让查询目标离所属聚类质心更近,和其它聚类质心更远),其公式如下:
其中是一个训练轮次中的聚类数量,是一个温度超参数。与统一对比损失[11]不同的是,离群点不会被当作单独的实例聚类来处理。通过这种方式,离群点不会被从已聚类的实例中推开,这使得我们能够为所提出的硬实例对比挖掘更多的难样本。如图2所示,所有已聚类的实例都会收敛到一个公共的聚类代理质心。然而,聚类内的图像容易受到相机风格的影响,从而导致较高的类内方差。这个问题可以通过添加跨相机代理对比损失[34]来缓解。
对于与相机无关的内存(For a camera-agnostic memory)
对于与相机相关的记忆库,如果我们有个相机,相机代理被定义为属于相机中聚类的所有实例的平均动量表征(其实就是聚类a中所有由相机b拍的实例的质心),其计算公式如下:
图2:代理对比损失。在一个聚类内部,一个实例会被与相机无关的代理对比损失()拉向聚类质心,并且会被跨相机代理对比损失()拉向跨相机质心。 给定一个在线表征(这个实例的对象是a,由相机b拍摄),跨相机代理对比损失是一种softmax对数损失,其包含一个正的跨相机代理(由相机i拍摄的同一个对象a的质心)以及记忆库中其余个负代理:
其中表示余弦相似度,是一个跨相机温度超参数。是跨相机正代理的数量(拍了对象a的相机数量)。得益于这种跨相机代理对比损失,来自某一相机的实例会被拉得更靠近其他相机的代理,这有助于减少类内因相机风格而产生的方差。
(这个损失函数的分子部分计算了由相机b拍的对象a的特征(查询对象)到,由相机i拍摄的所有a对象的质心的相似度(这个是正样本)。
分母部分算的是fab和所有记忆库中的负样本的相似度+分子部分的(也就是总体上的)。
最后整体上,对到每一个相机的相似度都做了计算,然后做加权平均,这样做的目的是希望能够降低不同相机因素带来的差异。
如果不做加权平均,那么最后得到的结果就是让fab离相机i更近,做了平均以后,就等于考虑了所有的相机)
我们通过将聚类代理和相机代理按照[34]中给出的权重系数0.5相结合的方式,定义了一种代理对比损失:
3.3. 硬实例对比损失
尽管类内方差可以通过跨相机对比损失来缓解,但它存在两个缺点:1)需要更多的存储空间来存放与相机相关的代理;2)在相机标识不可用时无法使用。我们通过探索实例间关系而非使用相机标签的方式,提出了一种与相机无关的替代方案。随着训练的进行,编码器变得越来越强大,这有助于离群点逐渐进入聚类并成为难处理的内点。将这些难处理的内点拉近到正常内点,能有效提高聚类的紧凑性。
一个小批量由个身份组成,其中每个身份都有个正实例。给定一个属于第类的锚点实例,我们会采样出与余弦相似度最低的最难的正动量表征,见图4。对于同一个锚点,我们有个不属于第类的负实例。针对的硬实例对比损失是基于(1个正实例和个负实例)对的softmax对数损失,其定义如下:
其中,是硬实例温度超参数。通过最小化锚点与最难的正实例之间的距离,并最大化锚点与所有负实例之间的距离,有助于提升类内紧凑性以及类间可分离性。
(这里应该是把所有的正实例和锚样本的相似度都算了一遍,选了相似度最低的)

图3:三元组损失与硬实例对比损失之间的比较。
与三元组损失的关系。硬实例对比损失和三元组损失[16]都会使锚点更靠近正实例,并远离负实例。如图3所示,传统的三元组损失通过一个间隔将负实例对推离正实例对。不同的是,所提出的硬实例对比损失会借助softmax尽可能地将所有负实例推开。如果我们选取一个负实例,那么硬实例对比损失可转化为三元组损失。如果我们在一个小批量内计算成对距离以选取最难的正实例和最难的负实例,那么硬实例对比损失就等同于批量硬三元组损失[16]。我们在表2中对比了硬三元组损失(最难负实例)和所提出的硬实例对比损失(所有负实例)。

表2:在硬实例对比损失的分母中使用最难负实例和使用所有负实例之间的对比。
3.4. 软实例一致性损失
代理对比损失和硬实例对比损失都是基于独热硬伪标签(one-hot hard pseudo labels)进行训练的,这种方式无法捕捉多个伪正例和伪负例之间复杂的实例间相似性关系。特别是,实例间的相似度在数据增强后可能会发生变化。如图4所示,由于视觉失真,锚点A与伪正例(、、)的相似度降低了。同时,由于锚点A和伪负例(、)都穿着红色衬衫,锚点A与它们的相似度反而增加了。通过维持数据增强前后的一致性,模型应该对增强扰动具有更强的不变性。我们使用未经数据增强的实例间相似度得分作为软标签,来修正那些经过数据增强后的实例间相似度得分。

图4:基于锚点(A)、伪正例(P)和伪负例(N)之间的实例间相似度排名,硬实例对比损失会在一个小批量中将锚点与其最难的正例进行匹配。软实例一致性损失对数据增强前后的实例间相似度进行正则化。
对于经过数据增强后的一批图像,我们会测量一个锚点与整个小批量中所有个实例之间的实例间相似度,如图4所示。然后,通过softmax函数将实例间相似度转换为预测分布,其公式如下:
其中是软实例温度超参数。是锚点的在线表征,而是小批量中每个实例的动量表征。
对于未经数据增强的同一批次数据,由于动量编码器更为稳定,我们会测量同一锚点的动量表征与小批量中所有个实例的动量表征之间的实例间相似度。我们由此得到一个目标分布:
软实例一致性损失是两个分布之间的库尔贝克 - 莱布勒散度(相对熵):
在以往的方法中,一致性是在弱增强图像和强增强图像之间[26],或者两组不同强度增强图像之间进行正则化的[36]。一些方法[17, 29]也采用均方误差(MSE)作为它们的一致性损失函数。我们在表3中将我们的设置与其他可能的设置进行了对比。

表3:一致性损失对比。“我们的方法”指的是有数据增强和无数据增强的图像之间的库尔贝克 - 莱布勒散度(相对熵)。
五、实验
4.1. 数据集与评估协议
我们使用Market-1501[43]、DukeMTMC-reID[24]以及MSMT17[37]数据集来评估所提出的方法。 Market-1501数据集是在清华大学的一家超市前通过6个摄像头采集的,包含用于训练的751个身份的12,936张图像以及用于测试的750个身份的19,732张图像。DukeMTMC-reID是DukeMTMC数据集的一个子集,包含来自8个摄像头、用于训练的702个人的16,522张图像,以及用于测试的702个人的2,228张查询图像和17,661张图库图像。MSMT17是一个大规模的行人重识别(Re-ID)数据集,它包含从15个摄像头采集的、用于训练的1,041个身份的32,621张图像以及用于测试的3,060个身份的93,820张图像。在我们的实验中,同时使用了累积匹配特征(CMC)的Rank1、Rank5、Rank10准确率以及平均精度均值(mAP)来进行评估。
4.2. 实现细节
通用训练设置。为了与最先进的方法进行公平比较,我们使用在ImageNet[25]上预训练的ResNet50[15]作为骨干网络。我们在附录中报告了IBN-ResNet50[23]的结果。采用权重衰减率为0.0005的Adam优化器来优化我们的网络。学习率设置为0.00035,并在前10个轮次采用热身(warm-up)方案。训练过程中不使用学习率衰减策略。动量编码器以动量系数进行更新。我们每400次迭代更新一次伪标签,并重复该过程达40个轮次。我们使用的批量大小(batch size)为32,其中身份数量,每个身份的正实例数量。在代理对比损失基线中,我们设置、以及。我们的网络在PyTorch框架下使用4块英伟达1080 GPU进行训练。在Market-1501数据集上,总训练时间大约为2小时。训练完成后,仅使用动量编码器进行推理。
聚类设置。我们通过计算k互反杰卡德距离(k-reciprocal Jaccard distance)[46]来进行聚类,其中k值设定为30。对于DBSCAN算法,我们将最小聚类样本数设为4,距离阈值设为0.55。我们还会在附录中汇报距离阈值设为更小的0.5(对于规模更小的Market-1501数据集更合适)以及更大的0.6(对于规模更大的MSMT17数据集更合适)时的结果。
k互反杰卡德距离是用来度量集合之间的距离的一种算法
数据增强。所有图像都被调整大小至256×128像素。强数据增强是指随机水平翻转、裁剪、高斯模糊以及擦除操作[47]。
4.3 参数分析
图5:在Market-1501数据集上的参数分析。4.4 消融实验
图6:在DukeMTMC-reID数据集上40个训练轮次期间的动态聚类数量。“hard”(硬)和“soft”(软)分别表示硬实例对比损失和软实例一致性损失。聚类数量越少意味着聚类越紧凑。
图7:在DukeMTMC-reID数据集上40个训练轮次期间的动态库尔贝克 - 莱布勒散度(KL散度)。较低的库尔贝克 - 莱布勒散度意味着模型对数据增强扰动具有更强的鲁棒性。 硬实例对比损失。我们提出的硬实例对比损失以一种与摄像头无关的方式减小了类内方差,这提高了伪标签的质量。通过减小类内方差,聚类理应变得更加紧凑。在使用相同聚类算法的情况下,当聚类更紧凑时,我们预期聚类的数量会更少。如图6所示,在训练过程中,如果不使用我们提出的硬实例对比损失,DBSCAN(基于密度的空间聚类算法)会生成更多的聚类。完整的ICE框架下聚类数量更少,且更接近训练集中真实的身份数量。另一方面,如图8所示,在测试集中,完整的ICE框架相较于考虑摄像头因素的基线方法,具有更好的类内紧凑性和类间可分离性。这种紧凑性有助于提升无监督行人重识别(ReID)性能,相关结果可参见表4。
软实例一致性损失。硬实例对比损失降低了自然拍摄视角间的类内方差,而软实例一致性损失主要是减少由人工数据增强扰动所带来的方差。如果对比图7中蓝色(ICE完整框架)和黄色(不含软实例一致性损失)曲线,我们可以发现未使用进行训练的模型对数据增强扰动的鲁棒性更差。表4中的定量结果证实了提升了基线模型的性能。将和应用于考虑摄像头因素的基线上时,可获得最佳性能。
表4:不同损失的对比。在Market-1501、DukeMTMC-reID和MSMT17数据集上,考虑摄像头因素的记忆(存储方式)所占用的存储空间分别是与摄像头无关的记忆(存储方式)所占用存储空间的多达6倍、8倍和15倍