当前位置: 首页 > news >正文

Sapiens:人类视觉模型的基础

文章目录

  • 摘要
  • 1、引言
  • 2、相关工作
  • 3、方法
    • 3.1、Humans-300M 数据集
    • 3.2、预训练
    • 3.3、二维姿态估计
    • 3.4、身体部位分割
    • 3.5、深度估计
    • 3.6、表面法线估计
  • 4、实验
    • 4.1、实现细节
    • 4.2、二维姿态估计
    • 4.3、身体部位分割
    • 4.4、深度估计
    • 4.5、表面法线估计
    • 4.6、讨论
  • 5、结论

摘要

我们介绍了 Sapiens,这是一个针对四个基本的以人为中心的视觉任务的模型系列 - 二维姿态估计、身体部位分割、深度估计和表面法线预测。我们的模型原生支持1K高分辨率推理,并且通过简单地对超过3亿张野外人类图像上预训练的模型进行微调,非常容易适应个别任务。我们观察到,在相同的计算预算下,对精选的人类图像数据集进行自监督预训练可以显著提高多样化的以人为中心的任务的性能。产生的模型即使在标记数据稀缺或完全合成的情况下,也表现出对野外数据的显著泛化能力。我们简单的模型设计还带来了可扩展性 - 当我们从0.3亿参数扩展到20亿参数时,模型在各项任务上的性能得到了提升。Sapiens在各种以人为中心的基准测试中始终超越现有的基线。我们在Humans-5K(姿态)上比之前的最佳状态提高了7.6 mAP,在Humans-2K(部分分割)上提高了17.1 mIoU,在Hi4D(深度)上提高了22.4%的相对RMSE,在THuman2(法线)上提高了53.5%的相对角度误差。
在这里插入图片描述

1、引言

近年来,在生成二维[17, 28, 50, 118]和三维[69, 89, 102, 109]的真实感人类方面取得了显著进展。这些方法的成功在很大程度上归功于对各种资产的稳健估计,如二维关键点[14, 67]、细粒度的身体部位分割[119]、深度[113]和表面法线[89, 108]。然而,这些资产的稳健和准确估计仍然是一个活跃的研究领域,而为了提高个别任务的性能而构建的复杂系统往往阻碍了更广泛的应用。此外,在野外环境中获取准确的真值注释是出了名的难以扩展。我们的目标是提供一个统一的框架和模型,以在野外推断这些资产,为每个人解锁广泛的以人为中心的应用。

我们认为,这样的以人为中心的模型应该满足三个标准:泛化、广泛的适用性和高保真度。泛化确保了对未见条件的鲁棒性,使模型能够在不同环境中一致地执行。广泛的适用性表明了模型的多功能性,使其适合在最少修改的情况下进行广泛的任务。高保真度表示模型产生精确、高分辨率输出的能力,这对于忠实的人类生成任务至关重要。本文详细介绍了体现这些属性的模型的开发,统称为 Sapiens。

遵循[34,79,91]中的见解,利用大型数据集和可扩展的模型架构是泛化的关键。为了更广泛的适用性,我们采用了先预训练再微调的方法,使得在预训练后对特定任务的调整可以最小化。这种方法引发了一个关键问题:哪种类型的数据对预训练最有效?鉴于计算限制,应该强调收集尽可能多的人类图像,还是应该在较少策划的集合上进行预训练以更好地反映现实世界的多样性?现有的方法经常忽视了预训练数据分布在下游任务的背景下。为了研究预训练数据分布对特定人类任务的影响,我们收集了Humans-300M数据集,包含了3亿张多样化的人类图像。这些未标记的图像被用来从头开始预训练一系列视觉变换器[27],参数数量从300M到2B不等。

在从大型数据集中学习通用视觉特征的各种自监督方法[5, 19, 34, 47, 48, 121]中,我们选择了掩蔽自编码器(MAE)方法[48],因为它在预训练中的简单性和效率。与对比或多推理策略相比,MAE具有单次推理模型,允许使用相同的计算资源处理更大量的图像。为了提高保真度,与以前的方法相比,我们将预训练的原生输入分辨率提高到1024像素,与现有的最大视觉主干[91]相比,FLOPs增加了约4倍。每个模型都在1.2万亿个标记上进行预训练。表1概述了与早期方法的比较。对于以人为中心的任务的微调[15,101,113,119],我们使用一致的编码器-解码器架构。编码器是用预训练的权重初始化的,而解码器是一个轻量级和特定任务的头部,是随机初始化的。然后对这两个组件进行端到端的微调。我们专注于四个关键任务 - 二维姿态估计、身体部位分割、深度和法线估计,如图1所示。
在这里插入图片描述

