Bag of Tricks and A Strong Baseline for Deep Person Re-identification论文学习笔记
本文聚焦于行人的重新识别(ReID)问题,在CVPR 2019会议上发表的一篇论文中展开讨论。文中作者系统归纳总结了该领域中的实用技巧,并创新性地构建了一种新的BNNeck结构。通过大量实验验证,在Market-1501和 DukeMTMC公开数据集上,该方法均展现出卓越的性能水平。为了分享研究经验并促进同行间的交流,本文总结了对该领域研究的心得与体会。
论文地址:https://arxiv.org/pdf/1903.07071.pdf
代码地址:https://github.com/michuanhaohao/reid-strong-baseline

本节将系统性阐述本文的主要创新点及实验框架设计,并从以下几个核心维度展开分析:首先详细阐述本文所提出的创新性解决方案及其理论支撑;其次对实验所采用的标准基准体系进行深入探讨;随后围绕训练过程的关键环节进行具体描述;最后通过实验结果展示本文方法的有效性和优越性。
【Contributions】


作者对一系列实用的训练策略进行了总结和归纳,并列举了Adaptive Learning Rate Strategy、Data Augmentation with Random Erasing、Soft Label Technique、Final Subsampling以及Center Loss等方法;此外还开发出一种创新性的BNNeck模块
该研究者开发出一种性能强劲的ReID基准模型,并在此基准数据集Market1501上实现超越性的验证结果:在验证集上的rank-1准确率达到94.5%,同时平均精度(mAP)达到85.9%。这些评估指标均基于ResNet-50网络提取的整体特征信息计算得出。
作者还评估了图像尺寸和Batchsize的数量对模型性能的影响。
【Standard Baseline】

通过在ImageNet上预训练权重初始化的ResNet50模型,并将其全连接层的输出维度配置为N(此处N表示训练数据集中的行人身份数)。
采用一种基于概率的方法进行数据采集,在实验中选择具有代表性的样本集。整个训练过程中采用批量处理策略B=P\times K。其中参数设定为B=256、具体而言每个样本对应的图像数量设定为P=16、并根据实际情况选择合适的值来实现更好的性能表现
对每个图像进行尺寸设置至256\times 128像素,并在其基础上填充边距10像素(颜色值设为0),随后随机裁剪得到目标尺寸的矩形图像。
每幅图像水平翻转的概率为0.5。
每个图像处于[0,1]区间内被解码为32位浮点的原始像素值,并经过一系列减去均值后进行归一化处理的操作以标准化RGB通道
该模型输出ReID特征为 f 和 ID 预测 logits p。
ReID特征 f 用于计算triplet loss,triplet loss的margin设为0.3。
采用Adam优化算法对模型进行训练,在初始学习率设定为3.5×10^-4的情况下,在第40和70个 epoch时将学习率降至原始值的十分之一,并持续经过总共 120 个 epoch 的训练
【Training Tracks】
一、Warmup Learning Rate


学习率在ReID模型性能提升过程中扮演着重要角色。传统基准方法通常采用恒定较大的学习率作为训练策略。然而这一做法存在明显缺陷:传统的基准方法往往面临初始阶段模型对所有数据不熟悉的问题,在这种情况下容易导致算法过于依赖特定的数据集而出现过拟合现象。同时,在后续的训练过程中若继续维持较高的学习率,则可能导致模型难以稳定收敛。
因此,本文使用预热的学习率策略提升网络。
从第1个 epoch 开始逐步调整学习速率,并使其呈线性增长趋势,在初始值 3.5\times{10}^{-5} 至终值 3.5\times{10}^{-4} 之间变化。随后,在第40 以及第70 个 epoch 中期分别将学习速率降至 3.5\times{10}^{-5} 和 3.5\times{10}^{-6}。
二、Random Erasing Augmentation(REA)

随机擦除概率:p
保持不变概率:1-p
擦除区域

的大小:(We,He)
图像I的面积:S = W * H
图像

的面积:Se = We * He(0.02 < Se < 0.4)
擦除矩形区域的面积比:

