Bag of Tricks and A Strong Baseline for Deep Person Re-identification

https://arxiv.org/pdf/1903.07071.pdf

摘要

本文探讨了一种简单有效的行人重识别基线(ReID)。近年来,行人重识别(ReID)利用深度神经网络取得了进展,并具有并取得了良好的性能。然而,许多先进的方法设计复杂的网络结构和连接多分支的特点。在文献中,一些有效的训练技巧在几篇论文或源代码中都有简要介绍。**本文将亲自对这些有效的训练技巧在ReID进行收集和评价。**将这些技巧结合在一起,该模型仅使用全局特征,在Market1501上达到94.5%的rank-1和85.9%的mAP。我们的代码和模型可以在https://github.com/michuanhaohao/reid-strong-baseline上找到。

1.简介

近年来,基于深度神经网络的行人重识别技术取得了很大的进展,并取得了很好的效果。但是,许多最新的方法设计了复杂的网络结构并连接了多分支功能。在文献中,一些有效的训练技巧或改进在几篇论文或源代码中都有简要介绍。本文将收集和评估此类有效的ReID培训技巧。 通过参与所有训练技巧,ResNet50在Market1501上达到94.5%的1级准确度和85.9%的mAP [24]。值得一提的是,它凭借模型的全局特性取得了如此惊人的成绩。为了进行比较,我们调查了过去一年在ECCV2018和CVPR2018上发表的文章。 如图1所示,大多数以前的工作都是在较差的基线上进行的。在Market1501上,只有23个基准中的两个基准超过了90%的rank-1准确度。 四个基准的rank-1精度甚至低于80%。 在DukeMTMC-reID上,所有基线均未超过80%rank-1准确度或65%mAP。 我们认为强大的基准对于促进研究的发展非常重要。因此,我们通过一些训练技巧修改了标准基线,以获得了一个强大的基线。 我们强大的基准代码已开源。
在这里插入图片描述
在这里插入图片描述
图1所示。不同基线在Market1501和DukeMTMC-reID数据集上的性能。我们将我们的强基线与CVPR2018和ECCV2018发表的其他基线进行比较。

此外,我们还发现,一些作品与其他先进的方法相比存在不公平。具体来说,这些改进主要来自于训练技巧而不是训练方法本身。但是文中的训练技巧被低估了,因此读者忽略了它们。 这会使该方法的有效性被夸大。 我们建议评论者在评论学术论文时需要考虑这些技巧。
除了上述原因外,另一个考虑因素是,业界更喜欢简单有效的模型,而不是在推断阶段将大量局部特征连接起来。为了追求高精度,学术界的研究人员总是结合多个局部特征或利用姿势估计或分割模型中的语义信息。这样的方法带来了太多额外的消耗。大特征也大大降低了检索过程的速度。因此,我们希望使用一些技巧来提高ReID模型的能力,只使用全局特征来实现高性能。本文的研究目的总结如下:

  • 我们调查了许多发表在顶级会议上的作品,发现大多数作品的baselines都很差。

  • 对于学术界而言,我们希望为研究人员提供一个强大的基线,以实现更高的行人重识别的准确性。

  • 对于社区来说,我们希望给评审者一些参考,哪些技巧会影响ReID模型的性能。我们建议,在比较不同方法的性能时,审查人员需要考虑这些技巧。

  • 对于行业而言,我们希望提供一些有效的技巧,在没有过多额外消费的情况下获得更好的模型。
    幸运的是,许多有效的训练技巧已经出现在一些论文或开源项目中。我们收集了许多技巧,并在ReID数据集上对每个技巧进行评估。经过大量的实验,本文选取了六种技巧进行介绍。其中一些是我们设计或修改的。我们将这些技巧添加到一个广泛使用的基线中,得到修改后的基线,在Market1501上达到94.5%的rank-1和85.9%的mAP。此外,我们发现不同的作品选择不同的图像尺寸和批量大小的数量,作为补充,我们也探讨了它们对模型性能的影响。综上所述,本文的贡献主要有以下几点:

  • 我们收集了一些有效的行人重识别的训练技巧。其中,我们设计了一种新的颈部结构,命名为BNNeck。此外,我们还在两个广泛使用的数据集上评价了每种方法的改进效果。

  • 我们提供了强大的ReID基准,在Market1501上达到了94.5%和85.9%的mAP。 值得一提的是,结果是通过ResNet50主干网提供的全局功能获得的。 据我们所知,这是ReID通过全局功能获得的最佳性能。

  • 作为补充,我们评估了图像大小和批处理数量对ReID模型性能的影响。