与之前的研究[56,122]一致,我们肯定了标签质量对模型在野外性能的关键影响。公共基准[23, 40, 55]通常包含嘈杂的标签,在模型微调期间提供不一致的监督信号。同时,利用细粒度和精确的注释与我们三维人类数字化的主要目标紧密对齐也很重要。为此,我们提出了一个更密集的二维全身关键点集合用于姿态估计,以及一个详细的类别词汇表用于身体部位分割,超越了以前数据集的范围(请参阅图1)。具体来说,我们引入了一个包含308个关键点的全面集合,涵盖身体、手、脚、表面和面部。此外,我们将分割类别词汇表扩展到28个类别,覆盖头发、舌头、牙齿、上/下唇和躯干等身体部位。为了确保注释的质量和一致性以及高度的自动化,我们使用多视图捕获设置来收集姿态和分割注释。我们还利用以人为中心的合成数据进行深度和法线估计,利用RenderPeople[84]的600个详细扫描生成高分辨率的深度图和表面法线。

我们展示了特定领域的大规模预训练与有限但高质量的注释相结合,可以带来强大的野外泛化。总的来说,我们的方法展示了一种有效的策略,用于开发能够执行现实世界场景中的高精度判别模型,而无需收集昂贵和多样化的注释集。

我们的贡献总结如下。

  • 我们介绍了 Sapiens,这是一个在大规模人类图像数据集上预训练的视觉变换器系列。
  • 这项研究表明,简单的数据策划和大规模预训练在相同的计算预算下显著提高了模型的性能。
  • 我们的模型,即使是用高质量或合成标签进行微调,也展示了野外泛化能力。
  • 第一个原生支持1K分辨率的高保真推理模型,用于以人为中心的任务,在2D姿态、身体部位分割、深度和法线估计的基准测试中实现了最先进的性能。

2、相关工作

我们的工作探索了在大量野外人类图像上训练大型架构的极限。我们建立在不同领域的先前工作基础上:大规模预训练、人类视觉任务和大型视觉变换器。

大规模预训练。大规模预训练[26,95]的显著成功,随后是针对语言建模的任务特定微调[2,13,53,96,99,100],已经将这种方法确立为标准实践。同样,计算机视觉方法[1,4,33,34,42,79,82,85,87,120]正在逐步接受大规模数据进行预训练。大型数据集的出现,如LAION5B[90]、Instagram-3.5B[77]、JFT-300M[92]、LVD142M[79]、Visual Genome[60]和YFCC100M[97],使得探索超出传统基准范围的数据语料库成为可能[61, 67, 86]。这一领域的突出工作包括DINOv2[79]、MAWS[91]和AIM[34]。DINOv2通过在LDV-142M数据集[79]上扩展对比iBot[121]方法,实现了生成自监督特征的最新性能。MAWS[91]研究了在十亿图像上掩蔽自编码器(MAE)[48]的扩展。AIM[34]探索了与BERT[26]类似的自回归视觉预训练的可扩展性,用于视觉变换器[27]。与这些主要关注一般图像预训练或零次图像分类的方法不同,我们采取了明确的以人为中心的方法:我们的模型利用大量人类图像进行预训练,随后对一系列与人相关的任务进行微调。

人类视觉任务。大规模3D人类数字化[8, 44, 64, 74]仍然是计算机视觉[12]中的一个关键目标。在控制或工作室环境中已经取得了显著进展[3,59, 63,69,70,76,89],但将这些方法扩展到不受限制的环境中仍然存在挑战[29]。为了应对这些挑战,开发能够执行多个基本任务的多功能模型,如关键点估计[21,35, 46, 51, 57, 78, 80, 93, 106]、身体部位分割[36,40, 41, 41, 75, 104, 105]、深度估计[9,10,32,43,52,66,83,113]和表面法线预测[6,7,31,39,62,88,101,108],从自然设置中的图像中是至关重要的。在这项工作中,我们的目标是开发这些基本人类视觉任务的模型,使其能够泛化到野外环境。

扩展架构。目前,最大的公开可访问的语言模型包含超过100B参数[49],而更常用的语言模型[94, 100]包含约7B参数。相比之下,尽管视觉变换器(ViT)[27]共享类似的架构,但尚未成功扩展到这种程度。虽然在这方面有一些值得注意的尝试,包括开发在文本和图像上训练的密集ViT-4B[20],以及为稳定训练ViT-22B[25]制定的技术,但常用的视觉主干仍然在300M到600M参数之间[24,38,45,68],并且主要在大约224像素的图像分辨率上进行预训练。类似地,现有的基于变换器的图像生成模型,如DiT[81],使用不到700 M参数,并在高度压缩的潜在空间上操作。为了解决这一差距,我们介绍了 Sapiens - 一系列大型、高分辨率的ViT模型,它们在数以百万计的人类图像上以1024像素的图像分辨率进行原生预训练。

