【论文翻译】Cluster Contrast for Unsupervised Person Re-Identification(2021)

Cluster Contrast for Unsupervised Person Re-Identification(2021)

论文
code

Abstract

最先进的无监督reid方法使用基于memory的非参数softmax损失来训练神经网络。 它们将预先计算的实例特征向量存储在内存中,然后通过聚类算法为它们指定伪标签,并在实例级别更新。 然而,由于cluster size不同,导致每个类别的特征更新进度不一致。

为了解决这个问题,本文提出了cluster contrast方法,它可以存储特征向量并在聚类级别计算对比度损失。 该方法使用一个独特的cluster表示来描述每个cluster,从而生成一个cluster级内存字典。 通过这种方式,cluster的一致性可以在整个pipeline中得到有效维护,并且可以显著降低GPU内存消耗。 因此,该方法可以解决聚类不一致的问题,并且适用于更大的数据集。此外,本文还采用了不同的聚类算法来证明该框架的健壮性和泛化性。

1. Introduction

深度无监督人员再识别(Re-ID)旨在训练一个神经网络,能够在没有任何标记数据的情况下跨摄像头检索感兴趣的人员。由于实际视频监控需求的增长和昂贵的标签成本,这项任务近年来越来越受到关注。解决这个问题主要有两种方法。一种是纯无监督学习(USL)person re-ID,它通常利用完全未标记数据中的伪标签。另一个是无监督域适配(UDA)person re-ID,它首先在源标记的数据集上预训练模型,然后在目标未标记的数据集上微调模型。一般来说,由于外部源域的引入,UDA的性能优于USL。然而,UDA仍然受到复杂训练过程的影响,并且要求源域和目标域之间的差异不显著。

在本文中,重点学习没有任何标记数据(即USL)的person re-ID任务。现有的最先进的USL方法[12,41]利用聚类中的记忆字典和伪标签来训练神经网络。在每个epoch开始时,训练数据的所有图像特征都由当前的神经网络提取。我们把存储在内存中的这些图像特征视为字典。 然后,使用DBSCAN[8]或K-means[29]等聚类算法对图像特征进行聚类并生成伪标签。 同时,cluster ID被分配给每个图像作为person id。 最后,使用对比损失(例如三元组损失、信息损失或基于记忆字典的其他非参数分类损失)对神经网络进行训练。 虽然这些基于伪标签的方法取得了很好的性能,但是USL和监督方法之间仍然存在很大的差距,这限制了USL在实际应用中的应用。

为了弥补这一差距,我们重新研究了基于伪标签的USL pipeline,并认为存储器字典存储机制,包括初始化、更新和丢失计算,对于模型优化是至关重要的。最先进的方法将每个实例的特征向量存储在内存字典中,并使用查询实例计算多标签非参数分类损失[41]或信息损失[30]。 这种内存字典存储机制有两个主要缺点。首先,记忆词典的特征更新过程是不一致的,因为训练数据在实例级的分布是有偏差的。在像MSMT17这样的大规模re ID数据集中,这个问题尤其严重。 其次,聚类质心不是记忆词典中伪标签的最佳特征表示。由于聚类方法不可避免地引入了噪声标签,因此聚类[12]中特征的这种平均操作也会污染其相应的聚类特征表示。

为了解决这两个问题,我们提出了cluster contrast(聚类对比)。 它构建了一个cluster级内存字典,其中每个cluster由单个特征向量表示,所有cluster特征向量都以一致的方式更新。 更具体地说,该cluster特征被初始化为集群中所有图像的平均特征,并在训练期间由batch query实例特征更新。 因此,我们提出了一种cluster级信息损失,称为ClusterNCE损失,它计算cluster特征和query实例特征之间的对比损失,如图1所示。 基于cluster级内存字典,ClusterNCE损失占用的GPU内存比实例级特征内存少得多,因此允许我们的方法在更大的数据集上进行训练。
在这里插入图片描述
图1。聚类对比度计算聚类级别的对比损失。 在cluster级内存字典中,通过从相应cluster中均匀采样一个随机实例特征来初始化集群特征,并由batch query instance更新。 x∈ X 是训练数据集。q是query实例特征向量。 c k c_{k} ck代表第k个聚类特征向量。具有相同颜色的特征向量属于同一簇。

总之,我们提出的cluster contrast USL有以下几个优点:

  • 我们引入了cluster contrast,它在cluster级别初始化、更新和执行对比损失计算。它使用独特的cluster表示来解决cluster一致性问题。据我们所知,这是第一个在整个pipeline中保持cluster一致性的工作。
  • 我们的方法采用了一个简单的pipeline,这与现有的方法有很大不同。通过构建cluster级内存字典,可以存储和更新所有cluster表示。这种简单的策略使我们能够占用更少的GPU内存,这使得我们的方法可以在更大的数据集上进行训练。
  • 我们的方法为有效利用不同的聚类算法提供了一个通用框架。我们在我们的框架中使用了DBSCAN和InfoMap,这两种方法在不同规模的数据集上都被证明是有效的。
  • 我们证明了所提出的具有cluster contrast的无监督方法在很大程度上超过了所有现有的无监督人员识别方法。

2. Related Work

Deep Unsupervised Person Re-ID.

