ViTPose

news2024/10/3 10:44:48

具体而言,ViTPose使用普通和非分层vit Transformer[14]作为backbone来提取给定人物实例的特征图,其中backbone通过掩蔽图像建模借口任务(例如MAE[16])进行预训练,以提供良好的初始化。然后,下面的轻量级解码器通过对特征图进行上采样并对关键点的热图进行回归来处理提取的特征
由两个反卷积层和一个预测层组成。尽管模型中没有精心设计,但ViTPose在具有挑战性的MS COCO Keypoint测试开发集上获得了80.9 AP的最先进(SOTA)性能。应该注意的是,本文并没有声称算法的优越性,而是提出了一个简单而坚固的变换基线,具有优越的姿态估计性能

除了卓越的性能外,我们还从各个方面展示了ViTPose令人惊讶的良好功能,即简单性、可扩展性、灵活性和可转移性。1) 为了简单起见,由于ViT Transformer强大的特征表示能力,ViTPose框架可以非常简单。例如,它不需要任何特定的领域知识来设计backbone编码器,并且通过简单地堆叠几个Transformer来享受简单和非分层的编码器结构。解码器可以进一步简化为单个上采样层,然后是具有可忽略的性能下降的卷积预测层。这样的结构简单性使ViTPose具有更好的并行性,从而在推理速度和性能方面达到了新的Pareto前沿,如图所示。1。2) 此外,结构的简单性带来了ViTPose出色的可扩展性财产。因此,它受益于可扩展的预训练ViT Transformer的快速开发。具体而言,可以通过堆叠不同数量的Transformer层并增加或减少特征尺寸来容易地控制模型大小,例如,使用ViT-B、ViT-L或ViT-H,以平衡各种部署要求的推理速度和性能。3) 此外,我们证明了ViTPose在训练模式中是非常灵活的。ViTPose可以很好地适应不同的输入分辨率和特征分辨率,只需稍作修改,并且可以为更高分辨率的输入提供更准确的姿态估计结果。除了在单个姿势数据集上训练ViTPose作为常见做法外,我们还可以对其进行修改以适应
通过非常灵活地添加额外的解码器,实现了多姿态数据集,从而实现了联合训练流水线,并带来了显著的性能改进。这种训练范式只带来边际(额外)计算成本,因为ViTPose中的解码器相当轻。此外,当使用较小的未标记数据集进行预训练或在冻结注意力模块的情况下进行微调时,ViTPose仍然可以获得SOTA性能,与完全预训练的微调范式相比,所需的训练成本更低。4) 最后但并非最不重要的是,通过额外的可学习知识令牌从大型ViTPose模型转移知识,可以很容易地提高小型ViTPse模型的性能,证明了ViTPose的良好可转移性。

总之,本文的贡献有三个方面。1) 我们提出了一种简单而有效的人体姿态估计基线模型ViTPose。即使不使用复杂的结构设计或复杂的框架,它也能在MS COCO Keypoint数据集上获得SOTA性能。2) 简单的ViTPose模型具有令人惊讶的良好功能,包括结构简单性、模型大小可扩展性、训练范式灵活性和知识可转移性。这些能力为基于VitTransformer的姿态估计任务建立了强大的基线,并可能为该领域的进一步发展提供线索。3) 在流行的基准上进行了综合实验,以研究和分析ViTPose的能力。以一个非常大的ViT Transformer模型为backbone,即ViTAE-G[52],单个ViTPose模型在MS COCO Keypoint测试开发集上获得最佳80.9 AP

2 Related Work

2.1 Vision transformer for pose estimation

姿势估计经历了从CNN[44]到视觉变换网络的快速发展。早期的工作倾向于将transformer视为更好的解码器[24,28,46],例如,TransPose[46]直接处理由CNN提取的特征,以对全局关系进行建模。TokenPose[28]通过引入额外的令牌来估计被遮挡关键点的位置并对不同关键点之间的关系进行建模,从而提出了基于令牌的表示。为了去除用于特征提取的CNN,HRFormer[48]被提出使用Transformer来直接提取高分辨率特征。为了逐步融合HRFormer中的多分辨率特征,提出了一种精细的并行Transformer模块。这些基于Transformer的姿态估计方法在流行的情况下获得了优越的性能关键点估计基准。然而,它们要么需要CNN进行特征提取,要么需要仔细设计Transformer结构。在探索用于姿态估计任务的普通vit Transformer的潜力方面,几乎没有做出什么努力。在本文中,我们通过提出一个简单而有效的基线模型,ViTPose,基于普通ViT Transformer。

