【自监督Re-ID】ICCV_2023_Oral | ISR论文阅读

Codeicon-default.png?t=N7T8https://github.com/dcp15/ISR_%20ICCV2023_Oral

面向泛化行人再识别的身份导向自监督表征学习,清华大学

目录

导读

摘要

相关工作

DG ReID

用于ReID的合成数据

无监督表征学习

Identity-Seeking Representation Learning

结果

消融实验


 

导读

  • 新角度:提出了从大规模无标注互联网行人视频中学习领域泛化的行人表征。

  • 新方法:设计了新颖的自监督的学习框架以及可靠性引导的对比损失函数,有效学习到identity discrimination。所提方法具有出色的数据可扩展性。

  • 高性能:所学表征展现出很强的域泛化能力和域迁移能力,具有很大的实际应用价值和潜力。

摘要

本文旨在从大规模视频中学习一种无需任何注释的域泛化(DG)行人再识别(ReID)表示。由于标注成本高,先前的DG ReID方法使用有限的标注数据进行训练,这限制了进一步发展。为了克服数据和注释的障碍,我们建议使用大规模的无监督数据进行训练。关键问题在于如何挖掘身份信息。为此,我们提出了一种ISR(Identity-seeking Self-supervised Representation learning)方法。ISR将实例关系建模当做最大权重二分匹配问题,从帧间图像构建正样本对。进一步提出了一种可靠性引导的对比损失,以抑制噪声正样本对的不利影响,确保可靠的正样本对主导学习过程。ISR的训练成本与数据大小近似呈线性关系,因此可以利用大规模数据进行训练。所学习的表示表现出很强的泛化能力。在没有人为注释和微调的情况下,ISR在Market-1501上获得了87.0%的Rank-1,在MSMT17上获得了56.4%的Rank-1,分别比最佳有监督域泛化方法高出5.0%和19.5%。

相关工作

DG ReID

领域通用的人物识别(Domain Generalizable ReID)旨在在源领域上学习一个强大的模型,并直接在未见过的目标领域上进行测试,而无需进行微调处理。因其在实际应用中的巨大潜力而受到广泛关注。DIMN设计了一个域不变映射网络来学习元学习管道下的域不变表示。MetaBIN和SNR研究了归一化层或模块,以提高模型的泛化能力。RaMoE利用目标域和多个源域之间的相关性来提高模型的泛化能力。MDA将源和目标特征分布与先前的分布对齐。这些方法是用小规模领域匮乏的标记数据进行训练的。与他们不同的是,我们的目标是从大规模领域多样的未标记数据中学习DG ReID模型。

用于ReID的合成数据

ReID模型的性能受到从真实世界收集标注数据的高昂成本的限制。为了应对这一挑战,一些方法已经转向使用合成数据(synthetic data)。值得注意的是,PersonX包含1266个ID,其中273456张图像是从各个角度拍摄的,能够探索视角对ReID系统的影响。RandPerson提供了8000个身份,其中有来自19台摄像机的228655张图像,而UnrealPerson提供了3000个身份,包括来自34台摄像机的120000张图像;ClonedPerse包括来自24台摄像机的5621个身份和887766张图像。这些合成数据集已被证明对监督学习有价值,因为它们增强了ReID模型的泛化能力。DomainMix [1] 进一步证实,在训练期间将标记的合成数据与未标记的真实世界数据相结合是DG ReID的一个有前途的方向。然而,合成数据和真实世界的数据之间仍然存在巨大的领域差距,阻碍了在合成数据上训练的模型无缝应用于真实的现实世界场景。为了弥补这种差异,我们建议使用大量未标记的真实世界数据进行训练。

[1] Wenhao Wang, Shengcai Liao, Fang Zhao, Kangkang Cui, and Ling Shao. Domainmix: Learning generalizable person re-identification without human annotations. In BMVC, 2021. 3

无监督表征学习

