【论文阅读】Bag of Tricks and A Strong Baseline for Deep Person Re-identification

这是一篇介绍Re-ID任务的tricks和baseline的论文。有很多地方也可以被别的任务借鉴,特别是特征匹配的任务,如检索。

Baseline

  1. 我们使用ImageNet上的预训练参数初始化ResNet50,并将完全连接层的尺寸更改为N。N表示训练数据集中的身份数量。
  2. 我们随机采样P个人和每个人的K个图像,组成一个训练批。一批大小等于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用于计算triplet loss。 ID预测logits p用于计算交叉熵损失。triplet loss的margin被设置为0.3。
  8. 采用Adam方法对模型进行优化。初始学习率设置为0.00035,并且在40th epch和70th epoch分别降低为1/10。总共有120个epoch。

Tricks

  1. Warmup Learning Rate。花了10个epoch将学习率从3.5×10-5线性增加到3.5×1e4。 然后,学习率在第40个时代和第70个时代分别降至3.5×1e5和3.5×1e6。
  2. Random Erasing Augmentation。为了解决遮挡问题使用随机擦除。
  3. Label Smoothing。一种正则化的方法以防止过拟合,鼓励模型不要太相信训练集,让分类之间的cluster更加紧凑,增加类间距离,减少类内距离,避免over high confidence的adversarial examples。还可以之后做知识蒸馏。比如原始的label是[0,0,1,0,0,0],平滑参数设置为0.1,则平滑之后的label就会变成[0.02,0.02,0.9,0.02,0.02,0.02]。
  4. Last Stride。 ResNet50的最后一个跨步设置为2。当馈入256×128大小的图像时,ResNet50的主干输出一个空间大小为8×4的特征图。如果将最后一个跨步从2更改为1,我们可以获得具有更大空间尺寸(16×8)的要素图。
  5. BNNeck。BNNeck只在特征层之后(和分类器FC层之前)添加了一个batch normalization(BN)层。
  6. Center Loss。center loss同时学习每个类的深度特征中心,并惩罚深度特征与其对应的类中心之间的距离,弥补了triplet loss的缺点。
  7. BNNeck。提取BN层之后的特征,而不是使用FC层特征。
原文地址:https://www.cnblogs.com/lvjincheng/p/13804928.html