2. 标准基线

我们遵循广泛使用的开源†作为我们的标准基准。标准基线的主干是ResNet50[5]。在训练阶段,pipeline包括以下步骤:

  1. 我们在ImageNet上用预先训练好的参数初始化ResNet50,并将完全连接层的维数改为N。N表示训练数据集中的ID数。
  2. 我们随机抽取每个人的P个ID和K张图像组成一个训练批次。最后batch size = B = P×K。在本文中,我们令P = 16, K = 4。
  3. 我们将每个图像的大小调整为256×128像素,并使用零值将调整大小的图像填充10像素。 然后将其随机裁剪为256×128矩形图像。
  4. 每幅图像以0.5的概率水平翻转。
  5. 每个图像都被解码为[0,1]中的32位浮点原始像素值。 然后,我们通过分别减去0.485、0.456、0.406并分别除以0.229、0.224、0.225来标准化RGB通道
  6. 模型输出ReID特征f和ID预测对数p。
  7. ReID特征f用于计算三元组损失[6]。 ID预测对数p用于计算交叉熵损失。 三重态损失的边界m被设置为0.3。
  8. 采用Adam方法对模型进行优化。初始学习率设定为0.00035,在第40和70epoc分别下降0.1。一共有120个训练epoch。

3.训练技巧

本部分将介绍一些有关行人ReID的有效训练技巧。 大多数此类技巧都可以在标准基线上扩展,而无需更改模型架构。 图2(b)显示了训练策略,并且模型结构出现在本节中。
在这里插入图片描述
在这里插入图片描述
图2.标准基线和修改基线后的Pipeline。

3.1. Warmup Learning Rate

学习速率对ReID模型的性能有很大的影响。标准基线的初始训练具有较大的恒定学习率。在[2]中,采用了一种预热策略来引导网络以获得更好的性能。在实践中,如图3所示,我们用了10个epoch将学习速率线性的从3.5×10−5提高到3.5×10−4。在第40和70期,学习速率分别衰减至3.5×10−5和3.5×10−6。计算epoch t的学习速率lr(t)为:
在这里插入图片描述
在这里插入图片描述
图3.学习速率表的比较。在热身策略下,学习速率在前10个epoch内线性增加。

3.2.随机擦除增强

在ReID中,图像中的人有时会被其他物体遮挡。为了解决ReID模型的遮挡问题,提高ReID模型的泛化能力,Zhong等人提出了一种新的数据增强方法,称为随机擦除增强(REA)。在实践中,对于小批量中的图像I,它被随机擦除的概率是pe,保持不变的概率是1−pe。然后REA在image I中随机选取大小(We, He)的矩形区域Ie,并使用随机值擦除其像素。假设图像I和区域Ie的面积分别为S = W×H和Se = We×He,则将re = Se / S表示为擦除矩形区域的面积比。另外,区域Ie的长宽比在r1和r2之间随机初始化。为了确定一个唯一的区域,REA随机初始化一个点P = (xe, ye)。如果xe + We≤W, ye + He≤H,则将区域Ie = (xe, ye, xe + We, ye + He)设为选中的矩形区域。否则,重复上述过程,直到选择合适的Ie为止。利用选择的擦除区域Ie,Ie中的每个像素分别被分配给图像I的平均值。在本研究中,我们将超参数设置为p = 0.5, 0.02 <Se < 0.4, r1 = 0.3, r2 = 3.33。图4给出了一些例子。
在这里插入图片描述
图4.随机擦除增强的示例。 第一行显示了五个原始训练图像。 处理后的图像显示在第二行。