3、方法

3.1、Humans-300M 数据集

我们使用一个大约有10亿张野外图像的大型专有数据集进行预训练,该数据集专门关注人类图像。预处理涉及丢弃带有水印、文字、艺术描绘或不自然元素的图像。随后,我们使用现成的人物边界框检测器[103]来过滤图像,保留检测分数高于0.9且边界框尺寸超过300像素的图像。图2提供了我们数据集中每张图片中人数分布的概览,注意到超过2.48亿张图片包含多个主题。
在这里插入图片描述

3.2、预训练

我们遵循掩蔽自编码器[48](MAE)方法进行预训练。我们的模型被训练为根据部分观察重构原始人类图像。像所有自编码器一样,我们的模型有一个编码器,将可见图像映射到潜在表示,以及一个解码器,从这个潜在表示重构原始图像。我们的预训练数据集包括单人和多人图像;每张图像都被调整为固定大小的正方形长宽比。类似于ViT[27],我们将图像划分为具有固定补丁大小的规则非重叠补丁。这些补丁的一个子集被随机选择并掩蔽,其余的则保持可见。掩蔽补丁与可见补丁的比例被定义为掩蔽比率,在整个训练过程中保持固定。我们参考MAE[48]以获取更多细节。图3(顶部)显示了我们预训练模型在未见过的人类图像上的重构。
在这里插入图片描述

我们的模型在各种图像特征上表现出泛化能力,包括尺度、裁剪、主题的年龄和种族以及主题数量。我们模型中的每个补丁标记占图像面积的0.02%,而标准ViTs中占0.4%,这是一个16倍的减少 - 这为我们的模型提供了细粒度的标记间推理。图3(底部)显示,即使在掩蔽比率增加到95%的情况下,我们的模型也能在保留样本上实现对人体解剖结构的合理重构。

3.3、二维姿态估计

我们遵循自上而下的范式,旨在检测输入图像 I ∈ R H × W × 3 \mathbf{I} \in \mathbb{R}^{H \times W \times 3} IRH×W×3中的 K K K个关键点的位置。大多数方法将这个问题视为热图预测,其中每个 K K K热图代表相应关键点在任何空间位置的可能性。类似于[111],我们定义了一个姿态估计变换器 P \mathcal{P} P用于关键点检测。在训练和推理期间,边界框被缩放到 H × W H \times W H×W,并作为输入提供给 P \mathcal{P} P。让 y ∈ R H × W × K \mathbf{y} \in \mathbb{R}^{H \times W \times K} yRH×W×K表示给定输入 I \mathbf{I} I K K K个真实关键点的热图。姿态估计器将输入 I \mathbf{I} I转换为一组预测热图 y ^ ∈ R H × W × K \hat{\mathbf{y}} \in \mathbb{R}^{H \times W \times K} y^RH×W×K,使得 y ^ = P ( I ) \hat{\mathbf{y}}=\mathcal{P}(\mathbf{I}) y^=P(I) P \mathcal{P} P被训练以最小化均方误差损失 L pose  = MSE ⁡ ( y , y ^ ) \mathcal{L}_{\text {pose }}=\operatorname{MSE}(\mathbf{y}, \hat{\mathbf{y}}) Lpose =MSE(y,y^)。在微调期间, P \mathcal{P} P的编码器用预训练的权重初始化,解码器则随机初始化。长宽比 H : W H: W H:W被设置为4:3,相应的预训练位置嵌入被相应地插值[58]。我们使用具有反卷积和卷积操作的轻量级解码器。

我们在多个骨架上微调 P \mathcal{P} P的编码器和解码器,包括 K = 17 K=17 K=17[67]、 K = 133 K=133 K=133[55]和一个新的高度详细的骨架, K = 308 K=308 K=308,如图4(左)所示。与最多有68个面部关键点的现有格式相比,我们的注释包括243个面部关键点,包括围绕眼睛、嘴唇、鼻子和耳朵的代表性点。这种设计旨在精心捕捉现实世界中面部表情的细微细节。利用这些关键点,我们手动注释了来自室内捕获设置的100万张4K分辨率图像。
在这里插入图片描述

3.4、身体部位分割

