论文笔记——TransPose

article/2025/10/13 6:07:17

目录

摘要

一、前言

二、相关工作

2.1 人体姿态估计

2.2 可解释性

三、TransPose

3.1 网络结构

3.2 分辨率设置

3.3 attentions是定位关键点的依赖

四、实验

4.1 COCO实验数据对比

4.2 迁移到MPII数据对比

4.3 消融实验​编辑

4.4 量化分析

五、总结


摘要

虽然基于cnn的模型在人类姿态估计方面取得了显著的进展,但它们捕获了哪些空间依赖性来定位关键点仍然不清楚。在这项工作中,提出了一个名为TransPose的模型,它引入了用于人体姿态估计的Transformer。变压器中内置的注意层使我们的模型能够有效地捕获长期关系,也可以揭示预测的关键点所依赖的依赖关系。为了预测关键点热图,最后一个注意层作为一个聚合器,从图像线索中收集贡献,形成关键点的最大位置。这种基于热图的变压器定位方法符合激活最大化的原理。揭示的依赖是特定的和细粒度的,这也可以提供模型如何处理特殊情况的证据,例如遮挡。

一、前言

早期的关键点检测方法通常是直接回归关键点的位置,后来变成了主流的通过预测关键点热图去预测,它隐式地学习身体各部位之间的空间依赖关系。然而,大多数之前的研究都将深度CNN作为一个强大的黑盒预测器,并专注于改善网络结构,模型内部到底发生了什么,或者它们如何捕捉身体部位之间的空间关系,目前还不清楚。

然而,从科学和实践的角度来看,模型的可解释性可以帮助从业者理解模型如何将结构变量关联起来以达到最终的预测,以及姿态估计器如何处理各种输入图像。它还可以帮助模型开发人员进行调试、决策和进一步改进设计。

对于现有的姿态估计器,一些问题使弄清楚它们的决策过程具有挑战性。

  1. 深度。基于cnn的模型,通常是非常深的非线性模型,阻碍了对每一层功能的解释。
  2. 隐含的关系。身体部位之间的全局空间关系被隐式地编码在神经元激活和cnn的权重中。要将这种关系与神经网络中大量的权重和激活解耦并不容易。而仅使用大量通道(例如SimpleBaseline)来可视化中间特性,几乎没有什么富含信息的解释。
  3. 在推断各种图像时,使用的工作内存有限。在推断图像时,由于工作内存有限,静态卷积核表示变量的能力有限。因此,由于cnn很难捕获特定于图像的依赖关系
  4. 缺少工具。虽然已经有许多基于梯度或归因的可视化技术,但大多数侧重于图像分类而不是定位。它们的目的是揭示类特定于类的输入模式或显著性映射,而不是解释结构变量之间的关系

这项工作的目标是建立一个人体姿态估计器,它可以显式地捕获和揭示关键点之间的图像特定的空间依赖性,如上图所示。由于卷积的缩放特性较差,我们认为卷积在提取低级特征方面具有优势,但在高级特征上深度叠加卷积以扩大接受域并不能有效地捕获全局依赖关系。而这样的深度增加了解释CNN预测的难度。变压器架构在绘制成对或更高阶交互方面具有自然的优势。如图2所示,注意层使模型能够捕获任何成对位置之间的交互作用,其注意地图作为一个即时记忆来存储这些依赖关系。 

基于这些考虑,本文提出了一个名为TransPose的新模型,使用卷积提取低级特征,并使用转换器捕获高级全局依赖关系。

二、相关工作

2.1 人体姿态估计

深度cnn在人体姿态估计方面取得了巨大的成功。普通卷积核的归纳偏差是局部性和平移等方差。提取低级图像特征是有效的。对于人类姿态估计,捕获全局依赖是至关重要的,但卷积的局部性使得不可能捕获长期相互作用。一个典型但不讲理的解决方案是扩大接受域,例如通过降采样分辨率,增加深度或扩大核大小。此外,提出了复杂的策略,如多尺度融合、堆叠卷积层或高分辨率表示等。

