Bag of Tricks and A Strong Baseline for Deep Person Re-identification论文翻译

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

《深度行人重识别的锦囊妙计与强力基线》

摘要

本文探索了一种简单且高效的深度行人重识别(ReID)基线。近年来,基于深度神经网络的行人重识别已取得显著进展,但许多最先进的方法都设计了复杂的网络结构并拼接多分支特征。在文献中,一些有效的训练技巧仅在若干论文或开源代码中零星出现。本文系统收集并评估了这些在行人 ReID 中行之有效的训练技巧。通过将这些技巧组合,模型在仅使用全局特征的情况下,即在 Market1501 上取得了 94.5 % 的 Rank-1 准确率和 85.9 % 的 mAP。我们的代码与模型已开源。

1 引言

近年来,基于深度神经网络的行人重识别(ReID)已取得显著进展,实现了很高的性能。然而,许多最先进的方法都设计了复杂的网络结构,并将多分支特征拼接在一起。在文献中,一些有效的训练技巧或改进仅在若干论文或开源代码中零星出现。本文系统收集并评估了这些在行人 ReID 中行之有效的训练技巧。在综合应用所有技巧后,仅使用 ResNet50 的全局特征就在 Market1501 上达到了 94.5 % 的 Rank-1 准确率和 85.9 % 的 mAP。值得强调的是,这一惊人性能仅由全局特征取得。

作为对比,我们调研了去年 ECCV2018 与 CVPR2018 发表的文章。如图 1 所示,大多数已有工作都建立在较弱的基线之上:在 Market1501 上,23 个基线中只有 2 个的 Rank-1 准确率超过 90 %,甚至有 4 个低于 80 %;在 DukeMTMC-reID 上,所有基线的 Rank-1 准确率均未超过 80 %,mAP 也未超过 65 %。我们认为,一个强有力的基线对推动研究发展至关重要,因此通过引入若干训练技巧对标准基线进行了改进,并开源了代码。

此外,我们发现部分工作在与其它最先进方法对比时存在不公平现象:其性能提升主要来自训练技巧,而非方法本身。然而,这些技巧在论文中被淡化,导致读者忽视,进而夸大了新方法的有效性。 我们建议审稿方在评议学术论文时,应把这些技巧纳入考量。

除上述原因外,工业界更倾向于简单高效的模型,而非在推理阶段拼接大量局部特征。为了追求高准确率,学术界常融合多种局部特征,或引入姿态估计、语义分割等额外信息,但这带来巨大开销,且大幅降低了检索速度。因此,我们希望通过技巧提升 ReID 模型能力,仅利用全局特征即可实现高性能。

本文目的概括如下:
• 调研顶级会议大量工作,发现其多建立在薄弱基线之上。
• 为学术界提供强力基线,助力行人 ReID 研究获得更高精度。
• 为社区提供参考,指出哪些技巧会影响 ReID 性能,并建议审稿方在比较不同方法时予以考虑。
• 为工业界提供有效技巧,在不增加过多开销的情况下获得更好模型。

幸运的是,许多有效训练技巧已在部分论文或开源项目中出现。我们收集并逐一在 ReID 数据集上评估,最终选取 6 项技巧加以介绍,其中部分由我们设计或改进。将这些技巧加入常用基线后,我们的改进基线在 Market1501 上取得了 94.5 % 的 Rank-1 准确率和 85.9 % 的 mAP。此外,我们发现不同工作采用了不同的图像尺寸和批大小,因此补充实验探讨了它们对性能的影响。

综上,本文贡献如下:
收集并评估若干行人 ReID 有效训练技巧,设计了一种新的 neck 结构 BNNeck,并在两个常用数据集上量化各技巧带来的提升
提供强力 ReID 基线,在 Market1501 上达到 94.5 % Rank-1 与 85.9 % mAP,且仅使用 ResNet50 提供的全局特征;据我们所知,这是全局特征在行人 ReID 中的最佳性能。
补充实验评估了图像尺寸与批大小对 ReID 模型性能的影响。

2 标准基线