通常被称为人体解析的身体部位分割旨在将输入图像 I \mathbf{I} I中的像素分类到 C C C个类别中。大多数方法[40]将这个问题转化为估计每个像素的类别概率,以创建一个概率图 p ^ ∈ R H × W × C \hat{\mathbf{p}} \in \mathbb{R}^{H \times W \times C} p^RH×W×C,使得 p ^ = S ( I ) \hat{\mathbf{p}}=\mathcal{S}(\mathbf{I}) p^=S(I),其中 S \mathcal{S} S是分割模型。如前所述,我们对 S \mathcal{S} S采用相同的编码器-解码器架构和初始化方案。 S \mathcal{S} S被微调以最小化实际 p \mathbf{p} p和预测 p ^ \hat{\mathbf{p}} p^概率图之间的加权交叉熵损失 L seg  = WeightedCE ⁡ ( p , p ^ ) \mathcal{L}_{\text {seg }}=\operatorname{WeightedCE}(\mathbf{p}, \hat{\mathbf{p}}) Lseg =WeightedCE(p,p^)

我们在两个部分分割词汇表上微调 S \mathcal{S} S:一个标准集, C = 20 C=20 C=20[40],和一个更新更大的词汇表, C = 28 C=28 C=28,如图4(右)所示。我们提出的词汇表在重要方面超越了以前的数据集。它区分了四肢的上半部和下半部,并纳入了更详细的分类,如上/下唇、牙齿和舌头。为此,我们用这个词汇表手动注释了100K张4K分辨率的图像。

3.5、深度估计

对于深度估计,我们采用了用于分割的架构,并进行了修改,使得解码器输出通道设置为1用于回归。我们用 d ∈ R H × W \mathbf{d} \in \mathbb{R}^{H \times W} dRH×W表示图像 I \mathbf{I} I的真实深度图,用 D \mathcal{D} D表示深度估计器,其中 d ^ = D ( I ) \hat{\mathbf{d}}=\mathcal{D}(\mathbf{I}) d^=D(I),用 M M M表示图像中的人类像素数量。对于相对深度估计,我们使用图像中的最大和最小深度将 d \mathbf{d} d归一化到范围 [ 0 , 1 ] [0,1] [0,1]内。深度估计器 D \mathcal{D} D L depth  \mathcal{L}_{\text {depth }} Ldepth 损失[32]定义如下:

Δ d = log ⁡ ( d ) − log ⁡ ( d ^ ) Δ d ‾ = 1 M ∑ i = 1 M Δ d i , L depth  = ( Δ d ) 2 − 1 2 ( Δ d ) 2 ‾ \begin{aligned} \Delta \mathbf{d} & =\log (\mathbf{d})-\log (\hat{\mathbf{d}}) \\ \overline{\Delta \mathbf{d}} & =\frac{1}{M} \sum_{i=1}^{M} \Delta \mathbf{d}_{i}, \\ \mathcal{L}_{\text {depth }} & =\sqrt{(\Delta \mathbf{d})^{2}}-\frac{1}{2}\left(\overline{\Delta \mathbf{d})^{2}}\right. \end{aligned} ΔdΔdLdepth =log(d)log(d^)=M1i=1MΔdi,=(Δd)2 21(Δd)2

我们使用600个高分辨率摄影测量人类扫描生成50万张合成图像,如图5所示,以获得一个鲁棒的单目深度估计模型,具有高保真度。从100个HDRI环境贴图集合中随机选择背景。我们在场景中放置一个虚拟相机,随机调整其焦距、旋转和平移,以捕获图像及其相关的4K分辨率真实深度图。
在这里插入图片描述

3.6、表面法线估计

类似于前面的任务,我们将法线估计器 N \mathcal{N} N的解码器输出通道设置为3,对应于每个像素处法向量的 x , y , z x, y, z x,y,z分量。生成的合成数据也用作表面法线估计的监督。让 n \mathbf{n} n表示图像 I \mathbf{I} I的真实法线图, n ^ = N ( I ) \hat{\mathbf{n}}=\mathcal{N}(\mathbf{I}) n^=N(I)。类似于深度估计,损失 L normal  \mathcal{L}_{\text {normal }} Lnormal 只对图像中的人类像素计算,并定义如下:

L normal  = ∥ n − n ^ ∥ 1 + ( 1 − n ⋅ n ^ ) \mathcal{L}_{\text {normal }}=\|\mathbf{n}-\hat{\mathbf{n}}\|_{1}+(1-\mathbf{n} \cdot \hat{\mathbf{n}}) Lnormal =nn^1+(1nn^)

4、实验

在这一部分,我们首先提供实现细节的概述。随后,我们在四个任务:姿态估计、部分分割、深度估计和法线估计上进行全面的基准测试。

