导读
原文:openaccess.thecvf.com/content_ECC…
代码:github.com/syfafterzy/…
这是一篇由清华大学的孙奕帆等人在ECCV2018提出的一篇关于行人重识别的论文。 其主要贡献有两个,提出了一个PCB(硬区分)的baseline以及在此基础上提出了一个不需要姿势估量的软区分(RPP)网络结构。
办法
图a到图e都是人提出来的办法,图f是本文提出来的。
PCB基线网络
PCB的大致结构。输入的图片经过主干网络(例如Resnet50)。去掉resnet50大局池化以及后面的部分,并将输出的特征分成p个水平向量。接着对每个向量做大局池化和卷积核姜维操作。最终对每个输出都做n类别的softmax分类器。在把这些向量拼接回去做特征表示。
同时,作者为了进步PCB的作用,进行了多次试验。作者认为PCB对超参数很敏感。 合适的超参数有:
- 输入图像巨细为381*128,是三比一。
- 深度特征 tensor T(深度)的空间尺寸为 24×8。
- 被平等分为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 和 partclassifier 和后续的降采样操作,取代了原来的 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:使用局部特征的深度学习办法
其他两个数据集比照。
切片巨细和输入图片巨细的试验支撑。