2.2 Vision transformer pre-training

受ViT[14]成功的启发,已经提出了许多不同的ViT Transformer主干[32,45,42,55,41,52,40,53],它们通常在完全监督的环境中在ImageNet-1K[13]数据集上进行训练。最近,人们提出了自我监督学习方法[16,4]
用于训练普通视觉Transformer。以掩蔽图像建模(MIM)为借口任务,这些方法为普通vit Transformer提供了良好的初始化。在本文中,我们专注于姿态估计任务,并采用以MIM预训练为backbone的平面vit Transformer。此外,我们还探讨了使用ImageNet-1K进行预训练对于姿态估计任务是否必要。令人惊讶的是,我们发现使用较小的未标记姿态数据集进行预训练也可以为姿态估计任务提供良好的初始化。

3 ViTPose

3.1 The simplicity of ViTPose(简单)

结构简单。本文的目标是为姿态估计任务提供一个简单而有效的vit Transformer基线,并探索普通和非层次vit Transformer的潜力[14]。因此,我们保持结构尽可能简单,并尽量避免花哨但复杂的模块,即使它们可能会提高性能。为此,我们简单地在Transformer主干之后附加几个解码器层,以估计关于关键点的热图,如图所示。第2(a)段。为了简单起见,我们在解码器层中不采用跳过连接或交叉注意,而是采用简单的去卷积层和预测层,如[44]所示。具体来说,给定一个人物实例图像X∈RH×W×3作为输入,ViTPose首先通过PatchEmbedding层将图像嵌入到令牌中,即F∈R H
d×W d×C,其中d(例如,默认为16)是贴片嵌入层的下采样率,C是通道维度。之后,嵌入的令牌由几个转换器层处理,每个转换器层由多头自注意(MHSA)层和前馈网络(FFN)组成,即

 其中i表示第iTransformer层的输出,并且初始特征F0=PatchEmbed(X)表示在PatchEmbedding层之后的特征。应该注意的是,对于每个变压器层,空间和通道尺寸是恒定的。我们将backbone网络的输出特征表示为

我们采用了两种轻量级解码器来处理从backbone网络中提取的特征并定位关键点。第一个是经典的解码器。它由两个反卷积块组成,每个反卷积块包含一个反卷积层,然后进行批量归一化[20]
以及ReLU[1]。根据先前方法[44,50]的常见设置,每个块对特征图进行2次上采样。然后,利用核大小为1×1的卷积层来获得关键点的定位热图,即。 

其中表示估计的热图(每个关键点一个),Nk是要估计的关键点的数量,对于MS COCO数据集,该数量设置为17。尽管经典的解码器简单而轻便,但我们也在ViTPose中尝试了另一种更简单的解码器,由于ViT Transformer的强大表示能力,它被证明是有效的backbone
具体而言,我们使用双线性插值将特征图直接上采样4次,然后使用ReLU和核大小为3×3的卷积层来获得热图,即。,

 

尽管这种更简单的解码器的非线性容量较小,但与经典解码器和先前代表性方法中精心设计的基于Transformer的解码器相比,它获得了有竞争力的性能,证明了ViTPose的结构简单性。。

3.2 The scalability of ViTPose(可扩展性)

由于ViTPose具有结构简单性,因此可以在图1中的新Pareto前沿选择一个点。1根据部署要求,通过堆叠不同数量的Transformer层和增加或减少特征维度,可以轻松地相应地控制模型大小。从这个意义上说,ViTPose可以受益于可扩展的预训练ViT Transformer的快速开发,而无需对其他部分进行太多修改。为了研究ViTPose的可扩展性,我们使用不同模型容量的预训练backbone,并在MS COCO数据集上对其进行微调。对于
例如,我们将ViT-B、ViT-L、ViT-H[14]和ViTAE-G[52]与经典解码器一起用于姿态估计,并且随着模型大小的增加,观察到一致的性能增益。对于在预训练期间使用大小为14×14的PatchEmbedding的ViT-H和ViTAE-G,我们使用零填充来
针对与ViT-B和ViT-L相同的设置,制定尺寸为16×16的PatchEmbedding。