但是,随着架构变得越来越复杂,寻求人类姿态估计模型的可解释性比以往任何时候都更具挑战性,但也很迫切。相比之下,TransPose可以以一种有效和明确的方式估计人体姿态。

2.2 可解释性

可解释性意味着人类可以更好地理解模型是如何做出预测。许多工作定义了解释的目标是确定哪些输入与预测最相关,这也是本文寻求的目标。与以往的大多数工作不同,本文的目的是揭示结构骨架中身体关节变量之间的细粒度空间依赖性。

本文的模型可以直接利用注意力模式来整体地解释其预测,而不需要外部工具的帮助。

专注于揭示有助于视觉关键点定位的线索,而TransPose模型中的关注为预测提供了明确的证据。

三、TransPose

本文的目标是建立一个模型,可以明确地捕获人体各部位之间的全局依赖关系。

3.1 网络结构

如图3所示,TransPose模型由三个部分组成:CNN主干提取低级图像特征;Transformer编码器,捕捉特征向量之间的远程空间交互;用于预测关键点热图的头部。

Backbone:

许多常见的cnn可以作为主干。为了更好地进行比较,本文选择了两种典型的CNN体系结构: ResNet 和HRNet 。且只保留了原始ImageNet预训练后的cnn的初始几个部分,以便从图像中提取特征。作者将它们命名为ResNet-S和HRNet-S,其参数数仅为原始cnn的5.5%和25%左右 

Transformer:

尽可能地遵循标准的transformer架构。并且只使用了编码器,因为研究认为纯热图预测任务只是一个编码任务,它将原始图像信息压缩成一个紧凑的关键点位置表示。给定一个输入图像I∈R3×HI×WI,我们假设CNN主干输出一个二维空间结构图像特征Xf∈Rd×H×W,其特征维数通过1×1卷积转换为d。然后,将图像特征图平坦为序列X∈R^(L×d),即L个d维的特征向量,其中L = H×W。它经过N个注意层和前馈网络(FFNs)。 

Head:

一个头加到transformer编码器的输出E∈RL×d后来预测K个类型的关键点热图P∈RK×H∗×W∗,其中H∗,W∗= HI /4,WI /4默认。

我们首先将E reshape回到R∈d×H×W。然后我们主要使用1×1卷积将E的信道维数从d降到k。

如果H,W不等于H∗,W∗,则在1×1卷积之前使用额外的双线性插值或4×4转置卷积进行上采样。注意,一个1×1的卷积完全等价于一个位置级的线性变换层。

3.2 分辨率设置

 在常见的人体姿态估计体系结构中,通常采用32×降采样作为标准设置,以获得包含全局信息的非常低分辨率的地图。相比之下,本研究在ResNet-S和HRNet-S中采用了r = 8和r = 4设置,这有利于注意层的内存占用和详细信息的损失之间的权衡。因此,TransPose在更高的分辨率下直接捕获了远程交互,同时保留了细粒度的局部特征信息(但是这样参数不也多了吗?)。

3.3 attentions是定位关键点的依赖

3.3.1 自注意力机制

token(也就是位置i上的特征向量)xi∈Rd的每个查询qi∈Rd计算与所有键Keys的相似性,以得到一个wi=Ai,:∈R1×L的权重向量,这决定了每个token需要多少依赖在当前序列中。

然后,将值矩阵V中所有元素与wi中相应的权值的线性和加到xi中,得到一个增量。通过这样做,注意力图可以被视为由特定图像内容决定的动态权重,重新加权正向传播中的信息流。