3.3.标签平滑

ID嵌入(IDE)[25]网络是行人ReID的一个基本基线。IDE的最后一层输出图像的ID预测日志,是一个全连接层,隐藏层大小等于人数N。给定一幅图像,我们记y为真值ID标签,pi为类i的ID预测对数,交叉熵损失计算如下:
在这里插入图片描述
由于分类的类别是由person ID确定的,因此本文将这种损失函数称为ID损失。
不过,person ReID可以看作是一次性学习任务,因为测试集的person id没有出现在训练集中。因此,防止ReID模型过度拟合训练id是非常重要的。标签平滑(LS)是[17]中提出的一种广泛使用的方法,用于防止分类任务的过拟合。它将qi加粗样式的结构改为:在这里插入图片描述
其中ε是一个小常数,鼓励模型对训练集不太自信。在本研究中,ε被设定为0.1。在训练集不是很大的情况下,LS能显著提高模型的性能

3.4. Last Stride

较高的空间分辨率往往会丰富特征的粒度。(数据更加清晰,表达更多细节)在[16]中,Sun等去除骨干网中的最后一次空间降采样操作,以增加feature map的大小。为方便起见,我们将主干网的最后一次空间降采样操作记为最后一次步长。ResNet50的最后一次步长设置为2。当馈送到256×128大小的图像时,ResNet50的主干输出空间尺寸为8×4的特征图。如果把最后一步从2步改为1步,我们可以得到空间尺寸更大的feature map(16×8)。这种操作只增加很小的计算成本,不涉及额外的训练参数。然而,更高的空间分辨率带来显著的改善。

3.5 BNNeck

大多数的工作是将ID损失和三重损失结合起来训练ReID模型。如图5(a)所示,在标准基线中,ID损失和三重损失约束相同的特征f,但是这两种损失的目标在嵌入空间中是不一致的。
在这里插入图片描述
如图6(a)所示,ID loss构造了几个超平面,将嵌入空间分割成不同的子空间。每个类的特征分布在不同的子空间中。在这种情况下,在推理阶段,余弦距离比欧氏距离更适合于ID损失优化后的模型。另一方面,如6(b)所示,三重损失增强了欧氏空间的类内紧实度和类间可分性。由于三重损失不能提供全局最优约束,类间距离有时小于类内距离。一个常用的方法是将ID损失和三重损失相结合一起训练模型。这种方法使模型学习更多的有区别的特征。而对于嵌入空间中的图像对,ID损失主要优化余弦距离,三重损失主要优化欧氏距离。如果我们使用这两个损失同时优化一个特征向量,它们的目标可能是不一致的。在训练过程中,可能出现的现象是一种损失减小,而另一种损失振荡甚至增大。
为了克服上述问题,我们设计了如图5(b)所示的BNNeck结构。BNNeck只在特征后添加了批归一化(BN)层(FC层分类器前)。将BN层之前的特征记为ft。我们让ft穿过BN层,得到归一化的特征fi。在训练阶段,ft和fi分别用于计算三重损失和ID损失。标准化平衡了fi的每个维度。这些特征在超球表面附近呈高斯分布这种分布使ID损失更易于收敛。 此外,BNNeck减少了ID损失对ft的约束。ID损失的较少约束导致三元组损失更易于同时收敛。 第三,归一化保持了属于同一个人的特征的紧凑分布。
在这里插入图片描述
(b)我们设计的BNNeck。在推理阶段,我们选择在BN层之后的fi进行检索。

