SPGAN:Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity ReID阅读笔记

2023-11-04

Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity for Person Re-identification

作者:Weijian Deng, Liang Zheng 2018 CVPR
简称SPGAN(similarity preserving generative adversarial network)
代码: https://github.com/Simon4Yan/Learning-via-Translation
和ZL老师团队2018年另一篇CVPR很相似:Camera Style Adaptation for Person Re-identifification,可参考:这篇博客

1. 摘要

以无监督的方式将labeled源域数据迁移到目标域,保持id信息不变,即为self-similarity,而迁移涂图像和目标域图像之间的id肯定是不同的,也就是domaindissimilarity(建立在reid是处理开集任务的前提上,训练集和测试集的id完全不重叠)。以上两者都是通过 Similarity Preserving cycle consistent Generative Adversarial Network (SPGAN)实现的,该网络是一个无监督域适应框架,由一个 Siamese network (SiaNet)网络和Cycle GAN网络组成。前者用contrastive loss监督,将迁移后图像和其在源域中的对应图像pull到一起,和目标域的所有图像都push开。

2. 介绍

无监督域适应(UDA)能有效处理跨域问题,但其考虑的是训练集和测试集类别有重叠的情况,因此其实不是很适合reid任务,因此现在的跨域问题主要集中在打伪标签(也很少),风格迁移,编码域不变特征(与id相关的特征)等。目前常见的做法是:先将源域图像迁移到目标域风格,然后由于id不变使得无监督reid就成了有监督reid任务。

贡献

  • 迁移源域图像到目标域风格,进行reid的UDA任务
  • SPGAN来提升性能,迁移过程保持ID不变

3. 方法

3.1. baseline

标注的源域数据集S和未标注的目标域数据集T,包含两步:将源域数据集迁移到目标域风格,让后就是有监督reid任务(特征学习),如图2所示。
在这里插入图片描述

  • 源域-目标域图像迁移
    用Cycle GAN学习的生成函数G(*)将源域图像S迁移到目标域T风格,即得到G(S)训练集。
  • 特征学习
    G(S)就是有目标域风格,而ID与源域一致,和目标域T一起可以用于有监督reid的特征学习。

这篇文章最主要集中在第一步,性能如表1所示:
在这里插入图片描述

3.2. SPGAN

3.2.1 CycleGAN回顾

关于CycleGAN的详细内容可以参考这篇博客

G:S->T 和 F:T->S 的双向图像生成 + 循环一致性损失进行生成图像约束
其中ST中样本分布记为 p x p_x px p y p_y py,鉴别器为 D T D_T DT D S D_S DS,对抗损失:
在这里插入图片描述
在这里插入图片描述
风格循环一致性损失:
在这里插入图片描述
为了适应reid任务,作者添加了ID不变损失:
在这里插入图片描述
ID不变性损失部分和CamStyle一样,具体解释可见CamStyle。
CamStyle传送门:CamStyle

没有 L i d e L_{ide} Lide损失,G和F生成的结果会改变输入图像的颜色,如图4b所示。

3.2.2 SPGAN

在Cycle GAN中集成了SiaNet,如图3所示:
在这里插入图片描述
其主要目的是为了防止利用生成图像的强ID标签,而只利用pairs图像的弱ID标签(同一人还是不同人),因此通过使用SiaNet网络进行contrastive loss监督:
在这里插入图片描述
其中x1和x2是一对输入图像向量,d是norm后的两个输入向量之间的欧氏距离。如果x1和x2是同一个人的图像则 i=1(正对),否则 i=0(负对)。m 是margin参数, m ∈ [ 0 , 2 ] m \in[0,2] m[0,2]。当m=0是,表示负对计算的损失不反向传播,而m>0表示正对和负对都参与计算,m越大表示负对损失在反向传播时权重越大

训练pairs的挑选:

以无监督的方式挑选

  • 正对
    ** x S x_S xS G ( x S ) G(x_S) G(xS)
    ** x T x_T xT F ( x T ) F(x_T) F(xT)
  • 负对
    ** G ( x S ) G(x_S) G(xS) x T x_T xT
    ** F ( x T ) F(x_T) F(xT) x S x_S xS

总目标损失:

在这里插入图片描述
训练时交替优化生成器,鉴别器,SiaNet,即训练其中一者时,其余两者保持不变。训练SPGAN直到模型收敛或达到最大迭代次数。

3.3. 特征学习

使用IDE模型,用Resnet50做backbone,修改最后一个FC层为reid数据集行人类别数。测试时,提取pool-5层结果的2048-d向量为行人特征,使用欧式距离作为相似性度量。

Local Max Pooling(LMP):

用LMP代替原模型中的GAP层(在Conv5上的进行),作者首先将Conv5的结果划分为P个水平parts,在每个part上分别进行全局max/avg池化(没有参数),最后将得到的结果concat起来。并且经过实验,LMP效果比LAP效果好。LMP过程如图5所示:
在这里插入图片描述
生成结果对比如下:
在这里插入图片描述

4. 实验

4.1. 实验细节

在这里插入图片描述

4.2. 评估

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面的测试性能在跨域中算是很高的(2018年,且没有MSMT做辅助)。
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SPGAN:Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity ReID阅读笔记 的相关文章