3.3 The flexibility of ViTPose(灵活性)

预训练数据灵活性。backbone网络的ImageNet[13]预训练实际上是一种良好初始化的例程。然而,它需要姿态数据之外的额外数据,这4使得姿态估计任务的数据要求更高。我们是否可以在整个训练阶段只使用姿势数据来放宽数据要求。为了探索数据灵活性,除了ImageNet[13]预训练的默认设置外,我们使用MAE[16]用MS COCO[29]和MS COCO和AI Challenger[43]的组合对backbone进行预训练
分别通过从图像中随机掩蔽75%的Patch并重建那些Mask Patch。然后,我们使用预先训练的权重来初始化ViTPose的主干,并在MS COCO数据集上微调模型。令人惊讶的是,尽管姿态数据的体积比ImageNet小得多,但用姿态数据训练的ViTPose只能获得有竞争力的性能,这意味着ViTPose可以从不同尺度的数据中灵活地学习良好的初始化。 

分辨率灵活性。我们改变ViTPose的输入图像大小和下采样率d,以评估其在输入和特征分辨率方面的灵活性。具体来说,为了使ViTPose适应更高分辨率的输入图像,我们只需相应的调整输入图像的大小。此外,为了使模型适应较低的下采样率,即较高的特征分辨率,我们只需改变patchEmbedding层的步长,以划分具有重叠的令牌,并保留每个patch的大小。我们发现ViTPose的更高的输入分辨率或更高的特征分辨率性能持续提高。

 Attention型灵活性。由于Attention计算的二次计算复杂性和内存消耗,在更高分辨率的特征图上使用完全Attention将导致巨大的内存占用和计算成本。已经探索了具有相对位置嵌入的基于窗口的Attention[26,27],以减轻处理高分辨率特征图的沉重记忆负担。然而,由于缺乏全局上下文建模能力,简单地对所有Transformer块使用基于窗口的Attention会降低性能。为了解决这个问题,我们采用了两种技术,即1)shift window:我们不使用固定窗口进行注意力计算,而是使用移位窗口机制[32]来帮助在相邻窗口之间广播信息;和2)Pooling window。除了转换窗口机制之外,我们还尝试了另一种通过池化的解决方案。具体来说,我们为每个窗口汇集令牌,以获得窗口中的全局上下文功能。然后,这些特征被输入到每个窗口中,用作密钥和值令牌,以实现跨窗口特征通信。此外,我们证明了这两种策略是互补的,可以一起提高性能和减少内存占用,而不需要额外的参数或模块,只需对Attention计算进行简单的修改

微调灵活性。如NLP领域[31,2]所示,预训练的Transformer模型可以很好地推广到具有部分参数调整的其他任务。为了研究它是否仍然适用于ViT Transformer,我们分别在所有参数未冻结、MHSA模块冻结和FFN模块冻结的情况下,在MS COCO上微调ViTPose。我们根据经验证明,在MHSA模块冻结的情况下,ViTPose获得了与完全微调设置相当的性能

任务灵活性。由于解码器在ViTPose中相当简单和轻量级,我们可以采用多个解码器,而无需太多额外成本,通过共享backbone编码器来处理多个姿态估计任务。我们为每次迭代和提要从多个训练数据集中随机采样实例它们进入主干和解码器,以估计与每个任务相对应的热图。

3.4 The transferability of ViTPose(可转移性)

提高较小模型性能的一种常见方法是从较大模型中转移知识,即知识蒸馏[18,15]。具体而言,给定教师网络T和学生网络S,一种简单的蒸馏方法是添加输出蒸馏损失以强制
学生网络的输出模仿教师网络的输出。, 

 其中Ks和Kt是来自给定相同输入的学生和教师网络的输出。除了上述常见做法外,我们还探索了一种基于令牌的蒸馏方法来桥接大模型和小模型,这是对上述方法的补充。具体来说,我们随机初始化一个额外的可学习知识令牌t,并将其附加到教师模型的补丁嵌入层之后的视觉令牌中。然后,我们冻结训练有素的教师模型,并只调整几个时期的知识令牌来获得知识,即。,