4.1、实现细节

我们最大的模型Sapiens-2B,使用1024个A100 GPU,使用PyTorch预训练了18天。我们所有的实验都使用AdamW[73]优化器。学习计划包括一个简短的线性预热,然后是预训练的余弦退火[72]和微调的线性衰减[65]。所有模型都是从零开始预训练的,分辨率为1024×1024,补丁大小为16。对于微调,输入图像被调整为4:3的比例,即1024×768。我们使用标准的增强,如裁剪、缩放、翻转和光度失真。对于分割、深度和法线预测任务,从非人类COCO[67]图像中添加随机背景。重要的是,我们使用差异化学习率[114]来保持泛化,即初始层的学习率较低,后续层的学习率逐渐提高。逐层学习率衰减设置为0.85,编码器的权重衰减为0.1。我们在表2中详细说明了Sapiens的设计规格。按照[34, 100],我们优先通过宽度而不是深度来扩展模型。请注意,尽管Sapiens-0.3B模型在架构上类似于传统的ViT-Large,但由于其更高的分辨率,它包含了二十倍的FLOPs。

在这里插入图片描述

4.2、二维姿态估计

我们在高保真注释上对Sapiens进行微调,用于面部、身体、脚部和手部( K = 308 K=308 K=308)的姿态估计。训练时,我们使用包含100万张图片的训练集,评估时,我们使用名为Humans5K的测试集,包含5000张图片。我们的评估是自上而下的[111],即使用现成的检测器[37]进行边界框检测,并进行单人姿态推断。表3显示了我们的模型与现有全身姿态估计方法的比较。我们在我们308个关键点词汇和COCOWholeBody[55]的133个关键点词汇之间的114个共同关键点上评估所有方法。Sapiens-0.6B超越了当前最先进的DWPose-1[115],提高了+2.8 AP。与使用复杂师生框架和为任务量身定制的特征蒸馏的DWPose[115]不同,Sapiens采用了具有大型以人为中心预训练的通用编码器-解码器架构。
在这里插入图片描述

有趣的是,即使在相同的参数数量下,我们的模型也展现出比它们对应的模型更优越的性能。例如,Sapiens-0.3B超过了VitPose±L +5.6 AP,Sapiens-0.6B比VitPose±H高出+7.9 AP。在Sapiens家族中,我们的结果表明模型大小与性能之间存在直接相关性。Sapiens-2B以61.1 AP设定了最新标准,比之前的方法显著提高了+7.6 AP。尽管使用了室内捕捉工作室的注释进行微调,Sapiens还是表现出对现实世界的鲁棒泛化能力,如图6所示。
在这里插入图片描述

4.3、身体部位分割

我们使用28类分割词汇表对注释进行微调和评估。我们训练集包含10万张图片,测试集Humans-2K包含2000张图片。我们将Sapiens与在我们训练集上微调的现有身体部位分割方法进行比较。重要的是,我们使用每种方法建议的预训练检查点作为初始化。与姿态估计类似,我们观察到分割的泛化,如表4所示。
在这里插入图片描述

有趣的是,我们最小的模型Sapiens-0.3B由于其更高的分辨率和大型以人为中心的预训练,超越了现有的最先进分割方法,如Mask2Former[22]和DeepLabV3+[18],提高了12.6 mIoU。此外,增大模型尺寸可以提高分割性能。Sapiens-2B在测试集上实现了81.2 mIoU和89.4 mAcc的最佳性能。图7显示了我们模型的定性结果。
在这里插入图片描述

4.4、深度估计

我们在THuman2.0[117]和Hi4D[116]数据集上评估我们的模型进行深度估计。THuman2.0由526个高质量人类扫描组成,我们从中衍生出三组用于测试的图像:a) 面部,b) 上半身,c) 整个身体,使用虚拟相机。因此,THuman2.0拥有1578张图像,从而能够在多个尺度上评估我们模型在单人体图像上的性能。相反,Hi4D数据集专注于多人场景,每个序列展示两个参与涉及人与人之间交互的活动的主题。我们选择了来自28、32和37对的序列,特写6个独特的主题从相机4,总共1195张多人真实图像用于测试。我们遵循MiDaSv3.1[11]建立的相对深度评估协议,报告标准指标,如AbsRel和 δ 1 \delta_{1} δ1。此外,我们还报告RMSE作为我们的主要指标,因为 δ 1 \delta_{1} δ1在以微妙深度变化为特征的人类场景中不能有效反映性能。
在这里插入图片描述