由于超球面几乎是围绕坐标轴的原点对称的,因此BNNeck的另一招是消除分类器FC层的偏差。 它约束分类超平面通过坐标轴的原点。 我们用[4]中提出的Kaiming初始化来初始化FC层。在推断阶段,我们选择fi来执行人员ReID任务。 余弦距离度量比欧几里得距离度量可以获得更好的性能。 实验结果见表。 图1显示BNNeck可以大大提高ReID模型的性能。
在这里插入图片描述
图6.在(a)ID损失,(b)三重损失,(c)ID +三重损失和(d)ID +三重损失+ BNNeck监督下,嵌入空间中样本分布的二维可视化。 不同颜色的点表示来自不同类别的嵌入特征。 黄色虚线代表假定的分类超平面。

3.6. Center Loss

三重损失的计算公式为:
在这里插入图片描述
其中dp和dn为正对和负对的特征距离。α为三重损失边界,[z]+ = max(z, 0)。在本文中,α设为0.3。但是,三重损失只考虑dp和dn的差值,忽略了它们的绝对值。例如dp = 0.3, dn = 0.5时,三重损失为0.1。另一种情况,当dp = 1.3, dn = 1.5时,三重损失也为0.1。三重损失是由两个人的ID随机抽样。很难保证整个训练数据集中dp < dn。
中心损失[20]同时学习每个类的深度特征中心,并惩罚深度特征与其对应类中心之间的距离,弥补了三重损失的不足。中心损失函数可表示为:
在这里插入图片描述
其中yj是微型批处理中的第j个图像的标签。 cyj表示深层特征的第yi中心。 B是批处理大小的数量。这个公式有效地描述了类内的变化。最小化中心损失增加类内紧凑性。我们的模型共包含以下三个损失:
在这里插入图片描述
β是中心损失的平衡权重。在我们的实验中,β设置为0.0005。

4.实验结果

在本节中,我们将在Market1501和DukeMTMC-reID[11]数据集上评估我们的模型。Rank1精度和平均精度(mAP)被报告为评价指标。我们依次在标准基线上增加技巧,不改变任何训练设置。消融研究的结果表明,每一种技巧都能提高性能。为了避免过度拟合的误导,我们还展示了跨域实验的结果。

4.1.每种技巧的影响(同一域)

标准基线的性能与其他论文中报告的大多数基线相似。然后,在模型训练过程中依次加入热身策略、随机擦除增强、标签平滑、步幅变化、BNNeck和中心丢失。在其他研究中,这些训练技巧将标准基线的性能提高了10%以上。另外,为了得到这样的改善,我们只增加了一个BN层,并没有增加训练时间。
在这里插入图片描述
表1。不同模型的性能在Market1501和DukeMTMC-reID数据集上进行了评估。baselin - s表示第2节介绍的标准基线。

4.2.分析BNNeck

在本节中,我们用欧几里得距离度量和余弦距离度量来评估ft和fi两种不同特征的性能。所有模型训练时均无中心损失,见表2。我们发现余弦距离度量优于欧氏距离度量。由于ID损失直接限制了BN层后面的特征,因此fi可以清楚地被几个超平面分开。余弦距离可以度量两个特征向量之间的夹角,因此余弦距离度量比欧氏距离度量更适合于fi。但是,ft接近三元组损失,并且同时受到ID损失的限制。 ft用两种度量标准可以达到类似的性能。
在这里插入图片描述
表2。BNNeck的消融研究。f (w/o BNNeck)是基线,没有BNNeck。BNNeck包括ft和fi两个特征。我们分别用欧氏距离和余弦距离来评价它们的性能。
总体而言,BNNeck大大提高了ReID模型的性能。 我们选择fi用余弦距离度量的在测试阶段进行检索。

4.3.每个技巧的影响(跨域)

