Invariance Matters: Exemplar Memory for Domain Adaptive Person Re-identification

一、介绍

传统的UDA-ReID方法主要是减小源域和目标域之间的特征分布差距,但是这些研究只关注了inter-domain variations,在很大程度上忽视了目标域的域内变化,其中包含了影响目标域测试性能的关键因素。在本文中,作者全面研究了目标域的域内variations,并提出基于三大不变性,即exemplar-invariance, camera-invariance and neighborhood-invariance的ReID模型。根据实验结果,涨点明显。

二、三大不变性

本文考虑了target域的intra-domain variations,提出了三大不变性:

  1. exemplar-invariance:首先,即使归于同一类,每个person exemplar可能会显著的差异于其他exemplar。因此,通过分辨不同的样本,可以使得ReID模型获取person的表层特征。基于此,本文提出了exemplar-invariance,使用无标签的数据,通过迫使每一个person exemplar互相远离,来学习表层特征相似性。
  2. camera-invariance:作为ReID任务中的一个关键影响因素,camera-style variations可以显著影响personimage的表现。然而,使用camera-style transfer得到的图片始终属于原始id。基于此,本文实现了cameara-invariance,通过让单个person image和对应的camera-style transfer得到的图像互相接近。
  3. neighborhood-invariance:假设已经有一个在source和target域上训练妥当的模型,那么经过该模型输出后的某个target样本和它的target域中最近neighbors很可能有同样的id。基于此,本文通过鼓励样本和对应的可信邻居互相接近来实现neighborhood-invariance。该方法可以帮助我们学习到对target域中的image variations,如pose,view和background changes更robust的模型。

[注意,与基于三元组的传统方法不同,文中的exemplar-invariance是让单张target image接近自己,而neighborhood-invariance才是让相似的图片互相靠近]

三、如何使用memorybank等方法实现三大不变性

1、框架概况:

如图,source域和target域经过backbone网路输出特征后,一部分计算id loss

另一部分输入样本memory,用来保存最新的features并计算invariance learning loss。

2、Exemplar Memory:

为了提高网路在目标测试域的泛化能力,本文提出加强网路的invariance learning的能力,通过估计target image之间的相似度。为了实现该目标,本文首先构建了一个exemplar memory来存储「all target images」的实时特征。Exemplar memory是一个key-value结构,包含key memory (K)和value memory (V)——我们可以直观的看作 N_t 个「插槽」的集合。在exemplar memory中,每个插槽中,key part存储经过L2规范化的FC-4096特征,value part存储label。

给定一个包含 N_t 个图像的无标签target数据集,本文将每个「instance」(即每张图片)视作独立的类。因此,exemplar memory拥有 N_t 个插槽,每个存储一个目标图像的feature和label。初始化的时候,将每个key memory中的特征值置为0。为了简化,将target样本的index作为label存入value memory中。例如,第i个target图像的value memory V[i]=i。(注意,在训练过程中,value memory中的label被「fixed」)

在训练过程中,对于一个训练样本x_{t,i},经过ReID模型并获得经过L2规范化的FC-4096特征 f(x_{t,i}) ,并更新key memory。

3、Invariance Learning for Target Domain

本文使用三个invariances来探究target域的image variations。

  • Exemplar-invariance

即使是同一个id的不同 image的appearance会有很大不同。因此,通过让模型学习独立的person image,可以让模型获取person的表层表征。本文将 N_t 个图像视为 N_t 个不同的类,并把它们分入自己的类中。为了获得 x_{t,i} 属于类i的概率,对于给定的目标图像,先计算与key memory中cosine相似度,再使用softmax函数:

其中β∈ (0,1]来平衡分布scale。

最终的目标函数是一个负对数似然:

[分析:这个softmax决定是否被正确分入自己所在的插槽]

  • Camera-invariance

在source域中,通过监督学习,可以有效地获得camera-invariance。然而在target域中只能通过「任意图片与对应的camera-style transferred副本拥有同一id」的假设来实现。在StarGAN的帮助下,对于每个图片生成C-1个图片(C是target域的摄像头数目),再使用如下的损失函数:

其中 hat{x}_{t,i} 是随机从 x_{t,i} 的style-transfer图像中抽取的target样本。

[分析:这个softmax决定是否被正确分入原始的transfer之前的图片的类]

  • Neighborhood-invariance

对于每个target图像,在target域中都可能存在一定数量的正样本。如果在训练阶段可以挖掘这些正样本,那么通过克服target域的variations可以进一步提高ReID模型的稳定性。为了实现这个目标,本文首先计算了 f(x_{t,i}) 与key memory K中存储的值的余弦相似度。随后,本文在K中找到 x_{t,i} 的K-nearest neighbors,并定义它们的index为 M(x_{t,i},k) 。K为 M(x_{t,i},k) 的大小,且 M(x_{t,i},k) 中最临近的一个为i(本身?)。

基于命题——目标图像 x_{t,i} 应该属于 M(x_{t,i},k) 中的candidates所在的类。本文设置 x_{t,i} 是否属于类j的probability为:

Neighborhood-invariance的目标函数的形式为一个soft-label loss:

注意,按作者说法,与exemplar-invariance不同的是,在上面等式中, x_{t,i} 不被分入自己所在的类,这应该出现了一些表达错误。

[分析:这个目标函数为累加的多个softmax,分别为1个决定是否分入自己类的(j=i)和k-1个决定neighborhood的key value是否贴近 f(x_{t,i}) 的。此时可以看成Exemplar + Neighborhood-invariance。额外的,根据softmax的形式,k-1个j=i的情况,目标函数优化的是neighbors到目标的距离。因此我们可以认为,该目标是让 f(x_{t,i}) 尽可能接近k个neighbors(包括自身,自身的权值最高)在插槽中的值]

4、Overall loss of invariance learning:

Overall loss可以按如下形式描述:

其中,j∈ M(x^*_{t,i},k)x^*_{t,i} 是随机从 x_{t,i} 及对应camera style-transfer图像的并集中抽取的。 N_t 是训练batch中target images的数量。在上述等式中,当i=j时,网路优化exemplar-invariance,并优化camera-invariance通过分类 x^*_{t,i} 到对应原图像的插槽。当i≠j时,网路优化neighborhood-invariance,通过迫使 x^*_{t,i} 接近它存储在 M(x^*_{t,i},k) 中的neighbors。

5、Final Loss for Network

Final loss定义为:

其中参数λ∈ [0,1]。

6、Discussion on the Three Invariance Properties

首先,exemplar-invariance迫使每个样本互相远离,好处是能增大不同id的样本间的距离,副作用是同时会增大同id的exemplar的距离。

相反,neighborhood-invariance鼓励每个样本和它的neighbors互相接近,好处是降低同id的样本距离,坏处是可能会导致拉近不同id的图片,因为没有表情,不能确定query exemplar的neighbors都有同样的id。

因此,同时使用E+N可以实现一种平衡。

Camera-invariance有类似于exemplar-invariance类似的效果,同时还可以引导exemplar和对应的style transfer样本共享同样的表征。

四、实验

1、数据集:

Market,duke,msmt17

2、实验设置:

Deep ReID模型:

本文使用Res50作为backbone,且固定了前两个res layers来借阅显存。输入图像为256x128,dropout为0.5。优化器设置为SGD,参数为标准的0.01-0.1,40-60epoch。

除此之外,key memory的更新率初始化为α,且α= 0.01 × epoch,invnet的temperature fact β为0.05.在训练中,在前5个epoch只使用exemplar-invariance和camera-invariance,在之后添加neighborhood-invariance。

3、参数分析:

本文主要调节了三个超参数,temperature fact β, loss权重λ,以及正样本候选数量k。

4、实验结果:

  • Ablation实验

  • Exemplar memory额外占用:
  • 与state-of-the-art对比:

结论

对比起18年HHL的30%的map,Zhun Zhong老哥在自己的作品上一次性涨了10个点,在UDA这个方向又一次独占鳌头。不过需要注意的是,这次CVPR的出现了两个更可怕的怪物,无监督比无监督迁移学习的效果更好。

推荐阅读:

相关文章