随机推荐

  • Scala下载及IDEA安装Scala插件(保姆级教程超详细)

    一 Scala的下载与安装 Scala语言可以在Windows Linux Mac OS等系统上编译运行 由于Scala是运行在JVM平台上的 所以安装Scala之前必须配置好JDK环境 JDK版本要求不低于1 5 本博客为基于Window
  • 欧元区PMI数据不佳 关注德拉基讲话

    欧元区PMI数据不佳 关注德拉基讲话 昨日欧元区公布的一系列经济数据表现不佳 由此推动美元指数反弹 给金价带来压力 不过晚间美国公布的就业数 据不佳 再度给金价带来支撑 数据显示 欧元区11月综合PMI初值51 4 创16个月新低 预期52
  • IMX6学习记录(14)-屏幕使用,显示图片、文字

    上面是我的微信和QQ群 欢迎新朋友的加入 1 内核配置 启动板子 能看到一个企鹅在界面上 2 修改文件系统 etc inittab sysinit etc init d rcS console askfirst bin sh tty1 as
  • 华为nova5pro计算机,华为nova5Pro用usb数据线连接电脑的时候连接不上

    华为nova5Pro手机在用这个usb数据线连接电脑的时候连接不上 连接不成功 在电脑下载了华为手机助手 手机上也去华为市场下载了手机助手 按照提示操作依然连不上 看不到华为手机的盘符 打开设备管理器 sea al10那一项有个黄色的感叹号
  • Java Web 集成RTX问题解决

    今天 应项目需求 需要在项目中集成腾讯的RTX 前期根据RTX官方API文档进行测试时 没有任何问题 但是在将代码集成到项目中时 报了一些错误 Init z 现将我的解决过程写下来 希望给遇到同样问题的人提供一些借鉴 1 Init z 类初
  • 解密5G新基建浪潮下的“智慧杆塔”缘何火热

    文章版权所有 未经授权请勿转载或使用 关于智慧杆塔并不算一个新概念或新领域 从早期的智慧路灯 到加载少量城市传感器或电子广告牌的智慧灯杆等 都属于智慧杆塔的早期概念或雏形 但近来笔者通过走访灯杆生产厂商发现 行业终于盼来了爆发的春天 智慧杆
  • odoo 图片预览

    odoo 图片预览 业务需要实现图片上传后进行预览 折腾许久没有成功 最后试着添加图片字段算是基本成功 在 model 中添加字段 odoo 中没有直接的图片 image 字段 但是有一个 binary 二进制字段 image fields
  • 【论文分享】用于多元时间序列的预训练增强的时空图神经网络

    KDD 今天分享的是KDD 2022的一篇论文 Pre training Enhanced Spatial temporal Graph Neural Network for Multivariate Time Series Forecas
  • RFID银行钱箱资产管理系统

    概述 随着经济的发展 金融领域的业务越来越广泛 金融物流安全的问题 显得越来越重要 银行金库每日出入库及配送的物流量越来越大 特别是现金款箱 如果不能保证及时准确的入库 库存控制和出库 将会给银行带来巨大风险 严重加大了银行管理难度 提高了
  • Java之封装、继承和多态(超详细)

    一 封装 封装就是隐藏对象内部的复杂性 只对外公开简单的接口 封装的思想是你只需要知道如何调用接口就行了 不需要去了解内部实现 1 封装的体现 属性的封装 方法的封装 构造函数的封装 单例模式 将类的某些信息隐藏在类的内部 不让外部程序直接
  • Jenkins通过Nexus artifact uploader 上传制品失败排查

    使用Jenkins 插件Nexus artifact uploader 上传 jar zip gzip tar等制品 Jenkins 使用自由风格配置构建时 配置如下 Credentials 为上传Nexus服务器的用户认证信息 需要在Je
  • 计算机网络系统的雷电防护,有关计算机网络系统雷电防护的探讨

    摘要 本文探索与分析了计算机网络系统雷电灾害发生的原因和途径 为雷电灾 害的防护工作提供重要的依据与保障 为减少雷电灾害对计算机网络系统的危害做好理论储备和实施指导 随着现代科学技术的不断发展 计算机网络广泛且迅速延 伸至通信 交通 能源
  • vue3+ts

    安装ts 全局安装typescript npm install g typescript 查看typescript版本 tsc V 1 新建一个ts文件 里面写上 gt function sayHi str return 你好啊 str l
  • 51单片机学习笔记(十一) - LCD1602

    文章目录 一 LCD1602简介 二 LCD1602接口原理图及引脚说明 1 原理图 2 引脚说明 三 LCD1602低层时序 四 LCD1602高层时序 五 一些宏定义 总结 一 LCD1602简介 LCD1602 16x2 显示器显示2
  • Unsafe初探

    Unsafe Unsafe 是sun misc Unsafe下的一个包 通过这个类可以直接使用底层native方法来获取和操作底层的数据 例如获取一个字段在内存中的偏移量 利用偏移量直接获取或修改一个字段的数据等等 当然这个类正如他的名字一
  • C++之string的compare用法

    compare用于比较两个字符串是否相等 用法 str1 compare str2 如果相等则输出为0 不等则输出为 1 例子如下 1 int main 2 string str1 abc 3 if str1 compare abc 0 4
  • 查验身份证(C语言和Java语言)

    7 2 查验身份证 输入格式 输出格式 输入样例 输出样例 输入样例 输出样例 代码展示 C语言 Java 输出结果 注意点 一个合法的身份证号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下 首先对前17位数字加权
  • ctfshow 网络迷踪做题记录(2)

    ctfshow 网络迷踪做题记录 2 致我超吧 题目描述 ctfshow 主角ID vs 对手id 全小写 下载附件为 gif 图片展示某个游戏的战斗 咱也不知道是啥游戏 百度识图搜索到了这个场景的图片 打开图片网页可以看到文字 InnoV
  • Vue对数据的增删改

    Vue对数据的增删改
  • SPGAN:Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity ReID阅读笔记

    Image Image Domain Adaptation with Preserved Self Similarity and Domain Dissimilarity for Person Re identification 作者 We