论文阅读: AAAI 2022行人重识别方向论文-PFD_Net

news2024/11/30 5:02:33

本篇博客用于记录一篇行人重识别方向的论文所提出的优化方法《Pose-Guided Feature Disentangling for Occluded Person Re-identification Based on Transformer》,论文中提出的PDF_Net模型的backbone是采用《TransReID: Transformer-based Object Re-Identification》的主干网络TransReID。

Pose-guided Feature Disentangling for Occluded Person
Re-identification Based on Transformer Tao Wang 北京大学机器感知深圳研究生院
论文:https://arxiv.org/abs/2112.02466
源码:https://github.com/WangTaoAs/PFD_Net

1. 论文所提方法

在这里插入图片描述

提出的PFD由四个部分组成。第一部分是视觉上下文编码器,它将摄像机信息编码到embedding中,以捕获全局上下文信息。第二部分是姿态引导特征聚合(PFA),它利用匹配和分布机制来初步引导可见的身体部位。第三部分是基于部分视图的解码器,在可学习语义视图的指导下,将姿势引导特征分解为判别视图集。第四部分是姿态-视图匹配模块(PVM),它将获得的视图集合(View set)和姿态引导的特征集合视为一个集合匹配问题。此外,为了强调可见身体部位的特征,提出了姿势引导下的Push Loss。有关更多详细信息,请参阅建议的方法。

3.1 Visual Context Transformer Encoder

我们使用基于Transformer的图像分类模型(即ViT(Dosovitskiy et al 2020))构建编码器。给定一个人物图像x∈,其中H、W、C分别表示高度、宽度和通道维度。我们首先通过使用滑动窗口将x分割成N个固定大小的补丁{|i=1,2,…,N}。步长可以表示为S,每个图像分块(Patch)的大小可以表示为P,补丁的数量N可以描述为:
在这里插入图片描述

其中⌊⌋是向下取整。当S等于图像分块大小P时,分割的图像块是不重叠的。当S小于P时,生成的图像块是重叠的,这可以减轻图像的空间邻域信息的损失。变换编码器只需要序列作为输入,因此在展平的像素块(flatten patch)上执行可训练的线性投影函数f(·),将像素块映射到D维,最终得到patch embeddings E∈,(即=f(),i=1,2。。。,N) 。
可学习的[class]token 被预先添加到像素块转换的embeddings中,并且输出的[class]token用作编码器全局特征表示 。为了保留位置信息,我们应用可学习的位置编码(positonal encodings)。然而,这些特征非常容易受到相机变化的影响,因此我们遵循(He et al 2021)中的方法来学习相机视角信息。那么最终的输入序列可以被描述为:
在这里插入图片描述