为了进一步探索有效性,我们也在表中展示了跨域实验的结果。总的来说,有预热策略、平滑标签和BNNeck三种策略显著提高了ReID模型的跨域性能。步幅的改变和center loss似乎对性能表现没有太大的影响。然而,REA对跨域ReID任务中的模型有一定的危害。特别是,当我们修改的基线在没有REA的情况下训练时,它在Market1501和DukeMTMC-reID数据集上分别达到了41.4%和54.3%的1级准确度。它的性能大大超过了标准基线。 我们推断出,通过REA遮盖训练图像区域,模型可以在训练领域中学习更多知识。这会导致模型在测试域中的性能下降。
在这里插入图片描述
表3。在跨域数据集上评估了不同模型的性能。M→D表示在Market1501对模型进行训练,然后在DukeMTMC-reID上评估。

4.4.最新水平比较

我们在表4中比较了我们的强大baseline和先进的方法。所有的方法都被分为不同的类型。金字塔[22]在两个数据集上取得惊人的表现。但是,它串联了21个不同规模的局部特征。如果仅利用全局特征,它在Market1501上rank-1正确率为92.8%,mAP 为82.1%,而我们的强大baseline可以达到94.5%的rank1准确性和85.9%的mAP。BFE[1]与我们的强基线获得类似的性能。但它结合了两个分支的特点。在所有只使用全局特征的方法中,我们的强基线在Market1501 和DukeMTMC-reID上都超过了AWTL[12]的10%。利用k倒数重算方法提高了算法的性能,我们的方法在Market1501和DukeMTMC-reID上分别达到94.1%和89.1%。据我们所知,在只使用全局特性的情况下,我们的基线可以获得最佳性能
在这里插入图片描述
表4.比较先进的方法。Nf是在推理阶段使用的特征数。RK表示测试域的k倒数重排序方法[26]。

5. 补充实验

我们观察到以前的一些工作是用不同的批次大小或图像大小的数量完成的。在本节中,作为补充,我们将探讨它们对模型性能的影响。

5.1.批次数量的影响

三元组损失的小批量包括B = P×K图像。 P和K分别表示不同的人的数量和每人的不同图像的数量。一个迷你批处理在一个GPU中最多只能包含128张图像,这样我们就不能用P = 32,K = 6来做实验了或者P = 32 ,K = 8。我们删除了中心损失,以清楚地找到三元组损失与批量大小之间的关系。 结果示于表5中。但是,没有具体的结论可以表明B对性能的影响。我们观察到的一个小趋势是,较大的批处理规模有利于模型性能。我们推断,大K有助于挖掘hard positive pairs,而大P有助于挖掘hard negative pairs。
在这里插入图片描述
表5所示.不同批次尺寸的ReID模型的性能。

5.2.图像大小的影响

我们训练模型时无中心损失,并设置P =16, K = 4。如表6所示,4个模型在两个数据集上的性能相似。我们认为,图像的大小并不是ReID模型性能的一个非常重要的因素
在这里插入图片描述
表6所示.不同图像尺寸下ReID模型的性能。

6. 结论和展望

在本文中,我们收集了一些有效的训练技巧,并为行人ReID设计了牢固的基线。 为了演示每种技巧对ReID模型性能的影响,我们对同域和跨域ReID任务进行了大量实验。最后,仅使用全局功能,我们强大的基准就可以在Market1501上达到94.5%的rank-1精度和85.9%的mAP。 我们希望这项工作能够促进学术界和工业界对ReID的研究。
然而,我们工作的目的并不是为了粗略地提高性能。与人脸识别相比,行人REID还有很长的路要走。我们认为一些训练技巧可以加快探索,还有很多有效的技巧没有被发现。我们欢迎研究人员与我们分享一些其他有效的技巧。我们将根据这项工作对他们进行评估。
在未来,我们将继续设计更多的实验来分析这些trciks的原理。例如,当我们用L2规范化替换BNNeck时,这个网络的性能会变成什么样子?此外,是否可以在强大的基准上扩展一些最先进的方法,例如PCB,MGN和AlignedReID等? 更多的可视化也有助于其他人理解这项工作。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值