• 【论文阅读】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层特征。
  • 相关阅读:
    Python的传递引用
    kafka的ACK
    分布式事务
    Java中的锁
    docker笔记
    MySQL数据库优化
    Centos7使用yum命令安装Mysql5.6.X
    ubuntu16.04安装workbench
    ubuntu下IDEA配置tomcat报错Warning the selected directory is not a valid tomcat home
    ubuntu配置JDK
  • 原文地址:https://www.cnblogs.com/lvjincheng/p/13804928.html
Copyright © 2020-2023  润新知