一些主流的无监督表征学习方法(MoCo, SimCLR, BYOL),如果被直接应用于ReID,则只能学习预训练模型,这在直接测试时显示出极低的准确性。核心原因是,它们将一张图像的两个不同视图视为正样本对,或者对图像中的掩码像素进行重建,从而实现了实例区分(instance discrimination)。这与身份区分(identity discrimination)的ReID目标所矛盾。与它们不同,我们将同一ID的帧间图像视为正样本对,来达到身份区分的目标。一项密切相关的工作是CycAs(同团队的工作)及其改进版本。大概意思是作者针对CycAs方法的弱点提出了一种新方法,通过挖掘正样本对和抑制噪声来提供更鲁棒和通用的人物再识别表示学习的解决方案。

可视化证明:ISR对identity-discrimination的有效性

Identity-Seeking Representation Learning

身份导向的自监督表征学习

The overview of ISR.
The overview of ISR.

(1)构建正样本对

        基于最大权二分图匹配,在邻近帧中构建跨帧正样本对。

(2)抑制噪声正样本对

        计算每个正样本对的可靠性,利用可靠性来引导学习对比损失,进而抑制噪声正样本对的影响。

可靠性计算:p(x_{i})=\frac{\sum_{j}\pi ^*exp(x_i\cdot y_j/\tau )}{\sum_{j}exp(x_i\cdot y_j/\tau )},对比损失:L_{RC}(x_i)=-p^\gamma _{\nleftarrow}(x_i)log(p(x_i))

结果

域泛化设置下与SOTA方法的比较
在合成数据集的比较

消融实验

CP:跨帧正样本对;L_{RC}:可靠性导向的对比损失;L_Q:基于记忆的对比损失。
性能与数据规模

更多细节在论文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/91042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Socket网络编程练习题五:客户端多用户上传文件(多线程版)并使用线程池管理线程

题目 想要服务器不停止,能接收很多客户上传的图片?我们知道是使用循环加多线程的方案来解决,但是如果频繁的创建和销毁线程,是非常浪费系统资源的,那应该怎么办呢? 解决方案 采用线程池,来管…

为什么 0.1+0.2 不等于 0.3

为什么 0.10.2 不等于 0.3 在 JavaScript 中,0.1 0.2 的结果不等于 0.3,这是因为在 JavaScript 中采用的是双精度浮点数格式(64 位),而在这种格式下无法精确表示某些小数,因此在进行计算时会出现精度误差。…

Linux常见指令2

Linux常见指令[2] 一.Linux常见指令1.man补充知识:nano 2.cp3.mv4.cat补充知识:echo输出重定向追加重定向回到catcat其他用法 5.less和more补充内容回到less 6.head和tail补充知识:命令行管道 一.Linux常见指令 前言:为了方便我们在Linux中写指令 介绍一下: 1.clear指令: 清屏…

【小沐学C++】C++ 基于Premake构建工程项目(Windows)

文章目录 1、简介2、下载和安装2.1 下载2.3 快速入门 3、使用3.1 支持的工程文件Project Files3.2 构建设置Build Settings3.3 链接Linking3.4 配置Configurations3.5 平台Platforms3.6 过滤Filters3.7 预设值Tokens 4、测试4.1 测试1:入门例子4.2 测试2&#xff1a…

Spring修炼之路(1)基础入门

一、简介 1.1Spring概述 Spring框架是一个轻量级的Java开发框架,它提供了一系列底层容器和基础设施,并可以和大量常用的开源框架无缝集成,可以说是开发Java EE应用程序的必备。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器&…

Ubuntu Seata开机自启动服务

1、创建service文件 在/lib/systemd/system目录下创建seata.service文件 [Unit] Descriptionalibaba seata Afternetwork.target Documentationhttps://seata.io/zh-cn/[Service] Userroot Grouproot Typeforking Environment"JAVA_HOME/usr/local/programs/jdk-8u333-li…

【CTFHUB】SSRF绕过方法之靶场实践(二)

SSRF POST请求 提示信息: 这次是发一个HTTP POST请求.对了.ssrf是用php的curl实现的.并且会跟踪302跳转.加油吧骚年 首先测试了http的服务请求,出现对话框 输入数值后提示:只能接受来自127.0.0.1的请求 右键查看源码发现key值 通过file协…

一个简单的敏捷开发的例子

敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法。 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视…

SpringMVC 学习(八)整合SSM