其中,Kgt是真值实况热图,X是输入图像,表示教师的预测,T*表示使损失最小化的最优令牌。之后,知识令牌t*被冻结,并在训练期间与学生网络中的视觉令牌连接
将知识从教师网络转移到学生网络。因此,学生网络的损失是 

 其中分别表示表征蒸馏损失以及输出蒸馏损失和表征蒸馏损失的组合。

 4 Experiments

4.1 Implementation details

ViTPose遵循常见的自上而下的人体姿态估计设置,即使用检测器来检测人物实例,使用ViTPose来估计检测到的实例的关键点。SimpleBaseline[44]的检测结果用于评估ViTPose的性能
在MS COCO Keypoint val集合上。我们使用ViT-B、ViT-L和ViT-H作为主干,并将相应的模型表示为ViTPose-B、ViTPose-L和ViTPose-H。基于mmpose代码库[12],在8个A100 GPU上对模型进行训练。backbone使用MAE[16]预训练的权重进行初始化。mmpose中的默认训练设置用于训练ViTPose模型,即我们使用256×192输入分辨率和AdamW[34]优化器,学习率为5e-4。Udp[19]用于后处理。模型被训练了210个时期,学习率在第170个和第200个时期衰减了10。我们对每个模型的逐层学习速率衰减和随机下降路径比进行了扫描,并在补充中提供了最佳设置

4.2 Ablation study and analysis(消融实验)

结构简单,可扩展。我们分别使用第3.1节中描述的经典解码器和简单解码器来训练ViTPose。我们还使用两个解码器作为参考,使用ResNet[17]作为backbone来训练SimpleBaseline[44]。表1显示了结果。可以观察到使用简单解码器可以导致ResNet-50和ResNet-152的大约18个AP下降。然而,具有ViT Transformer作为主干的ViTPose与简单解码器一起工作得很好,对于ViT-B、ViT-L和ViT-H只有边际性能下降(即,小于0.3个AP)。对于度量AP50和AR50,ViTPose在使用两个解码器中的任何一个时都获得了类似的性能,这表明普通ViT Transformer具有很强的表示能力,并且不需要复杂的解码器。从表中还可以得出结论,ViTPose的性能有所提高随着模型大小的不断增加,ViTPose具有良好的可扩展性。 

 

预训练数据的影响。为了评估ImageNet-1K数据是否是姿态估计任务所必需的,我们使用不同的数据集预训练backbone模型,即ImageNet-1K[13]、MS COCO以及MS COCOCO[29]和AI Challenger[43]的组合。由于ImageNet-1k数据集中的图像是标志性的,我们从MS COCO和AI Challenger训练集中裁剪人物实例,以形成用于预训练的新训练数据。

模型分别在三个数据集上预训练1600个时期,然后在MS COCO数据集上微调210个时期的姿态标注。结果汇总在表2中。可以看出,结合MS COCO和AI Challenger数据进行预训练,与使用ImageNet-1k相比,ViTPose获得了相当的性能。应该注意的是,数据集的体积仅为ImageNet-1k的一半。这意味着对来自下游任务的数据进行预训练具有更好的数据效率,验证了ViTPose在使用预训练数据方面的灵活性。然而,如果仅使用MS COCO数据进行预训练,则AP降低1.3。这可能是由于MS COCO数据集的数量有限造成的,即MS COCO中的实例数量是MS COCO和AI Challenger组合的三分之一。

输入分辨率的影响。为了评估ViTPose是否能很好地适应不同的输入分辨率,我们用不同的输入图像大小训练ViTPose,并在表3中给出结果。ViTPose-B的性能随着输入分辨率的提高而提高。还需要注意的是,平方输入虽然具有更大的分辨率,例如256×256 vs.s.256×192,但并没有带来太多的性能增益。原因可能是MS COCO中人类实例的平均纵横比为4:3,并且平方输入大小与统计数据不太吻合。

