Introduction
(1)Motivation:
当前提出的基于人体部件划分的ReID方法主要有两类:
① 第一类是基于人体姿态估计的方法,这类方法的性能受限于姿态估计和ReID数据集的偏差,难以得到较好的语义分割;
② 第二类不使用语义分割,不对部件进行定位。
如下图所示:
(2)Contribution:
① 提出了Part-based Convolutional Baseline(PCB)网络,不需要进行语义分割即可提取部件特征;
② 提出了一个自适应池化层refined part pooling(RPP),用来调整出现偏差的部件,增强部件的内部一致性。
【开源代码:https://github.com/syfafterzy/PCB_RPP】
PCB:A Strong Convolutional Baseline
(1)网络结构:
① Backbone网络:
采用了ResNet50网络,除去隐藏的全连接层。
② PCB模块:
细节:参考知乎【传送门】
Refined Part Pooling
(1)部件内部不一致:
由于采用的是强制划分,这带来了部件内部信息的不一致性问题。
作者计算每一个列向量 f 和各个部件的特征向量 g 之间的距离,哪个距离最小,则记入那个部件,如下图所示:
(2)异常值重定位:
计算 f 属于某一个部件的概率值为:
其中 W 为部件分类的权重矩阵,最后将每个 f 重新分配到对应的部件中,每个部件对应的所有 f 进行池化,如下图所示:
(3)部件分类的诱导训练:
Step1:将一个张量 T 均匀分区的PCB训练到收敛;
Step2:结合 p 类部件分类器 ,根据部件分类器的预测来判断部件划分;
Step3:固定PCB的参数,只训练部件分类器部分直到收敛;
Step4:全局网络训练,进行微调。
Experiments