CVPR2020行人重识别算法论文解读
Cross-modalityPersonre-identificationwithShared-SpecificFeatureTransfer
具有特定共享特征变换的跨模态行人重识别
摘要:
跨模态行人重识别对智能视频分析是一个难点,而又关键的技术。过去的研究主要集中在,将嵌入式不同模态放到同一个特征空间中,来训练常用的表现形式。但是,仅仅训练这些常用的特性,意味着会丢失大量的信息,降低特征显著性的上限。
本文中,通过推荐一个新的特定跨模态特征转换算法(称为cm-SSFT),探测模态共享信息和特定模态特性来克服这个限制,提升重识别的性能。依据不同模态特征示例内容,在不同模态之间转换共享和特定特征。推荐辅助特征研究策略,包括模态适应性,目标对抗训练,重构增强性能,分别学习每种形态的区别性和互补性的共同特征和具体特征。整个cm-SSFT算法能用端到端方式训练。用综合实验验证真个算法的优势,以及各个环节的效果。这个算法在两个主流数据集上将mAP分别提高22.5% 和 19.3%。
关注的任务是红外线-RGB跨模态行人重识别。主要想解决的问题是:以往大部分跨模态行人重识别算法一般都只关注shared feature learning,而很少关注Specific feature。因为Specific feature在对面模态中是不存在的。例如在红外线图片中是没有彩色颜色信息的。反之在彩图中也不会有热度信息。而实际上做过ReID的都知道,传统ReID之所以性能很高,很大程度上就是有些“过拟合”到了这些specific信息上。比如衣服颜色一直是传统ReID的一个重要的cue。于是从这个角度出发,想试图利用specific特征。主要思路是利用近邻信息。思路(motivation)是这样:给定一红外线query。当搜索彩色target时,可以先找到一些简单的置信度高的彩色样本(这些样本大概率是红外线query的positive样本),把这些彩色样本的颜色特异特征给与红外线query。做了这件事后,红外线query样本可以利用这些彩色信息再去搜索更难的彩色样本。这样做与传统做法的对比如下:
图1:motivation和与传统基于特征学习的方法的对比
基于这个思路,参考了以往使用GCN做传统ReID的一些方法。提出了自己的算法。本文会大致介绍一下该算法的流程。也会从介绍一些bad case和问题。欢迎各位讨论。整体pipeline如下:
1. shared and specific feature learning:
这里就是follow了以往的做法。现在主流工作都会有shared支路和specific支路去提取两种特征。在两个支路上进行训练,会使得backbone的整体判别力(discriminative)很强。具体细节可以参考。这里也同样follow了这个做法,使用two-stream网络学习shared和specific特征。
2. Shared and Specific Transfer Network
这里的思路主要是借鉴自SGGCN和Spectral Feature Transfer。这两篇工作使用GCN去做跨样本特征融合,本质上是平滑了特征,挖掘了样本间的联系。而这种做法恰好与要做的事情很吻合。前面的思路,即利用近邻关系将specific特征在样本间进行传递,本质也是个message passing的过程,所以在这里也利用这种思维。pipeline如下:
首先将每个样本的特征表示成三段式的形式:【RGB-sp, sh, IR-sp】。
即认为每一个样本都有RGB特异特征,shared特征和红外线特异特征三段。只是对于RGB样本,其红外线特异部分是0。同样对于红外线样本,RGB特异部分是零。这种表示会便利于矩阵运算。整体特征矩阵写为:
之后使用特征计算出样本间的相似度矩阵A。而后利用矩阵A进行跨样本特征融合,会同时propagate三种特征,利用GCN公式进行特征传播:
这块的细节可以去参考原文,整体的思路就是利用近邻关系进行信息传递。会补全每个样本缺失的对面模态的specific
feature,而且GCN的平滑特性也会使得shared feature鲁棒性有所提高。最后三段式feature会被fusion进行训练。
3. Complementary Learning
这一段其实是当初投NIPS时被argue后加入的点。即有review认为specific和shared feature很容易学成一个feature,即实际上差不多。specific并不是真正的specific。所以这里利用了很多方式去给特征做解纠缠,这块思路恰好与CVPR另一篇做本任务的算法类似。大家可以去阅读那一篇。这里也示例下sh与sp特征是什么样子,进行了可视化:
Bad case讨论:实验细节可以见原文。本文最大的bad case其实是,这种做法在testing的时候需要multi-query。因为训练的时候其实每个batch内RGB和红外线图片有多张,但在测试时理论上query模态的图片只有一张(query自己),这会引起模态不平衡。所以初始Test时也包含了其他的query图片(当然是不会包含label的),但是这个做法实际上一定程度上违背了ReID的限制,即理论上不应该看见其他的query图片(所以定义除了当前query图片外的其他query图片为辅助集)。在原文中同样利用实验证明了辅助集对性能的影响:
可见即便单query也是有提高的。这里单query提高的原因思考为。即便query模态图片只有一张。但是gallery模态的图片有多张,gallery模态特异信息同样是有利用价值的。所以会带来提高。而在实际应用中,辅助集其实容易获得。库存中很容易会留存以往被检索过的query图片,所以并不会阻碍实际的应用潜力。这个问题也是未来会尝试解决的事情。