摘要
基于模型的人体姿态估计目前有两种不同的方法。
- 基于优化的方法,以迭代的方式将参数化身体模型与二维观测图像相匹配【或 拟合】,以此与图像模型精确对齐,但通常对【初始化】缓慢和敏感。
- 相比之下,基于回归的方法,使用深度网络从像素直接估计模型参数往往更合理,但精度并非像素级的,同时需要大量的【监督】信息。
在这项工作中,我们没有研究哪种方法更好,而是认为两种范式可以形成强有力的【合作】。
- 直接用【网络回归估计】来 初始化 迭代优化,使模型和图像的拟合更快,更准确。
- 同时,【迭代优化】的 像素级精度拟合 可以作为对网络的强有力监督。
这是我们提出的方法SPIN (SMPL oPtimization IN the loop)的核心。
首先在深度学习迭代训练过程中,我们用【深度网络】 初始化 一个 【迭代优化程序】,来将【身体模型body model】拟合到【2D关节 2D joints】上,这个【拟合的结果】接着用来监督网络,以此来指导网络的更新。
我们的方法本质上是可以自我改进的,因为越好的【深度学习网络 初始化的模型】,越是可以更好地引导【优化算法】得到更好的拟合模型,而更准确的【优化拟合的模型】也为【神经网络】提供了更好的监督。
since better 【network estimates】 can lead the 【optimization】 to better solutions, while more accurate 【optimization】 fits provide better supervision for the network.
我们证明了我们的方法在不同的环境下的有效性,其中包括3D groud truth是稀缺的,或不可用的场景,我们始终比当前最先进的基于模型的姿态估计方法更具有显著的优势。
网站:https://seas.upenn.edu/˜nkolot/projects/spin
自我总结一段:
姿态估计有两种方法:
- 一种是基于迭代像素拟合模型的优化算法,但是初始化过程慢且初始化对结果的影响较大。
- 一种是基于神经网络直接拟合模型的回归算法,这个快稳但是精度并非像素级。
两者做个结合:用神经网络拟合一个初始化模型,然后再用迭代优化算法去验证这个模型,以此作为监督信息来指导网络更新。
网络更新几轮后,神经网络拟合的模型更好了,迭代算法像素级检查发现误差变小了。
1、引言
随着深度学习架构的出现,基于回归和基于优化的方法之间的困境,许多计算机视觉问题比以往任何时候都更加相关。我们应该回归相对相机姿态,还是使用光束法平差?是回归一个面部模型的参数更合适,还是让模型适合面部地标?这类问题在我们的社区中无处不在。其中,基于3D模型的人体姿态估计也引发了类似的讨论,因为基于优化的方法[4,18]和基于回归的方法[15,24,27]最近都取得了显著的成功。然而,有人可能会认为这两种范式都有各自的优缺点(图1)。基于此,在本研究中,我们主张,如果我们旨在推动该领域的发展,而不是关注哪一种范式更好,我们需要考虑两种范式之间的合作方式。
虽然基于3D模型的人体姿态是一个非常具有挑战性和高度模糊的问题,已经有基本的工作试图解决这个问题。
- 基于优化的方法[4,8,18]已经得到了很好的探索和理解。给定一个人体的参数化模型,例如SMPL[20],迭代拟合方法试图估计最能解释二维观察者变化(最典型的是二维关节位置)的身体姿态和形状。由于我们明确地优化了模型与图像特征的一致性,我们通常会得到很好的拟合,但优化往往是非常缓慢的,并且对初始化的选择相当敏感。
- 另一方面,最近的深度学习进展已经将焦点转移到纯粹基于回归的方法,使用深度网络直接从图像中回归模型的参数[15,24,27]。理论上,这是一个非常有前途的方向,因为深度回归可以考虑所有像素值,而不是只依赖于一组稀疏的2D位置。不幸的是,这种类型的一次预测可能会导致平庸的图像模型对齐,而同时需要大量的数据来正确地训练网络。
- 因此,很自然地,每种方法都有大量支持和反对的论据。
在这项工作中,我们提倡不要争论一种或另一种范式,我们应该拥抱每一种方法的优点和缺点,并在培训期间紧密合作使用它们。在我们的方法中,利用深度网络回归SMPL参数度量模型[20]的参数。这些回归值 初始化 迭代拟合程序,使模型与给定2D关键点的图像对齐。随后,将拟合模型的参数作为网络的监督,闭合回归与优化方法之间的回路。这是我们的方法SPIN的核心,它在训练循环中适合模型,并使用它作为对神经网络的一种特权形式的监督(图2)。
我们提出的方法的一个关键特征是,它本质上是自我改进的。在早期训练阶段,网络会产生接近平均位姿的结果,这意味着迭代拟合容易出现误差。随着迭代拟合模块向网络提供更多的示例作为监督,它将学会产生更有意义的形状,也将导致优化到更准确的模型拟合。
此外,由于迭代拟合只需要二维关键点来拟合模型,所以即使没有对应的3D ground truth图像,我们的网络也可以进行训练,因为3D监督将由优化模块提供。
最后,也是最关键的性能方面,我们的网络是在明确的3D监督下训练的,以模型参数和完整形状的形式,而不是像之前的工作[15,27]中较弱的2D重投影误差。这种特殊的监督形式对提高回归绩效非常重要。我们的方法在不同的设置和各种室内和野外数据集中进行了基准测试,它比最先进的基于模型的方法有很大的优势。
就是说损失函数也采用了最先进的方法。
我们总结了我们的方法的贡献如下:
- 我们提出了SPIN,一种自我改进的方法,通过回归和基于优化的方法的紧密合作,用于训练神经网络,以进行3D人体姿态和形状估计。
- 由于监督是由迭代拟合模块提供的,即使没有具有3D ground truth的图像可供训练,训练也是可行的。
就是说没有标签我们也能很好的训练:监督信息来自于迭代拟合模块。
- 拟合模型为我们的网络提供了明确的基于模型的监督,与较弱的2D监督(例如,重投影损失)相比,这对提高性能至关重要。
- 我们实现了最先进的结果,在基于模型的三维姿态和形状估计跨越许多基准。
2、相关工作
近年来,基于骨骼的单幅图像三维人体姿态估计研究取得了重大进展,许多方法都取得了令人印象深刻的结果[21,23,29,33,35,45]。虽然这一行的工作提高了对三维人体姿态估计的兴趣,这里我们将重点审查基于模型的姿态估计。
这类方法考虑人体的参数化模型,如SMPL[20]或SCAPE[2],目标是估计整个身体的3D姿势和形状。
- 基于优化的方法:基于优化的方法曾经是基于模型的人体姿态估计的主要范式。该领域[8,31]的早期工作试图使用轮廓或关键点来估计SCAPE模型的参数,通常需要一些人工用户干预。最近,Bogo et al.[4]引入了第一种全自动方法SMPLify。使用现成的关键点检测器[28],SMPLify将SMPL与二维关键点检测相结合,利用强先验来指导优化。除了SMPLify,对标准管道的不同更新已经在装配过程中进行了研究,轮廓线索[18],多视图[10],甚至处理多人[42]。最近,一些作品已经证明适合在多视图[14]以及单视图设置中更具有表现力的模型[26,41]。在这项工作中,我们利用基于优化的方法的特殊有效性来产生像素级精确的匹配,但不是在测试时使用它们来产生良好的预测,我们的目标是利用它们来为神经网络提供直接监督。(非测试阶段,而是验证阶段。)
- 基于回归的方法:另一方面,最近的工作完全依赖回归来解决三维人体姿态和形状估计的问题。在大多数情况下,给定单个RGB图像,使用深度网络回归模型参数。考虑到缺乏具有完整3D形状ground truth的图像,这些工作的大多数都集中在替代监督信号来训练深度网络。它们大多严重依赖2D注释,包括2D关键点、轮廓或部分分割。该信息可以作为输入[37],中间表示[24,27],或者作为监督,通过强制不同的重投影损失[15,24,27,34,37]。虽然这些约束非常有用,但它们对网络的监督很弱。相反,我们认为强大的【基于模型的监督】,即对模型参数和/或 输出网格的直接监督,是提高性能的关键。虽然这种类型的ground truth很少可用,但我们在训练回路中使用一个拟合例程作为强监督信号来训练网络。
- 迭代拟合满足直接回归:用回归方法改善拟合的想法,反之亦然,以前也在文献中被考虑过。早期的优化方法需要良好的初始化估计,可以通过判别方法[31]得到。Lassner等[18]使用SMPLify获得较好的模型拟合,可以用于后续的回归任务(如部分分割或特征检测)。Rogez等人[29]也为训练使用了3D姿势伪注释。Pavlakos等人[27]使用来自他们网络的初始预测来初始化和锚定SMPLify优化例程。Varol等人[38]提出了SMPLify的扩展以适应SMPL对其网络的回归体积表示。虽然以前的工作也考虑了这两种方法的好处,但在我们的工作中,我们提出了一个更紧密的合作,将拟合方法纳入训练循环,以一种自我改进的方式,以更好地监督网络。
为把我们的方法放在一个更大的背景下,将直接回归网络与不同的优化程序组合的想法也出现在不同的设置。Tompson等人在二维人体姿态估计中提出了将网络与图形模型联合训练的方法。同样,对于分割,在分割网络[7]上使用CRF也是比较流行的,而展开CRF优化来与优化联合训练网络也有研究[30,44]。这些思想也被转化到3D中,Paschali-dou等人[25]展开MRF优化,将其与深度回归网络联合训练。虽然我们从这些作品中获得了灵感,但我们的动机是不同的,因为我们不是展开优化,或做一个简单的后处理,而是利用迭代拟合来为网络提供强有力的监督。
3、技术路径
下面,我们描述了参数化的人体模型SMPL[20],并定义了基本符号。然后,我们提供了更详细基于SMPLify[4]的回归网络和迭代优化程序。最后,我们描述了我们的方法SPIN,并给出了必要的实现细节。
3.1 SMPL model
SMPL人体模型[20]提供了一个函数 M (θ, β),以姿态参数θ和形状参数β作为输入,返回N = 6890个顶点的人体网格。为了方便起见,可以将模型的体关节 X 定义为网格顶点的线性组合。可以为这个任务预先训练一个线性回归函数 W,所以对于 k 个感兴趣的关节,我们定义主要的身体关节
。
3.2 回归网络
对于回归模型,我们使用深度神经网络。我们的架构与Kanazawa等人[15]的设计相同,唯一的区别是我们使用Zhou等人[46]提出的3D旋转表示,因为我们在训练过程中经验地观察到更快的收敛。现在让我们用 f 表示神经网络近似的函数。新图像的前向传递提供了模型参数Θreg = {Θreg, β reg}和相机参数Πreg的回归预测。这些参数允许我们估计关节的2D投影Jreg = Πreg(Xreg)。
我们的预测允许我们生成与回归参数相对应的网格,Mreg = M(θreg, β reg),以及关节及其重投影Jreg。在这种情况下,使用关节上的投影损失来提供一个常见的监督:
其中Jgt是 ground truth 2D关节。然而,在这项工作中,我们认为这种监控信号非常微弱,给网络增加了额外的负担,迫使它在参数空间中搜索一个与ground truth 值2D位置一致的有效姿态。
3.3 优化过程
迭代拟合程序遵循Bogo等人[4]的SMPLify工作。我们在这里做一个简短的介绍,但是我们也向读者推荐[4]以获得更多的详细信息。SMPLify尝试使用基于优化的方法使SMPL模型适合一组2D关键点。它最小化的目标函数由一个重投影损失项和若干位姿和形状先验组成。更具体地说,总目标是
其中β和θ为SMPL模型的参数,Jest为检测到的二维关节,K为相机参数。第一项EJ(β, θ;K,Jest)是对Jest与投影SMPL关节之间的2D距离的加权惩罚。Eθ(θ)是一种高斯姿态先验训练的混合物,形状拟合标记数据,Ea(θ)是一种姿势先验惩罚肘关节和膝关节的非自然旋转,而Eβ (β)是形状系数的二次惩罚。我们没有包括[4]的互穿误差项,因为它会使拟合速度变慢,而对性能的好处很少。
SMPLify的第一步涉及到相机平移和身体方向的优化,同时保持模型姿势和形状固定。在估计相机平移后,SMPLify使用 四 个阶段的拟合程序,尝试最小化公式(2)。由于优化是从平均位姿初始化的,因此四阶段优化对于避免陷入局部最小值是至关重要的。相反,由于我们的方法使用网络预测来初始化优化,我们观察到,一个单独迭代次数较少的优化阶段,通常足以收敛到良好的拟合。此外,我们也可以使用来自网络的预测摄像机平移,而不是像[4]中那样使用三角形相似度来估计初始平移。在[4]中假设的情况下可能是有用的(例如,人总是站着的),但在这里是无效的。
另一个旨在更快运行时的修改是我们以批处理模式运行SMPLify。优化不是顺序地对每个图像进行优化,而是并行地运行。尽管SMPLify具有高延迟,这使得它不适合单图像推断,但我们可以在现代GPU上通过并发优化多个示例来实现高吞吐量。此外,虽然SMPLify使用关节Jest以及DeepCut [28]提供的检测置信度,但对于我们的基础事实,我们只能假设所有关节具有相同的置信度。这可能会对拟合过程产生负面影响,因为通常会有小的注释错误,例如,注释遮挡下的关节,或通常几何上不一致的注释。为了解决这个问题,我们将提供给每个人的ground truth 2D关节与相应的OpenPose检测结合起来[5,6,32,40]。这使我们能够利用每次检测的置信度,并避免由于高置信度错误注释而产生的错误。
3.4 SPIN
我们的方法SPIN建立在前两种范式可以形成紧密协作的基础上,以训练人类姿态和形状估计的深度回归因子(图3)。
SPIN在基于优化的方法和基于回归的方法之间建立了紧密的协作。一个合理的从网络回归估计初始化优化,从而导致更好的最优。同样,通过迭代拟合优化的值可以作为监督,更好地训练网络。这两个过程持续这种协作,形成一个自我改进的循环。
在一个典型的训练循环中,图像通过前向网络,并提供回归参数Θreg。不是立即应用典型的2D重投影损失,而是使用回归参数来初始化优化程序。如果我们从平均姿态作为初始值开始,这种优化通常是非常缓慢的。然而,如果给出一个合理的初始估计,它可以大大加快。这使我们能够在训练循环中使用拟合例程。现在让我们用Θopt = {Θopt, β opt}表示迭代拟合产生的模型参数集。这些值显式优化,使产生的 形状 Mopt = M(θopt, β opt)和 重投影关节J opt与 2D关键点 对齐。给定这些优化值,我们可以直接在参数层面监督网络函数f:
and/or the mesh level:
在实践中,这与应用二维关节的重投影损失有非常不同的效果。我们没有强迫网络识别一组满足关节重投影的参数,而是直接向它提供一个参数解,该参数解对应于一个可行的3D形状。直观地说,我们绕过了在参数空间上搜索网络,直接提供了一组特权参数Θopt,这些参数往往非常接近实际的最优解。
SPIN的另一个关键特征是它的本质是自我改进。良好的初始网络估计Θreg将导致优化到更好的拟合Θopt,而从迭代例程得到的良好拟合将为网络提供更好的监督。这使得在循环中运行例程特别重要,因为它使两个组件之间能够密切协作。
此外,由于优化例程仅使用2D关节进行拟合,而网络主要依赖于该例程进行必要的基于模型的监督,因此我们的方法即使在没有具有相应3Dground truth 真实值的图像可供训练的情况下也适用。这类似于[15]的非配对设置,其中只有2D关键点注释可用,并训练对抗性先验来惩罚无效的姿势/形状。在这种设置下,我们的方法的好处是,我们不像鉴别器那样对网络提供yes/no的答案,而是明确地用有效的姿态监督它,这在经验上导致了更好的性能,正如我们在评估中演示的那样。
3.5 实施细节
在这里,我们更详细地讨论了一些进一步实施的细节,这些细节对训练过程很重要。尽管SMPLify相当准确,但在某些情况下,我们仍然会遇到严重的失败。这些不适应会使训练不稳定,并可能降低性能。这促使我们使用一个标准来拒绝这些形状的监督。经验上,在我们的情况下,一个简单的阈值基础上的联合重映误差工作效果非常好。对于拟合失败的图像,我们只监督回归网络与关节上的重投影损失。此外,为了避免训练与形状参数的不可能的值(即,超过3σ),当SMPLify返回的形状值超出这个范围,我们只监督具有简单的L2损失的β参数,即推动它接近平均形状。
为了改进和加速训练,我们还加入了一个字典,这样我们的训练集中的每个图像都可以跟踪我们所看到的所有轮次的最佳匹配。在实践中,每次我们在循环中计算一个新的优化形状时,我们都会与那个时间点之前看到的最佳拟合进行比较,如果新的拟合更好,我们就相应地更新字典。为了比较配合的质量,我们再次使用关节上的重投影误差。我们的字典最初是用SMPLify匹配填充的,这个过程在训练开始之前脱机完成。为了初始化这个过程的SMPLify,我们可以从平均姿态开始,或者使用更精确的姿态,从2D关键点回归(例如,使用类似于马丁内斯等人[21]的网络)。对于我们的实证评估,我们关注于第二种策略,但我们也在Sup.Mat中呈现了与第一种方法相似的结果。我们为每个batch每50个迭代运行一次SMPLify优化。
4、实证评估
4.1 数据集
在这里,我们给出了用于训练和评估的数据集的快速描述。我们报告的结果基于Human3.6M[11]、 MPI-INF-3DHP[22]、 LSP[12]和3DPW[39]这些数据集。我们使用前三个数据集进行训练(没有来自3DPW的训练数据),而与[15]类似,我们还将训练数据与来自其他数据集的2D注释合并,即LSP-Extended[13]、MPII[1]和COCO[19]。对于我们调查的不同设置,例如,训练有/没有循环更新,或训练有/没有3Dground truth 真实值),我们每个设置训练一个单一的模型,我们使用它报告所有数据集的结果,不需要对每个特定的数据集进行微调。此外,我们澄清,我们总是评估网络的输出。不应用额外的基于拟合的后处理,例如在[9]中所做的后处理。此外,由于不同的数据集通常使用不同的错误度量来报告结果,所以我们对每个数据集使用文献中更常见的度量。我们给出了Sup.Mat中各种度量的详细定义。
- Human3.6M:它是一种室内的三维人体姿态估计基准。它包括多个动作,如吃饭,坐着和走。遵循典型的协议,例如[15],我们使用受试者S1、S5、S6、S7、S8进行培训,并对受试者S9和S11进行评估。
- MPI-INF-3DHP:它是一个多视角的数据集,主要用于室内环境。在捕捉过程中没有使用任何标记,因此与其他数据集相比,3D姿势数据的准确性往往较低。我们使用提供的训练集(受试者S1到S8)进行训练,并报告数据集测试集的结果。
- LSP:它是二维人体姿态估计的标准数据集。在这里,我们使用来自Lassner等人[18]的剪影/部件注释,使用测试集进行评估。
- 3DPW:这是一个最近的数据集,主要是在户外条件下捕获的,使用IMU传感器来计算姿态和形状的ground truth。我们只使用该数据集对其定义的测试集进行评估。
4.2 定量评估
4.2.1消融实验研究:
首先,我们评估方法的组成部分。我们为此使用户外数据集,因为与室内基准相比,它们更具挑战性,在室内基准中,模型往往会过度拟合[11,22]。
在新的3DPW数据集上,我们评估姿态估计。在 表1 中,我们提供了我们方法的两个版本的结果,其中一个版本中,网络只使用初始字典匹配进行监督,而没有在循环中运行优化(Ours-静态匹配),另一个版本中,我们在循环中运行优化,网络可以受益于迭代拟合倾向于产生的改进的拟合(Ours-在循环中)。为了让我们的研究结果更具前瞻性,我们还与最近的四个基线([3,15,16,17])进行了比较。正如我们所看到的,使用模型监督就足以在其他基线上提高性能。不出所料,在循环中运行迭代拟合,我们可以进一步提高网络的性能,因为它逐渐获得越来越好的拟合。
表1:对3DPW数据集的评估。这些数字是以mm为单位的平均重构误差。单独基于模型的监督(我们的静态拟合)优于在相同([15,17])或更多数据([3,16])上训练的类似架构。在回路(我们的回路)结合配件进一步提高性能。
对LSP数据集进行同样的比较。在这种情况下,我们隐式评估三维形状通过网格重投影和评估轮廓和部分分割精度。此设置的完整结果如 表2 所示。这里的趋势与3DPW结果相似。使用静态匹配集并提供基于模型的监督,可以取得非常引人注目的结果。然而,正是在循环中整合了优化,推动了我们的方法超越了最先进的水平。
表2:对LSP测试集的前景背景和六部分分割的评价。数字是准确性和f1分数。在不更新拟合的情况下使用基于模型的监督实现了非常有竞争力的结果,而将拟合纳入循环推动我们的方法超越了最先进的水平。前两行的数字取自[18]。
为了更好地说明字典中适合度的改进程度,我们在 图4 中提供了一些典型的示例。随着训练的进行,配合度显著提高,使网络接入得到更好的监督。
图4:在训练开始和训练结束时,SMPLify的例子都符合我们的字典。尽管SMPLify在从一个不准确的姿态(第二列)开始时可能会失败,但如果从我们的网络进行良好的预测作为初始化,优化可以收敛到一个准确的解决方案(第三列)。
4.2.2 与最先进的比较:
为了与最新的技术进行进一步的比较,我们报告了用于3D人体姿态估计的额外数据集的结果。
基于文献中提出的不同设置,我们报告了两种情况下的结果,一种是在任何可用的情况下使用3D ground truth真实值(例如Human3.6M),另一种是在没有带有3D ground truth 真实值的图像用于训练时。与[15]类似,我们称这种设置为不配对,因为图像和3D地面真相不是成对出现进行训练的。
在 表3 中,我们展示了我们的方法在Human3.6M上的结果,对比其他同样输出人体完整网格的方法(尤其是SMPL)。当3Dground truth真实值不能用于训练时(表的顶部),当它可以(表的底部),我们的方法优于之前的基线。我们强调,在没有3Dground truth真实值可用的情况下(例如,未配对设置),我们的网络不能像Kanazawa等人[15]那样访问Human3.6M的姿态,因为我们的姿态先验仅根据CMU数据进行训练。尽管如此,我们仍然优于[15]。
表3:对Human3.6M数据集的评估。这些数字是以毫米为单位的平均重建误差。我们将输出人体网格的方法进行比较。上面的方法不需要3D ground truth真实值的图像,而下面的方法也使用了3D ground truth 真实值。在这两种情况下,我们的方法都明显优于最先进的技术。
类似地,我们还报告了MPI-INF-3DHP数据集上两种设置(配对/非配对监控)的结果。我们再次超越[15],同时与两种不使用人体参数模型的方法相比非常有竞争力[22,23]。
最后,图5包含了我们的方法从评估中涉及的不同数据集得出的定性结果,而图6包含了一些失败的案例。更多的结果也可以在Sup.Mat中找到。
5、总结
这项工作描述了SPIN,该方法提出了回归方法和基于优化的方法之间的密切合作,以训练用于三维人体姿态和形状估计的深度网络。我们的方法使用网络为优化程序提供一个初始估计,然后在循环中拟合模型,并为网络的训练提供基于模型的监督。因此,优化模块和回归模块形成了一个自我完善的循环,因为它们可以通过紧密的合作而受益。此外,基于模型的特权监督对改进我们网络的训练是有价值的,这也被实证结果证明了,我们的方法比以前的方法有很大的优势。同时,由于拟合程序只需要2D关键点来拟合模型,我们可以在没有3D注释的情况下训练我们的深度网络。
未来的工作可以考虑将该方法扩展到多个人[42,43],或纳入更有表现力的人体模型[14,26]。