表5将我们的模型与现有的最先进的单目深度估计器进行了比较。Sapiens-2B仅在合成数据上微调,在所有单人体尺度和多人场景中显著超越了先前的艺术。我们在Hi4D图像上与表现最好的Depth-Anything模型相比,观察到RMSE减少了20%。重要的是要强调,虽然基线模型是在各种场景上训练的,Sapiens专门用于以人为中心的深度估计。图8展示了Sapiens-1B与DepthAnything-L深度估计的定性比较。为确保公平比较,在基线可视化中使用人类掩模重新标准化预测的深度。
在这里插入图片描述
在这里插入图片描述

4.5、表面法线估计

用于表面法线评估的数据集与用于深度估计的数据集相同。按照[30],我们报告平均角误差和中值角误差,以及在 t ∈ { 11.2 5 ∘ , 22. 5 ∘ , 3 0 ∘ } t \in\{11.25^{\circ}, 22.5^{\circ}, 30^{\circ}\} t{11.25,22.5,30}错误内的像素百分比。表6将我们的模型与现有的特定于人类的表面法线估计器进行了比较。我们所有的模型都以显著的优势超越了现有的方法。Sapiens-2B在THuman 2.0(单人体)和Hi4D(多人)数据集上实现了大约 1 2 ∘ 12^{\circ} 12的平均误差。我们在图9中对Sapiens-1B与PIFuHD[89]和ECON[108]的表面法线估计进行了定性比较。注意,PI-FuHD[89]是用与我们相同的3D扫描集训练的,而ECON[108]是用4000个扫描训练的,这是我们3D扫描数据的超集。
在这里插入图片描述

4.6、讨论

预训练数据源的重要性。特征质量与预训练数据质量密切相关。我们通过在相同的训练计划和迭代次数下对每个数据集进行Sapiens-0.3B的预训练,评估了在各种数据源上进行以人为中心任务预训练的重要性。我们在每项任务上对模型进行微调,并选择早期检查点进行评估,理由是早期阶段的微调更好地反映了模型的泛化能力。我们研究了使用Sapiens对一般图像(可能包括人类)与专门人类图像进行大规模预训练的影响。我们从我们的10亿图像库中随机选择1亿和3亿一般图像,分别创建General-100M和General300M数据集。表7展示了预训练结果的比较。我们报告了Humans-5K上姿态的mAP,Humans-2K上分割的mIoU,THuman2.0上深度的RMSE,以及Hi4D上法线估计度的平均角误差。与[112]的发现一致,我们的结果表明,使用Human300M进行预训练在所有指标上都带来了更优越的性能,突出了在固定计算预算内以人为中心预训练的好处。
在这里插入图片描述
在这里插入图片描述

我们还研究了预训练期间看到的独特人类图像数量对法线估计性能的影响。我们报告了在 3 0 ∘ 30^{\circ} 30内的正确百分比。同样,我们为Sapiens-0.3B的预训练和微调保持了相同的条件。图10显示,随着预训练数据大小的增加,性能稳步提高,没有饱和。总之,预训练期间观察到的人类图像的多样性与下游任务的泛化能力直接相关。

零样本泛化。我们的模型在多种设置中展现出广泛的泛化能力。例如,在分割任务中,Sapiens是在具有有限主体多样性、最小背景变化和仅有第三人称视角的单人体像上进行微调的(见图4)。尽管如此,我们大规模的预训练使模型能够泛化到不同数量的主体、不同年龄和第一人称视角,如图11所示。这些观察结果同样适用于其他任务。
在这里插入图片描述

局限性。虽然我们的模型通常表现良好,但它们并不完美。具有复杂/罕见姿态、拥挤和严重遮挡的人类图像具有挑战性(详见补充材料)。尽管积极的数据处理增强和检测-裁剪策略可以缓解这些问题,但我们设想我们的模型是作为一个工具,用于获取大规模的真实世界监督,并结合人机交互来开发下一代人类视觉模型。

5、结论

Sapiens代表着将人类中心视觉模型提升到基础模型领域的重要一步。我们的模型在多种人类中心任务上展示了强大的泛化能力。我们将模型的最先进性能归因于:(i)在专门针对理解人类的大型策划数据集上进行的大规模预训练,(ii)扩展的高分辨率和高容量视觉变换器主干,以及(iii)在增强的工作室和合成数据上的高质量注释。我们相信这些模型可以成为众多下游任务的关键构建块,并向更广泛的社群提供高质量的视觉主干。未来工作的潜在方向是将Sapiens扩展到3D和多模态数据集。

致谢:我们要感谢何文和Srivathsan Govindarajan对Sapiens的训练和优化做出的贡献。

相关文章:

Sapiens:人类视觉模型的基础