注意力类型的影响。如HRNet[38]和HRFormer[48]所示,高分辨率特征图有利于姿态估计任务。通过改变修补嵌入层的下采样率,即从1/16到1/8,ViTPose可以容易地生成高分辨率特征。此外,为了缓解由转换层的二次计算复杂性引起的内存不足问题,可以使用具有移位和池机制的窗口注意,如第3.3节所述。结果如表4所示“Shift”和“Pool”表示轮班窗口 以及池化窗口机制。即使在混合精度训练模式下,直接使用1/8特征大小的全注意力也能在MS COCO val集上获得最好的77.4 AP,同时承受较大的内存占用。窗口关注可以缓解内存问题,同时 以由于缺乏全局上下文建模而导致的性能下降为代价,例如从77.4 AP下降到66.4 AP。移位窗口和池化窗口机制都促进了全局上下文建模的跨窗口信息交换,从而显著提高了10个AP的性能内存增加不到10%。当同时应用这两种机制时,即第5行,性能进一步提高到76.8 AP,这与ViTDet[26]中提出的策略相当,该策略联合使用全注意力和窗口注意力(第6行),但内存要低得多占地面积,即76.8 AP vs.76.9 AP和22.9G内存vs.28.6G内存。比较表4中的第5行和最后一行,我们还注意到,通过将窗口大小从8×8扩大到16×12,可以将性能从76.8 AP进一步提高到77.1 AP,这也优于联合满窗和窗口注意力设置 

部分微调的影响。为了评估vitTransformer是否可以通过部分微调来适应姿势估计任务,我们在三种设置下对ViTPose-B模型进行微调,即完全微调、冻结MHSA模块和冻结FFN模块。如表5所示,在MHSA模块冻结的情况下,与完全微调相比,性能略有下降,即75.1 AP vs.75.8 AP。两种设置的AP50指标几乎相同。然而,当冻结FFN模块并仅微调MHSA模块时,会显著下降3.0 AP。这一发现意味着ViT Transformer的FFN模块更负责特定任务的建模。相比之下,无论是在MIM预训练任务还是特定姿势估计任务中,MHSA模块都更不可知任务,例如,基于特征相似性来建模令牌关系。

 多任务学习的影响。由于ViTPose中的解码器相当简单和轻量级,我们可以通过为每个任务使用共享backbone和单独的解码器,轻松地将ViTPose扩展到多任务联合训练范式。具体而言,我们使用MS COCO[29]、AI Challenger[43]、MPII[3],
以及用于多任务训练的CrowdPose[23]数据集。MS COCO值集的结果列于表6中。补充资料中提供了其他数据集的结果。请注意,我们直接使用多任务训练后的模型进行评估,而无需在MS COCO上对其进行进一步微调。可以观察到,通过使用所有四个数据集进行训练,ViTPose的性能从75.8 AP持续增加到77.5 AP。尽管与MS COCO和AI Challenger的组合(40K vs.s.500K)相比,MPII的体积要小得多,但使用MPII进行训练仍能带来0.1的AP增长,这表明ViTPose可以很好地利用不同数据集中的不同数据。

 可转让性分析。为了评估ViTPose的可转移性,我们使用经典的输出蒸馏和所提出的知识令牌蒸馏来将知识从ViTPose-L转移到ViTPose-B。结果见表7。可以看出,基于令牌的蒸馏为具有边际额外内存占用的ViTPose-B带来了0.2个AP增益,而输出蒸馏带来了0.5个AP增益。这两种蒸馏方法是互补的,将它们结合使用可获得76.6的AP,验证了ViTPose模型的优异可转移性。

 4.3 Comparison with SOTA methods

基于之前的分析,我们使用256×192输入分辨率和多任务训练来进行姿态估计任务,并在MS COCO val和测试开发集上报告结果,如表8所示。所有方法的速度都记录在一个批次大小为64的A100 GPU上。可以观察到
尽管ViTPose的模型尺寸很大,但它在吞吐量和准确性之间取得了更好的平衡,这表明普通ViT Transformer具有很强的表示能力,并且对现代硬件很友好。此外,ViTPose在更大的主链上表现良好。例如,ViTPose-L获得了比ViTPose-B好得多的性能,即在val和测试开发集上分别为78.3 AP和77.3 AP。ViTPose-L以类似的推理速度优于之前的SOTA CNN和transformer模型,包括UPD和TokenPose。可以得出类似的结论
通过比较ViTPose-H(第15行)和HRFormer-B(第9行)的性能得出,其中ViTPose-H获得了更好的性能和更快的推理速度,即79.1 AP vs.s.75.6 AP和241 fps vs.s.158 fps,仅使用MS COCO数据进行训练。通过多任务训练,ViTPose模型的性能进一步提高,这意味着ViTPose具有良好的可扩展性和灵活性。

 然后,我们建立了一个更强的模型ViTPose-G,即使用ViTAE-G[52]主干,该主干具有1B参数、更大的输入分辨率(576×432)以及用于训练的MS COCO和AI Challenger数据,以进一步探索ViTPose的性能极限。Bigdet[7]的一个更强大的检测器也用于提供人物检测结果(COCO数据集的68.5 AP on person class)。如表9所示,在MS COCO测试开发集上,具有ViTAE-Gbackbone的单个ViTPose模型的性能优于所有先前的SOTA方法,为80.9 AP,其中先前的最佳方法UDP++集成了17个模型,并达到80.8 AP,检测器略好(在COCO数据集的人类上为68.6 AP)。在整合了三个模型后,ViTPose进一步获得了最佳的81.1 AP。

 5 Limitation and Discussion

