论文阅读-《TransHuman: A Transformer-based Human Representation forGeneralizable Neural Human Rendering》

1 概述

这篇论文主要介绍了一个名为TransHuman的新框架,它是一个基于Transformer的人体表示模型,用于实现可泛化的神经人体渲染。这项工作的目标是从一个或多个视角的视频训练出发,生成能够泛化到新视角和新主体的高质量3D人体动态渲染。传统的神经渲染方法通常依赖于卷积神经网络(CNN)或其他特定模型进行人体渲染。然而,这些方法往往在处理多样化的人体姿态和外观时表现出局限性,尤其在面对不同光照条件、复杂的背景或姿势变化时,模型的泛化能力较差。

1.1 创新点

1. TransHuman框架:提出了一种新的基于Transformer的人体表示方法,用于从不同角色的多视角视频中训练条件神经辐射场(Conditional Neural Radiance Fields, NeRF),以实现动态人体动作的渲染。

2. Transformer-based Human Encoding (TransHE):TransHE通过Transformer在标准空间下处理绘制的SMPL模型(Skinned Multi-Person Linear model),以捕获人体部位之间的全局关系。

3. Deformable Partial Radiance Fields (DPaRF):DPaRF将TransHE的输出标记与可变形的辐射场绑定,以适应观察空间并编码查询点。

4. Fine-grained Detail Integration (FDI):FDI进一步集成了从参考图像中获得的细粒度信息,以补充粗略的人体表示,增强细节表现。

实验结果:在ZJU-MoCap和H36M数据集上的广泛实验表明,TransHuman在保持高效率的同时,达到了显著的新最佳性能。

1.2 解决问题

1. 观察空间的不稳定性:之前基于SparseConvNet (SPC)的人体表示在变化的观察空间下进行优化,导致训练和推理阶段之间的姿态错位,限制了泛化能力。

2. 局部感受野的限制:由于动态人体自我遮挡严重,SPC的3D卷积网络的局部感受野限制使其对不完整的输入非常敏感。

文章中提到的TransHuman框架通过在标准空间下处理绘制的SMPL,并使用Transformer捕获人体部位之间的全局关系,然后通过DPaRF将处理后的SMPL变形回观察空间,以获取查询点的鲁棒人体表示。最后,FDI模块用于进一步整合直接从观察空间捕获的细粒度信息。

这项工作的贡献不仅在于提出了一种新的框架,而且还在于它是首次尝试将Transformer技术应用于绘制的SMPL,以捕捉人体部位之间的全局关系。

1.3 涉及技术

1. 神经辐射场(NeRF):

含义:

        NeRF是一种用于3D场景表示和渲染的深度学习模型,其核心思想是使用神经网络来表示三维场景中的辐射场,通过学习视角之间的关系来生成逼真的三维场景渲染。它通过神经网络来学习和表示场景的体积密度和颜色。NeRF可以从一组稀疏的图像中学习场景的连续体积表示,并且能够用于渲染新视角的高质量图像。具体可以参考:都2022年了,我不允许你还不懂NeRF

原理:

  • 体素化表示:NeRF 将三维空间的场景表示为一种连续的体素化空间,其中每个点都有颜色和密度属性。(体素类比像素)
  • 体积渲染:通过从不同的视角投射光线到三维场景中的体素化空间,NeRF 计算光线经过不同体素时的颜色变化,从而生成逼真的图像。
  • 视角一致性:NeRF 可以处理多视角数据,确保从不同角度观察时生成的图像具有一致性。

优点:

  • 视角一致性好:NeRF 天然地具备处理多视角数据的能力,能够保证不同视角下的渲染效果一致,避免了传统方法中容易出现的视角不匹配问题。
  • 光照处理:NeRF 对光照处理得非常细腻,能够很好地模拟真实场景中的光线传播效果,这对于生成逼真的人体渲染图像至关重要。

        在TransHuman中的应用:在TransHuman中,NeRF技术被用来从多视角视频中学习人体的3D表示,从而实现从任意新视角渲染人体的能力,并且保证生成的人体渲染在不同视角下保持一致,从而提高了渲染质量。

2. SMPL(Skinned Multi-Person Linear model):

含义:

        SMPL是一个用于3D人体建模的参数化人体先验模型,它基于对人体结构的先验知识,定义了人体的形状、姿态和运动方式。SMPL使用一组可调节的少量参数来描述人体的骨骼和肌肉,从而模拟和控制人体的姿态和形状,生成逼真的三维人体网格模型。SMPL 主要基于对人体表面的皮肤和骨骼进行建模,并采用线性变形方法生成不同的人体形态和动作。

先验模型(prior model)是指在数据处理或建模过程中,基于先验知识(即在观察数据之前已有的知识或假设)来构建的模型。先验知识可以是从以往的经验、理论推导或其他已知信息中获得的。在计算机视觉、机器学习等领域,先验模型常用于限制、引导或优化模型的训练和推理过程。

在此处,人体是高度动态和复杂的,如果仅依赖纯数据驱动的方法(如神经网络)去从零开始学习人体的结构和运动规律,模型可能需要大量的数据和计算资源。通过引入像SMPL这样的先验模型,系统可以直接利用这些预先编码的关于人体的知识,从而提高效率、减少计算负担,并且增强模型的稳定性和准确性。

