《Beyond Part Models: Person Retrieval with Refined

2019-07-14 09:14发布

论文链接:Beyond Part Models: Person Retrieval with Refined Part Pooling

Beyond Part Models: Person Retrieval with Refined Part Pooling(and A Strong Convolutional Baseline)

本文和旷视那篇AlignedReID一样出 {MOD},都将Market-1501数据集的TopRank-1性能刷到了94以上,但该论文没用re-ranking boosting ,两篇论文里面的方法都非常新颖,值得详细研究。 Part-based Convolutional Baseline (PCB)

论文简介: 

Motivation 当前利用 part-level feature 做re-id 的方法大致分为两类: 1. 利用在其他数据集上训练好的 pose estimation 模型 unsupervised transfer 到 re-id 数据集上得到 local part 的定位,然后基于local parts 提取 part-level features。 2.不使用额外的类似于 pose estimation 的模型,而是用统一的分块方式,(比如给定一张行人图像,将图像均匀分割为固定的p个horizontal stripes)或者采用 attention 机制去locate 等。 使用第一种方法虽然可以显式的定位 local parts,但是也要忍受 transfer 过程由于 datasets bias 引入的误差。当然如果定位带来的提升大于引入误差导致的性能降低,整体也是可以接受的。这篇文章第一部分PCB模型属于第二类方法,使用得是均匀划分。对不同part用不同loss去训练。对于均匀分割或者其它统一的分割,不同图像在同一part可能因为没有对齐出现不同的语意信息。对此,作者提出了Refined Part Pooling 对统一分割进行提纯,增强 within-part 的一致性,这也是本文的一大亮点。    提取part级别的特征对于细粒度图像识别具有重要的意义,类似part aligned的想法,作者设计了新的更强的baseline-PCB(Part-based Convolutional Baseline),其能得到由几个part级别的特征得到的综合描述子用于reid任务的行人匹配,不过在此baseline中一个行人图像的各parts间不应该只是这种严格的均匀的分割区域方式,考虑各part之间信息过渡的连续性,作者设计了一个精巧的训练策略,采用RPP(refined part pooling),某part边缘部分的outliers重新划分到临近的parts上,这样就产生了一个part内连续性(连贯性),这使得应用part的model性能得到增强,不过,作者更加强调了RPP的训练策略,这是非常关键的,融入了一种对抗训练的思想。
reid中不同分割策略产生的part,后两种是一种软分割(如下图) 
典型地: 
采用现成姿态估计得到的parts特征,因为和目标数据集存在bias,并不能在行人图像上得到理想的行人parts语义信息 
通过重定位外围像素点到它更适合的part中来精调这个均匀分割parts,这可以使得各part内具有连贯性,即相当于让模型更加注意两两parts的顺序,有一种更精细对齐的含义(同时过滤了一些背景杂波) 

Related Work

近期的研究利用了注意力机制的论文: 
基于
这篇论文的两篇论文: Hydraplus-net: Attentive deep features for pedestrian analysis. In ICCV, 2017 
Deeply-learned part-aligned representations for person re-identification.

PAR: 

PAR和本文都是利用做软分割(即提取的有效特征应用了注意力机制),而不用 no part labeling,并不是固定的含有更多背景杂波的矩形分块!! 
但PAR和本文PCB with RPP在训练策略,设计动机和机制上存在明显不同: 
具体如下:注意PAR的各parts分别训练采用各自的part loss外加全局约束来形成具有模糊对齐意义上的整体描述子。而PCB的RPP是在预训练的均匀分割上进行精调,训练策略上前面是同时训练,联合优化,而RPP需要预训练均匀part loss的模型后,再精调RPP部分引入的参数,且是一种半监督的方式。细节上的区别如下: 


1.工作机制:采用注意法,PAR训练分类器在无监督方式下的训练,RPP可以看作半监督过程。2.性能:稍微复杂的训练过程使得RPP具有更好的解释和显着更高的性能。
Method
  • PCB结构:

基模型可以是ResNet50, Google Inception等,本文主要采用了ResNet50. 
作者作的一些轻微的修改: 
如图,ResNet50的全均值池化被抛弃,而是分P个水平条纹,在各条纹上应用条纹全局均值池化,得到的p个2048维度的向量后,再由1*1卷积核的降维操作后,变为256-dim,最后,对每个条纹对应的特征向量,分别采用N类别的softmax多分类 loss训练得到p个N-IDs的分类器。 
测试阶段,p个特征向量会串接为一个描述子用于匹配ID。 
注意:可用作测试的特征向量可以来自于2048维的,也可以来自256维的特征向量串接,不过前者在更多计算消耗下可以获得更高一些的性能。
  1. 1.去掉Resnet50 global average pooling及以后的部分。
  2. 2.将最后一层feature map 分成 p个horizontal stripes。分别对p个horizontal stripes做global average pooling就得到了p个局部特征。
  3. 3.因为 Resnet50 最后一层feature map的通道数为2048,作者又用1x1 conv将其降到256维。
  4. 4.接着用p个n(训练集ID数目)分类softmax作为分类器进行训练。损失函数使用交叉熵损失。
  5. 5.测试时分别串联向量g和h作为行人图像的特征表示。

  • PCB细节:
  1. PCB benefits from fine-grained spatial integration,其重要的参数设置,通过实验得到的,即


  2. 1.为了丰富特征粒度,参考 SSD 和 R-FCN,作者去掉了 Resnet50 最后一次 down-sampling。
  3. 2.图像 resize 到 384x128。
  4. 3.horizontal stripes 的个数 p 取6。
  5. 4.对比了使用单损失和多损失的性能。使用单损失函数时,对 p 个 h 求平均作为图像的特征表示。
  6. 5.对比了 p 个 softmax 前一层 FC 共享参数的性能。
Potential Alternative Structures即PCB可以选择的一些结构变体: 

  • RPP motivition: 作者将 average pooling 前后的向量做最近邻( f_{mn}g_i ),注意到真实的边界并不和统一划分的边界重合,很显然这也是统一划分最大的弊端之一。
  • 考虑within-part consistency,如图,为均匀分割后的不一致性可视化描述: 

The existence of these outliers suggests that they are inherently more consistent with column vectors in another part.我们需要对这些outliers进行重定位,即修改这些不一致性,使每个part的column vectors保持一致的相似性。

  • RPP结构
  • PCB with Refined part pooling conducts a “soft” and adaptive partition to refine the original “hard” and uniform partition,and the outliers originated from the uniform partition will be relocated.如下图:

  1. 作者在最后一层 feature map 后面训练了一个 part classifier。part classifier 使用的是线性层 + softmax,参数记为 W。
  2. 接着将 average pooling 改为向量的加权和,权值即分类器的后验概率。
  • RPP的训练RPP 只有一项参数 W,训练分三步:
  1. 训练 PCB 至收敛。(这一步引导训练的重要性以及 step3 内在的思想见作者评论补充)
  2. 将 average pooling 替换为 part classifier。
  3. 固定其它参数训练 W 至收敛。
  4. 放开全部参数,fine tune。
训练策略:对抗式训练,取得一个精调的平衡: 

Experiments

  • Datasets:Market-1501,DuckMTMC-reID,CUHK03 (new protocol)
  • setting:single-query,without re-ranking

  • 结论:
  1. 相比 IDE,PCB 的 mAP 提升8.9-15.3%
  2. RPP 对 PCB 的 rank-1 提升 1.5-3.1%,mAP 提升 3.1-4.2%
  3. 多损失比单损失提升明显,mAP 提升约 10-15%
  4. p 个分类器不共享参数相比共享参数提升 mAP 2.4-7.4%
  5. 关于图像分辨率以及去掉 Resnet50 最后一次 down-sample 的实验

  • 对 horizontal stripes 数目 p 的讨论


PCB 引导训练的重要性讨论以及与另一篇基于 attention 机制方法的对比





论文复现:https://github.com/YHJRUBY/ReID_PCBhttps://github.com/GenkunAbe/reID-PCBhttps://github.com/layumi/Person_reID_baseline_pytorchhttps://github.com/huanghoujing/beyond-part-models

参考文献:1.https://zhuanlan.zhihu.com/p/319478092.https://blog.csdn.net/xuluohongshang/article/details/79029297