在本文中,我们提出了一种简单而有效的用于姿态估计的vit Transformer基线,即ViTPose。尽管在结构上没有精心设计,但ViTPose在MS COCO数据集上获得了SOTA性能。然而,ViTPose的潜力并没有被更先进的技术充分挖掘,例如复杂的解码器或FPN结构,这可能会进一步提高表演。此外,尽管ViTPose展示了令人兴奋的特性,如简单性、可扩展性、灵活性和可转移性,但还需要进行更多的研究工作,例如,探索基于即时的调优,以进一步展示ViTPose的灵活性。此外,我们相信
ViTPose还可以应用于其他姿势估计任务,例如动物姿势估计[47,9]和面部关键点检测[22,6]。我们把它们留给未来的工作。

6 Conclusion

本文将ViTPose作为基于vit Transformer的人体姿态估计的简单基线。它证明了姿态估计任务的简单性、可扩展性、灵活性和可转移性,通过在MS COCO数据集上进行的大量实验,这些都是合理的。A.具有大backboneViTAE-G的单个ViTPose模型在MS COCO测试开发集上获得了最好的80.9 AP。我们希望这项工作能为社区提供有用的见解,并启发进一步研究探索普通ViT Transformer在更多计算机视觉任务中的潜力。

A Additional results of multi-task learning

为了全面评估ViTPose的性能,除了在MS COCO val和测试开发集上的结果外,我们还分别报告了ViTPose-B、ViTPose-L、ViTPose-H和ViTPose-G在OCHuman[54]val和测试集、CrowdPose[23]测试集、MPII[3]val集和AI Challenger[43]val集上的性能。请注意,ViTPose变体在多任务训练设置下进行训练,并直接进行测试,而无需对特定的训练数据集进行进一步微调,以使整个流程尽可能简单

OCHuman val和测试集。为了评估人体姿态估计模型在严重遮挡的人体实例上的性能,我们在具有地面实况边界框的OCHuman val和测试集上测试了ViTPose变体和代表性模型。我们不收养多余的人检测器,因为并非所有的人类实例都在OCHuman数据集中进行了注释,其中人类检测器将导致许多“假阳性”边界框,并且不能反映姿态估计模型的真实能力。具体来说,与MS COCO对应的ViTPose的解码器头使用数据集,因为MS COCO和OCHuman数据集中的关键点定义相同。结果见表10。与以前具有复杂结构的最先进(SOTA)方法(如MIPNet[21])相比,ViTPose在OCHuman val上获得了超过10个AP的增加集合,尽管在网络结构中没有专门的设计来处理遮挡,这意味着ViTPose具有强大的特征表示能力。还应注意的是,HRFormer[48]从MS COCO到OCHuman的性能大幅下降,并且小模型优于基本模型,即在OCHuman val集上,53.1 AP vs.s 50.4 AP。这些现象表明,HRFormer可能过度拟合MS COCO数据集,尤其是对于更大规模的模型,并且需要额外的微调阶段才能从MS COCO转移到OCHuman。此外,ViTPose显著推动了val和测试集上关键点检测性能的前沿,即获得约图93。这些结果表明,ViTPose可以灵活地处理具有严重闭塞的挑战性病例,并获得SOTA性能。

 CrowdPose test set。为了在CrowdPose[23]数据集上评估ViTPose,我们使用了CrowdPose数据集对应的ViTPose的解码器头和CrowdPoses提供的人体检测结果。如表11所示,ViTPose在CrowdPose上设置了新的最先进技术,即分辨率为256x192的76.6 AP,这优于以前具有更高分辨率和更好检测器的方法,例如MIPNet的70.0。通过具有ViTAE-G[52]backbone和576x432输入分辨率的ViTPose-G,性能可以进一步提高到78.3 AP。结果表明,ViTPose可以很好地适应具有遮挡、截断和外观变体的人群场景