原理:

  • 参数化建模:SMPL 使用形状参数(shape parameters)和姿态参数(pose parameters)来描述人体。形状参数用于调整人体的整体体型,比如身高、体重等;姿态参数则用于控制人体关节的角度和动作。
  • 线性变形:通过对人体的骨骼进行线性变形,SMPL 可以根据输入的参数生成不同姿态和形状的人体三维模型。由于这种变形是线性的,计算量较小且易于控制。
  • 皮肤网格:SMPL 能生成带有皮肤的三维网格模型,这些网格模型的顶点随人体关节的运动而变化,因此可以逼真地模拟人体的运动和形变。

        在TransHuman中的应用:TransHuman使用SMPL作为先验知识,将2D图像中的人体姿态和形状映射到3D空间中,为NeRF提供初始的人体表示。

  • SMPL 提供人体的骨骼和姿态基础

    • SMPL 生成的三维人体网格模型提供了人体的几何结构信息,包括姿态和形状。这种网格模型具有明确的骨骼架构和表面几何,能够准确描述人体的姿态变化和体型特征。
    • SMPL 的作用是为神经网络提供一个人体的基础表示,这包括姿态参数和形状参数,这些信息可以作为后续渲染的基础。这种基础模型帮助确定人体在三维空间中的位置和姿态,提供了 NeRF 所需的初始条件。
  • NeRF 渲染基于人体的辐射场

    • NeRF 负责将人体渲染为逼真的图像,它通过学习三维空间中的辐射场来生成多视角一致的图像。NeRF 的输入通常是光线的方向和位置,并通过对每个点的辐射场进行采样来确定最终的渲染图像。
    • NeRF 使用从 SMPL 提供的三维人体模型进行的初步几何表示,结合光线追踪技术,渲染出不同视角下的逼真图像。由于 SMPL 提供了骨骼和表面几何,NeRF 可以在此基础上生成细致的光线传播和颜色变化,从而生成逼真的视觉效果。

        虽然 SMPL 可以很好地表示人体的整体结构,但它无法捕捉到细节信息,例如皮肤的纹理、光线的细微变化等。NeRF 则通过对辐射场的学习补充了这些细节,使得最终生成的图像在光照、纹理和材质方面更加逼真。

        SMPL 提供的三维几何模型保证了人体在不同视角下的形状保持一致,而 NeRF 通过学习辐射场,使得渲染的光照和阴影在多视角下保持一致。这种结合确保了渲染出的图像在视角切换时不会出现失真或不一致的情况。

3. SparseConvNet(稀疏卷积网络):

含义:

        SparseConvNet是一种用于处理稀疏数据的卷积网络,它适用于处理如点云或体素化数据等非规则网格数据。SparseConvNet通过稀疏卷积操作来捕获局部邻域特征,用于3D数据的分类和回归任务。

利用SPC进行神经人体渲染:

        使用SparseConvNet(SPC)进行神经人体渲染的方法旨在将人体的三维几何结构与高维深度特征结合起来,进而生成从任意视角观察的人体渲染。

  • 原理:SPC 是一种用于稀疏数据的卷积神经网络,特别适合处理具有稀疏结构的三维数据,比如点云、体素化空间等。在神经人体渲染中,SPC 主要用于对人体模型(如SMPL)的三维几何表示进行特征扩散和卷积操作,从而生成可用于新视角渲染的高维特征。
  • 步骤:
    • 人体模型(SMPL)的拟合:首先,渲染过程通常会对输入的2D图像或视频进行三维重建。一个常用的做法是使用SMPL(Skinned Multi-Person Linear Model)来拟合人体。这一步生成了一个三维人体模型,其中包含了人体的几何结构(如关节位置和形状参数)。SMPL 提供了一个参数化的、基于统计的三维人体网格模型,能够根据人体的姿态和形状进行调整。
    • 特征投影到SMPL顶点:从参考图像中提取的深度特征会被投影到拟合的SMPL模型的顶点上。参考图像通常由多个视角拍摄,这些视角为后续的三维特征生成提供了基础。这些深度特征是通过深度神经网络提取的,用来编码人体表面的纹理、光照、颜色等信息。
    • 特征扩散(通过SPC):SPC的核心作用是将投影到SMPL模型顶点上的深度特征扩散到人体周围的3D空间区域。由于SPC特别擅长处理稀疏数据结构,它能够在稀疏的三维网格上高效运行。
      • 投影后的特征扩散:SPC会通过卷积操作,将顶点上的特征扩散到周围的空间区域。这种特征扩散能够帮助系统填补在深度特征采集中由于自遮挡或缺失视角导致的空白区域。
      • 稀疏特征卷积:SPC在体素化空间内执行三维卷积操作,将输入的稀疏特征图通过若干卷积层进行处理。这些卷积层通常通过稀疏矩阵操作来处理稀疏体素数据,从而生成具有空间相关性的三维特征表示。
    • 三线性采样:完成特征扩散之后,SPC通过三线性插值来从离散的3D特征体积中采样特征。三线性采样是一种插值方法,通过将每个采样点的特征值从其周围的8个体素中插值得出。这一步可以理解为在生成一个稠密的特征图(用于最终渲染)之前,从离散的特征体积中提取具体的三维特征。
    • 图像生成与渲染:最后,系统利用从三维特征体积中采样到的特征生成最终的图像。通常,这一过程包括将3D特征映射到2D图像平面上,并利用图像生成网络(如卷积神经网络或基于NeRF的网络)来渲染人体的外观,从而生成不同视角下的高保真图像。

