【论文阅读】Beyond Part Models: Person Retrieval with Refifined Part Pooling (and A Stro

857 阅读3分钟

导读

原文:openaccess.thecvf.com/content_ECC…

代码:github.com/syfafterzy/…

这是一篇由清华大学的孙奕帆等人在ECCV2018提出的一篇关于行人重识别的论文。 其主要贡献有两个,提出了一个PCB(硬划分)的baseline以及在此基础上提出了一个不需要姿态估计的软划分(RPP)网络框架。

方法

image.png 图a到图e都是人提出来的方法,图f是本文提出来的。

PCB基线网络

image.png PCB的大致结构。输入的图片通过骨干网络(例如Resnet50)。去掉resnet50全局池化以及后面的部分,并将输出的特征分成p个水平向量。接着对每个向量做全局池化和卷积核姜维操作。最后对每个输出都做n类别的softmax分类器。在把这些向量拼接回去做特征表示。

同时,作者为了提高PCB的效果,进行了多次实验。作者认为PCB对超参数很敏感。 合适的超参数有:

  1. 输入图像大小为381*128,是三比一。
  2. 深度特征 tensor T(深度)的空间尺寸为 24x8。
  3. 被均等分为6。

image.png(深度特征是PCB结构图的这个部分。)

此外,为了提高特征的细粒程度,去掉了骨干网络(resnet50)的最后一次下采样。

内部的矛盾

image.png

显然如此粗暴的划分肯定是存在问题的。作者在训练完成PCB后,对比较了每个划分快中的向量g和h(也就是上图的想方块)的余弦距离,想要找出离此方块最近的一个分割part。发现有些向量更接近于其他的part。上图已经用颜色标记好了。

Refined Part Pooling(RRP)

为了解决上述的一些问题,作者进一步提出了RRP,目的是通过向量f和其最相似的part,来对齐所有的向量f。

image.png

其中S(f↔Pi)是 f 属于某一个P 的概率。p是被分割的数量(这里是6),w是可以学习的权重矩阵。

image.png RPP 和 part classifier 和后续的降采样操作,取代了原来的 average pooling 操作,而其他层跟之前的架构图是一样的,没有变化

诱导训练

首先把PCB训练至收敛,然后冻结所有参数,加入RRP里的part classifier,后让模型继续训练,此时得到更新的就只有part classifier的参数了,等part classifier收敛之后再放开全部参数进行fine-tune。实验表明,RPP能够进一步提高PCB的性能。

实验

image.png IDE是一个基本的baseline。 Variant1和Variant2都是变种的PCB。 Variant1是所有的特征平均化之后做的预测,只预测一个值,所以只有一个损失。 Variant2是在FC阶段进行特征共享。 可以看到PCB+RPP性能最好。

image.png 与在market1501的sota方法对比。

——Group 1:手工设计模型

——Group 2:利用全局特征的深度学习方法

——Group 3:利用局部特征的深度学习方法

image.png

其他两个数据集对比。

image.png 切片大小和输入图片大小的实验支撑。