MPII val set

我们评估了ViTPose和具有代表性的模型在具有基本事实边界框的MPII val集上的性能。根据MPII的默认设置,我们使用PCKh作为性能评估的指标。如表12所示,ViTPose变体在单次联合评估和平均评估中都获得了更好的性能,例如,ViTPose-B、ViTPose-L和ViTPose-H在较小的输入分辨率(256x192 vs.s.256x256)下实现了93.4、93.9和94.1的平均PCKh。使用更大的输入分辨率和更大的主干,例如,具有ViTAE-g主干和576x432输入分辨率的ViTPose-g,性能进一步提高到94.3 PCKh,在MPII val集上设置了新的SOTA。

AI Challenger val set。同样,我们评估了ViTPose在具有相应解码器头的AI Challenger val集上的性能。如表13所示,与具有代表性的基于CNN和基于transformer的模型相比,我们的ViTPose获得了更好的性能,即来自ViTPose-H的35.3 AP vs.来自HRNet-w48的33.5 AP和来自HRFromer的34.4 AP。ViTPose-G通过更强的ViTAE-G主干和更大的输入分辨率在数据集上实现了最好的43.2 AP。然而,人工智能挑战者的精度仍然不够高,这表明
需要做出更多的努力来进一步提高性能。

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

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

相关文章

c++获取时间戳的方法总结