1. SMPL模型的顶点:

SMPL模型的顶点是三维人体网格(mesh)中的关键点或顶点,它们定义了人体模型的几何形状和结构。在SMPL模型中,人体表面被表示为由多个三角形构成的网格结构,而这些三角形的角点就是顶点。每个顶点都有一个三维坐标,表示其在三维空间中的位置。这些顶点决定了人体模型的几何形状。假设SMPL模型有一个顶点位于肩膀处,该顶点的三维坐标为 (x1, y1, z1)。在神经渲染中,参考图像中的深度特征会被投影到这个顶点,表示肩膀的特定特征(如光照、颜色等)。然后通过SparseConvNet将这些特征扩散到邻近的顶点上,最终生成肩膀区域的完整特征。

2. 三线性插值:

三线性插值(Trilinear Interpolation)是一种用于三维空间的插值方法,通常用于在离散的三维网格或体素空间中计算任意点的值。它通过对三个方向(x, y, z 轴)进行线性插值来估算在网格点之间的中间值。

三线性插值是在给定三维网格中的八个相邻顶点(它们组成了一个体素单元,也就是包含插值点的三维立方体的顶点,这几个顶点包含了如颜色、深度、密度或特征等信息)的基础上,通过线性插值计算某个体素单元内任意点的值。其基本步骤为:

  1. 二维线性插值:首先对x和y轴上的四个顶点进行二维线性插值,得到两个中间值。
  2. 再进行线性插值:然后对这两个中间值沿着z轴进行线性插值,得到最终的值。

这个过程本质上是在三维空间中沿着x、y、z三个轴分别进行线性插值,最后得到插值点的值。通过这个过程,可以在三维空间中高效估算任意点的值,而不必局限于已知的离散网格点。

三线性采样操作有助于提高渲染效果的平滑度和准确性。在神经人体渲染任务中,SMPL模型的顶点以及稀疏的特征点之间往往存在一定的间隙。直接使用离散的特征点进行采样可能会导致图像中的不连续性,进而影响渲染效果。通过三线性采样,可以对这些稀疏特征进行平滑插值,使得渲染结果更加自然。

4. 细粒度细节集成(FDI):

含义与原理:

        FDI是指在计算机视觉和三维渲染中,为了生成更为逼真和高质量的图像或模型,对细小的局部细节进行捕捉、整合和再现,用于将从参考图像中提取的高分辨率细节信息集成到3D人体模型中。这通常涉及到将图像特征与3D模型的特征进行对齐,并使用注意力机制或其他集成策略来细化模型的表面细节。

作用:

  • 提高视觉真实感:细粒度细节的集成使得生成的图像或模型不仅在宏观上具有正确的结构,还能够在微观上呈现精确的细节。对于三维人体渲染来说,捕捉和再现皮肤纹理、毛发、光影细微变化等是生成高质量渲染图像的关键。
  • 补充全局模型的不足:全局建模通常关注的是物体的整体形状和大尺度的结构,而忽略了局部的细节。通过细粒度的集成,模型能够弥补这些不足,在保持全局一致性的同时展示更多细节。
  • 多尺度信息融合:在细粒度细节集成过程中,模型往往结合多尺度的信息,既考虑全局的形状变化,又能细化局部的小尺度细节,这种多尺度信息的融合能够使模型在不同层次上都具有高质量的表现。

在TransHuman中的应用:

        TransHuman中的FDI模块负责将从多视角参考图像中提取的细粒度外观特征(如纹理和光照信息)集成到由NeRF和SMPL生成的3D人体模型中,以提高渲染图像的真实感和细节丰富度。

2 介绍

2.1 挑战

  1. 动态和可变形的人体比一般的2D到3D的估计/重建更难处理,因为人体具有复杂的动态特性。
  2. 现有的技术结合了神经辐射场(NeRF)与人体先验模型(如SMPL)来应对这些挑战,并取得了一定的成果。但是,这些方法依赖于针对每个具体的主体(即每一个人或场景)进行单独的优化,并且从许多不同的视角观察目标对象(如人体),才能学习如何在新视角下渲染它,这增加了系统的计算成本和复杂性,使得每次引入新的人体或姿态时都需要重新训练和优化模型,并且需要大量的数据资源和高昂的采集成本。

2.2 现有方法及其局限性

      现有方法使用SparseConvNet(SPC)来进行神经人体渲染。这种方法首先将参考图像中的深度特征投影到拟合的SMPL人体模型的顶点上,然后通过SPC扩散这些特征到附近区域,最后通过在离散3D特征体积中的三线性采样来实现最终的表示。然而,这种基于SPC的表示存在两个问题:

  1. 不稳定的观察学习:由于人体姿态的动态变化,训练和推理阶段可能会出现姿态不匹配的情况,影响了泛化能力。
  2. 局限的局部感受野:由于动态人体的严重自遮挡问题,SMPL模板往往不完整,而SPC的局部感受野限制了其处理遮挡区域的能力,尤其是在这些区域较大的时候。