文章目录 摘要1、引言2、相关工作3、方法3.1、Humans-300M 数据集3.2、预训练3.3、二维姿态估计3.4、身体部位分割3.5、深度估计3.6、表面法线估计 4、实验4.1、实现细节4.2、二维姿态估计4.3、身体部位分割4.4、深度估计4.5、表面法线估计4.6、讨论 5、结论 摘要 我们介绍了 …...

“健康中国 医路无忧——公益联盟”积极响应,国内首支公益陪诊师志愿队伍正式成立

在快节奏的现代生活中,就医不再是简单的“看病”那么简单。面对复杂的医疗流程、专业的医学术语、以及在陌生环境中的焦虑,患者及家属往往感到无所适从。此时,陪诊服务如同一束光,照亮了就医之路,它的重要性不仅体现在…...

Java 创建对象方法的演变

1、普通 Java 代码 public class Rectangle {private int width;private int length;public Rectangle() {System.out.println("Hello World!");}public void setWidth(int widTth) {this.width widTth;}public void setLength(int length) {this.length length;}…...

Netty中用到了哪些设计模式

Netty作为一个高性能的网络通信框架,里面有很多优秀的代码值得我们学习,今天我们一起看下Netty中用到了哪些设计模式。 一、单例模式 Netty通过 NioEventLoop 将通道注册到选择器,并在事件循环中多路复用它们。其中提供了一个选择策略对象 S…...

第67期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…...

Chrome 浏览器插件获取网页 window 对象(方案三)

前言 最近有个需求,是在浏览器插件中获取 window 对象下的某个数据,当时觉得很简单,和 document 一样,直接通过嵌入 content_scripts 直接获取,然后使用 sendMessage 发送数据到插件就行了,结果发现不是这…...

动态规划-分割回文串ⅡⅣ

在本篇博客中将介绍分割回文串Ⅱ以及分割回文串Ⅳ这两个题目。 分割回文串Ⅱ 题目描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。 返回符合要求的 最少分割次数 。 示例: 输入:s "aabac" 输…...

Python编码系列—Python项目维护与迭代:持续进化的艺术

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...

【鸿蒙开发工具报错】Build task failed. Open the Run window to view details.

Build task failed. Open the Run window to view details. 问题描述 在使用deveco-studio 开发工具进行HarmonyOS第一个应用构建开发时,通过Previewer预览页面时报错,报错信息为:Build task failed. Open the Run window to view details.…...

k8s集群部署:容器运行时

1. 卸载旧版本 Docker # 卸载旧版本的 Docker 组件 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine注释: 该命令会移除系统中现有的 Docker 及其相关组件&#xff0…...

PHP7 的内核结构

PHP7 是 PHP 语言的一个重要版本,带来了许多性能提升和语言特性改进。要深入了解 PHP7 的内核,我们需要探讨其设计和实现的关键方面,包括 PHP 的执行模型、内存管理、编译和优化过程等。 1. PHP7 的内核结构 1.1 执行模型 PHP 是一种解释型…...

JVM合集

序言: 1.什么是JVM? JVM就是将javac编译后的.class字节码文件翻译为操作系统能执行的机器指令翻译过程: 前端编译:生成.class文件就是前端编译后端编译:通过jvm解释(或即时编译或AOT)执行.class文件时跨平台的,jvm并不是跨平台的通过javap进行反编译2.java文件是怎么变…...

tomcat端口被占用解决方法

在安装目录的conf下修改server.xml文件,修改后保存重启即可...

全新的训练算法:Reflection 70B进入大众的视野

在2024年9月6日,大模型的圈子迎来了一位新成员——Reflection 70B,它横扫了MMLU、MATH、IFEval、GSM8K等知名的模型基准测试,完美超越了GPT-4o,同时也超越了Claude3.5 Sonnet成为了新的大模型之王,Reflection 70B到底是…...

静态标注rtk文件参数解析

目录 在静态标注中,rtk(Real-Time Kinematic)文件的主要作用 rtk文件包含几种类型数据 具体作用 具体示例 %RAWIMUSA #INSPVAXA $GPRMC 背景: 最近工作中涉及到静态标注 slam相关,因为初入门,对于rtk文件中有很多参数&…...

TensorFlow和PyTorch小知识

TensorFlow和PyTorch是当前最流行的两个开源机器学习库,它们都广泛用于研究和工业界的深度学习项目。下面是对它们的介绍: 1,TensorFlow - **开发背景:** TensorFlow最初由Google Brain Team开发,并于2015年11月开源…...

Java证书信息收集

1.Java二级 【NCRE 二级Java语言程序设计02】考试流程及二级Java大纲_java语言程序设计计算机二级-CSDN博客...

flink写入hudi MOR表

第一步:创建flink内存表从kafka读取数据: DROP TABLE IF EXISTS HUDI_KAFKA_DEBEZIUM_ZHANG; CREATE TABLE IF NOT EXISTS HUDI_KAFKA_DEBEZIUM_ZHANG( ID STRING comment 编码 ,NAME STRING comment 名称 ,PRIMARY KEY(RCLNT,RLDNR,RRCTY,RVERS,RYEAR,…...

智能工厂程序设计 之-2 (Substrate) :三个世界--“存在的意义”-“‘我’的价值的实现” 之2

Q13、我刚看了一下前门前面的讨论。有一段文字您的重新 理解一下。那就是: 对题目 的另一角度( “智能工厂的程序设计”的三个层次词 分别关注的问题 及其 解决 思路的描述)的解释: 三个不同层次(深度)&…...

概要设计例题

答案:A 知识点: 概要设计 设计软件系统的总体结构:采用某种方法,将一个复杂的系统按照功能划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间…...

注册表模式:使用注册表和装饰器函数的模块化设计

在现代软件开发中,模块化设计是提高代码可维护性和可扩展性的关键技术之一。本文将探讨如何使用注册表(Registry)和装饰器函数(Decorator Function)来实现模块化设计,提升代码的灵活性和可扩展性。 什么是…...

怎样将vue项目 部署在ngixn的子目录下

如果同一服务器的80端口下,需要部署两个或以上数量的vue项目,那么就需要将其中一个vue项目部署在根目录下,其他的项目部署在子目录下. 像这样的配置 访问根目录 / 访问灭火器后台管理,访问 /mall/ 访问商城的后台管理 那么商场的vue项目,这样配置,才能在/mall/下正常访问? 1…...

FPGA开发:Verilog数字设计基础

EDA技术 EDA指Electronic Design Automation,翻译为:电子设计自动化,最早发源于美国的影像技术,主要应用于集成电路设计、FPGA应用、IC设计制造、PCB设计上面。 而EDA技术就是指以计算机为工具,设计者在EDA软件平台上…...

哈希表,算法

一.什么是哈希表 哈希表是一种用于快速数据存取的数据结构。它通过哈希函数将键(key)映射到表中的一个位置,从而实现高效的插入、删除和查找操作。 二.哈希冲突 哈希冲突发生在多个键通过哈希函数映射到哈希表的同一位置时。由于哈希表的大…...

Java数组的定义及遍历

数组的声明 长度不能超过定义的长度。超过则会报错通过下标来访问 数组的遍历 最常用最简单的方法是增强for循环。...

【电路笔记】-反相运算放大器

反相运算放大器 文章目录 反相运算放大器1、概述2、理想反相运算放大器3、实际反相运算放大器3.1 闭环增益3.2 输入阻抗3.3 输出阻抗4、反相运算放大器示例5、总结1、概述 上一篇关于同相运算放大器的文章中已介绍了该运算放大器配置的所有细节,该配置在同相引脚 (+) 上获取输…...

【电子通识】半导体工艺——刻蚀工艺

在文章【电子通识】半导体工艺——光刻工艺中我们讲到人们经常将 Photo Lithography(光刻)缩写成 Photo。光刻工艺是在晶圆上利用光线来照射带有电路图形的光罩,从而绘制电路。光刻工艺类似于洗印黑白照片,将在胶片上形成的图像印…...

vue-router 之如何在模版(template)中获取路由配置信息?

vue-router 之如何在模版(template)中获取路由配置信息? 获取当前路由信息 在vue3 中,route通常使用useRoute()钩子获取的,**代表当前激活的路由信息。**它包含了与当前路由相关的数据,比如路径、参数、查…...

HPL 源码结构分析

文件夹结构: $ cd /home/hipper/ex_hpl_hpcg/ $ pwd $ mkdir ./openmpi $mkdir ./openblas $mkdir ./hpl $ tree 1. 安装openmpi 1.1.1 使用Makefile下载配置编译安装 openmpi Makefile: all:wget https://download.open-mpi.org/release/open-m…...

Java代码审计篇 | ofcms系统审计思路讲解 - 篇3 | 文件上传漏洞审计

文章目录 0. 前言1. 文件上传代码审计【有1处】1.1 可疑点1【无漏洞】1.1.1 直接搜索upload关键字1.1.2 选择第一个,点进去分析一下1.1.3 分析this.getFile()方法1.1.4 分析new MultipartRequest(request, uploadPath)1.1.5 分析isSafeFile()方法1.1.6 分析request.…...