Generalizing A Person Retrieval Model Hetero- and Homogeneously
Zhun Zhong, Liang Zheng, Shaozi Li,Yi Yang 2018 ECCV
代码: https://github.com/zhunzhong07/HHL
1. 摘要
引入了一种Hetero(异质)-Homogeneous(同质) Learning (HHL) 学习方法,考虑两个属性:相机不变性,即一张图像迁移到其他相机后ID不变;源域和目标域ID不重叠,因此源域和目标域各选一张图像组成pair必定是负对。前者在目标域操作,为同质;而后者在源域和目标域操作,为异质。
2. 介绍
作者处理跨域问题的一贯风格是重点考虑域内变化,而不是像当下很多方法那样大费周章的去做域适应,其论文如CamStyle,HHL,ECN和8月份刚挂在arxiv上的ECN+GCN等都是在考虑域内变化问题,而且其结果显示这种方法很有效(几乎跨域每年提10个点)。本文的思想也是在处理跨域中的域内变化问题:
- 相机不变性
一张图像进行相机风格迁移后与原图像的ID应该是一样的。其是在目标域上进行,而目标域的相机ID很好获取,即一个相机上拍的所有视频都打同一个相机ID即可。然后,就是在做CamStyle的工作了。 - 域间连通性:源域目标域的ID肯定是不同的(开集),组成负对,而源域很容易选出一个正对,组成三元组进行训练
3. 方法
根据图就能很清楚的看出HHL的做法:
- 首先源域图像先训了基本的CNN ReID backbone,交叉熵损失监督 L c r o s s L_cross Lcross
- 接着目标域每张图像都进行相机风格迁移,过程中伴随有损失 L C L_C LC
- 然后就是源域图像+目标域图像+目标域迁移后图像一起训练CNN,损失为
L
D
L_D
LD
* L C L_C LC和 L D L_D LD都是基于下面的普通三元组损失:
只不过它们组成triplet的方式不一样,对于 L C L_C LC,其triplet包含目标域的一张anchor图像,这张图像进行迁移后的图像作positive(ECN中的C),而目标域图像的每一张都认为是一个类别(ECN中的E),因此再随机选一张目标域图像作negative即可组成三元组,即:
而对于 L D L_D LD,其triplet的组成就比较简单了,源域选一张做anchor,然后根据源域的标签选一个positive,再在目标域选一张即为negative,组成三元组,即:
最终:
总损失为:
注意几点: - CamStyle中用的是CycleGAN,而这里用的CamStyle将CycleGAN换成了StarGAN,原理不变,但原先迁移图像到其余C-1个相机下需要训练C-1个模型,但StarGAN只需要一个模型就可以搞定
参考笔记:知乎@酱油妹 https://zhuanlan.zhihu.com/p/31481483 - CamStyle带来的性能提升和其他数据扩增方法相比如下:
- 不同采样策略
** 随机采样:每个batch选择的图像都认为是不同的ID,按这种方式挑选负对组成三元组(最简单)
** 聚类采样:先将图像聚类为K类,然后视为K个ID,按这些ID仅采样图像以组成三元组
** 监督采样,目标域给真实标签,按标签进行采样组成三元组(现实中不可能,这里是探索性能对比)
性能如下:
不难看出,方案1最简单且最好。因为任取两张图像,是负对的概率>>是正对的概率。
相机迁移示例:
4. 实验
4.1 实验细节
4.2 参数分析
0.4~0.8最好
每个bacth中真图不能太少。
4.3 消融并和SOTA比
性能很高