2.3 改进方向

        本文受到“可泛化的NeRF”方法在静态场景中的成功启发,提出了可泛化的神经人体渲染任务。这种方法可以训练条件NeRF模型,使用多视角人体视频,并能够在输入稀疏参考视角的情况下对新主体进行快速渲染。

        为了解决这些问题,作者提出了首先在静态规范空间(canonical space)中使用Transformers处理涂绘的SMPL模型,以消除训练和推理阶段的姿态不一致性,并捕捉人体各部分的全局关系。然后,通过从规范空间到观察空间的变换,获取观察空间下某一查询点的人体表示(例如从光线上的采样点获取)。最后,还需要将直接从观察空间获得的细粒度信息整合到粗略的人体表示中,以补充细节。

2.4 本文成果

        本文主要提出了一个新的框架TransHuman,用于提高神经人体渲染的泛化能力和效率。TransHuman由三个主要组件组成:TransHE(Transformer-based Human Encoding)DPaRF(Deformable Partial Radiance Fields)FDI(Fine-grained Detail Integration)

TransHE(Transformer-based Human Encoding)

  1. 主要功能:使用Transformers对位于标准化空间中的SMPL人体模型进行处理。SMPL人体模型经过“绘制”(painted),即与某些特征相关联。
  2. 核心策略
    1. 标准化身体分组策略:该策略用于避免语义歧义,即确保人体不同部分的特征不会混淆。
    2. 标准化学习方案:帮助学习人体各部分之间的全局关系,简化模型对全局特征的理解。
  3. 作用:TransHE的目标是通过Transformer技术,在标准化空间下处理人体数据,捕捉人体各部分之间的全局关系,并为后续步骤提供人体的初步编码。

DPaRF(Deformable Partial Radiance Fields)

  1. 主要功能:将从TransHE获得的编码从标准化空间转换回观察空间(即相机视角下的实际人体姿态),以便在动态人体场景下获得鲁棒的人体表示。
  2. 工作机制
    1. 绑定标记点与辐射场:每个标记点(Token)代表人体的某个部分,并绑定到一个辐射场。随着人体姿态的变化,这些辐射场的坐标系统会随之变形。
    2. 查询点编码:在变形后的坐标系统下,对查询点(通常是光线上的某些采样点)进行编码,生成基于观察空间的人体表示。
  3. 作用:DPaRF将人体编码从标准化空间变形回实际观察空间,确保在不同姿态下,人体的表示能够保持一致且鲁棒。

FDI(Fine-grained Detail Integration)

  1. 主要功能:细粒度细节集成。
  2. 工作机制:虽然TransHE和DPaRF能够生成包含人体先验的粗略信息,但它们无法捕捉到足够的细节。因此,FDI会从像素对齐特征中提取更多的细节信息,并结合粗略的人体表示,补充细节部分。
  3. 作用:FDI确保最终生成的人体渲染不仅包含粗略的人体结构,还能显示精细的表面细节。

标准化空间(Canonical Space)观察空间(Observation Space):

这两种空间是用于描述不同的空间参考系,分别表示人体在不同阶段下的姿态和形态。

1. 标准化空间(Canonical Space)

  • 定义:标准化空间是一个固定且标准化的空间参考系。在这个空间中,人体被置于一个预定义的、姿态一致的状态。换句话说,人体的姿态是统一的、没有变形的,比如以站立的姿势为基础。
  • 作用
    • 消除姿态影响:标准化空间帮助模型在训练和推理阶段去除人体姿态的影响,使得人体不同部分(如手、腿等)之间的全局关系能够被一致地理解和建模。
    • 简化学习:在标准化空间中,人体的不同部分不受姿态变化的干扰,模型可以更容易地捕捉到全局关系,从而提高训练效率。
  • 举例:你可以想象标准化空间就像是把所有人都放在一个相同的姿势里(例如一个标准的站立姿势),然后让模型去学习这种固定姿态下人体各部分的相对关系。

2. 观察空间(Observation Space)

  • 定义:观察空间是与摄像机视角相关的空间参考系。在这个空间中,人体的姿态是动态的,反映了实际的动作和变化,例如人体的不同动作、姿势和形变。
  • 作用
    • 真实表现:观察空间表示实际的观察条件下,人体如何在不同的姿态下被摄像机捕捉到。这是人体渲染的最终参考空间,因为它反映了真实场景中的人体姿态。
    • 渲染需求:为了实现准确的3D人体渲染,必须将标准化空间中的人体姿态转换回观察空间,以便生成符合当前视角和姿态的准确图像。
  • 举例:你可以把观察空间想象为摄像机捕捉到的人体姿态,比如一个人在跳舞或奔跑时的姿势。

二者的关系

  • 转换过程:在人体渲染过程中,模型通常先在标准化空间中处理人体数据,因为这个空间的姿态是一致的,便于建模全局关系。然后,使用变形(deformation)技术将标准化空间中的人体姿态转换到观察空间,反映实际的动态姿态。
  • 目的:通过在标准化空间进行初步处理,模型可以更容易地学习人体结构;然后在观察空间进行细化渲染,确保最终结果能够准确反映出当前姿态下的人体。