目录1. 系统级时间戳获取方法1.1 Windows系统获取时间间隔的方式1.2 Linux系统获取时间间隔的方式1.3 获取时间戳2. c语言获取时间戳1. 系统级时间戳获取方法 1.1 Windows系统获取时间间隔的方式 API说明 Windows平台下使用 GetLocalTime VOID GetLocalTime(LPSYSTEMTIME lp…

axios起步——介绍和使用 post请求

axios起步——介绍和使用基本用例post请求场景复现核心干货axios简介axios是什么?axios特性axios安装axios基本用例发起一个GET请求用axios发起POST请求发起一个POST请求发起多个POST请求利用json-server创建服务,发起四种请求场景复现 最近学习与前端相…

Vue:组件化开发

一、组件的使用 1、创建组件(结构HTML 交互JS 样式CSS) Vue.extend({该配置项和new Vue的配置项几乎相同,略有差别}) 区别:①创建vue组件的时候,配置项中不能使用el配置项。(但是需要使用template配置项来配置模板语句) ②配置项中的da…

Vue常用方法汇总【更新中】

文章目录vue-router 安装使用axios 安装使用vuex 安装使用插件使用方法(含elementUI安装方法)全局变量使用方法父子组件传值方法pythonvue 打包 windows 桌面应用fastApivue 实现 WebSockets 服务端推送在 docker 中使用 nginx 部署 vue 项目声明式路由导…

详解FreeRTOS中的信号量(semaphore)

信号,顾名思义最基础的作用是通知,量,表示数量,意思就是可以有多个信号。在不同的场景延伸下,还有同步和互斥访问资源的作用(这都是通知作用的延伸)。 当"量"没有限制时,…

SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈(Eureka、Ribbon)

微服务技术栈导学 微服务技术是分布式架构(把服务做拆分)的一种 而springcloud仅仅是解决了拆分时的微服务治理的问题,其他更复杂的问题并没有给出解决方案 一个完整的微服务技术要包含的不仅仅是springcloud 微服务技术栈 包括什么 …

什么是远程办公,如何挑选远程办公软件

远程办公已经不再是新型工作模式,随着科技的发展和全球化的趋势,越来越多的企业和个人已经开始接受这种新型的工作模式。远程办公可以让员工在家里或者任何地方工作,不用去公司办公室,大大提高了员工的工作效率和生活质量。本文将…

hdfs命令行操作

文章目录1. 对文件夹进行操作1.1 ls:对路径进行访问1.2 mkdir:对路径进行创建1.3 rm:对路径进行删除2.对文件进行操作2.1在文件系统中创建空文件2.2上传本地文件到hdfs上2.3 从hdfs上下载文件到本地路径2.4 查看hdfs 上的文件内容2.5 对hdfs上的文件进行复制2.6 追加本地文件内…

微服务·入门·贰——注册中心nacos、eureka

文章目录1. 微服务问题解决服务治理问题1.1 问题抛出1.2 解决方法2 Eureka注册中心2.1 Eureka解决的问题2.2 Eureka的结构和作用2.2.1 Eureka的作用2.2.2 order-service如何得知user-service实例地址 ?2.2.3 order-service如何从多个user-service实例中选择具体实例…

家政服务小程序实战开发教程019-我的预约功能(已完结)

我们上一篇讲解了用户注册的功能,注册完毕后页面需要显示用户的头像和昵称,并显示我的预约的菜单,本篇我们介绍一下如何开发。 1 显示用户头像和昵称 在未注册时我们显示了一个默认的头像,已注册需要显示用户的头像。思路是将未…

【零基础入门 Nginx】——万字文章通俗易懂

一、Nginx 简介 1️⃣ Nginx 概述 Nginx(Engine X) 是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强。同时也提供了IMAP/POP3/SMTP服务 nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态…

WebRTC 系列(二、本地通话,H5、Android、iOS)

WebRTC 系列(一、简介)​​​​​​​ 一、整体流程 有了上一篇 WebRTC 简介的基础,我们知道了 WebRTC 的工作流程,接下来就是需要用代码去实现这个流程了。对于不同端,实现起来的难易程度可能略微不同(实…

RHCE第二次作业ssh远程连接和NTP时间服务器

1.配置ntp时间服务器,确保客户端主机能和服务主机同步时间 在服务器准备工作查看服务是否开启,查看是否运行 同步时间,编辑/etc/chrony.conf,层级优先级10,在允许客户机。 暂时关闭防火墙,关闭服务后,重启…

vue3-element-plus表单校验和多选表格table的基本使用

表单校验 <script setup> import { ref } from "vue"; // 登录的表单数据(绑定到最外层的from标签上) //里面的每个属性都与element-plus的表单标签进行双向绑定,具体可以看html代码 const loginForm ref({username: "",password: "",lo…

双向可控硅详细用法说明

可控硅作为功率开关器件&#xff0c;在各种需要控制功率的电子产品中经常用到&#xff0c;我所涉及的行业为家电产品研发&#xff0c;比如发热丝、发热管的控温&#xff0c;或者AC电机、水泵的控速等&#xff1b;由于双向可控硅是在单向可控硅的基础上发展而来且应用场景更广&a…

ucgui的触摸执行过程

在STM32上调试ucosucguI的触摸时&#xff0c;显示上下左右中5个button&#xff0c;但是按上button时触发的却是右button&#xff0c;调试发现显示区域大小正常&#xff0c;触摸区域大小正常。但就是触摸区域无法与实际的button相对应。 分析原因可能是xy轴不匹配&#xff0c;那…

手撕深度学习中的优化器

深度学习中的优化算法采用的原理是梯度下降法&#xff0c;选取适当的初值params&#xff0c;不断迭代&#xff0c;进行目标函数的极小化&#xff0c;直到收敛。由于负梯度方向时使函数值下降最快的方向&#xff0c;在迭代的每一步&#xff0c;以负梯度方向更新params的值&#…

web前端笔记

HTML(安装live server插件) 我们上网时所看到的所有内容其实就是body里面的内容&#xff01; &#xff01; tab 快速生成一个html模板&#xff1b; https://www.runoob.com/tags/html-elementsdoctypes.html html的菜鸟教程&#xff01; html中的元素分为两种&#xff0c;一种…

广州蓝景分享—13个Web开发人员都知道的基本JavaScript函数

各位编程爱好者&#xff0c;今天由小蓝与大家分享13个基本的JavaScript 函数&#xff0c;如果您是 Web前端开发人员&#xff0c;您应该熟悉这些函数。 您可以将本文所有 JavaScript 函数加入收藏至您的工具箱&#xff0c;以便在您的软件项目中尽可能使用这些片段。 1. 检索任…

恐怖的低代码平台,我 All in 了!

本文目录一、低代码平台是什么&#xff1f;二、目前低代码产品平台是如何分类的&#xff1f;三、低代码平台是怎么互相比较的&#xff1f;一个比喻就明白了&#xff01;四、iVX平台的恐怖优势&#xff01;我 All in 了&#xff01;五、iVX的学习成本&#xff1f;总结&#xff1…