Unsupervised Person Re-identification: Clustering and Fine-tuning

1、介绍

基于全监督的行人重识别问题取得了很大的进展。但是基于无监督的行人重识别问题的进展则相对缓慢。现有研究主要集中在人工提取特征然后使用无监督方法分类上,针对的数据集规模也比较小。作者提出了一个PUL(PROGRESSIVE UNSUPERVISED LEARNING)的方法,率先把深度学习框架应用到大规模数据集无监督行人重识别问题上。

2、作者的方法

作者将他的方法命名为PUL(PROGRESSIVE UNSUPERVISED LEARNING),核心的算法是以下三个公式:

Unsupervised Person Re-identification: Clustering and Fine-tuning

(1)式是将一张图片使用CNN提取特征后和所有聚类的中心点Ck计算距离,选择距离最小的中心点Ck,把K作为它的预测标签。对于训练集N张图片每次迭代时,聚类完成后都要进行一次这样的标签预测 

(2)式是将和聚类中心点Ck距离较近的样本Vi设为1,表示将其作为信赖样本,下次迭代中用来更新CNN。这里是一个trade-off,只有和Ck的(cosine)距离大于lambda时才会被选中(因为越相似cosine距离越大,所以lambda越小选的越多)。

(3)式是使用训练集所有标注为信赖样本的数据来训练更新CNN

综上,作者的方法算法流程如下:

Unsupervised Person Re-identification: Clustering and Fine-tuning 

首先设置信赖阈值lambda(作者通过实验表明0.85时效果较好),聚类类数K(根据数据集的ID数确定),初始化CNN (作者使用的是在ImageNet上预训练的ResNet-50,然后在另一个全监督数据集上fine tune。如工作数据集是无监督的Market-1501,则在全监督的CUHK上fine tune)。

当聚类后每次选择样本数未收敛到一个固定值时,对于每次迭代:

1、先随机初始化分类层权重W

2、然后对训练集的N个样本使用CNN提取特征向量fi

3、然后对提取的特征向量进行聚类,得到每个样本的标签yi和聚类中心点Ck

4、把聚类中心点Ck设置为距离原中心点最近的特征向量fi (这样就使得每类必有一个距离为0的样本,一定会被选中,保证了每至少有一个信赖样本)

5、对所有的特征向量fi进行l2正则(使得向量平方和为1)。

6、对所有的类别K类,从样本1到N中遍历每个样本,当样本特征和这类中心点的距离大于lambda时将Vi设为1,表示选中为信赖样本。反之Vi设为0,表示未选中为信赖样本(根据选择样本数量是否增加判断是否收敛,若未收敛则继续迭代。否则退出迭代,CNN训练完毕)

7、用所有选中的信赖样本fine tune CNN

三、实验结果 

Unsupervised Person Re-identification: Clustering and Fine-tuning 

作者测试了他的方法,baseline表示在其他数据集上训练完CNN后直接将其用到另外的测试集上。实验表明,作者的方法相比baseline提升很大,而且超过了人工提取特征然后无监督学习的方法。作者的方法还能应用于半监督学习,即将已标注的数据用来初始化的时候fine tune CNN,在随后的迭代中同样也用来fine tune CNN。作者通过实验表明,对于他的方法,加入一些标注数据能够显著提高performance,而且数据加的越多,提升越大。而作为对比的UMDL算法就没有类似的特性,加入标注数据前后变换不大。