2.5 实验与贡献

        实验结果表明,TransHuman框架在ZJU-MoCap和H36M数据集上的表现显著优于现有方法,尤其是在姿态泛化任务中表现出色。

贡献总结

  • 提出了一个全新的TransHuman框架,能够在复杂的人体渲染任务中实现更高效、更高精度的渲染。
  • 通过使用标准化空间下的SMPL处理,解决了训练和推理过程中人体姿态不一致的问题,并通过DPaRF将其转换回观察空间。
  • 首次尝试将Transformers应用于绘制的SMPL模型中,以捕捉人体各部分的全局关系。

3 方法

任务目标:可泛化神经人体渲染任务的目标是通过学习条件NeRF模型,使其能够泛化到未见过的个体上。在给定稀疏的参考视角时,能够通过单次前向传播生成新的视角。这意味着,不需要为每个新个体进行繁琐的优化或大量的训练数据。

核心挑战:关键是为每个从光线采样的查询点获取高质量的条件特征(condition feature),该特征需要包含准确的个体信息,以确保渲染的质量。

3.1  Transformer-based Human Encoding(TransHE)

为了克服SPC的局限性,提出了TransHE,它的核心目标是解决在不同观察姿态下的姿态不对齐(pose misalignment)和语义歧义(semantic ambiguity)问题。通过利用Transformer模型,TransHE在标准化(canonical)空间下捕捉人体各部分之间的全局关系,从而提高生成质量和泛化能力。该策略分为两个核心步骤:基于标准化空间的身体分组(Canonical Body Grouping)标准化学习方案(Canonical Learning Scheme)

1. Canonical Body Grouping(标准化人体分组)

问题: 由于在观察空间中直接对SMPL模型的顶点进行网格体素化会导致语义歧义问题。这是因为在不同的姿势下,同一体积网格内可能包含来自人体不同部位的顶点(空间语义纠缠),同时,不同时间下同一部位的顶点可能被映射到不同的网格中(时间语义变化)。这会导致在训练和推理时难以捕捉到一致的人体部位特征。

下图表示了在3D人体建模中使用观察空间下的网格体素化(Obs. Grid Voxelization)与使用规范体分组(Canonical Body Grouping)两种不同策略时的语义歧义问题。

观察空间下的网格体素化规范体分组
解析这部分展示了如果在观察空间直接对SMPL模型进行网格体素化,会因为人体姿势的变化导致空间语义纠缠(spatial semantic entanglement)和时间语义变化(temporal semantic variance)。这部分展示了TransHE使用的规范体分组策略,该策略通过在标准空间(canonical space)中对SMPL模型的顶点进行分组,来避免空间语义纠缠和时间语义变化的问题。
空间语义同一体积网格内可能包含不同部位的顶点,导致不同部位的特征混合在一起无论人体姿势如何变化,相同部位的顶点总是被归入同一分组,保持了语义的一致性。
时间语义不同时间点,同一部位的顶点可能被映射到不同的网格中,导致特征随时间变化。在不同体积网格内,顶点的语义是清晰且分离的,避免了不同部位特征的混合。
解决方案: 通过标准化空间(canonical space)对顶点进行聚类,并在每次训练迭代中将同一簇的特征聚合。相比于基于观察空间的网格体素化,这种基于标准化空间的分组方法可以有效避免语义歧义问题(如时序语义不一致和空间语义混淆)。在标准化空间中,姿态是固定且拉伸的,因此各姿态之间的语义分组更加一致。

步骤:

  • 首先,SMPL人体模型在标准化姿态下被投影到标准化空间中(T-posed SMPL)。
  • 使用聚类算法(例如K-means)基于3D坐标对这些顶点进行聚类,将顶点划分为若干组(tokens)。这些组的顶点共享相似的语义信息。
  • 这种分组过程在训练前执行一次,生成一个聚类字典 D_c,保存每个组中包含的顶点索引。此字典在整个训练过程中都会被重复使用。
  • 聚类后的每组顶点的特征通过平均池化进行聚合,得到每个组的特征表示,记为 \hat{F},该过程显著减少了输入到 Transformer 中的数据量,提高了效率,增强了特征的稳定性。

公式表示:

\hat{F} = G_{D_c}(F), \quad \hat{F} \in \mathbb{R}^{N_t \times d_1}

  • 输入:假设我们从输入图像中通过CNN提取到的深度特征是 F \in \mathbb{R}^{6890 \times d_1},这里6890表示人体SMPL模型中的顶点数,d_1​ 是每个顶点的特征维度。
  • 分组过程:首先,在标准化姿态(T-pose)下,通过聚类算法(例如K-means),我们将6890个顶点分为 N_t 个簇(tokens)。每个簇由索引字典 D_c表示,字典 D_c​ 保存了属于同一簇的顶点索引。
  • 公式解释:公式 \hat{F} = G_{D_c}(F) 表示根据字典 D_c 对输入特征 F 进行分组,并在每个簇内执行平均池化操作,最终得到聚合后的特征 \hat{F} \in \mathbb{R}^{N_t \times d_1}​,其中 N_t 是簇的数量(即tokens数),d_1 ​ 是每个簇的特征维度。这一过程减少了特征的复杂性和数据量,增强了特征的稳定性。

SMPL人体模型的几何结构是由6890个顶点组成的。这些顶点通过三角形面片连接,形成了模型的表面。

