Pseudo Label Based on Multiple Clustering for Unsupervised Cross-Domain Person Re-Identification
这次分享一下2020年3-7月份的工作量——一篇自己的paper。
文章链接
主要是基于cross-domain Re-ID基于聚类的方法上提出了一个小trick。
主要思路
基于聚类的跨域行人重识别方法主要是利用在源域上训练好的模型提取目标域数据集上的特征,并基于特征进行聚类生成伪标签,利用伪标签来微调模型,使模型达到跨域适应的效果。
但这类方法大多在一个训练周期内只进行了一次聚类,且每周期聚类参数都不变,这样的话聚类参数设置不佳会严重影响聚类的质量。所以这篇文章针对这个问题,提出了基于多次聚类提取伪标签的方法来提升每个周期的伪标签质量。
PLMC框架
上图为本篇文章的提出PLMC方法的主要框架图,大致为:
(一)预训练阶段:用在ImageNet上预训练好的ResNet在源域有标签数据集上进行有监督训练,得到一个预训练模型。
(二)跨域训练阶段
跨域训练阶段分为两个训练阶段:①Global Training Stage ②Local Training Stage,利用交替训练的方法进行两个阶段的跨域训练微调模型。
①Global Training Stage
这个跨域训练阶段是针对全局特征的,利用预训练好的ResNet网络对源域(有标签)以及目标域(无标签)进行特征提取,然后利用 k-reciprocal encoding 计算目标域图像之间的距离,公式如下所示:
D
J
D_J
DJ是目标域图像的距离矩阵,
J
i
J_i
Ji为第
i
i
i张图像与其他图像之间的距离向量,
d
(
x
i
,
x
j
)
d(x_i,x_j)
d(xi,xj)是第
i
i
i张图像与第
j
j
j张图像之间的距离,其中
d
j
(
x
i
,
x
j
)
d_j(x_i,x_j)
dj(xi,xj)是利用k-recipreocal encoding计算出来的Jaccard距离,
d
W
(
x
i
)
d_W(x_i)
dW(xi)是度量目标域
x
i
x_i
xi与源数据集中最近图像之间的置信度。
基于以上距离矩阵,对目标域图像进行多次聚类。多次聚类的过程如下图所示:
可以简单的发现,每一次聚类的簇数是不同的,这里通过修改每次聚类的参数来实现,设计多次聚类的时候有一个简单的设想:每一种分类方式都隐含着一定的信息,即:根据不同的侧重点进行聚类。所以不同参数的每一次聚类结果多多少少都对Re-ID具有一定的意义。通过多次聚类,逐渐把整个人图像信息拼凑全(当然这是一种理想状态)
N次聚类后,一张图像会对应N个伪标签,就得到一个N维的伪标签向量,最终构成了伪标签矩阵。如公式(2)然后这里采用一个汉明距离公式来计算图像之间的伪标签向量之间的距离,如公式(3):
然后基于上述得到的伪标签距离,来更新原始距离,如下式所示:
基于最终距离,再利用聚类进行提取伪标签,这里的伪标签质量就会比之前的单次聚类得到的伪标签聚类要好很多。
②Local Training Stage
这个训练阶段是在全局特征的基础上加入了局部特征支路,三个支路分别进行多次聚类,聚类过程跟Global Training Stage相似,然后将得到的伪标签矩阵进行拼接如公式(5)所示,然后计算一个伪标签距离,最终利用公式(6)更新距离。
(三)交替训练
交替训练跨域阶段①跟②,这里的交替训练其实不是严格意义上的①阶段训练1次,紧接着训练②阶段1次,而是①阶段训练
ι
1
ι_1
ι1次,接着②阶段训练
ι
2
ι_2
ι2次,然后重复I次直到模型最优。
总结
其实这篇文章有很多不足,比如其实在局部特征训练的阶段,没有仔细考虑局部划分以及多次聚类的伪标签之间的关联,而是做一个简单的拼接,还有在交替训练阶段没有很好的去调参,且没有提出适合这个框架的损失函数。也是未来想要改进的地方。