Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification(TJAIDL)阅读笔记

这篇文章时第一次在无监督跨域reid之中引入属性的paper。

最经典的属性reid的文章当然是ZL老师组的:Improving Person Re-identifification by Attribute and Identity Learning(APR),这篇paper不仅是第一篇在reid中引入属性的,还标注Market和Due的属性,贡献很大。
但思想很简单:

图很清楚的描述了整个过程:一条支路做reid的IDE分类,另一条支路分为M条子支路,每条子支路做一个属性的二分类。然后所有损失相加(多任务)。

到那时,其实有不合理的地方。所有任务共享CNN的backbone,也就是说用于reid的支路的特征也必须用在属性分类支路。也就导致CNN学的特征必须既有利于属性分类,又有利于reid,最后就只能到底一个折衷的共享空间,即都能做,但都不强。

于是本文作者抓住这一点,提出了TJAIDL。怎么做的?

大体上还是一样,但最明显的是CNN的backbone用了两个,每个CNN都专注于自己分支的任务。上分支专门做reid,保证鉴别力。下分支做属性分类,但其实也包含了用于reid的信息,为什么这么说呢?这是因为其和c模块之间的损失做到的。具体地,xidx_{id}xid​送给IIA模块,编码出一个更能表示行人ID最关键信息的特征,与此同时,由于IIA模块是重建xidx_{id}xid​,因此不需要目标域的id标签,只要输入样本,经过a自然会得到xidx_{id}xid​(当然目标域就不会有LidL_{id}Lid​损失的监督)。之后,eIIAe_{IIA}eIIA​这个与ID高度相关的特征属性分支的特征提取结果(这个分支用LattL_{att}Latt​监督来的,因此学习到属性信息)做LID−transferL_{ID-transfer}LID−transfer​损失监督。这个损失不像Lid,Lrec,LattL_{id},L_{rec},L_{att}Lid​,Lrec​,Latt​那样常见(分别是交叉熵,MSE,交叉熵损失),给出其定义如下:

不难看出其实也是一个MSE损失,其致力于让属性预测分支提取的特征与ID分支的结果很近似。什么意思?

其实作者这里和APR有相通之处,也有明显的区别。APR中,属性和ID共享同一个特征空间,也就可以最终目标是让ID特征中包含属性信息,属性特征中包含ID信息。但作者指出,这样是不对的,但不对的是ID特征中包含属性信息,因为ID特征不够纯粹,也就不够鉴别力。而至于属性特征中包含ID信息,那我们根本不care,因为我们并不做属性,属性只是在辅助,污染就污染了吧(当然,如果两者高度独立,只具有对应关系,效果应该会更好)。作者的模型也是这么做的:

首先ID分支,作者让其与属性分支独立,于是设计用两个CNN backbone,而不是一个;其次,就是污染部分,作者通过让ID相关信息(eIIAe_{IIA}eIIA​)和属性信息做MSE损失以尽量接近,那就导致属性特征中包含了ID信息,当然,这种污染也是必要的,因为属性是为了辅助ID,如果属性不和ID之间建立任何联系,那加了属性和没加也就没有区别。而这里作者选择eIIAe_{IIA}eIIA​和属性信息做MSE损失就更加高明了,因为直接用xidx_{id}xid​和属性信息做MSE损失,那就个APR没什么区别,同样导致属性信息中有ID信息,ID中也有属性信息,这是我们不希望看到的。作者通过IIA的处理就有效避开了这一点:其让eIIAe_{IIA}eIIA​这个ID信息中包含属性信息,属性信息中包含eIIAe_{IIA}eIIA​的ID信息,这样就不会直接去污染xidx_{id}xid​,同时又建立了ID和属性的联系。当然,eIIAe_{IIA}eIIA​肯定也是会在BP时污染到xidx_{id}xid​,但就比直接污染的影响小多了。

最后,还有一个Latt,IIAL_{att,IIA}Latt,IIA​没有解释,其到底是干嘛的?
这一块也很简单,由于前面我们说eIIAe_{IIA}eIIA​的ID信息中其实包含了属性信息,但这个属性信息只是通过MSE损失得到的,如果只是MSE的话就很玄乎,会得到一个平滑的结果,未必是真实利于属性分类的,于是不妨用eIIAe_{IIA}eIIA​直接去像xatt+IDx_{att+ID}xatt+ID​那样做一个属性预测,也就是属性分类任务,那样就能有效强化其中属性的信息。
对比两处属性预测:


其中:

基本上是一样的。

最终IIA模块的损失为:

用以更新IIA模块,其中:

属性分支的损失为:

用以更新属性分支(加上LID−transferL_{ID-transfer}LID−transfer​的目的是让属性分支的信息中包含ID信息,也就是属性分支中是xatt+IDx_{att+ID}xatt+ID​而不是xattx_{att}xatt​的原因)。注意这里:在源域时,LattL_{att}Latt​的GT就是真实属性标签,但在目标域时,LattL_attLa​tt其实没有属性标签,于是作者充分利用了eIIAe_{IIA}eIIA​中的属性信息,对用eIIAe_{IIA}eIIA​做属性预测/分类的结果(式5中的pIIAp_{IIA}pIIA​,但只取该软标签,不打成one-hot的硬标签)作为属性伪标签,来给LattL_{att}Latt​当作GT。如下图:

红色箭头表示拉近距离。

