论文:Invariance Matters:Example Memory for Domain Adaptive Person Reidentification

github: github.com/zhunzhong07/

这篇文章讨论的是reid中的域自适应问题(domain adaptive),域自适应问题就是利用标记的源域和未标记的目标域学习一个行人重识别模型。当前的主流方法大多是减少源域和目标域之间的域差距(特征分布差异),但是这些方法忽视了目标域的域内变化,这对reid在目标域上的测试表现是很重要的影响因子。文章对目标域的域内变化进行了全面研究,提出了关于三种域不变性的reid模型,分别是样例不变性、相机不变性和领域不变性。作者提出了样例记忆模块存储目标域的中间特征,样例记忆模块迫使网路在全局训练中增加不变性约束。

样例不变性:通过使每个行人样例和他自己距离更近,和别的更远,在未标记的目标数据集上学习明显的相似性。

相机不变性:虽然相机风格的变化会显著的影响行人的外观变化,但是通过相机风格转换后的行人图像仍是属于同一个人。作者基于下面的假设提出了相机不变性:一张行人图像和其通过相机风格转换后得到的图像,应该彼此更接近。

领域不变性:假设我们得到了一个在源域和目标域上训练的一个reid模型,一个目标样例和其在目标域中相邻的图像应该有相同的身份。基于这个假设,作者提出了领域不变性:强迫一个样例和其邻近的样例,彼此之间应该更接近。

样例不变性、相机不变性和领域不变性帮助我们学习一个更鲁棒的模型,来克服目标域内的图像变化问题。

图1 三个不変性
图2 ECA的整体架构

数据集准备:在无监督域自适应(UDA)下,我们提供了一个完全标注的源数据集{ {Xs,Ys} },源数据集包含了Ns张图像,M个不同的行人身份。每一个行人图像 Xs,i 属于一个身份 Ys,i 。文章还提供了一个未标记的目标数据集 Xt ,包含 Nt 张行人图像。

目标就是利用标注的源域数据集和未标注的目标域数据集学习一个可迁移的行人重识别模型,该模型能够在目标测试集上表现良好。

文章提出的ECN网路的整体架构如图2所示。在模型中,使用了在ImageNet上与训练的ResNet-50作为基础模型,特别的,保留了ResNet-50中pooling5前面的层,在pooling5层后增加了一个4096维的全连接层(FC-4096),后面跟著BN层,ReLU,dropout和两个分支。第一个分支是一个用于源域数据集进行监督学习的分类模型,有一个M维度的全连接层,文章中叫做FC-#id,和一个softmax 激活函数。文章中使用交叉熵损失计算源数据域的loss。另一个分支是用于未标注目标数据集不变性学习的样例记忆模型。样例记忆看做特征存储,保留每一个目标集中的图像的FC-4096的输出。文章通过计算局部样本和全局样本的相似性计算目标域的域不变性学习loss。

源数据域的监督学习

由于源数据集的图像类别是可知的,因此把源域的训练过程看做分类过程。用交叉熵损失优化这个网路,损失函数为:

Ns是一个训练batch中源数据图像的数目。

使用有监督的源数据域训练的模型在相同分布的测试集上会有很高的准确率,但是当测试集和源数据域有不同的分布时,这个模型的表现就会严重下降。样例记忆模块就是解决训练过程中目标域的域内变化问题。

样例记忆模块

为了提升网路在目标测试集的返回能力,文章提出通过估计目标集图像之间的相似性,将不变性学习加入到网路中。样例记忆模块就是为了达到这个目标提出的,其用来存储所有目标集图片的更新特征,是一个键值结构,包括一个键模块K和一个值模块V。在键模块中,每一栏存储的是FC-4096 L2正则化的特征。在值模块中,存储的是标签信息。

给定一个未标记的目标数据集(包含Nt张图片),把每一个图片实例看成一个单独的类别。因此,样例记忆模块有Nt个栏。初始化时,把键模块中所有特征的值初始化为零。为了简单,把目标集中图像的索引分配为图像的label。比如,第i张图片的label在值模块中,对应的栏为i。训练过程中,值模块的labels是固定的。对键模块中的特征,前向传播。在反向传播中,按下面的公式更新键模块中的特征:

K[i]是键模块中存储的特征向量,f是网路计算出来的特征向量,α是控制更新速率的超参数,属于[0,1]。K[i]接著正则化。

目标领域中的不变性学习

样例不变性

每一张行人图像的外观都应该和别的图像不一样,即使这两张图像是同一个人。换句话说,每一张图像都应该和他自己更接近,和别的图像更远。因此,通过让网路学习区分单独的行人图像,将样例不变性引入网路中。这就要求网路捕捉行人更明显的特征表示。

先计算K[i]和f之间的余弦相似性(内积的形式),然后用softmax函数预测 Xt,i 属于类别i的概率。

样例不変性的目的就是最小化在目标数据集上的负对数似然,即

相机不变性

在标记的源数据集上训练的reid模型能够捕获源数据上的相机不变性,但是可能会受到目标相机带来的图像变化的影响。为了解决这个问题,文章提出了使用目标域的相机不变性,基于下面的假设:一张图像和他经过相机风格转换后的图像,彼此之间应该更接近。给定未标记的目标数据集,把每一个相机作为一个风格域考虑,利用starGAN来训练一个相机风格转换模型。利用学到的相机风格转换模型,C是目标域中相机的数目,则可以得到C-1张其他相机风格的图像,并且身份相同。

认为每一张真实图像和其经过相机风格转换后的图像拥有相同的身份,则相机不变性的损失函数为:

ar{X}t,iXt,i 经过相机风格转换后C-1张图片中,随机抽取的一张图片。

领域不変性

对每一张目标集中的图像,在目标集中,存在有一些正样本(相同身份的样本)。领域不变性首先计算 f(Xt,i) 和存储在键模块中的特征的余弦相似性,然后再K中找到和 Xt,i 最接近的k个图像,定义为 M(Xt.i ,K)

基于下面的假设定义领域不变性: Xt,i  所属的类别应该在M中。因此,为 Xt,i 属于类别J的概率分配一个权重,为:

领域不変性的损失函数为:

综上,不变性学习的整个损失为:

ECN网路的整个损失为:

讨论:

样例不変性拉大了不同身份的行人图像的距离,但是同样也拉大了相同身份的行人图像的距离;与之相反,领域不变性减小了同一身份的行人图像的距离,同时也减小了不同身份的行人图像的距离,因为没办法保证对于待检索图像,它的每一个邻近的图像都和这个待检索的图像是相同身份。因此,在样例不变性和领域不变性之间存在一个平衡。


推荐阅读:
相关文章