Self-attention捕捉并揭示了每个token预测对每个图像位置的总贡献。这种来自不同图像位置的贡献可以通过梯度来反映。因此,我们具体分析了xj在图像 / 序列位置j是如何影响预测关键点热图中位置i的激活hi的,通过计算hi∈R^K(K表示K个关键点类型)相对于最后注意力层输入序列中位置j的导数。并且我们进一步假设G :=∂hi / ∂xj为一个,相对于一个获得的注意力得分A(i,j)的函数。我们将获得:

其中K,B∈RK×d是静态权值(在推断时固定),并在所有图像位置之间共享。我们可以看到,函数G与Ai,j近似呈线性关系,即对预测hi的贡献程度直接取决于它在图像位置上的注意分数。

特别是,最后一个注意层作为一个聚合器,它根据每个token的注意力分数收集所有图像位置的贡献,并在预测的关键点热图中形成最大的激活。虽然FFN和head中的层不能被忽略,但它们是在位置层次上的,这意味着它们可以通过相同的变换来近似地线性变换来自所有位置的贡献,而不改变它们的相对比例。(?)

3.3.2 激活的最大位置是关键点的位置。

Activation Maximization)激活最大化的可解释性(AM)在于:能够最大限度地激活一个特定神经元的输入区域这可以解释这个被激活的神经元在寻找什么。

在这个任务中,TransPose的学习目标是期望在热图的i∗位置的神经元激活hi∗被最大限度地激活,其中i∗代表一个关键点的真实位置:

假设模型已经通过参数θ∗优化了并且它预测了一个特定关键点的位置i(热图中的最大位置),

为什么模型预测的预测结果可以被如实地解释?

因为那些位置J,也就是它们在位置i上的元素j有更高的注意力分数(≥δ)。这些位置J相对于预测值来说是有相当重要贡献的依赖。可以通过以下方式找到这些依赖项:

其中,A∈RL×L是最后一个注意层的注意图,还有一个相对于θ∗和I的函数,即A=A(θ∗,I)。给定一个图像I和一个查询位置i,Ai,:可以揭示一个预测位置I高度相关的那些依赖位置,我们定义它为依赖区域A:,j可以揭示一个位置j最影响的区域,我们定义它受影响的区域

对于传统的基于cnn的方法,它们也使用热图激活作为关键点位置,但由于深度cnn的深度和高度非线性,人们无法直接找到预测的可解释模式。基于am的方法可能会提供见解,而它们需要额外的优化成本来学习卷积内核更喜欢寻找的可解释模式。与它们不同的是,我们通过transformer将AM扩展到基于热图的定位,并且我们不需要额外的优化成本,因为优化已经在我们的训练中隐式地完成了,即A=A(θ∗,I)定义的依赖关系区域是我们所寻找的模式,它可以显示特定于图像和关键点的依赖关系。

四、实验

4.1 COCO实验数据对比

4.2 迁移到MPII数据对比

4.3 消融实验

位置嵌入的重要性。在没有位置嵌入的情况下,二维空间结构信息丢失。为了探究其重要性,我们在TransPose-R-A3模型上进行了实验,实验中采用了三种位置嵌入策略:二维正弦位置嵌入、可学习位置嵌入和w/o位置嵌入。如预期的那样,具有位置嵌入的模型表现更好,特别是对于二维正弦位置嵌入。位置嵌入有助于更好地泛化看不见的输入分辨率

缩放变压器编码器的大小。我们研究性能如何与变压器编码器的大小,如table7所示,对于TransPose-R模型,随着层数增加到6层,性能的改进逐渐趋于饱和或退化。但我们在transse-h模型上没有观察到这种现象。对变压器的缩放明显提高了变换波-h的性能。 

4.4 量化分析

分析结果: 

  1. 对于具有不同CNN提取器的模型,依赖性偏好是不同的。
  2. 不同类型的关键点的依赖性和影响也有所不同。
  3. 随着深度的增加,注意力逐渐关注更细粒度的依赖关系。
  4. 对于一个模型有图像特定的依赖和统计共性。

第4点解释:

与训练后CNN权值中编码的静态关系不同,注意映射对输入是动态的。如图6(a)和图6(c)所示,我们可以观察到,尽管预测关键点的依赖关系具有统计共性(大多数常见图像的相似行为),但细粒度的依赖关系会随着图像上下文的不同而略有变化。在给定图像如输入B(图6(c))中存在遮挡或不可见,该模型仍然可以通过寻找更重要的图像线索来定位部分模糊关键点的位置,减少对不可见关键点预测其他关键点的依赖。未来的工作很可能会利用这种注意模式来进行部分到整体的关联,并聚集相关特征来进行三维姿态估计或动作识别。

五、总结

通过引入一种用于人体姿态估计的Transformer,本文探索了一个模型TransPose。注意层使模型能够有效而显式地捕获全局空间依赖关系。本文证明,这种由变压器实现的基于热图的定位使模型与激活最大化的想法相同。此外,本文还验证了位置嵌入的重要性。定性分析揭示了关于层深、关键点类型、训练模型和输入图像的可变模型行为,这也让我们深入了解模型如何处理特殊情况,如遮挡(?)。


http://chatgpt.dhexx.cn/article/bts0DNvC.shtml

相关文章

numpy中的transpose函数使用

二维矩阵的transpose函数 : transpose()简单来说,就相当于数学中的转置,在矩阵中,转置就是把行与列相互调换位置; 例如:随机生成一个三行五列的二维矩阵: arr np.aran…

transpose()函数的理解

图1 输入如图1所示语句,输出如下: 图2 由以上两图说明transpose()函数的作用: 假设shape(z,x,y),在RGB图像中可以理解为z代表通道数,x代表图像的第几行,y代表图像的第几列,x和y组合而成所代表的像素构成…

详解Python的transpose函数

