留个笔记自用
AD-Cluster: Augmented Discriminative Clustering for Domain Adaptive Person Re-identification
做什么
Person Re-identification行人重识别,给定一个查询图像(即源图像),行人重识别的目标是在多个不重叠的摄像机之间匹配人(即找到与源图像相同的人)
做了什么
Domain adaptive person re-identification (re-ID)域自适应行人重识别,这里存在两个网络,图片生成网络和特征提取网络,使用源域对两者进行初始化训练。然后对目标域的图像进行特征提取,再使用聚类得到伪标签,然后使用图片生成网络增强域样本,不断进行优化迭代。
怎么做
首先先是数据方面,这里的源数据即源域为<Xs,Ys>,其中包含了Ns张行人图片,图片中包含了M种身份,Ys为身份。目标域为Xt,其中包含了Nt张行人图片。
整体结构分为三个部分,DC部分,ASA部分,DL部分
首先是DC部分即Density-based Clustering部分,这部分使用到了两个主要结构之一的特征提取f网络,即图中的CNN部分,将目标域中的未标签图片输入f提取出特征后,对特征根据密度进行聚类,将聚类得到的类别作为各自的ID伪标签。
这里采用的是density-based clustering即基于密度的聚类方法,它基于这样一个假设:聚类结构能通过样本分布的紧密程度确定,这种方法的大概思想是对区域不断进行取平均后迭代,直到寻找包围点最多的区域,而多类情况就是存在多个区域
值得注意的是这里的f网络是根据源域进行训练的,是监督性的训练,这里训练的LOSS为
Lcls就是简单的分类损失,ns为图片的数量,p(y,x)表示第x个样本属于第y类(即true类)的预测概率
Ltri也是很常见的了,其中xs,i+的意思是和xs,i同一ID的数据,xs,i-则是相反,表示不同ID的数据,m则是一个margin设置
这两个LOSS都是为了使特征提取网络提取出的特征尽可能使得同一ID的特征近似,不同ID的特征最大化
然后将他们相加,对f网络进行初始化训练
这样就得到了目标域特征的伪标签,即
然后就是第二部分,ASA即Adaptive Sample Augmentation自适应增强部分
由于域的差异,这种提取特征后聚类的方式会存在很多的噪音,同时也会使样本多样性较低。所以这里就使用到了网络的第二个结构,生成网络g。
这里的做法是保留原图原ID的情况下,从已有图像中生成新的增强数据,比如可以像上图这样,改变摄像头,改变光照等,仅仅是做了风格的改变,所以这里使用了starGAN
整个网络的处理流程如下:
将输入图片x和目标生成域c结合喂入到生成网络G来合成fake图片
将fake图片和真实图片分别喂入到鉴别器D,D需要判断图片是否真实,还需要判断它来自哪个域
与CycleGAN类似,还有一个一致性约束,将生成的fake图片和原始图片的域信息c’结合起来喂入到生成器G要求能输出重建出原始输入图片x
这里则是将不同的摄像头当成了不同的域类,假设有k类摄像头角度,首先先在源域进行训练,做到的效果是在每一对摄像机对中,能对源域的图片进行一对一的图像转换。
然后就可以使用g来对目标域进行图像增强了,对每个<xt,yt>进行增强,这里的yt是聚类的伪标签,由这步就能得到各自聚类后的结果的增强数据集
最后是DL即Discriminative Learning判别学习部分
这里的CNN跟DC部分的CNN是共享权重的,也可以理解为特征提取网络。除此之外这里采用的主要成分是Min-max优化方法,主要是因为这里的样本增强完全独立于聚类和特征,所以可能会导致相机之间的样本多样性不足。
首先是Max方法
首先定义一个Ddiv为聚类多样性,这里的α(i,j)是为了判断i和j是否是同一个人(这里是同一簇),即若xt,i和xt,j是同一个人,α为1,反之则为0,这里的意图可以理解为对每个xt,i即目标域的一张图,计算出它的f结果即特征提取结果,要使得这个结果与它同一簇的聚类中心的欧式距离最短。
然后就可以定义密度loss Ldiv。可得这里的loss操作是为了防止Ddiv过大而设置的,最大化密度等于最小化密度loss,效果或者说意图和最大化密度同理。
然后是Min方法
这里定义的三重损失和源域训练f网络时的三重损失理解一样,也是为了最小化簇内距离,同时最大化特征空间中的簇间距离
这里的训练可以看到,采用的是交替训练的方法,max步骤中固定特征提取f训练生成器g,min步骤固定生成器g训练特征提取f,两个环节迭代辅助进行
总结
1.Min-max分割优化方法进行两个结构的分割迭代训练挺有意思,很多二路或者双向网络也可以借用这种训练方式
2.特征提取、聚类、增强解决re-id的老套路了