区域Ie的纵横比: (r1,r2)之间随机初始化
(本文设置r1 = 0.3;r2 = 3.33)
随机初始化一个点:P=(Xe, Ye)
具体流程如下:
从图像中随机选择一个起始点。
随后确定擦除区域的宽度与高度。
如果该起始点的x轴偏移量与宽度之和不超过图象边界,并且y轴偏移量与高度之和也不超过图象边界,则决定执行擦除操作。
其中所选宽度、高度及覆盖面积均需满足特定比例要求。
三、BNNeck

ID loss主要作用于余弦相似度的提升与应用领域研究方向上进行深入探索与改进。相比之下, triplet loss则主要针对欧氏距离进行优化,并有助于提升类内紧密度与类间区分度。值得注意的是,当同时运用这两种损失函数来优化特征向量时,可能会出现一种情况:某一种损失函数的效果得到改善的同时,另一种损失函数可能出现振荡或效果劣化的情况。对此,本研究提出了一种创新的BNNeck结构设计以解决这一问题

BNNeck位于特征层后方及分类层FC层前方插入一个Batch Normalization(BN)模块,在该模块前面的特征表示为

,

经过BN层归一化之后得到特征

,分别用

和

去计算triplet loss和ID loss。
四、Last Stride
一般来说,空间分辨率越高,特征的粒度就越丰富。
backbone的最后一层空间降采样操作我们将其称为last stride(最后一层)。在ResNet50架构中,默认设置该层的空间降采样因子为2。假设经过此架构处理后的特征图尺寸为8×4,则在此研究中将该层的空间降采样因子从2优化至1,则可使输出特征图的空间尺寸变为16×8。这将带来仅带来微乎其微的计算开销,并未增加额外的训练负担的同时却带来了显著提升的效果。
五、Center Loss


triplet loss
上述公式是triplet loss的公式,其中,

表示正样本对之间的距离,

表示负样本对之间的距离,

代表三元组损失的margins, 本文将其设定为0.3, 然而这一公式存在一个局限性, 即它仅考虑了相对距离, 没有考虑到他们之间的绝对距离, 比如说在以下情况下

=0.3且

=0.5或者

=1.3且

=1.5的时候,最终的

都会是0.1。

center loss
其中,

是mini-batch中的第j个图像的标签,

表示为深度特征中第yj个类别中心的位置向量;其中B代表批次大小;通过center loss能够提升类内样本的紧凑性;最终模型的整体损失函数如下所示:

六、Label Smoothing

0, 0, 1, 0, 0, 0
...
标签平滑技术被用来作为防止模型过拟合的有效手段之一。具体而言,在机器学习模型训练过程中,在使用one-hot编码时会引入一种强有力的监督约束机制。例如,在实际应用中,默认情况下原始类别标签通常表示为独热向量形式如[1, 16]等(此处示例中的具体数值需根据实际应用场景进行调整),而通过引入一个适配性的参数进行软化处理后,在这种情况下这些离散化的类别概率会被相应地转化为较为连续的概率分布形式如[σ(−4), σ(−4), σ(5), σ(−4), σ(−4), σ(−4)]等(此处具体的函数形式需根据实际算法需求进行选择)。这种处理方式不仅能够帮助缓解模型在面对类别不平衡数据时可能出现的问题还能在一定程度上降低了模型过度拟合的风险。
【Experimental Results】
数据集评估:

根据图中所展示的内容可知,在模型训练过程中被逐一添加了作者提到的几个技巧。通过分析可知,在当前主流方法的基础上本文设计出的BNNeck相较于其他技巧具有更好的性能优势。
跨域测试:

在跨域数据集上的实验结果显示,在ReID模型中应用 warmup 策略、标签平滑技术和 BNNeck 这三者均能显著提升其跨域性能。值得注意的是,在这种情况下随机擦除增强(REA)会对模型产生负面影响。
这就是对这篇论文的一个简要介绍。其中一些部分可能不够详细,因此建议大家结合论文原文和笔记来深入理解。别急!
