导读
原文:openaccess.thecvf.com/content_ECC…
这是一篇由清华大学的孙奕帆等人在ECCV2018提出的一篇关于行人重识别的论文。 其主要贡献有两个,提出了一个PCB(硬划分)的baseline以及在此基础上提出了一个不需要姿态估计的软划分(RPP)网络框架。
方法
图a到图e都是人提出来的方法,图f是本文提出来的。
PCB基线网络
PCB的大致结构。输入的图片通过骨干网络(例如Resnet50)。去掉resnet50全局池化以及后面的部分,并将输出的特征分成p个水平向量。接着对每个向量做全局池化和卷积核姜维操作。最后对每个输出都做n类别的softmax分类器。在把这些向量拼接回去做特征表示。
同时,作者为了提高PCB的效果,进行了多次实验。作者认为PCB对超参数很敏感。 合适的超参数有:
- 输入图像大小为381*128,是三比一。
- 深度特征 tensor T(深度)的空间尺寸为 24x8。
- 被均等分为6。
(深度特征是PCB结构图的这个部分。)
此外,为了提高特征的细粒程度,去掉了骨干网络(resnet50)的最后一次下采样。
内部的矛盾
显然如此粗暴的划分肯定是存在问题的。作者在训练完成PCB后,对比较了每个划分快中的向量g和h(也就是上图的想方块)的余弦距离,想要找出离此方块最近的一个分割part。发现有些向量更接近于其他的part。上图已经用颜色标记好了。
Refined Part Pooling(RRP)
为了解决上述的一些问题,作者进一步提出了RRP,目的是通过向量f和其最相似的part,来对齐所有的向量f。
其中S(f↔Pi)是 f 属于某一个P 的概率。p是被分割的数量(这里是6),w是可以学习的权重矩阵。
RPP 和 part classifier 和后续的降采样操作,取代了原来的 average pooling 操作,而其他层跟之前的架构图是一样的,没有变化。
诱导训练
首先把PCB训练至收敛,然后冻结所有参数,加入RRP里的part classifier,后让模型继续训练,此时得到更新的就只有part classifier的参数了,等part classifier收敛之后再放开全部参数进行fine-tune。实验表明,RPP能够进一步提高PCB的性能。
实验
IDE是一个基本的baseline。
Variant1和Variant2都是变种的PCB。
Variant1是所有的特征平均化之后做的预测,只预测一个值,所以只有一个损失。
Variant2是在FC阶段进行特征共享。
可以看到PCB+RPP性能最好。
与在market1501的sota方法对比。
——Group 1:手工设计模型
——Group 2:利用全局特征的深度学习方法
——Group 3:利用局部特征的深度学习方法
其他两个数据集对比。
切片大小和输入图片大小的实验支撑。