深度无监督人员识别可归纳为两类。第一类是无监督领域适应(UDA)reID,它利用迁移学习来改善无监督reid。第二类是纯无监督学习(USL)行人 reID,它在未标记的数据集上训练模型目录。 最先进的USL reid pipeline 通常包括三个阶段:内存字典初始化、伪标签生成和神经网络训练。 之前的工作在部分或整个pipeline上都取得了重大改进。 具体来说,Lin等人[24]将每个单独的样本视为一个簇,然后逐渐将相似的样本分组到一个簇中,以生成伪标签。 MMCL[41]预测由相似性计算和循环一致性组成的高质量伪标签。然后将模型训练为一个多分类问题。 SPCL[12]提出了一种新的自定步调对比学习框架,该框架逐步创建更可靠的聚类,以细化记忆词典的特征。 在本文中,我们提出了聚类对比来改进记忆字典和损失函数部分。接下来我们将讨论这两个方面的相关研究。

Memory Dictionary.

对比学习[14]可以被认为是为字典查找任务训练编码器。最近几项关于无监督视觉表征学习的研究[2,15,17,19,30,38,46,58]通过构建动态词典给出了有希望的结果。 记忆词典不断更新,以促进对比无监督学习。 与无监督视觉表征学习类似,最先进的无监督人称识别方法也为对比学习建立了记忆词典。 在训练过程中,内存字典中的实例特征向量由相应的查询实例特征更新。

Loss Functions.

在受监督的个人re ID中,批量硬三重态丢失已被证明是提高re ID性能的有效解决方案。 在无监督人员身份识别中,由于不存在基本真实的人员身份,且伪标签在训练过程中发生变化,因此使用InfoNCE[30]等非参数分类损失作为身份损失。与InfoNCE类似,Tong等人[47]设计了一个在线实例匹配(OIM)丢失,并使用一个记忆字典方案,将查询图像与未标记身份的记忆特征集进行比较。 Wang和Zhang[41]介绍了基于记忆的非参数多标签分类损失(MMCL),它将USL re ID视为一个多标签分类问题。 为了减少伪标签的噪声,MMT[11]提出了一种新的软softmax三重态丢失,以支持软伪三重态标签的学习。SPCL[12]引入了统一的对比损失,包括源域数据集和目标域数据集。在本文中,我们将聚类特征和查询实例特征之间的信息损失应用于USL re-ID。

3. Proposed Method

我们首先在第3.1节中从高层次介绍我们的总体方法。然后,我们将不同的对比学习方法与第3.2节中的聚类对比学习方法进行比较。最后在第3.3节中,我们解释了集群对比的细节以及工作原理。

3.1. USL Person Re-ID via Cluster Contrast

最先进的USL方法通过对比学习解决了USL person reid。具体来说,他们构建了一个包含所有训练图像特征的记忆词典。 每个特征都被分配一个由聚类算法生成的伪ID。在训练过程中,对比损失最小化,以训练网络学习与伪ID一致的适当特征嵌入。

我们专注于设计适当的contrast 函数,以保持整个pipeline的简单,同时获得更好的性能。如图2所示。 内存字典初始化在上面的分支中进行了说明。我们使用标准的ResNet50[16]作为主干编码器,该编码器在ImageNet上预训练以提取特征向量,虽然没有针对re ID任务进行优化,但具有基本的可分辨性。然后,我们应用DBSCAN[8]和InfoMap[34]聚类算法将相似的特征聚类在一起,并为它们分配伪标签。通过循环一致性进一步细化伪标签,如果两个图像共享相似的邻居,则使用相同的标签分配它们。 然后计算每个聚类的平均特征向量,形成一组聚类表示。内存字典由这些集群表示及其相应的伪标签初始化。如下面的分支所示,在训练阶段,我们计算查询图像特征和字典中所有聚类表示之间的聚类损失来训练网络。 同时,字典功能也会随着查询功能的发展而不断更新。
在这里插入图片描述
图2。我们的无监督人员身份识别方法的系统管道。 上面的分支描述了内存初始化阶段。 通过聚类为训练数据特征分配伪标签,其中相同颜色的特征属于同一聚类。下面的分支代表模型训练阶段。迭代迷你批处理中的查询功能用于以动量更新内存集群表示。ClusterNCE损失计算查询特征和所有聚类表示之间的对比损失。

3.2. Contrastive Learning

为了便于描述方法,我们首先介绍本文中使用的符号。 设 X = { x 1 , x 2 , . . . , x N } X=\left\{ x_{1},x_{2},...,x_{N}\right\} X={ x1,x2,...,xN}表示具有N个实例的训练集。 U = { u 1 , u 2 , . . . , u n } U=\left\{ u_{1},u_{2},...,u_{n}\right\} U={ u1,u2,...,un}表示从主干编码器 f θ f_{\theta } fθ获得的相应特征,描述为 u i = f θ ( x i ) u_{i}=f_{\theta }(x_{i}) ui=fθ(xi)。 q是由 f θ ( ⋅ ) f_{\theta }(\cdot ) fθ()提取的查询实例特征 ,其中查询实例属于X 。在这一部分中,我们分析了不同的结构学习方法来激发我们的集群结构一致性学习。
在这里插入图片描述
如图3(a)所示,多标签分类损失通过实例级对比损失计算实例级损失,由InfoNCE损失定义如下: L q = − l o g e x p ( q ⋅ u + / τ ) ∑ i = 0 N e x p ( q ⋅ u i / τ ) L_{q}=-log\frac{exp(q\cdot u_{+}/\tau )}{\sum_{i=0}^{N}exp(q\cdot u_{i}/\tau)} Lq=logi=0Nexp(qui/τ)exp(q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值