10. 整合 SSM (1) 新建数据库 CREATE DATABASE SSM;USE SSM;DROP TABLE IF EXISTS BOOKS;CREATE TABLE BOOKS (BOOK_ID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书ID,BOOK_NAME VARCHAR(100) NOT NULL COMMENT 书名,BOOK_COUNTS INT(11) NOT NULL COMMENT 数量,DETAIL VARCH…

C/S架构学习之TCP服务器

TCP服务器的实现流程:一、创建套接字(socket函数):通信域选择IPV4网络协议、套接字类型选择流式; int sockfd socket(AF_INET,SOCK_STREAM,0); //通信域选择IPV4、套接字类型选择流式二、填充服务器的网络信息结构体&…

5.wifi开发【智能家居:上】,开发准备:智能开关灯,智能采集温湿,智能调彩灯

一。wifi智能家居项目开发 【开发准备1】:继电器控制开发 1.智能开关 器件准备:wifi(esp8266,使用CP2102)继电器 结果: 2.继电器工作原理 (1)继电器是一种自动电气开关 &#xff…

排序:外部排序算法分析

1.外存与内存之间的数据交换 1.外存(磁盘) 操作系统以“块”为单位对磁盘存储空间进行管理,如:每块大小1KB 各个磁盘块内存放着各种各样的数据。 2.内存 磁盘的读/写以“块”为单位数据读入内存后才能被修改修改完了还要写回磁盘。 2.外…

【Netty】ByteToMessageDecoder源码解析

目录 1.协议说明 2.类的实现 3.Decoder工作流程 4.源码解析 4.1 ByteToMessageDecoder#channelRead 4.2 累加器Cumulator 4.3 解码过程 4.4 Decoder实现举例 5. 如何开发自己的Decoder 1.协议说明 Netty框架是基于Java NIO框架,性能彪悍,支持的协…

MySQL系统与内建函数

在游戏开发、特别是像《三国志》这样的大型策略游戏中,数据分析是不可或缺的。从玩家行为到游戏内的战役结果,都需要通过高效的数据分析来优化游戏体验。MySQL的系统和内建函数为这样的分析提供了强大的工具。 本文将详细介绍MySQL中常用的系统与内建函数,并通过《三国志》…

【数据结构】归并排序、基数排序算法的学习知识点总结

目录 1、归并排序 1.1 算法思想 1.2 代码实现 1.3 例题分析 2、基数排序 2.1 算法思想 2.2 代码实现 2.3 例题分析 1、归并排序 1.1 算法思想 归并排序是一种采用分治思想的经典排序算法,通过将待排序数组分成若干个子序列,将每个子序列排序&#xff…

C++中实现一些特殊的类|设计模式

1.设计一个类 不能被拷贝 拷贝只会发生在两个场景中:拷贝构造以及赋值运算符重载。想要让一个类禁止拷贝,只需要该类不能调用拷贝构造和赋值运算符重载 c98中 将拷贝构造与赋值运算符重载只声明不定义,不定义是因为该函数根本不会调用&#x…

【Java 进阶篇】MySQL多表查询之子查询详解

在数据库查询中,多表查询是一项非常常见且重要的任务。它允许我们从多个相关联的表中检索和组合数据,以满足各种复杂的查询需求。在多表查询中,子查询是一种强大的工具,用于在查询中嵌套另一个查询。本文将深入探讨MySQL中的子查询…

什么是好的UI设计?优漫动游

UI(UserInterface),即界面设计,它是网站、App给用户在感觉(视觉、触觉、听觉等)和情感上带来的第一体验,包括人机交互、界面逻辑、界面美观设计三个方面。简单来讲,UI不仅是一种表现…

【Java】建筑工地智慧管理系统源码

智慧工地系统运用物联网信息技术,致力于推动建筑工程行业的建设发展,做到全自动、信息化,智能化的全方位智慧工地,实现工程施工可视化智能管理以提高工程管理信息化水平。 智慧工地平台拥有一整套完善的智慧工地解决方案&#xff…

linkedlist和arraylist的区别

LinkedList和ArrayList都是常见的数据结构,用于存储和操作集合元素,如果需要频繁进行插入和删除操作,LinkedList可能更适合。如果需要快速随机访问和较小的内存占用,ArrayList可能更合适。 以下是它们之间存在一些关键的区别&…