Cross-view Asymmetric Metric Learning for Unsupervised Person Re-identification(CAMEL)阅读笔记
代码: CAMEL
Motivation
reid中所谓的风格差异其实被reid的大佬们归结为是相机的视野差异,如ZZ的CamStyle系列,本文作者所在的ZWS老师组的相关论文都是这个setting。本文也是这个设置,提出针对学习一个空间,将图像变换到这个空间上提取camera view invariant的特征。那要提取view不变性特征呢?作者选择的是按照不同的相机视野选择不同的变换,也就是所谓的不对称(Asymmetric )设计。具体可以用下图来描述:
其中相同颜色的虚线框表示相同ID。蓝圆圈和红三角分别表示两个相机,对应蓝色箭头和红色箭头表示针对这两个相机的变换。
普通对称的做法是怎么做的?
x
i
x_i
xi和
x
j
x_j
xj之间的距离按如下方式计算,即:
其中,变换即
x
^
=
U
T
x
\hat {x}=U^Tx
x^=UTx。但这种其实很难get到一个
U
U
U(变换函数)对所有相机view都能变换到那个需要学习的空间。因此作者才提出不对称设计,即:
即对每个相机view单独设计一个变换函数。
因此,做K聚类的K-means聚类的目标也就从
变为:
其中 V V V表示相机view数, N p N_p Np表示p视野下的图像数。
但是,直接优化上式会导致学习到的
U
p
U^p
Up很依赖域相机view
p
p
p下的数据分布,导致不同相机下的
U
U
U完全不一样,差别太大。但虽然是不同样机采的图像,但本质上还是有关联的,如果用完全不同的
U
U
U去学,那最终变换得到的结果也可能会差别很大而导致最终性能反而更差。于是,我们需要加上一个约束:
即加上一项让不同相机下的
U
U
U尽量相近的约束,即红色线部分,即
F
c
o
n
s
i
s
t
e
n
c
y
F_{consistency}
Fconsistency部分。于是优化目标从4又换成了5,式5的前一项是让不同相机的
U
U
U有尽量大的差异,后一项是让不同相机的
U
U
U有尽量小的差异,两者最终会做一个tradeoff。
那么以上即为CAMEL的全部算法过程。
而至于说上面式子怎么优化,作者给了大幅推导,这里咱就不care了,直接给出最终的算法:
实验
注意:其实这里喂给CAMEL的是特征,那这些特征怎么提取的呢?用一个前端网络,作者用的是XT大佬的 JSTL [ Learning deep feature representations with domain guided dropout for person re-identification],而这个网络是在别的reid数据集上预训练过的,因此这里所谓的无监督其实做的还是相当于跨域。
性能:
对称设计和不对称设计的对比:
消融:
聚类数自然是越接近真实类别数越好。这个实验基本上只是在做做样子。
更多的实验:
不用JSTL提的特征,用LOMO提的特征,结果还是SOTA,说明模型鲁棒,对任何特征都有效。
最后:本文的思路到底是什么?到底怎么做的?
很简单,用一个前端网络,如JSTL或LOMO对每张图像提一个行人特征,然后对这个特征进行变换,一般的变换是直接用 U U U,即对称结构,但作者说这样不行,我们要对不同相机下的图像做不同的变化,同时又要求不同变换之间莫要差的太多,于是式5出现了。然后通过变换函数变换到一个空间后,用KMeans聚类(并没有聚类打伪标签然后fine-tune),尽量聚成真实类别数,也就相当于做了分类了,可惜的是没有标签监督,于是只能用式5来作为网络学习的目标监督网络,而具体的优化后算法就是算法部分提出的内容。最后,一般现在说的无监督reid,都往往在某个reid数据集上预训练过,所以大多数也可以看作式跨域的一种。