A Bottom-up Clustering Approach to Unsupervised Person Re-identification (AAAI2019)

匿名 (未验证) 提交于 2019-12-02 23:39:01

一、介绍

这篇文章解决的是无任何标签的无监督行人再识别问题,作者提出了一种自底向上聚类方法(bottom-up clustering BUC)来联合优化CNN和无标签样本间的关系。作者的方法考虑到了行人再识别任务的两个基本的事实:不同人间的diversity和同一个人间的similarity。作者的算法最开始把每个人作为单独的一类,来最大化每类的diversity,然后逐渐的把相似的类合并为同一类,来提升每类的similarity。作者在自底向上的聚类过程中利用了一个多样性正则项来平和每个cluster的数据量,最终,作者的模型在diversity和similarity之间达到了很好的平衡。作者在图片和视频行人再识别数据集上进行了实验,包括Market-1501,DukeMTMC-reID, MARS and DukeMTMC-VideoReID,实验结果证明作者的算法不仅仅超过了无监督行人重识别的sota,而且跟迁移学习和半监督学习的方法相比也有很好的结果。

二、作者的方法

后向时,使用下式更新查找表V:

作者指出,在优化过程中,Vj包含了第j类的所有信息,因此可以看作是一种类的中心点。作者不直接通过所有特征计算类中心点是为了降低计算复杂度。查找表V能够减轻大量的计算。作者提出来的损失函数能够使本类cosine距离为1,和其他类距离为0,能够在整个训练集上综合考虑同类的similarity和不同类的diversity。

经过训练阶段,特征空间里训练样本倾向于互相远离(diversity),然而同类的图片是相似的,在特征空间也相近。作者采用层次聚类的方法来自底向上合并类。最开始每张图是一类,然后每次迭代根据类间距离,总小到大合并固定数量(m=mp*N,mp是个系数,实验中设为0.05,即20次迭代合并完所有的类)的类,每次迭代剩余类数:C=N-t*m。类间距离计算公式如下:

模型迭代地训练网络、合并类。整体的更新进程如下图:

第一次迭代C=N,然后使用X,Y和训练CNN。训练完成后根据类间距离合并m个类,然后重新用样本所属的新类作为新标签Y,再次训练CNN。然后迭代这个过程。每次迭代后,在测试集上测试网络的表现,当网络表现下降时停止迭代。(作者没有明确说明,我推测查找表N是随机初始化得来的,即初始化Cxn大小,行norm为1,的矩阵)

虽然作者不知道没类有多少样本,但是作者假设每类的样本数基本相同。为了避免一个类太大,促进小的类合并,作者提出了一个多样性正则项:

即把类的样本数目考虑进去。现在的类的距离计算公式为:

lambda是个平衡系数。作者指出,考虑到很多人穿几乎同样(颜色)的衣服,如果没有多样性正则,网络会错误的将这种合并到一起,形成很大的类。

三、实施细节

  1. 使用预训练的ResNet50作为backbone,移除了最后一层分类层。
  2. 第一阶段训练epochs=20。
  3. batch_size=16,dropout=0.5, mp=0.05, lambda=0.005
  4. SGD优化,momentum=0.9,lr前15epochs为0.1,后5个epochs为0.01
  5. 对于视频,把每帧的特征进行mean pool作为样本的特征。图片每张作为一个样本。
  6. 使用一块1080Ti,Market-1501和DukeMTMC-reID用4小时完成训练,Mars和DukeMTMC-VideoReID用5小时完成训练

1)在图片数据集上和sota的对比

3)多样性正则项的作用

通过表1和表2可以看出,多样性正则项能够提升5个点以上。

参考文献

Wu, Z.; Xiong, Y.; Stella, X. Y.; and Lin, D. 2018b. Unsupervised feature learning via non-parametric instance discrimination.In CVPR.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!