2. Canonical Learning(标准化学习)

  • 问题: 在对SMPL模型的顶点进行规范体分组后,我们得到了一组输入簇(tokens),这些标记将作为Transformer的输入。由于我们需要查询点在观察空间下的有条件特征,一种方法是可以直接在观察空间下学习,并使用每个标记在观察姿势下的3D坐标作为位置信息。在观察空间下,由于人体姿态是动态变化的,3D坐标位置(如 V_o​)也是动态的。这意味着每个时间步长下的位置编码(position embedding)是不同的,这会干扰模型在不同时间步之间的一致性学习,导致无法稳定地捕捉人体全局关系。(注意,Body Grouping阶段只是将观察姿态的顶点转换到标准化空间的坐标,而Learning阶段则是将这些标准化空间的坐标转到标准化坐标系中去学习。Canonical Body Grouping确实已经将顶点从观察空间转换到标准化空间,并进行了特征分组和聚合。这为模型提供了更少的输入tokens,并减少了语义歧义问题。然而,如果我们在这一点后依然选择使用观察空间的顶点位置进行位置编码并学习,问题依然存在。也就是说,如果模型仍然基于观察空间(即动态变化的姿态)下的位置信息进行学习,姿态错位问题将继续困扰学习过程。

  • 解决方案: 在静态的标准化空间中学习全局关系,避免姿态错位问题,并简化全局关系的学习。在标准化空间下,Transformer可以更容易地捕捉全局关系,因为标准化空间中的顶点位置固定,不会随着时间步的变化而改变。总而言之,Canonical Learning 部分的作用是在Canonical Body Grouping的基础上,通过Transformer模型学习这些簇之间的全局关系,以提高模型的泛化能力和渲染质量。

公式表示:

\hat{F}_0 = T(\hat{F}, \omega_1(\hat{V}_c))

  • \hat{F}:是从 Canonical Body Grouping 中得到的分组后特征,每个簇的特征已经通过聚类和平均池化生成。其中,\hat{F} \in \mathbb{R}^{N_t \times d_1}

  • \hat{V}_c = G_{D_c}(V_c):代表是在标准化空间(canonical space)下,SMPL人体模型的顶点坐标。这些位置编码是固定的,并表示T-posed下的人体姿态。因为标准化姿态是静态的。这确保了模型在学习过程中,不会因为姿态变化而导致位置编码的变化。其中V_c \in \mathbb{R}^{6890 \times 3}\hat{V}_c \in \mathbb{R}^{N_t \times 3}

  • \omega_1(\cdot):这是位置编码函数,将标准化空间中的3D坐标 \hat{V}_c​ 转换为高维空间表示。这种编码方式类似于NeRF(Neural Radiance Fields)中的位置编码,用于保留空间信息。

  • T(\hat{F}, \omega_1(\hat{V}_c)):表示通过Transformer处理位置编码后的特征,学习人体不同部分之间的全局关系。这里,\hat{F} 是分组后聚合的特征,\omega_1(\hat{V}_c) 是相应的空间位置编码。Transformer的自注意力机制可以处理这些特征和位置信息,并捕捉每个簇之间的依赖关系。

  • 输出: \hat{F}_0:这是经过Transformer处理后的输出特征,每个簇之间的全局关系已经被学习到。这些输出特征将用于后续的人体渲染和细节合成中。

 \hat{F} \hat{V}_c = G_{D_c}(V_c) 是两种不同的输入,分别代表了特征信息位置信息,具体可见流程图。计算 \hat{F} 时,F计算的是在CNN卷积后提取到的深度特征信息,6890个顶点每个顶点都有一个特征值。其中 F \in \mathbb{R}^{6890 \times d_1}d_1是特征维度;而 V_c 就是顶点在标准空间中6890个顶点的空间位置信息,二者的处理方式相同,都是通过聚类和平均池化操作之后生成的聚合特征。

  • \hat{F} 是输入到Transformer中的特征向量,描述了每个簇的外观特征,帮助Transformer理解人体的局部特性。
  • \hat{V}_c 是输入到Transformer中的位置编码,帮助Transformer理解每个簇在三维空间中的位置,并为簇的全局关系建模提供空间参考。

3. Global Relationship Learning (全局关系学习)

总结一下上述,\hat{F}_0 \in \mathbb{R}^{N_t \times d_1}

该输出表示每个簇(即token)在标准化空间下的特征,这些特征已经通过Transformer的自注意力机制捕捉了人体不同部分之间的全局关系。通过这种方法,TransHE能够在标准化空间中捕捉人体全身的全局信息,而不会因为姿态变化引发语义歧义。同时,通过标准化学习,也能够在训练过程中保持特征的一致性和鲁棒性,增强模型的泛化能力。

过程总结

TransHE的工作流程可详细描述如下:

  1. 特征提取与分组:首先,从输入图像 I 中提取深度特征 F,并在标准化姿态下使用聚类算法对SMPL模型顶点进行分组。这些分组特征经过池化操作,生成簇的特征\hat{F}

  2. 位置编码与标准化学习:根据分组后的簇顶点的空间位置 \hat{V}_c,通过位置编码函数 \omega_1​ 生成每个簇的高维位置编码。将这些编码与特征一起输入Transformer,捕捉人体不同部分之间的全局关系。

  3. 全局特征生成:通过Transformer的自注意力机制,得到包含全局人体信息的特征 \hat{F}_0​,这些特征将在后续的模块中用于进一步的人体渲染。

3.2 Deformable Partial Radiance Fields (DPaRF)

该部分主要将TransHE部分处理后的模型由标准化空间变形回观察空间,其主要思想是将TransHE的每个输出token与对应的部分辐射场绑定,并在观察空间中进行坐标系统的变形,使其能够适应人体的姿态变化。

部分辐射场是在三维空间中用于描述某一部分区域内的光线辐射信息的数学模型。它可以理解为特定区域内的光线如何在空间中传播、反射和吸收。在神经渲染领域,特别是像NeRF(Neural Radiance Fields)这样的技术中,辐射场用于描述从场景中的某一点出发的光线在该点的密度和颜色信息

在DPaRF中,部分辐射场是对整个人体的一个划分。每个部分辐射场与人体的一部分(如头部、手臂、腿等)相对应,专门用于描述那一部分的光线辐射信息每个部分辐射场根据人体的不同部位在三维空间中的变化而动态调整

部分辐射场的坐标系统 是一种局部的三维坐标系,用于描述与人体特定部分相关的光线和几何信息。

1. Coordinate System Deformation(坐标系统变形)

步骤:

  • 初始化坐标系统:对于第 i 个token \hat{F}_0^i \in \mathbb{R}^{d_1}​,在标准化空间中初始化一个坐标系统 W_c^i \in \mathbb{R}^{3 \times 3},并将其原点设为 V_c^i \in \mathbb{R}^{3}(这是TransHE中生成的token的坐标)。
  • 姿态变化下的旋转变形:当人体姿势改变时,每个标记的局部坐标系统需要根据观察空间(observation space)中的姿势进行变形。这里使用旋转矩阵 R_o^i \in \mathbb{R}^{3 \times 3} 对坐标系统进行旋转变形:W_o^i = \hat{R_o^i} W_c^i 。其中,旋转矩阵 \hat{R_o^i} 是通过对属于该token的顶点进行平均旋转得到的。这个旋转矩阵由SMPL的24个关节的旋转矩阵加权生成。

2. Coordinate Encoding(坐标编码)

该部分通过将采样点的坐标从观察空间映射到变形后的部分辐射场(DPaRF)的坐标系统中,可以获取该采样点在特定人体部分中的表示。

步骤:

  • 变形坐标计算
    对于从光线中采样的查询点 p(位于观察空间中,这个查询点可以被认为是在体积渲染过程中,从相机视角沿着某一射线(ray)所选取的特定深度位置的点。),其在DPaRF中第 i 个token下的坐标 p_i 通过以下公式计算:

    \bar{p_i }= W_o^i (p - V_o^i)

    该公式描述了在 DPaRF 中,如何将来自观察空间中的查询点 p 转换到第 i 个部分辐射场的坐标系统中,以便生成该点的人体表示。也就是说 其中:

    • \bar{p_i}:查询点 p 在第 i 个部分辐射场(DPaRF)坐标系统中的坐标。这个新坐标用来确定该查询点在该辐射场中的具体位置。

    • W_o^i \in \mathbb{R}^{3 \times 3}:这是第 i 个部分辐射场的坐标系统的旋转矩阵,描述了从标准化空间变形到当前观察空间的旋转和变换。它通过对该部分(token)的顶点姿态进行平均旋转得到。

    • p \in \mathbb{R}^3:这是观察空间中查询光线上的采样点的三维坐标。它是在当前姿态下人体模型表面或场景中的一个点。

    • V_o^i \in \mathbb{R}^3:这是第 i 个部分辐射场的中心点在观察空间中的坐标。该坐标点是在当前观察姿态下,由TransHE生成的token的中心。

  • 人体表示获取
    最终,通过将条件特征 \hat{F}_0^i​ 与位置编码 \omega_2(\bar{p_i}) 进行拼接,可以获得该人体部分的表示:

    h_i = [\hat{F}_0^i; \omega_2(\bar{p_i})], \quad h_i \in \mathbb{R}^{d_2}

    这里, \omega_2(\bar{p_i}) 是查询点 p_i​ 的位置编码,特征向量 h_i​ 结合了TransHE生成的条件特征和查询点的位置信息。

3. K-nearest Fields Aggregation(最近邻场的聚合)

为了获得更加鲁棒的人体表示,DPaRF采用了聚合多个最近邻的部分辐射场的方法。这样做的目的是避免单一部分辐射场提供的特征不完整或不准确,尤其是在姿态变化剧烈或自遮挡情况下。

步骤:

最近邻聚合
查询点 p 被分配到最近的 N_k​ 个DPaRF场中,接着根据查询点与各个辐射场中心的距离对这些场的特征进行加权求和:

h = \sum_{i=1}^{N_k} \text{softmax}\left(- \frac{\| p - \hat{V_o^i} \|_2}{\Sigma _{i} \| p - \hat{V_o^i} \|_2} \right) h_i, \quad h \in \mathbb{R}^{d_2}

步骤:

  • 距离计算:首先计算当前点 p 与所有邻域点  \hat{V_o^i} 之间的欧氏距离。
  • 归一化距离:然后将这些距离归一化,得到每个点的相对距离 - \frac{\| p - \hat{V_o^i} \|_2}{\Sigma _{i} \| p - \hat{V_o^i} \|_2} 。
  • 计算权重:通过 \text{softmax} 函数将这些归一化的距离转化为权重。
  • 加权聚合:最后,利用这些权重对第 i 个部分辐射场中的特征表示 h_i​ 进行加权聚合,得到新的特征向量 h

总结:

   

这里的红点就表示查询点p,这个坐标系就是DPaRF坐标空间,图示中绿色部分表示条件特征\hat{F}_0^i​,红色部分表示查询点p的位置编码 \omega_2(\bar{p_i}) ,将二者拼接作为共同人体表示。其中一个查询点附近可能会有多个DPaRF场,为了保证分配准确,以及避免存在自遮挡情况,这里使用了K临近策略,找查询点附近的辐射场,计算出其距离,并进行加权聚合后作为最终的人体表示结果。

DPaRF 的过程包括将标准化空间中的SMPL模型的特征和坐标系统动态调整到观察空间,从而处理不同姿态下的渲染任务。通过部分辐射场的坐标系统变形、查询点的坐标编码、以及最近邻场的特征聚合,DPaRF能够生成准确且鲁棒的人体表示。这一方法解决了在动态姿态下渲染的复杂问题,并提升了模型的泛化能力和渲染质量。

3.3 Fine-grained Detail Integration(细粒度细节集成-FDI)

在TransHE和DPaRF中,已经计算出了从 N_v​  个参考视图中获取查询点 p 的一组人体表示 h^{1:N_v} = \{h^{j}\}_{j=1}^{N_v} \in \mathbb{R}^{N_v \times d_2},但是这些表示只包含了粗略的信息,包括几何约束或某些颜色信息,但是却缺乏精细的细节,如光照和纹理。

FDI旨在补充TransHE和DPaRF生成的人体表示中缺少的细粒度信息,如光照和纹理细节,以提高渲染质量。

步骤:

1. 外观特征提取:

  • 原始CNN提取的特征可能在下采样过程中丢失一些细节。为了弥补这一点,将原始图像的RGB值与CNN提取的特征结合起来。
  • 使用全连接层 F_{C}(\cdot)  融合这些特征:F_{C}(\cdot) : \mathbb{R}^{3+d_1} \to \mathbb{R}^{d_2}。这是一个映射函数,表示将输入特征从一个维度空间映射到另一个维度空间,其中输入的空间维度是 3+d_1,通常 3 可能代表 RGB 图像的颜色通道,而 d_1​ 可能是来自其他特征的维度,输出空间的维度是d_2。这些 RGB 特征可以补充 CNN 下采样操作中丢失的细节。

2. 粗到精整合:使用一个交叉注意力模块整 合外观特征,将人体表示 h^{1:N_v}​ 作为查询(Q),将外观特征 a^{1:N_v} 作为键(K)和值(V),从而得到整合后的特征 f^{1:N_v} \in \mathbb{R}^{N_v \times d_2}​。然后,通过对视图维度进行平均池化,得到查询点 p 的最终条件特征 f ,其过程用公式表示如下:

f = \sum ^{N_c}_{j = 1} \frac{1}{N_c}f^{j},其中N_c​ 是视图的数量,f^{j}​ 是每个视图的整合特征。

3.4 体积渲染

1. 密度与颜色预测

使用以下公式预测最终的密度 \sigma(p) \in \mathbb{R}^{1} 和颜色 c(p) \in \mathbb{R}^{3}

\sigma(p) = MLP_{\sigma}(f)

c(p) = MLP_{c}(f, \mathbf{d})

其中 MLP_{\sigma}MLP_{c} 是用于密度和颜色预测的 NeRF MLP 网络,\mathbf{d} 是光线(射线)的单位视角方向。

2. 可微分渲染

对于一条光线 r(z) = o + zd,其中 o \in \mathbb{R}^{3} 是相机中心,z \in \mathbb{R}^{1} 是在预定义范围 [z_n, z_f] 之间的深度,光线的颜色 C(r)  通过可微分体积渲染计算:

C(r) = \int_{z_n}^{z_f} T(z) \sigma(z) c(z) \, dz

其中 T(z) = \exp\left(-\int_{z_n}^{z} \sigma(s) \, ds\right) 表示光线从 z 到 z_n​ 的传输概率,也就是沿射线的累积透明度。

3.5 训练与推理

1. 训练损失

比较渲染的像素颜色与真实颜色。使用 MSE 损失进行像素级监督,使用感知损失(Perceptual Loss)进行补丁级监督,这对于对齐不准确的情况更加鲁棒。训练时,随机选择补丁进行感知损失训练。

总体损失函数为:

L = L_{MSE} + \lambda L_{PER}

​ 其中 \lambda 默认为 0.1。

2. 推理

在推理阶段,为每个时间步骤提供 N_v​ 个参考视图,并将渲染的目标视图与真实视图进行比较,以计算评估指标。GP-NeRF 提出了一个快速渲染方案,利用 3D 特征体积中的粗略几何先验来过滤掉无用点。类似地,我们的框架也支持这种策略,通过简单地使用 SMPL 模板作为几何先验来实现(详细信息见附录)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值