我们以一套广泛使用的开源代码作为标准基线。该基线的主干网络为 ResNet50[5]。训练阶段流程如下:

  1. 用 ImageNet 预训练参数初始化 ResNet50,并将最后一层全连接输出维度改为 N(训练集中行人 ID 数量)。
  2. 随机采样 P 个身份,每个身份抽取 K 张图像,组成一个训练批次,因此批次大小 B = P × K。本文设 P = 16,K = 4。
  3. 将每张图像缩放至 256 × 128 像素,四周零填充 10 像素后随机裁剪回 256 × 128。
  4. 以 0.5 的概率对图像做水平翻转。
  5. 图像像素解码为 [0, 1] 的 32-bit 浮点值,然后按 RGB 三通道分别减去 (0.485, 0.456, 0.406) 并除以 (0.229, 0.224, 0.225) 做归一化。
  6. 模型输出 ReID 特征 f 与 ID 预测 logits p。
  7. 用特征 f 计算三元组损失(triplet loss)[6],用 logits p 计算交叉熵 ID 损失;三元组损失 margin 设为 0.3。
  8. 采用 Adam 优化器,初始学习率 3.5 × 10⁻⁴,在第 40 与第 70 epoch 分别乘以 0.1,共训练 120 epoch。

3 训练技巧

本节介绍在行人 ReID 中行之有效的若干训练技巧。大多数技巧可在不改变模型主干的前提下,直接叠加到第 2 节的标准基线上。图 2(b) 给出了本节出现的训练策略与模型结构概览。

3.1 热身学习率

学习率对 ReID 模型性能影响巨大。标准基线采用较大且恒定的初始学习率。文献 [2] 提出“热身”策略以 bootstrap 网络。具体做法如图 3:前 10 个 epoch 线性地把学习率从 3.5×10⁻⁵ 提升到 3.5×10⁻⁴;随后在第 40、70 epoch 分别衰减到 3.5×10⁻⁵ 与 3.5×10⁻⁶。总计 120 epoch 的学习率调度为
lr(t)=⎧3.5×10−5⋅t/10,t≤10⎨3.5×10−4,10<t≤40⎩3.5×10−5,40<t≤703.5×10−6,70<t≤120lr(t)= ⎧ 3.5×10⁻⁵·t/10, t≤10 ⎨ 3.5×10⁻⁴, 10<t≤40 ⎩ 3.5×10⁻⁵, 40<t≤70 3.5×10⁻⁶, 70<t≤120lr(t)=⎧3.5×105t/10,t10⎨3.5×104,10<t40⎩3.5×105,40<t703.5×106,70<t120

3.2 随机擦除数据增强

行人图像常被遮挡。为提升模型鲁棒性,Zhong 等人 [27] 提出 Random Erasing Augmentation(REA)。对 mini-batch 中的图像 I,以概率 pe 随机选择矩形区域 Ie,面积 Se∈[0.02S,0.4S],长宽比在 [0.3,3.33] 之间随机采样,然后用该图像的均值像素擦除该区域。本文设 pe=0.5。

3.3 标签平滑

ID Embedding(IDE)网络把 ReID 看成 N 类分类,最后一层 FC 输出 N 维 logits。给定图像,真实标签 y,交叉熵 ID 损失为

LID=−∑i=1NqilogpiL_ID=−∑_{i=1}^N q_i log p_iLID=i=1Nqilogpi, 其中 qi=1q_i=1qi=1(i=y)。

由于测试 ID 从未在训练集出现,极易过拟合。标签平滑 [17] 把qiq_iqi改为

qi=1−εq_i=1−εqi=1ε, i=yi=yi=yqi=ε/Nq_i=ε/Nqi=ε/N, 否则。

本文 ε=0.1,可在训练集规模有限时显著提升性能。

3.4 最后一层 stride

更高空间分辨率可提升特征粒度。Sun 等人 [16] 把主干最后一层下采样 stride 由 2 改为 1。对 256×128 输入,ResNet50 输出特征图由 8×4 增至 16×8,仅增加极少计算量,却带来显著性能提升。

3.5 BNNeck

多数工作联合 ID 损失与三元组损失训练。如图 5(a),两损失同时约束同一特征 f,但目标不一致:ID 损失在余弦空间分离不同 ID,三元组损失在欧氏空间拉近同类、推远异类。同步优化同一向量会导致两损失相互干扰。
为此,我们设计 BNNeck(图 5(b)):在特征与分类 FC 之间插入一个 BN 层,得到归一化特征 fif_ifi;训练阶段,用$f_i $计算 ID 损失,用 fif_ifi前的特征 ftf_tft计算三元组损失。
归一化使各维度分布接近超球面,ID 损失更易收敛;同时削弱 ID 损失对$f_t $的约束,使三元组损失也更易收敛。此外,我们移除 FC 的偏置项,让分类超平面通过坐标原点。推理阶段仅用 fif_ifi 并采用余弦距离,可进一步提升性能。