其中是位置嵌入(positional embeddings),∈是相机嵌入(camera embeddings),对于相同的图像,是相同的。是一个超参数,用于平衡相机嵌入的权重(weight)。接下来,输入embedding将由m个变换器层(transformer layers)处理。编码器的最终输出∈可以分为两部分(编码器全局特征和局部特征):∈和∈。为了学习人体部位(human parts)的更多判别特征,将部位特征(part features)按顺序分为K组,每组的大小为(N//K)×D。然后,连接编码器全局特征∈的每个组将被馈送到共享变换器层(shared transformer layer)中,以学习K组 part local feature(部分局部特征)=[,,…,]。
编码器监督损失(Supervision Loss)。我们采用交叉熵损失作为编码器全局特征和分组特征的单位损失和三元组损失。编码器损失函数可以公式化为:
在这里插入图片描述

3.2姿势引导的特征聚合

被遮挡的人图像的身体信息较少,非身体部位的信息可能不明确,这会导致性能下降。因此,我们使用人体姿态估计器来从图像中提取关键点信息。
姿势估计。给定人物图像x,姿态估计器从输入图像中提取M个姿态点。然后,利用姿态点来生成热图H=[,,…,]。每个热图都被下采样到(H/4)×(W/4)的大小。每个热图的最大响应点(The maximum response point)对应于一个关节点。我们设置了一个阈值γ来过滤出高置信度标签和低置信度标签。但与(Miao et al 2019)不同的是,我们没有将关键点置信度得分小于γ的热图设置为0。相反,标签∈{0,1}, (i=1, …, M)将分配给每个热图。从形式上讲,热图标签可以表示为:
在这里插入图片描述

式中为第i个关键点的置信度得分。
姿态导向的特征聚合。为了整合姿态信息,我们设置K = M,正好等于关键点的个数。然后,对热图H应用全连接层,得到热图H′,其维数与组局部特征(the group part local feature)相同。然后,热图H′点乘(element-wisely)的每个元素,得到姿态引导特征P = [, ,…][m]。虽然P已经明确编码了人体不同部位的信息,但我们希望从中找到对某一身体部位贡献最大的部分信息。为此,我们开发了一种匹配和分配机制,该机制将部位局部特征( part local feature)和姿态点引导特征(pose guided feature)作为一个集合相似度度量问题。最后得到姿态引导特征聚合集S = { | i = 1,2,…, M}。对于每个,我们可以找到中最相似的特征,然后将两个特征相加形成Si。在形式上,

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

其中i = 1, 2, …, K, ⟨·,·⟩代表内积, 表示 与中最相似的内积。

3.3 Part View Based Transformer Decoder

在本节中,我们定义了一组可学习的语义部件视图来学习可区分的身体部件。可学习的语义部件视图可以表示为Z = { | i = 1,2,…, },和Z∈将作为查询(queries)添加到每个交叉注意层(cross-attention layer)。如图2所示,键值(key和values)来源于姿态点热图H与编码器输出的组合。将平均池化层应用于热图H,然后将相乘,最终输出∈×D。形式上,查询、键和值可以表示为:
在这里插入图片描述

姿态-视图匹配模块:

在交叉注意机制中,部分语义视图可以学习到一些判别特征。然而,不知道是哪一部分或哪一种信息被学习了。因此,为了获得与人体骨骼相关的特征,我们提出了一个姿态视图匹配模块。由于姿态引导特征聚合集合S的每一个特征都与人体的某个关键点信息相关,我们可以通过计算人体部位视图与的相似度来找到与人体某个关键点相关的部位视图。将匹配的语义部件视图和姿势引导的特征聚合特征(pose guided feature aggregation feature)相加,得到最终的视图特征集合= { |i = 1,2,…, }。在形式上,
在这里插入图片描述

由于关键点置信度得分可以指示特征的哪一部分包含人体信息,热图标签可以引导我们将视图特征集分成两部分。视图集特征中热图标签 = 1的特征形成高置信度关键点视图特征集 = {|i = 1,2,…, L},其余组成低置信度关键点视图特征集 = { |i = 1,2,…, −L},其中L表示中热图标签为1的特征个数。

推荐博客

如果想了解这篇论文的代码细节,推荐大家阅读这篇博客。
PFD_net和TransReID学习——一:TransReID backbone学习

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

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

相关文章

【JavaWeb学习笔记】17 - ThreadLocal

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/threadlocal/src/com/yinhai/thread 目录 项目代码 一、什么是ThreadLocal? 二、ThreadLocal快速入门 三、源码解读 一、什么是ThreadLocal? 1. ThreadLocal的作用,可以实现在同一个线…

打破成本壁垒,免费SSL证书为中小企业保驾护航

HTTPS,这个曾经看似遥远的技术词汇,如今已与我们每个人的网络生活息息相关。而实现HTTPS加密传输的关键一环——SSL证书,正以其独特的安全性能,为网站筑起一道坚实的防护墙。更令人惊喜的是,免费SSL证书服务已经到来&a…

SpringBoot+MyBatis+MySQL增删改查(一)(IDEA创建SpringBoot项目)

使用IDEA创建SpringBootMyBatisMySQL进行项目搭建 1.创建项目 文件 --> 新建 --> 项目 填写项目基本信息 项目名称、存放位置、项目语言、项目类型、JDK版本、打包 Web选项选择Spring Web SQL选项中勾选JDBC API、MyBatis Framework、MySQl Driver选项 至此一个空项目…

【深度学习:LSTM Networks】了解 LSTM 网络

【深度学习:LSTM Networks】了解 LSTM 网络 循环神经网络长期依赖问题 相关知识传送门: LSTM 网络LSTM 背后的核心理念LSTM 分步演练长短期记忆的变体Conclusion 循环神经网络 人类在思考时并不是每时每刻都从头开始。当你阅读这篇文章时,你…

单点登录的三种模式

介绍 单点登录存在的意义在于,比如公司里有多个系统,我只想登录一次,便可以访问公司的多个子系统 单点登录有很多模式,目前已知三种模式 1、cookie session模式 2、token模式 3、token refresh_token模式 Cookie Session模式…

基于OpenCv的车道检测

项目背景和步骤 车道检测是自动驾驶领域不可或缺的一环 具体步骤如下: 一、将图像灰度化,并进行适度的高斯滤波,剔除干扰 二、利用Canny边缘检测,检测出车道和其它物体的边缘 三、使用ROI区域截取,截取需要的部分&a…

1.1 FMEA目的

文章目录 1.1 目的和说明 潜在失效模式和影响分析(FMEA)是美国汽车工业行动集团(AIAG)和德国汽车工业联合会(VDA)的整车厂(OEM)和一级供应商成员合作逾三年的成果。FMEA手册已进行改…

看懂基本的电路原理图(入门)

文章目录 前言一、二极管二、电容三、接地一般符号四、晶体振荡器五、各种符号的含义六、查看原理图的顺序总结 前言 电子入门,怎么看原理图,各个图标都代表什么含义,今天好好来汇总一下。 就比如这个电路原理图来说,各个符号都…

10万蜜蜂同屏作战 UnityECS蜜蜂大战项目实践(附实现前后对比)

本文禁止转载 本项目是Unity官方推荐的ECS入门训练中的蜜蜂大战项目 知乎文章同步链接 浅谈ECS工作栈 提到ECS就不得不提JobSystem和Burst编译器,三者共同组成了Unity面向数据的DOTS(Data-Oriented Technology Stack)框架。 ECS&#xf…

Linux-------rm命令超详解(狠狠爱住)

目录 rm 命令用于在Linux系统中删除指定的文件或目录 基本语法: 常用选项: 示例用法: 放在文末的话: 补充: rm 命令用于在Linux系统中删除指定的文件或目录 基本语法: rm [选项] 文件名/目录名 常用…

Eclipse汉化

目录 一、首先电脑已经下载好Eclipse 二、打开Eclipse Babel 三、打开Eclipse 1、工具栏——>Help——> Install New Software 2、 点击Add 3、添加复制的链接,点击Add 4、等待加载 5、勾选Chinese(Simpliied),而后Next&…

超市订单管理系统

比较简单的超市订单管理系统

在Google Colab中调用Gemini的API实现智能问答

一、引言 Google终于放出大招,在2023年12月6日正式推出规模最大、功能最强大的人工智能模型Gemini,对标ChatGPT,甚至有要赶超ChatGPT-4.0的节奏。 相比之前的Bard,Gemini的文本理解能力、图片识别能力和语义抽取能力大大增强&am…

HTML进阶

列表、表格、表单 文章目录 列表、表格、表单01-列表无序列表有序列表定义列表 02-表格表格结构标签-了解合并单元格 03-表单input 标签input 标签占位文本单选框上传文件多选框下拉菜单文本域label 标签按钮 04-语义化无语义的布局标签有语义的布局标签 05-字符实体 01-列表 …

SpringBoot之入门使用

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 SpringBoot之入门使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、Spring缺点分析…

Springboot整合Elasticsearch 7.X 复杂查询

这里使用Springboot 2.7.12版本&#xff0c;Elasticsearch为7.15.0。 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency> yaml文件配置…

【AIGC-图片生成视频系列-4】DreamTuner:单张图像足以进行主题驱动生成

目录 一. 项目概述 问题&#xff1a; 解决&#xff1a; 二. 方法详解 a) 整体结构 b) 自主题注意力 三. 文本控制的动漫角色驱动图像生成的结果 四. 文本控制的自然图像驱动图像生成的结果 五. 姿势控制角色驱动图像生成的结果 2023年的最后一天&#xff0c;发个文记录…

[C#]使用ONNXRuntime部署一种用于边缘检测的轻量级密集卷积神经网络LDC

源码地址&#xff1a; github.com/xavysp/LDC LDC: Lightweight Dense CNN for Edge Detection算法介绍&#xff1a; 由于深度学习方法的快速发展&#xff0c;近年来&#xff0c;用于执行图像边缘检测的卷积神经网络&#xff08;CNN&#xff09;模型爆炸性地传播。但边缘检测…

【C++】手撕 Vector类

目录 1&#xff0c;vector类框架 2&#xff0c;vector () 3&#xff0c;pinrt() 4&#xff0c;vector(int n, const T& value T()) 5&#xff0c;vector(const vector& v) 6&#xff0c;vector(InputIterator first, InputIterator last) 7&#xff0c;~vector…

Adobe ColdFusion 文件读取漏洞(CVE-2010-2861)

漏洞原理 Adobe ColdFusion是美国Adobe公司的一款动态Web服务器产品&#xff0c;其运行的CFML&#xff08;ColdFusion Markup Language&#xff09;是针对Web应用的一种程序设计语言。由于AJP协议设计存在缺陷导致内部相关的属性可控&#xff0c;攻击者可以构造属性值&#xff…