当前位置: 代码迷 >> 综合 >> A Strong Baseline and Batch Normalization Neck for Deep Person Re-identification REID文章解读
  详细解决方案

A Strong Baseline and Batch Normalization Neck for Deep Person Re-identification REID文章解读

热度:20   发布时间:2024-01-30 13:15:15.0

文章解读:

这两篇文章 A Strong Baseline and Batch Normalization Neck for Deep Person Re-identification Bag of Tricks and A Strong Baseline for Deep Person Re-identification 主体思想是一样的,但是区别在于第一篇文章更为全面,而且还分析backbone改动时的准确率的变化等,第二篇文章里面多的就是一些baseline具体训练策略和数据预处理

A Strong Baseline and Batch Normalization Neck for Deep Person Re-identification

文章的主题设计思想:

这篇文章的主旨就是提出了一个 strong baseline , 作者在该 baseline 中使用了6个tricks(使用 Resnet50 作为 backbone),分别为:

  1. warmup learning rate
  2. random erasing augmentation
  3. label smoothing
  4. last stride
  5. BN neck
  6. center loss

我就不在这里对这几个tricks进行深度说明了,有很多的博客都会有介绍,先对其机理进行理解

(1)为什么设计BNNeck

作者认为两个LOSS之间有冲突

(2)为什么有center loss

出发点:在做视频追踪的时候需要设置不同的阈值来判断是不是用一个人,但是阈值很难去设定,因为只有 triplet loss 的时候,两个输出(1.5-1.3)和(0.5-0.3)是一样的,所以我们没有办法用比如1这个阈值去分割正负样本,所以增加了 center loss ,她可以使得每个样本更靠近其类别的中心,这样的话上述的现象通过到类别中心作为基准,就可以消除这个现象了

作者提出的这几个tricks搭建的baseline,其模型的表现已经超过目前很多paper中提出的模型,作者认为其他人的paper可能使用了一个poor baseline,或者是使用了一个好的baseline,但是实际上paper提出的trick没有起到作用(质疑其他作者的tricks的实用性,确实很多paper提出的trick华而不实,换一个数据集就没有用了)

工业界更倾向于一个简单可靠的,而不是靠各个尺度特征的叠加,或者靠不同的标注分割信息等

REID 实现方法综述:

Reid 的 baseline 根据 loss 的种类可以分为两大类:
classification loss metric loss (目前的 baseline 都是将这两个合并,作者就是这么用的,最终两个输出:分类+度量)

一些现有的其余REID研究方法,这几种方式都是基于上述的loss,只是在网络结构或者数据或者标注信息上做手脚,以提升最终的准确度(map cmc)

下述的每一个又可以分为一个子领域,又有很多的文章:

  • Stripe-based methods
  • Pose-guided methods
  • Mask-guided models
  • Attention-based methods
  • GAN-based methods
  • Re-ranking methods

作者的比较实验:

作者比较了几个不同的baseline,比如 IDE,PCB TriNet(这几个对应的paper都可以通过文章后面的索引找到),发现还是作者搭建的这个比较好,花花绿绿的模型不见得准确率高,鲁棒性强。

作者又对比了和pyramid网络的准确度,作者的稍微低了一点,但是pyramid网络用到了12个特征组合,作者搭建的只是用到了一个全局特征。

作者在不同的backbone上面试验了这些tricks,发现确实有影响,backbone好的出来的结果还是好,提取特征的能力强,目前是IBN-Net50-a 的准确度 高于 Resnet-50 的

Re-ranking是模型的后处理方式,并不是在训练的时候进行的处理

另一篇文章 Bag of Tricks and A Strong Baseline for Deep Person Re-identification:

baseline 中的数据预处理:

图像缩放至 256*128大小
图像进行零均值处理,减去固定mean 除以固定 std
Learning rate 开始值设置为 0.00035
triplet loss中的margin设置为 0.3
batch size的设置中 P=16 K=4

batch_size 的影响:

作者研究为什么batch_size会增大模型准确率,因为P K分别增加了难分正样本和难分负样本的比例

各个tricks的单独分析:

通过对各个tricks的分析,随机擦除对模型有害,慎重选择该方式,因为该方式有可能抹去了重要信息,比如头部,从而让模型学到了更多多余且无用的信息

  相关解决方案