3.6 中心损失

三元组损失只关注相对距离 dp−dnd_p−d_ndpdn,忽略绝对数值,难以保证全局dp<dnd_p<d_ndp<dn。中心损失 [20] 为每类学习一个中心 cyc_ycy,最小化特征到类中心的欧氏距离:

LC=1/2∑∗j=1B‖f∗tj−cyj‖22L_C=1/2 ∑*{j=1}^B ‖f*{t_j}−c_{y_j}‖₂²LC=1/2j=1Bftjcyj22

从而增强类内紧凑性。总损失为:

$L = L_ID + L_{Triplet} + β L_C $, 本文 β=0.0005。

4 实验结果

本节在 Market-1501 与 DukeMTMC-reID 两个主流数据集上评估各技巧带来的性能提升,采用 Rank-1 准确率与 mAP 作为评价指标。我们依次将技巧叠加到第 2 节的标准基线,其余训练配置保持不变;并通过跨域实验验证技巧的泛化性,避免过拟合误导。

4.1 各技巧在同域上的影响

模型Market-1501DukeMTMC-reID
r=1mAPr=1mAP
Baseline-S87.774.079.763.7
+warmup88.775.280.665.1
+REA91.379.381.568.3
+LS91.480.382.469.3
+stride=192.081.782.670.6
+BNNeck94.185.786.275.9
+center loss94.585.986.476.4

标准基线已接近多数文献报告的水平;依次加入热身、随机擦除、标签平滑、stride-1、BNNeck 与中心损失后,最终仅增加一个 BN 层、未增加训练时间,即在 Market-1501 上取得 94.5 % Rank-1 与 85.9 % mAP,在 DukeMTMC-reID 上达到 86.4 % Rank-1 与 76.4 % mAP,相对标准基线 mAP 提升超 10 个百分点。

4.2 BNNeck 分析

表 2 对比了是否使用 BNNeck、以及选用 f_t 或 f_i 时,欧氏距离与余弦距离的检索性能(均未加中心损失)。

特征距离Market-1501DukeMTMC-reID
r=1mAPr=1mAP
f (无 BNNeck)欧氏92.081.782.670.6
ftf_tft欧氏94.285.585.774.4
ftf_tft余弦94.285.785.574.6
fif_ifi欧氏93.883.786.673.0
fif_ifi余弦94.185.786.275.9

可见,对归一化后的 f_i 采用余弦距离效果最佳;BNNeck 显著提升模型性能,故推理阶段默认使用 f_i + 余弦距离。

4.3 各技巧在跨域上的影响

表 3 给出跨域测试结果(M→D:Market-1501 训练,Duke 测试;D→M 反之)。总体来看,热身、标签平滑与 BNNeck 对跨域性能提升明显;stride-1 与中心损失影响有限;REA 反而损害跨域表现——去掉 REA 后,跨域 Rank-1 由 21.5 %→41.4 %(M→D)、32.5 %→54.3 %(D→M)。我们推测 REA 让模型过度拟合训练域的“遮挡”模式,导致测试域性能下降。

4.4 与最先进方法对比

表 4 将我们的强基线与各类最先进方法对比。Pyramid[22] 拼接 21 条局部特征取得最高指标,但若仅使用全局特征,其 Market-1501 结果为 92.8 % Rank-1 / 82.1 % mAP;我们的单全局特征基线达到 94.5 % / 85.9 % mAP,优于同样只使用全局特征的 AWTL[12] 逾 10 个百分点。再辅以 k-reciprocal 重排序,指标进一步提升至 94.1 % mAP(Market-1501)与 89.1 % mAP(DukeMTMC-reID)。据我们所知,这是仅依赖全局特征所能取得的最好成绩。

5 补充实验

我们注意到,已有工作在不同批次大小(batch size)或输入图像尺寸下训练模型。为排除这些因素对结果的干扰,本节系统评估它们对性能的影响。

5.1 批次大小的影响

三元组损失的 mini-batch 构成 B = P × K,其中 P 为身份数,K 为每身份采样图像数。单 GPU 显存限制下,batch 最多 128 张,因此无法测试 P=32 & K=6/8 等更大组合。为清晰观察 batch 与三元组损失的关系,我们去掉了中心损失。结果见表 5。

