Joint Discriminative and Generative Learning for Person Re-identification阅读笔记

总结

一.各个损失函数的定义

1.生成模型的损失函数

类似于GAN的思想,生成模型要能首先还原出原本的图像,论文中将其称为Self-Identity generation,这种自生成包括两种情况,一种是使用外观编码器与结构编码器对输入的图片进行外观编码提取以及结构编码提取,文中将其称之为appearance code以及structure code(注意:其中appearance code标志着主要身份信息与论文后面判别器中的主特征primary feature相呼应,structure code与后文 fine-graied feature细粒度特征相呼应),通过生成器G将编码器生成的appearance code组合成latent code并解码形成新生成的图片。由于新生成的图片与原图片理应有一样的code,因此新图片其实是暗含有标签的,我们将损失函数定义为生成图片与原图片的像素差。如下:

另外一种是对同一个人的两张图片进行处理,提取其中主图的structure code与另一张图的appearance code再通过G形成新的图片,由于结构信息相同,且同属于一个人的图片,新生成的图片也是应该有标签的,因此我们将损失函数也定义为生成图片与原图片的像素差。如下:

应该具有相同的appearance code(本文上文中解释了,appearance code是具有判别性质的)。因此损失函数定义如下:

设计如上损失函数的原因论文中给出:相比于ap code(appearance code),st code(structure code)包含更多空间位置信息,因为解码器更加依赖于包含空间信息更多的特征。因此我们希望生成的图片更更具有ap code(具有判别力)的特征。

        同样的,用到GAN的思想,论文中给出了对生成图像利用其ap code做二分类的损失函数,表示其与原图是否具有相同的标签,个人理解这里是论文中后面提到的教师网络(用来给定Cross-identity的标签,指的是互换st code以及ap code生成的图像)。损失函数如下所示,使用是常用的交叉熵损失。

放一张图理解一下,这张图解释及的是自生成损失的过程 : 

         论文中除了自生成损失之外还定义了Cross-id损失,指的是一个人的ap code与其他身份的人的st code所组成的latent code与原本图像的code的损失,新生成图像的编码所得ap code以及st code应与输入进去的ap cod以及st code相同,因为其代表了身份信息。损失函数如下

为了保持输入图像与生成图像的id一致,引入了如下损失,从下面损失的定义更加印证了ap code的决定性作用 。由下面公式看出生成图片的标签取决于cp code,x的上标代表apcode,下标代表st code。 :

 

论文中还引用了GAN损失使得生成图片更逼真,想要了解更多关于这个损失的建议去看看GAN的损失函数讲解:

 

下图解释的是交换st code的生成损失的过程:

 2.ReID中判别模型中的损失函数

论文中首先说明了判别模型中的主要部分是嵌入在生成模型中的(判别模块嵌入到生成模块中,共享外观编码器作为重新识别学习的骨干)。类似于我们人从远处看一个人,我们首先根据主要特征判断他是谁,如果判断不出来,我们便走近观察他的细致特征,比如面孔等等。论文中便提出了这样一个思路(提出了一种主特征学习和细粒度特征挖掘方法,以更好地利用在线生成的图像)。可以这样理解,主特征就是前面提出的ap code,细粒度特征就是前面提出的st code。为了使用生成的图像训练,必须让它们拥有标签。文中提出一种动态软标签,这种标签由一个普通的CNN加上分类损失来完成。这里可能有点难以理解。动态的意思是指一遍生成软标签一遍训练。先看看下面的结构图。

如上图,上面有两行图片,其中第一行是原始图片,第二行是互换st code得到的新图。黑色实线箭头指的是教师网络所走的训练流程,其中CNN没有展示,应该是放在使用Ea(编码器)所得到的ap code的后面。其中L(id/s)这个损失在上文中已经介绍过了,使用这个损失可以训练教师网络。于此同时这个网络提供的软标签用于生成图片来训练鉴别器网络。这个网络的损失如上图Lprim以及Lfine,分别指主特征损失以及细粒度损失。损失函数如下:

下面来解释一下上面这两个损失函数。第一个主函数损失用的KL散度用来衡量两个分布之间的距离。其中分布q(k/x)是teacher网络的预测分布,p(k/x)是鉴别器网络的预测分布。(看图这两个用的同一个CNN,不清楚的再去看代码了,不过论文写明了是多任务学习,应该是共用的一个)。第二个损失函数是指的生成图片预测成组成其latent code的st code的id,注意y的下标。这个损失作为一个辅助的细粒度损失表示的意思是看ap code要是认不出来还是得看看st code。

 

如上就是所有的损失函数了,将上面所有的损失函数按照不同系数现行组合起来就得到了最终的损失函数了。第一次写论文笔记,不足之处多多体谅。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值