ID分支的损失为:

用来更新ID分支。不过在目标域的时候,就不能更新,只能forward了(没有ID标签)。

于是,整个算法流程如下:

最后就是效果了:

在Market上达到了58的跨域rank@1,其实是很不错的效果了,而且还是第一次在跨域中引入属性,很新颖。

消融:

独立监督指的是两个支路分别训练,然后对两个支路的结果直接concat作为行人特征;联合监督指的是APR那样的。

Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification阅读总结相关推荐

  1. 【CVPR 2021】Joint Generative and Contrastive Learning for Unsupervised Person Re-identification

    方法概述 1,提出了一种用于无监督行人重识别的联合生成对比学习框架,生成和对比模块互相提高对方的性能. 2, 在生成模块中,我们引入了3D网格生成器. 3, 在对比模块,我们提出了一种视角无关的损失, ...

  2. Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification

    1.引入 行人重识别中无监督学习:从源域有标签数据中学习到关于行人视图不变信息的特征表示,然后将模型转移.并且使之适用到无标签数据的目标域中. 大多数现有的人员重新识别(re-id)方法都需要从每个摄 ...

  3. A Survey on Deep Learning Techniques for Stereo-based Depth Estimation论文阅读

    第一次校正,改正了一些错误和生硬的翻译(像机器翻译一样).一定会有一些笔误.翻译不准确甚至错误的地方.还望批评指正. 1. 摘要 估计RGB图片的深度一直以来都是棘手的问题,计算机视觉.图形学.机器学 ...

  4. Knowledge-based Collaborative Deep Learning for Benign-Malignant Lung Nodule Classification论文阅读

    作者信息: Yutong Xie, Yong Xia, Member, IEEE, Jianpeng Zhang, Yang Song, Member, IEEE, Dagan Feng, Fel l ...

  5. A Novel Two-stage Separable Deep Learning Framework for Practical Blind Watermarking论文阅读

    A Novel Two-stage Separable Deep Learning Framework for Practical Blind Watermarking Abstract 数字水印是一 ...

  6. 《Deep Learning for Computer Vision with Python》阅读笔记-ImageNetBundle(第7章)-在ImageNet上训练VGGNet

    //2022.2.27日下午18:33开始学习笔记 7.在ImageNet上训练VGGNet 在本章中,我们将学习如何在ImageNet数据集上从零开始训练VGG16网络架构.卷积神经网络的VGG家族 ...

  7. 《Deep Learning for Computer Vision with Python》阅读笔记-ImageNetBundle(第5章)-ImageNet数据集的准备

    5.准备ImageNet数据集 一旦你下载了ImageNet数据集,你可能会有点不知所措.你现在有超过120万的图片驻留在磁盘上,没有一个人有"人类可读"文件的名字,没有一个明显的 ...

  8. Machine Learning Approach to RF Transmitter Identification

    第一遍 包括以下步骤: 仔细阅读标题,摘要和介绍. 只阅读节和子节的标题,忽略其他内容. 阅读结论. 浏览一下参考文献,在心里勾出你已经读过的. 在第一遍的阅读之后,你应该能够回答下面五个问题: 类别 ...

  9. Deep Learning(深度学习)学习笔记整理系列

    一.概述 Artificial Intelligence,也就是人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一.虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生& ...

最新文章

  1. cmd 修改文件属性
  2. java 编写线程公共类_002-java多线程工具类
  3. 用shape结合selector实现点击效果
  4. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可监控)
  5. JS中的基本和引用类型传递的比较
  6. python设计模式15-解释器模式
  7. sqlrowset 转化为json_Python 操作 JSON 的 9 个示例
  8. chromium 一些设置 --插件安装
  9. 台达伺服控制器接线图_【工控项目分享】台达ASDA-AB系列伺服驱动器——内部位置控制...
  10. 【原创】CSS3动画总结对比 / 带思维导图 / 启发小案例
  11. 支持向量回归(多核函数)
  12. 正确区分LJMP、AJMP、SJMP、JMP指令()
  13. 2021-11-24【数据结构练习题】【二叉搜索树的插入删除】
  14. Kaggle无法出现人机验证的解决办法
  15. python读取csv表格的数据并用matplotlib画曲线图
  16. ElasticSearch用法和IK分词器
  17. 艾美捷Bio-Helix CCH321 超敏ECL化学发光试剂盒(皮克级)特点
  18. Python 图片数据MYSQL存取(BASE64编码解码)
  19. 《人工智能杂记》人工智能简史
  20. 行业实战 | 5G+边缘计算+“自由视角” 让体育赛事更畅快

热门文章

  1. 「津津乐道播客」#212. 乱炖:原地爆炸的ZOOM做错了什么?
  2. w3c易语言教程,EPL易语言编程下载
  3. 科研实习 | 新加坡国立大学尤洋老师课题组招收Data-centric AI科研实习生
  4. 西安国微EDA研发中心正式启动运营;2020上半年10大典型工业网络安全事件 | 美通企业日报...
  5. 雅虎2011热门词汇搜索排行榜
  6. 「数据密集型系统搭建」开卷篇|什么是数据密集型系统
  7. 图片翻译成中文怎么弄?分享三个图片翻译小技巧
  8. 使用有限内存对大型数据文件排序
  9. 关于“智能出价“的一些探索和实践
  10. 帮派红包 概率_电子游戏如何教我关于连锁帮派