P×KMarket-1501DukeMTMC-reID
r=1mAPr=1mAP
8×392.679.284.468.1
8×492.980.084.769.4
8×693.581.685.170.7
8×893.982.085.871.5
16×393.883.186.872.1
16×494.083.786.673.0
16×694.082.885.169.9
16×893.181.686.772.1
32×394.584.186.071.4
32×493.282.886.573.1

总体趋势显示,适当增大 batch(尤其增大 P 或 K)可带来轻微提升:大 K 有助于挖掘困难正样本,大 P 有助于挖掘困难负样本;但超过一定规模后收益饱和,甚至因 GPU 显存限制导致梯度不稳定而下降。

5.2 图像尺寸的影响

在去掉中心损失、固定 P=16 & K=4 的条件下,我们测试了四种输入分辨率,结果见表 6。

图像尺寸Market-1501DukeMTMC-reID
r=1mAPr=1mAP
256×12893.883.786.673.0
224×22494.283.386.172.2
384×12886.473.287.172.9
384×19286.473.287.172.9

四种分辨率性能相近,差距在 1 个百分点以内。由此可见,在常用范围内,输入图像尺寸对 ReID 模型性能并非关键因子;权衡计算量与显存占用,256×128 仍是性价比较高的选择

6 结论与展望

本文系统梳理了行人重识别领域一系列行之有效的训练技巧,并构建了一个简单却性能强劲的基线。通过在相同域与跨域任务上的大量消融实验,我们验证了每种技巧对模型性能的具体贡献。最终,仅依靠全局特征,我们的强基线在 Market-1501 上达到 94.5 % Rank-1 准确率与 85.9 % mAP,在 DukeMTMC-reID 上达到 86.4 % Rank-1 与 76.4 % mAP。我们希望该工作能为学术界与工业界的 ReID 研究提供可靠起点。

然而,本文目的并非“无脑”刷高分数。相较于人脸识别,行人重识别仍有巨大探索空间。我们认为,训练技巧能够加速研究迭代,但远未穷尽。欢迎同行分享更多实用技巧,我们将基于该强基线持续评估并开源结果。

未来工作将从以下方向展开:

  1. 深入解析技巧机理,例如将 BNNeck 中的 BN 替换为 L2 归一化后的性能变化;
  2. 验证 PCB、MGN、AlignedReID 等最新架构是否能在我们的强基线上进一步获益;
  3. 通过更多可视化分析,帮助社区直观理解不同技巧对特征分布的影响。

我们期待与广大研究者共同推动行人重识别技术向前发展。


一句话核心
系统评估并组合已有“训练技巧”,在仅使用全局特征的条件下把行人重识别基线推到新高度。
研究动机
现有文献多把性能提升包装成“结构创新”,却忽视背后起决定作用的训练细节;行业也需要简单高效、不拼接局部特征的实用模型。厘清“技巧”的真实贡献,可为学术评审与工业落地提供公平基准和可直接复用的强力基线。
技术路线
以标准 ResNet50+Triplet/ID 损失为起点;
逐一加入 6 大技巧(热身学习率、Random Erasing、标签平滑、stride=1、BNNeck、Center Loss)做消融;
在同域与跨域双数据集量化增益;
补充 batch size 与图像尺度的敏感性实验。
关键发现
BNNeck 单独带来最大跃升(Market-1501 mAP +4.0%,Duke +5.3%)。
全局特征即可达到 94.5 % Rank-1 / 85.9 % mAP,超越多数多分支方法。
Random Erasing 在同域有效,跨域反而有害(Rank-1 从 41.4 % 降到 21.5 %)。
创新贡献
首次系统梳理并量化 6 项训练技巧在 ReID 中的独立与联合贡献;
提出 BNNeck 结构,用 BN 解耦 ID 与 Triplet 损失的不同几何约束,推理仅取归一化特征;
提供不依赖局部特征、不增加推理耗时的“强基线”,成为后续研究公平比较的参照。
局限性
实验仅覆盖two-stream损失与两个数据集,技巧在其他损失函数或更大规模数据上的普适性未验证;
对技巧的理论解释(为何 BNNeck 有效、为何 REA 跨域失效)仍偏经验;
未探讨技巧与不同主干网络、Transformer 结构的兼容性。
论证严谨性
消融实验充分、指标完整,同域+跨域双重验证避免过拟合误导;所有超参数与实现细节均开源,可复现。结论与证据一致,推理严谨。
与已有研究关系
补充并“纠偏”了现有工作:把被忽视的“暗技巧”显性化,为后续结构创新论文提供更高起点,同时警示评审需考虑技巧因素。

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值