【论文笔记】DG-net

DG-net GAN在行人重识别的应用

论文原文:JointDiscriminativeandGenerativeLearningforPersonRe-identification
论文链接
代码链接

摘要

  • 问题:现有方法的生成通道与判别学习阶段相分离
  • 贡献:提出了一种联合学习框架,端到端的成对重识别。(将数据生成和行人重识别统一到一起)
  • 模型包括生成模块判别模块
  • 生成模块将每个人编码成 外观代码(appearance code)结构代码(structure code)
  • 判别模块 与 生成模块 共享外观编码器
  • 生成模块通过切换外观码或者结构码 生成高质量跨id合成图像,在线反馈给外观编码器

介绍

  • 不同的相机捕捉的图像包含由背景、视角、人体姿势等变化引起的显著类内变化,需要设计学习更强健的对抗类内差异的表现形式
  • 增强对输入变化的鲁棒性就是让模型在训练期间就看到类内变化(GAN)
  • 存在问题:生成模型是独立的=》生成模型的优化目标与reid不能很好地对齐,限制了生成数据的增益。
  • 通过引入生成模块,DG-net将两者结合
  • 编码器将行人图像分成 外观空间 以及 结构空间
  • 外观空间 编码 外观和其他身份相关语义
  • 结构空间 编码 几何和位置结构信息
    【论文笔记】DG-net
  • note:生成模型 和 判别模块 共享 外观编码器 ,作为重识别模型的骨架。
  • 生成模块负责生成图像,合成图像用于在线优化外观编码器
  • 编码器通过改进外观编码 影响生成模块
  • 在共享外观编码器的前提下 两个模块进行联合优化
  • 不需要额外的辅助数据,就可以生成大量的图像。【论文笔记】DG-net

相关工作

  • Zheng 使用无条件gan增加训练数据
  • Huang 用 WGAN 将伪标签分给生成图像
  • Li 在reid模型和gan之间共享权重
  • 基于姿态的两阶段生成通道来精炼生成图像
  • 使用姿势来生成图像
  • 以上都将生成和重识别任务分开 分成两个互不相干的任务。
  • 还有一些基于全局风格转移的方式:
  • Cycle-GAN 、 StarGAN。。。

方法

引入了两种图像映射,自身份生成和交叉身份生成,用来合成高质量的图像,并将其提供给重识别模块进行学习。
Note:判别模块包含初级特征学习和细粒度特征挖掘,可以更好的利用生成的数据。
【论文笔记】DG-net

3.1 生成模块

生成模块包括一个外观编码器Ea,一个结构编码器Es,一个解码器G以及一个判别器D来区分真实图片和生成图片。
【论文笔记】DG-net

  • 与外观码a 相比 ,结构码s 保持了更多的空间分辨率,以保持几何和位置特性。
  • 但是,这可能导致解码器G 在图像生成是只是用s而忽略a,=》因为解码器倾向于依赖具有更多空间信息的特征。
  • 实际中, 会将结构编码器Es的输入图像转化为灰度图像,保证解码器G同时使用 a 和 s
  • 生成模块的两个目标 自身份生成 以及 交叉身份生成
  • 同一身份生成 使生成器正则化。就是用同一行人的一张照片获得结构s,然后另外的图片获得外观a,重新合成一张新的图片。
    【论文笔记】DG-net
  • 交叉身份生成使生成的图像可控并匹配真实数据。“淘宝换装效果”
    【论文笔记】DG-net

自身份生成

【论文笔记】DG-net

  • 生成器应该能学会重构图片本身,损失函数对应第一个,图像相同,像素差应该为0
  • 生成器对同一个人的两种图片进行合成重构,生成图片的身份ID不会发生改变。这个也是像素级L1损失 对应上图的第二个损失函数
  • appearance比如衣服鞋子等也应该具备身份特征,也就是使用这些特征也应该最好能够识别出ID,因而采用了分类损失也就是identification loss,对应上图的第三个损失函数

交叉身份生成

【论文笔记】DG-net

  • 对于交叉生成的图像,使用解码器重新获得latent appreciate code 和 latent structure code,采用使用1,2两个损失函数
  • 除此之外还可以使用identity loss作用于用ap code生成的图像,使得身份id保持一致
  • 本文还使用了adversarial loss 让生成的数据分布更接近真实数据分布

3.2 判别模块

根据切换 外观码 和 结构码 生成的图像,提出了主要特征学习细粒度特征学习

主要特征学习

【论文笔记】DG-net
NOTE: 其实就是根据外观来确定行人id,就是第一张图横着看。
可以将生成的图像视为训练样本这是大部分文献所采取的方法。
但是,在跨id合成图像中的类间变化促使我们采用动态软标记的师生式监督方法。
我们使用教师模型来动态地分配软标签到XIJ,这取决于它的复合外观和结构。
教师模型是一个在原始训练集上利用identification loss训练的基准CNN。
为了训练用于主要特征学习的判别模块,我们将判别模块预测的概率分布p(xij)与教师预测的概率分布q(xij)之间的KL距离最小化,也就是上图对应的损失函数。
该loss就是为了让生成图片ID的概率值,和真实图片ID的概率值相近。
对于每张合成的图片,其内容都是来自于两张真实图片的组合。根据实验结果显示,一个简单的线性CNN教师模型去提供这个动态的软标签,能改进模型的性能。

细粒度特征挖掘

【论文笔记】DG-net【论文笔记】DG-net

NOTE:将姿态信息看做同一行人,简单来说,就是第一张图竖着看。
当对以这种方式组织的图像进行训练时,判别模块*学习与衣服无关的细粒度id相关属性(例如头发、帽子、包、体型等)。
为了训练用于细粒度特征挖掘的判别模块,我们在这个特定分类上强制实施identification loss。
这不像之前的一些之前的方法,通过手动标记行人属性,该方法会自动从合成的图像中采集细节属性(fine-grained attribute),进一步对比艰难取样的一些方法,不需要去找一些困难的样本(带有详细细节)进行训练。因为我们的鉴别模型可以学习到细节纹理特征的采集。

3.3优化

损失函数:
【论文笔记】DG-net

上一篇:Hadoop笔记二:HDFS


下一篇:全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】