数组转置和换轴 import numpy as np >>> arr np.arange(16).reshape((2,2,4)) array([[[ 0, 1, 2, 3],[ 4, 5, 6, 7]],[[ 8, 9, 10, 11],[12, 13, 14, 15]]])>>> arr.transpose((1, 0, 2)) array([[[ 0, 1, 2, 3],[ 8, 9, 10, 11]],[[ 4, 5, …

np.transpose

最近看代码的时候,老是出现np.transpose()这个用法,但是对其中的原理还是不甚了解,今天就来总结一下,以及这个用法对图像的结果及效果。 参数 a:输入数组 axis: int类型的列表,这个参数是可选的。默认情况下&#xff…

np.transpose()函数详解

1. 碰见 numpy.transpose 用于高维数组时挺让人费解,通过分析和代码验证,发现 transpose 用法还是很简单的。说白了就是映射坐标轴 2. 举个例子: x np.arange(12).reshape((2,3,2))创建一个2 * 3 * 2的数组: 使用 numpy.trans…

【Python学习】transpose函数

shape:(batch_size * x * y ) 有batch_size个二维矩阵(x * y)相当于(z * x * y) 1. 多维数组的索引 import numpy as np # 创建 x np.arange(12).reshape((2,2,3)) print(x)# 得到三维数组 [[[ 0 1 2][ 3 4 5]][[ 6 7 8][ 9 10 11]]] # 相当于 b…

最简单例子解释python的transpose函数

目录 一,我们要弄清楚transpose的轴是什么意思?二,(x,y,z)的物理含义:三,transpose变换的例子四,代码验证五,关于经过了transpose变换之后,这个三维数组的形状是如何变化确定的? 二维…

转置(transpose)的理解

目录 1 .T,适用于一、二维数组 arr.T #求转置 transpose 的原理其实是根据维度(shape)索引决定的,举个栗子: 2. 高维数组 3. swapaxes 转置可以对数组进行重置,返回的是源数据的视图(不会进行任何复制…

Python numpy.transpose 详解

前言 看Python代码时,碰见 numpy.transpose 用于高维数组时挺让人费解,通过一番画图分析和代码验证,发现 transpose 函数的使用方法还是很简单的。 注:评论中说的三维坐标图中的 0 1 2 3 标反了,已经修正&#xff0c…

2020年最新可用的谷歌镜像站

g.vovososo.com 谷歌镜像入口 不用翻,墙,就可实现访问谷歌搜索 ,也可以通过扫描以下二维码下载APP进行访问

谷歌搜索镜像

分享自己收藏的谷歌搜索镜像 可自由在谷歌查询信息 http://ac.scmor.com/ 转载于:https://www.cnblogs.com/aeip/p/9506344.html

谷歌引擎镜像网址

谷歌引擎镜像网址 当前可用的网址 链接: https://gfsoso.xz95.top/ 若是显示我们的系统检测到您的计算机网络中存在异常流量,可重新搜索或者选择图片进行搜索,然后在点开全部搜索(有时候可能会崩吧,我个人感觉用图片搜索再点全…

谷歌镜像地址分享

谷歌镜像地址分享 谷歌镜像地址分享谷歌应用商店参考文档 谷歌镜像地址分享 使用搜索引擎来查找所需要的资料是一件很普遍的事,而搜索引擎主要有百度、必应、雅虎和谷歌等等。 每个搜索引擎各有利弊,而一般大家公认的是谷歌搜索引擎搜索准确率更高一些&…

分享27个谷歌(Google)镜像

为什么80%的码农都做不了架构师?>>> 多年来搜集的谷歌镜像,大多数都能打开,打不开的也许过一段上一段时间能打开。真诚希望这些神奇的搜索引擎,能助你在前端界有所建树。有空关注下面前端相关公众账号jsdig(及时挖掘&…

谷歌学术镜像_Google镜像站

在国外留学要想毕业顺利, 论文可是其中很重要的一环. 相比于国内, 英国对于论文的要求更为严格, 要有一定的格式和学术要求. 除此之外, 还要有理有据, 要用高质量的引文作为对自己观点的论证. 这时就要查文献了. 要说查文献, 谷歌学术绝对是最佳帮手, 免费还操作简单. 当然全面…

国内最新可用Google谷歌镜像网站入口网站网址

很多同学都需要使用谷歌搜索来查找一些英文的学习资料,但是由于某些原因国内无法使用。办公人导航就和大家分享另外一种在国内可以使用谷歌搜索的方法那就使用使用谷歌镜像网站。 Google谷歌镜像网站可以帮助我们在国内访问和使用谷歌搜索,但这并不是真…

Google谷歌搜索引擎镜像入口网址大全导航,谷歌搜索引擎镜像站

当我们需要使用谷歌搜索一些学习资料的时候,就需要借助Google谷歌搜索引擎镜像网站,很多同学不知道有哪些可以使用的谷歌搜索引擎镜像站,下面办公人导航就和大家分享Google谷歌搜索引擎镜像入口网址大全导航。 1.google谷歌搜索引擎镜像站网址…

[2023-01 持续更新] 谷歌学术google镜像/Sci-Hub可用网址/Github镜像可用网址总结

目录 一、谷歌学术镜像二、Sci-Hub三、Github镜像四、GitHub下载文件加速 一、谷歌学术镜像 首先强烈推荐谷歌hub 网址一:谷歌学术-谷歌镜像网址https://www.google-hub.com/ 网址二:http://scholar.scqylaw.com/ (附 sci-hub) 网址三:htt…

Python求最大公约数和最小公倍数

大家好,我是Python领域的博主,如果觉得我的写的不错的话, 请点赞关注支持我一下。如果你是初学者,可以和小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码 解题思路: 最大公因数…

C语言求最大公约数常见思路

一、辗转相除法 辗转相除法又称为欧几里得算法,用于求两数的最大公约数gcd(全称为greatest common divisor) 注意两数必须为非负整数a,b。用法为:用两数中较大的数(a1)除以较小的数(b1),得到余…