1. 整体摘要
1.1 问题
1)完全无监督学习的基本方法就是使用聚类算法或分类算法预测伪标签或者训练一个神经网络用于生成伪标签。但是这种方法依赖于标签预测的正确率,并且使得无监督行人重识别不再是一个检索任务;
2)传统的对比学习策略仅使用单个的正样本来定义对比损失,但实际上在训练集中,一个行人对应多张图片。并且把除去正样本以外的所有样本都认为是负样本;
3)在以往的研究中,使用全局鉴别特征或者局部鉴别特征进行特征学习,但全局鉴别特征有时候会将不同行人的特征映射为相似的特征表示;局部特征虽然能够为行人图像提供一些细粒度的信息,但是相比全局特征而言,局部特征带有了更大的探索自由度,使得特征表示学习的优化难以收敛;
1.2 提出方案
1)本文主要聚焦在对比自监督可视化表征学习上,而不是显式地进行标签的预测。在表征学习上充分利用一个原则:一个好的特征表示模型应该将相同行人的特征映射得更为相似,对于不同行人的特征表示,应该增加特征表示的差异
2)因为一个行人可能被多个摄像头捕捉到,也就是在训练集中一个行人对应有多张图片,所以不同于传统的对比学习,本文使用多个正样本定义对比损失。并且本文将训练数据集划分为3个子集:similar set、borderline set、dissimilar set,其中similar set作为正样本;borderline set指的是疑似是正样本中行人的数据集,并把它作为负样本,以此来提升特征学习的鉴别能力。
3)因为全局特征表示和局部特征表示有各自的缺陷,所以本文结合了全局特征和局部特征,来定义距离尺度和对比损失。
2. 模型方法
2.1 整体框架
本文提出的框架图如下所示:
大致分为以下几部分:特征表示学习框架、正负样本抽样策略、对比损失定义和优化策略、memory bank更新策略。
2.1.1 representation learning framework
提出的特征学习框架由encoder、pooling operator、projection neural network、global and local memory bank、mixture memory bank5部分组成
-
encoder。主要作用就是为输入的图像提取特征向量,本文采用的是不带分类层的ResNet-50作为主干网络
-
pooling operator。本文中,考虑全局池化与平均池化以此来获得全局特征和局部特征。其中全局特征通过对所有图像的特征图平均池化得到;部分特征通过将全局特征平均划分为8个水平条纹得到
-
projection neural network。即一个可学习的非线性操作能够将图像特征转化到潜在空间中。一投影神经网络由全连接层、batch normalization层和L2-normalization层定义得到,它的作用就是有益于对比损失的定义。
-
global and local memory bank。memory bank就是用于存储便于成对相似性计算的全局特征和局部特征,进一步结合了cross-camera encouragement term(CCE)的global memory bank(M^g)和local memory bank(M^l)用来定义全局和局部距离尺度。之后根据得到的距离相似性排序,使用正样本和负样本来定义对比损失。
-
mixture memory bank。为了提高鉴别能力,本文将全局特征和局部特征融合起来得到mixture memory bank(M^t)。以此定义对比损失,即最大化正样本之间的相似性和最小化负样本之间的相似性。mixture memory bank用0进行初始化,之后关于memory bank的更新问题,本文中融合了图像的全局特征和局部特征对对应的正样本特征进行更新,具体的更新公式如下:
首先是使用全局特征更新:
-
之后进一步使用局部特征进行更新:
-
其中,|| · ||_2表示L2_normalization;{v_i}^g表示图像x_i的全局特征,{v_i}^l表示图像x_i的局部特征;M^t[k]表示mixture memory bank中样本x_i对应key的特征表示。
2.1.2 positives and negatives sampling
在对比学习中,是需要获得两种不同的不同的计算能力:即对给定的图像,一种计算能力是拉近与其他图像之间的特征表示,即为正样本,另一种计算能力是拉开与其他图像之间的特征表示,即为负样本。本文中,使用欧氏距离计算图像x_i与图像x_j之间的特征相似度以及global memory bank和local memory bank中的key。定义全局距离S^g和局部距离S^l的计算公式如下:
其中,N_l表示将全局特征平均化的份数。并且为了保证不同摄像头捕捉到的同一个行人的图像的一致性,本文中添加了一个cross-camera encouragement term(CCE)作为相似度距离度量的一部分,CCE的定义如下所示:
其中,c_i、c_j是图像x_i、x_j对应的行人ID。所以总的相似性距离公式计算如下:
其中β是一个平衡因子,用于平衡全局相似度和局部相似度,并设置为0.5.
在定义相似性度量之后,将相似度结果进行排序,并根据排序结果将训练集划分为3个子集:similar set、borderline set、dissimilar set。不同于以往提出的对比损失使用的单个的正样本对,本文认为一个行人对应有多张图片,所以将similar set作为正样本数据集;与以往的认为除正样本以外的数据皆为负样本不同的是在于:将疑似是正样本的数据即borderline set作为负样本数据集,因为这样可以提升特征表示学习的鉴别能力。对于dissimilar set,因为已经足够的不同,在对这部分数据进行学习,对提升特征表示学习的能力没有帮助。因此,本文中将提出的这种方法称为选择对比学习。
2.1.3 contrastive loss and optimization
根据已经定义的正样本和负样本,从mixture memory bank的角度定义对比损失函数,计算公式如下:
v_i表示特征向量,τ是一个超参数,µk是一个贡献因子,用于强调最相似正样本的贡献,并且它的定义如下:
根据上面定义的损失函数,接下来对全局损失和局部损失进行计算,计算公式如下:
最后总的对比损失计算公式如下:
λp是一个平衡因子,用于平衡全局损失和局部损失之间的贡献,并设置为0.5.
关于优化这部分,使用随机梯度下降法对模型进行优化。
2.1.4 memory bank update
为了充分利用无监督对比学习方法,所以使用的memory bank应该是动态的,所以本文中,使用不同的更新策略对三种不同的memory bank进行更新。对于global memory bank和local memory bank只需要更新图像对应的key,所以只需要融合最新的全局特征和局部特征即可,具体的计算公式如下:
对于mixture memory bank的更新问题,已经在前面介绍了。
3. 总结
本文中,提出了一个新的基于选择对比学习的无监督行人重识别的方法:
-
文中提出使用多个正样本和自适应性地选择负样本用于定义对比损失,以此学习得到一个具有更强鉴别表示能力的特征嵌入模型
-
定义了3个动态memory bank,用于成对相似度计算和结合全局鉴别信息和局部鉴别信息定义对比损失
-
大量的实验证明本文提出的模型是目前性能表现最好的模型
文章创新点:之前的contrastive learning都是在基于单个的样本对,现在将数据分为了similar set、borderline set和dissimilar set。将similar set作为positive,将borderline set作为negative,样本对就不是单个的了,这样就可以学到更多的特征信息。