CN116802693A - 对可驱动的全身可动画化人类化身的直接服装建模 - Google Patents
对可驱动的全身可动画化人类化身的直接服装建模 Download PDFInfo
- Publication number
- CN116802693A CN116802693A CN202280012189.9A CN202280012189A CN116802693A CN 116802693 A CN116802693 A CN 116802693A CN 202280012189 A CN202280012189 A CN 202280012189A CN 116802693 A CN116802693 A CN 116802693A
- Authority
- CN
- China
- Prior art keywords
- dimensional
- garment
- mesh
- grid
- images
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 84
- 230000015654 memory Effects 0.000 claims description 36
- 230000002123 temporal effect Effects 0.000 claims description 14
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000012549 training Methods 0.000 abstract description 51
- 239000010410 layer Substances 0.000 description 37
- 238000004891 communication Methods 0.000 description 18
- 230000011218 segmentation Effects 0.000 description 17
- 239000002356 single layer Substances 0.000 description 17
- 238000009877 rendering Methods 0.000 description 16
- 239000002355 dual-layer Substances 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000010801 machine learning Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 6
- 230000001815 facial effect Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000037237 body shape Effects 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 239000000090 biomarker Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000002679 ablation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003042 antagnostic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000004043 dyeing Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
Abstract
提供一种用于训练实时、直接服装建模以用于对对象的化身进行动画化的方法。该方法包括:采集对象的多幅图像;基于该对象的多幅图像形成三维服装网格和三维身体网格;以及将三维服装网格与三维身体网格对齐,以形成皮肤‑服装边界和衣物纹理。该方法还包括:基于预测的服装位置和衣物纹理、以及来自对象的多幅图像的插值位置和衣物纹理确定损失因子;以及根据该损失因子更新包括三维服装网格和三维身体网格的三维模型。还提供了一种系统和一种非暂态计算机可读介质,该非暂态计算机可读介质存储有促使该系统执行上述方法的指令。
Description
相关申请的交叉引用
本公开涉及于2021年1月27日提交的、向等人的名称为EXPLICIT CLOTHINGMODELING FOR A DRIVABLE FULL-BODY AVATAR的、第63/142,460号美国临时申请,并根据35U.S.C.§119(e)要求该美国临时申请的优先权,出于所有目的,该美国临时申请的内容特此通过引用全部并入。
技术领域
本公开总体上涉及生成视频捕获的对象的三维计算机模型的领域。更具体地,本公开涉及根据视频序列对人(包括人的服装)进行精确且实时的三维渲染。
背景技术
可动画化的逼真数字人是实现社交远程呈现的关键组成部分,具有为人们开辟一种不受空间和时间限制的新连接方式的潜力。采用来自商品传感器的驱动信号的输入,模型不仅需要为身体、还需要为响应于身体的运动而移动的服装生成高保真变形几何形状和逼真纹理。对身体进行建模的技术和对服装进行建模的技术在很大程度上是分开发展的。身体建模主要关注几何形状,其可以产生令人信服的几何表面,但是无法生成逼真的渲染结果。即使仅针对几何形状,服装建模也一直是一个更具挑战性的话题。这里的大部分进展为仅针对物理上的合理性而进行的模拟,而没有忠实于真实数据的限制。这一差距至少在某种程度上是由于从现实世界数据捕获三维(three-dimensional,3D)服装的挑战。即使使用最近的使用神经网络的数据驱动方法,也无法对逼真的服装进行动画化。
发明内容
根据本发明的一方面,提供了一种计算机实现的方法,包括:采集对象的多幅图像,来自对象的多幅图像包括对象的一个或多个不同视角;基于对象的多幅图像形成三维服装网格和三维身体网格;将三维服装网格与三维身体网格对齐,以形成皮肤-服装边界和衣物纹理;基于预测的服装位置和衣物纹理、以及来自对象的多幅图像的插值位置和衣物纹理确定损失因子;以及根据损失因子更新包括三维服装网格和三维身体网格的三维模型。
优选地,采集对象的多幅图像包括:使用同步多摄像头系统从对象捕获多幅图像。
优选地,形成三维身体网格包括:根据对象的多幅图像确定骨架姿态;以及将具有曲面变形的蒙皮网格添加到骨架姿态。
优选地,形成三维身体网格包括:从对象的多幅图像中识别对象的暴露的皮肤部分,作为三维身体网格的一部分。
优选地,形成三维服装网格包括:通过以下方式来识别三维服装网格中的端点:验证该端点在每个摄像头视图上的投影属于服装部分。
优选地,将三维服装网格与三维身体网格对齐包括:从三维服装网格选择服装部分并从三维身体网格选择身体部分;以及将该服装部分和该身体部分对齐。
优选地,形成三维服装网格和三维身体网格包括:从对象的多幅图像中检测一个或多个二维关键点;以及从不同的视点对多幅图像进行三角剖分,以将二维关键点转换为形成三维身体网格或三维服装网格的三维关键点。
优选地,将三维服装网格与三维身体网格对齐包括:将三维服装网格与第一模板对齐,并将三维身体网格与第二模板对齐;以及选择显式约束以区分第一模板与第二模板。
优选地,该计算机实现的方法还包括:对于多个骨架姿态,使用时间编码器来对三维模型进行动画化;以及将每个骨架姿态与三维服装网格进行关联。
优选地,该计算机实现的方法还包括:基于在预选时间窗口内连接的三维服装网格的多个帧来确定动画损失因子,该多个帧由动画模型预测并且来源于该预选时间窗口内的多幅图像;以及基于动画损失因子更新动画模型。
根据本发明的另一方面,提供了一种系统,该系统包括:存储器,该存储器存储有多个指令;以及一个或多个处理器,该一个或多个处理器被配置为执行多个指令以促使系统:采集对象的多幅图像,来自对象的多幅图像包括来自对象的不同侧面的一个或多个视图;基于对象的多幅图像形成三维服装网格和三维身体网格;将三维服装网格与三维身体网格对齐,以形成皮肤服装边界和衣物纹理;基于预测的服装位置和纹理、以及来自该对象的多幅图像的插值位置和纹理,确定损失因子;以及根据损失因子,更新包括三维服装网格和三维身体网格的三维模型,其中,采集对象的多幅图像包括使用同步多摄像头系统从对象捕获多幅图像。
优选地,为了形成三维身体网格,一个或多个处理器执行用于以下操作的多个指令:根据对象的多幅图像确定骨架姿态;以及将具有曲面变形的蒙皮网格添加到骨架姿态。
优选地,为了形成三维身体网格,一个或多个处理器执行用于以下操作的多个指令:从对象的多幅图像中识别该对象的暴露的皮肤部分,作为三维身体网格的一部分。
优选地,为了形成三维服装网格,一个或多个处理器执行用于以下操作的多个指令:通过以下方式来识别三维服装网格中的端点:验证该端点在每个摄像头视图上的投影属于服装部分。
优选地,为了将三维服装网格与三维身体网格对齐,一个或多个处理器执行用于以下操作的多个指令:从三维服装网格选择服装部分并从三维身体网格选择身体部分;以及将该服装部分与该身体部分对齐。
根据本发明的另一方面,提供了一种计算机实现的方法,包括:从对象采集图像;从图像选择多个二维关键点;识别与来自图像的每个二维关键点相关联的三维关键点;使用三维模型确定三维服装网格和三维身体网格,该三维服装网格和该三维身体网格锚定在一个或多个三维骨架姿态中;生成对象的三维表示,该对象的三维表示包括三维服装网格、三维身体网格和纹理;以及在虚拟现实环境中,实时地嵌入该对象的三维表示。
优选地,针对每个二维关键点识别三维关键点包括:以三维形式沿图像的视图插值点对图像进行投影。
优选地,确定三维服装网格和三维身体网格包括:基于多个二维关键点确定三维骨架姿态的损失因子。
优选地,在虚拟现实环境中嵌入对象的三维表示包括:根据虚拟现实环境,选择三维身体网格中的衣物纹理。
优选地,在虚拟现实环境中嵌入对象的三维表示包括:对该对象的三维表示进行动画化,以与虚拟现实环境进行交互。
在第一实施例中,一种计算机实现的方法包括采集对象的多幅图像,来自对象的多幅图像包括对象的一个或多个不同视角。该计算机实现的方法还包括:基于对象的多幅图像形成三维服装网格和三维身体网格;将三维服装网格与三维身体网格对齐,以形成皮肤-服装边界和衣物纹理;基于预测的服装位置和衣物纹理、以及来自该对象的多幅图像的插值位置和衣物纹理,来确定损失因子;以及根据损失因子,更新包括三维服装网格和三维身体网格的三维模型。
在第二实施例中,系统包括存储多个指令的存储器和一个或多个处理器,该一个或多个处理器被配置为执行该多个指令以促使系统执行多个操作。该多个操作包括:采集对象的多幅图像,来自对象的多幅图像包括来自对象的不同侧面的一个或多个视图;基于对象的多幅图像形成三维服装网格和三维身体网格;以及将三维服装网格与三维身体网格对齐,以形成皮肤服装边界和衣物纹理。该多个操作还包括:基于预测的服装位置和纹理、以及来自该对象的多幅图像的插值位置和纹理,来确定损失因子;以及根据该损失因子,更新包括三维服装网格和三维身体网格的三维模型,其中,采集对象的多幅图像包括使用同步多摄像头系统从对象捕获图像。
在第三实施例中,一种计算机实现的方法包括:从对象采集图像并从该图像选择多个二维关键点。该计算机实现的方法还包括:识别与来自图像的每个二维关键点相关联的三维关键点;以及使用三维模型确定三维服装网格和三维身体网格,该三维服装网格和该三维身体网格锚定在一个或多个三维骨架姿态中。该计算机实现的方法还包括:生成对象的三维表示,该对象的三维表示包括三维服装网格、三维身体网格和纹理;以及在虚拟现实环境中实时地嵌入对象的三维表示。
在另一实施例中,一种非暂态计算机可读介质存储有指令,所述指令在由处理器执行时,促使计算机执行方法。该方法包括:采集对象的多幅图像,来自对象的多幅图像包括对象的一个或多个不同视角;基于对象的多幅图像形成三维服装网格和三维身体网格;以及将三维服装网格与三维身体网格对齐,以形成皮肤-服装边界和衣物纹理。该方法还包括:基于预测的服装位置和衣物纹理、以及来自该对象的多幅图像的插值位置和衣物纹理,来确定损失因子;以及根据该损失因子,更新包括三维服装网格和三维身体网格的三维模型。
在又一实施例中,一种系统包括用于存储指令的装置、和用于执行指令以执行方法的装置,该方法包括:采集对象的多幅图像,来自对象的多幅图像包括对象的一个或多个不同视角;基于对象的多幅图像形成三维服装网格和三维身体网格;以及将三维服装网格与三维身体网格对齐,以形成皮肤-服装边界和衣物纹理。该方法还包括:基于预测的服装位置和衣物纹理、以及来自该对象的多幅图像的插值位置和衣物纹理,来确定损失因子;以及根据该损失因子,更新包括三维服装网格和三维身体网格的三维模型。
附图说明
图1示出了根据一些实施例的示例架构,该示例架构适合于在虚拟现实环境中提供实时的、穿着服装的对象动画。
图2是示出了根据本公开某些方面的来自图1的架构的示例服务器和客户端的框图。
图3示出了根据一些实施例的穿着服装的身体流水线。
图4示出了根据一些实施例的在图1的架构中使用的网络元件和操作块。
图5A至图5D示出了根据一些实施例的用于在实时的、穿着服装的对象动画模型中使用的编码器和解码器架构。
图6A和图6B示出了根据一些实施例的用于实时的、穿着服装的对象动画模型的身体和服装网络的架构。
图7示出了根据一些实施例的用这样的双层模型的纹理编辑结果:所述双层模型于提供实时的、穿着服装的对象动画。
图8示出了根据一些实施例的基于逆渲染的光度对齐过程。
图9示出了根据一些实施例的对象在双层神经网络模型和单层神经网络模型之间的实时的、三维穿着服装的对象再现的比较。
图10示出了根据一些实施例的用于实时的、三维穿着服装的对象再现模型的多个动画结果。
图11示出了根据一些实施例的不同的实时的、三维穿着服装的对象模型之间的概率相关性的比较。
图12示出了根据一些实施例的对系统组件的消融分析。
图13是示出了根据一些实施例的这样的方法中的多个步骤的流程图:所述方法用于训练直接服装模型,以根据多个视图创建实时对象动画。
图14是示出了根据一些实施例的这样方法中的多个步骤的流程图:所述方法用于在虚拟现实环境中嵌入直接服装模型。
图15是示出了示例计算机系统的框图,使用该示例计算机系统可以实现图1和图2的客户端和服务器、以及图13和图14的方法。
具体实施方式
在以下详细描述中,阐述了许多具体的细节,以提供对本公开的充分理解。然而,对于本领域普通技术人员来说将显而易见的是,可以在没有这些具体细节中的一些具体细节的情况下对本公开的实施例进行实践。在其它实例中,未详细示出众所周知的结构和技术,以免模糊本公开。
总体概述
提供了一种用于基于双目视频的高保真三维动画(包括服装)的实时系统。该系统可以在其适应于对象的身体运动时追踪服装的运动和对服装的再成形(例如,不同的照明条件)。使用深度生成模型同时对几何形状和纹理这两者进行建模是实现高保真面部化身的有效方法。然而,使用深度生成模型来渲染穿着服装的身体存在挑战。由于较大的变形、较多的光遮蔽以及服装与身体之间的变化的边界,应用多视图身体数据以获取时间相干的身体网格与时间相干的服装网格是具有挑战性的。此外,由于身体姿势的大变化和其服装状态的动态变化,用于面部的网络结构无法直接应用于穿着服装的身体建模。
因此,直接服装建模意味着本文所公开的实施例创建与对象的服装(包括形状和衣物纹理)相关联的三维网格,该三维网格与三维身体网格分开。因此,该模型可以在不丢失对象的真实再现的情况下、根据任何沉浸式现实环境的需要来调整、改变和修改化身的服装和衣物。
为了解决在计算机网络、计算机模拟和沉浸式现实应用领域中出现的这些技术问题,本文所公开的实施例将身体和服装表示为不同的网格,并且包括从捕获到建模的新框架,该新框架用于生成深度生成模型。对于直接的身体表示和服装表示,此深度生成模型是完全可动画的和可编辑的。
在一些实施例中,基于几何形状的配准方法将身体表面和服装表面与模板对齐,身体和服装之间具有直接约束。此外,一些实施例包括使用逆渲染的光度追踪方法,以将服装纹理与参考对齐,并创建精确的时间相干的网格以用于学习。在双层网格作为输入的情况下,一些实施例包括变分自动编码器,该变分自动编码器用于在标准姿态中分别对身体和服装进行建模。该模型通过时间模型(例如,时间卷积网络(temporal convolutionalnetwork,TCN))学习姿势和服装之间的相互作用,以从作为驱动信号的身体姿势的多个序列中推断服装状态。时间模型充当数据驱动的模拟机,以逐渐形成与身体状态的移动相一致的服装状态。服装的直接建模使得能够(例如,通过改变服装纹理)对穿着服装的身体模型进行编辑,从而产生了改变化身上的服装的可能性,并因此产生了虚拟试穿的可能性。
更具体地,本文所公开的实施例包括用于逼真的全身远程呈现的双层编解码器化身模型,以在视频对象的三维再现中更具表现力地渲染服装外观。化身具有更清晰的皮肤-服装边界、更清晰的衣物纹理、以及更稳健的对光遮蔽的处理。此外,本文所公开的化身模型包括光度追踪算法,该光度追踪算法对显著的服装纹理进行对齐,使得能够独立于身体移动、姿势和手势来直接编辑和处理化身服装。本文所公开的双层编解码器化身模型可以在化身的逼真姿势驱动的动画和具有高质量水平的对服装纹理的编辑中使用。
示例系统架构
图1示出了根据一些实施例的适合于访问模型训练引擎的示例架构100。该架构100包括多个服务器130,该多个服务器130通过网络150与多个客户端设备110和至少一个数据库152通信耦接。多个服务器130中的一个服务器被配置为托管存储器,该存储器包括多个指令,该多个指令在由处理器执行时,促使服务器130执行本文所公开的方法中的多个步骤中的至少一些步骤。在一些实施例中,处理器被配置为控制图形用户界面(graphicaluser interface,GUI),以用于多个客户端设备110中的一个客户端设备的用户访问模型训练引擎。模型训练引擎可以被配置为对机器学习模型进行训练,以用于处理特定应用。因此,处理器可以包括控制面板工具,该控制面板工具被配置为通过GUI向用户显示多个组件和多个图形结果。出于负载平衡的目的,多个服务器130可以托管多个存储器,该多个存储器包括到一个或多个处理器的多个指令,并且多个服务器130可以托管历史日志和数据库152,该数据库152包括用于模型训练引擎的多个训练档案。此外,在一些实施例中,多个客户端设备110的多个用户可以访问同一模型训练引擎,以运行一个或多个机器学习模型。在一些实施例中,具有单个客户端设备110的单个用户可以对在一个或多个服务器130中并行运行的多个机器学习模型进行训练。因此,多个客户端设备110可以通过网络150并且通过对一个或多个服务器130、以及位于其中的资源进行访问来彼此通信。
服务器130可以包括如下的任何设备:所述设备具有合适的处理器、存储器、以及用于托管模型训练引擎的通信能力,该模型训练引擎包括与其相关联的多个工具。模型训练引擎可以由各种客户端110通过网络150访问。客户端110可以是例如台式计算机、移动计算机、平板计算机(例如,包括电子书阅读器)、移动设备(例如,智能手机或个人数字助理(PDA))、或如下的任何其它设备:所述设备具有合适处理器、存储器、以及用于访问位于多个服务器130中的一个或多个服务器上的模型训练引擎的通信能力。网络150可以包括例如以下网络中的任何一个或多个网络:局域网(local area tool,LAN)、广域网(wide areatool,WAN)、因特网等。此外,网络150可以包括但不限于以下工具拓扑中的任何一个或多个工具拓扑:该工具拓扑包括总线网络、星形网络、环形网络、网状网络、星形总线网络、树形网络或分级网络等。
图2是示出了根据本公开的某些方面的来自架构100的示例服务器130和客户端设备110的框图200。客户端设备110和服务器130通过各自的通信模块218-1和218-2(以下统称为“通信模块218”)通过网络150通信耦接。通信模块218被配置为与网络150连接,以通过网络150向其他设备发送信息(例如,数据、请求、响应和命令)并接收信息(例如,数据、请求、响应和命令)。通信模块218可以是例如调制解调器或以太网卡。用户可以经由输入设备214和输出设备216与客户端设备110进行交互。输入设备214可以包括鼠标、键盘、指示器、触摸屏、传声器等。输出设备216可以是屏幕显示器、触摸屏、扬声器等。客户端设备110可以包括存储器220-1和处理器212-1。存储器220-1可以包括应用程序222和GUI 225,该应用程序222和GUI 225被配置为在客户端设备110中运行并且与输入设备214和输出设备216耦接。应用程序222可以由用户从服务器中130下载,并且可以由该服务器130托管。
服务器130包括存储器220-2、处理器212-2和通信模块218-2。在下文中,处理器212-1和212-2统称为“处理器212”,并且存储器220-1和220-2统称为“存储器220”。处理器212被配置为执行存储在存储器220中的指令。在一些实施例中,存储器220-2包括模型训练引擎232。模型训练引擎232可以向GUI 225共享或提供特征和资源,模型训练引擎232包括如下的多个工具:该多个工具与训练和使用用于沉浸式现实应用的三维化身渲染模型相关联。用户可以通过安装在客户端设备110的存储器220-1中的GUI 225来访问模型训练引擎232。因此,GUI 225可以由服务器130安装,并且执行由服务器130通过多个工具中的任何一个工具提供的脚本和其它例程。GUI 225的执行可以由处理器212-1控制。
在这点上,如本文所公开的,模型训练引擎232可以被配置为创建、存储、更新和维护实时的、直接的服装动画模型240。服装动画模型240可以包括编码器、解码器和工具(例如,身体解码器242、服装解码器244、分割工具246和时间卷积工具248)。在一些实施例中,模型训练引擎232可以访问存储在训练数据库252中的一个或多个机器学习模型。训练数据库252包括训练档案和其它数据文件,该训练档案和其它数据文件可以由模型训练引擎232根据用户通过GUI 225的输入而在对机器学习模型的训练中使用。此外,在一些实施例中,至少一个或多个训练档案或机器学习模型可以存储在多个存储器220中的任何一个存储器中,并且用户可以通过GUI 225访问它们。
身体解码器242基于来自对象的多幅输入图像确定骨架姿态,并且根据通过训练学习的分类方案将具有曲面变形的蒙皮网格添加到该骨架姿态。服装解码器244用限定形状的几何分支确定三维服装网格。在一些实施例中,服装解码器244还可以使用该解码器中的纹理分支来确定衣物纹理。分割工具246包括服装分割层和身体分割层。分割工具246提供多个服装部分和多个身体部分,以使得能够将三维服装网格与三维身体网格对齐。如本文所公开的,时间卷积工具248执行用于实时化身模型的姿态驱动动画的时间建模。因此,时间卷积工具248包括时间编码器,该时间编码器将对象的(例如,在预选的时间窗口内连接的)多个骨架姿态与三维服装网格相关联。
模型训练引擎232可以包括如下的算法:所述算法是出于包括在该模型训练引擎232中的引擎和工具的特定目的而被训练的。算法可以包括利用任何线性算法或非线性算法的机器学习算法或人工智能算法,例如神经网络算法或多元回归算法。在一些实施例中,机器学习模型可以包括神经网络(neural network,NN)、卷积神经网络(convolutionalneural network,CNN)、生成对抗神经网络(generative adversarial neural network,GAN)、深度强化学习(deep reinforcement learning,DRL)算法、深度循环神经网络(deeprecurrent neural network,DRNN)、经典机器学习算法(例如,随机森林、k-近邻(k-nearest neighbor,KNN)算法、k-均值聚类算法)、或它们的任何组合。更一般地,机器学习模型可以包括涉及训练步骤和优化步骤的任何机器学习模型。在一些实施例中,训练数据库252可以包括训练档案,以根据机器学习模型的所需结果修改系数。因此,在一些实施例中,模型训练引擎232被配置为访问训练数据库252,以检索文档和档案作为机器学习模型的输入。在一些实施例中,模型训练引擎232、包含在模型训练引擎232中的工具、以及训练数据库252的至少一部分可以托管在可以由服务器130访问的不同服务器中。
图3示出了根据一些实施例的穿着服装的身体流水线300。(例如通过摄像头或视频设备)采集原始图像301,并且数据预处理步骤302渲染3D重建342,该3D重建342包括多个关键点344和分割渲染346。图像301可以包括多幅图像或多个帧,该多幅图像或多个帧在一视频序列中、或者来自从一个或多个摄像头采集的多个视频序列,该多幅图像或多个帧被定向以形成对象303的多方向视图(“多视图”)。
单层表面追踪(single-layer surface tracking,SLST)操作304识别网格354。SLST操作304使用运动学身体模型来非刚性地配准重建的网格354。在一些实施例中,运动学身体模型包括Nj=159个关节、Nv=614118个端点、以及用于所有端点(vertex)的预定义线性混合蒙皮(linear-blend skinning,LBS)权重。LBS函数W(·,·)是使网格354与骨架结构一致地变形的变换。LBS函数W(·,·)采用静止姿态端点和关节角度作为输入,并输出目标姿态端点。SLST操作304通过计算最佳拟合手动选择的峰值姿态集合的静止状态形状来估计个性化模型。然后,对于每一帧i,我们估计一组关节角度θi,使得蒙皮模型/>与网格354和关键点344具有最小距离。SLST操作304使用/>作为初始化和最小化几何对应误差和拉普拉斯正则化(Laplacian regularization),来计算每帧端点偏移以配准网格354。网格354与分割渲染346组合以在网格分割306中形成分割网格356。内层形状估计(inner layer shape estimation,ILSE)操作308产生身体网格321-1。
对于序列中的每幅图像301,流水线300使用分割网格356来识别上部服装的目标区域。在一些实施例中,分割网格356与服装模板364(例如,包括特定的服装纹理、颜色、图案等)组合,以在服装配准310中形成服装网格321-2。身体网格321-1和服装网格321-2在下文中将统称为“网格321”。服装配准310使服装模板364变形以匹配目标服装网格。在一些实施例中,为了创建服装模板364(其中,创建较大的人口数据集包括:评估用于由统计参数调节的生物标志物值的随机变量,以及将该随机变量和生物标志物数据集之间的差异与由倾向卡尺(propensity caliper)导出的距离度量进行比较),流水线300在SLST操作304中选择(例如,手动或自动选择)一帧,并使用在网格分割306中识别的上部服装区域,以生成服装模板364。流水线300为服装模板364创建在二维(2D)UV坐标中的图。因此,服装模板364中的每个端点与来自身体网格321-1的一端点相关联,并且可以使用模型来蒙皮。流水线300在身体网格321-1中重复使用三角剖分来创建服装模板364的拓扑。
为了对变形提供较好的初始化,服装配准310可以应用双谐波变形场来找到将服装模板364的边界与目标服装网格边界对齐的逐端点变形,同时保持内部失真尽可能低。这允许服装模板364的形状收敛到较好的局部最小值。
ILSE 308包括估计由上部服装覆盖的不可见身体区域,以及估计可以从身体网格321-1直接获得的任何其它可见身体区域(例如,没有由服装覆盖的区域)。在一些实施例中,ILSE 308根据3D穿着服装的人体扫描的序列来估计潜在的身体形状。
ILSE 308基于来自所捕获的序列的30幅图像301的样本,来生成对象的跨帧内层身体模板Vt,并将这些帧的静止姿态Vi中的全身追踪表面融合成单个形状VFu。在一些实施例中,ILSE 308使用融合形状VFu的以下特性:(1):VFu中的所有上部服装端点应位于内层身体形状Vt之外。以及(2):VFu中的不属于上部服装区域的端点应接近Vt。ILSE 308通过求解以下优化方程式来求解
特别地,Etout对VFu的位于Vt内的任何上部服装端点进行惩罚(penalize),惩罚的量根据以下确定:
其中,d(·,·)是从端点vj到表面Vt的符号距离,如果vj位于Vt之外,则d(·,·)取正值,如果vj位于Vt内,则d(·,·)取负值。系数sj由网格分割306提供。如果vj被标记为上部服装,则系数sj取值1,并且如果vj以其他方式被标记,则系数sj取值0。为了避免过薄的内层,Et fit对VFu和Vt之间的过大距离进行惩罚,如在下式中所示:
其中,此项的权重小于‘out’项:wfit<wout。在一些实施例中,sj=0的VFu的多个端点应非常接近Vt的可视区域。此限制由Et vis强制执行:
此外,为了使内层模板正则化,ILSE 308施加了耦合项和拉普拉斯项。本文的内层模板的拓扑与蒙皮多人线性(SMPL)模型拓扑不兼容,因此我们不能使用SMPL体形空间进行正则化。替代地,本文的耦合项Et cpl对Vt和身体网格321-1之间的相似性进行强制执行。拉普拉斯项Et lpl对估计的内层模板Vt中的大拉普拉斯值进行惩罚。在一些实施例中,ILSE 308可以使用以下损失权重:wt out=1.0、wt fit=0.03、wt vis=1.0、wt cpl=500.0、wt lpl=10000.0。
ILSE 308在静止姿态Vt中获得身体模型(例如,身体网格321-1)。此模板表示上部服装下的平均身体形状、以及具有裤子的下部身体形状和各种暴露的皮肤区域(例如,面部、手臂和手)。静止姿态是估计特定于帧的内层身体形状的强先验。然后,ILSE 308为图像301序列中的其它帧生成单独的姿态估计。对于每一帧,将静止姿态与服装网格356组合,以形成身体网格321-1并允许我们对人的全身外观进行渲染。出于此目的,需要身体网格321-1完全在分割网格356中的服装下,而两层之间没有相交。对于图像301序列中的每一帧i,ILSE 308对静止姿态中的内层形状/>进行估计。ILSE 308使用LBS函数W(Vi,θi)来将Vi变换为目标姿态。然后,ILSE 308求解以下优化方程式:
双层构型(formulation favor)有利于网格354保持在上部服装内。因此,ILSE308引入了上部服装中的任何端点应保持远离内层形状的最小距离ε(例如,1cm左右),并且使用其中创建较大的人口数据集包括:评估用于由统计参数调节的生物标志物值的随机变量,以及将该随机变量和生物标志物数据集之间的差异与由倾向卡尺导出的距离度量进行比较
其中,sj表示网格中的端点vj的分割结果,其中,对于上部服装中的端点为值1,否则为值0。类似地,对于内层中的直接可见区域(未由服装覆盖的):
ILSE 308还将特定于帧的静止姿态形状与身体网格321-1耦合,以利用模板中的强先验编码(strong prior encode):
其中,下标e表示对两个网格321-1和321-2的边缘执行耦合。在一些实施例中,可以使用以下损失权重实现方程式(5):wI out=1.0,wI vis=1.0,wI cpl=500.0。方程式(5)的解为序列中的每一帧提供配准的拓扑中的身体网格321-1的估计。内层网格321-1和外层网格321-2被用作对象的化身模型。此外,对于序列中的每一帧,流水线300从由摄像头系统捕获的多视图图像301中提取多个网格321的特定于帧的UV纹理。如本文所公开的,两个网格321的几何形状和纹理用于训练双层编解码器化身。
图4示出了根据一些实施例的在架构100和流水线300中使用的网络元件和操作块400A、400B和400C(以下统称为“块400”)。数据张量402包括作为n×H×W的张量维度,其中,‘n’是输入图像或帧(例如,图像301)的数目,并且H和W是帧的高度和宽度。卷积操作404、408和410是二维操作,通常作用于图像帧的2D维度(H和W)。漏洞ReLU(Leaky ReLU,LReLU)运算406和412应用在卷积操作404、406和410中的各个卷积操作之间。
块400A是下转换块,其中具有尺寸n×H×W的输入张量402变为具有尺寸out×H/2×W/2的输出张量414A。
块400B是上转换块,其中在上采样操作403C之后,具有尺寸n×H×W的输入张量402变为具有尺寸out×2·H×2·W的输出张量414B。
块400C是这样的卷积块:该卷积块保持输入块402的2D维度,但是可以改变帧的数目(以及它们的内容)。输出张量414C具有尺寸out×H×W。
图5A至图5D示出了根据一些实施例的用于在实时的、穿着服装的对象动画模型中使用的编码器500A、解码器500B和500C、以及阴影网络500D的架构(以下统称为“架构500”)。
编码器500A包括输入张量501A-1、以及分别作用于张量502A-1、504A-1、504A-2、504A-3、504A-4、504A-5、504A-6和504A-7的下转换块503A-1、503A-2、503A-3、503A-4、503A-5、503A-6和503A-7(以下统称为“下转换块503A”)。卷积块505A-1和505A-2(以下统称为“卷积块505A”)将张量504A-7转换成张量506A-1和张量506A-2(以下统称为“张量506A”)。张量506A被组合成隐藏编码507A-1和噪声块507A-2(以下统称为“编码器输出507A”)。注意,在示出的特定示例中,编码器500A采用包括例如具有像素尺寸1024×1024的8个图像帧的输入张量501A-1,并且产生具有大小为8×8的128个帧的编码器输出507A。
解码器500B包括卷积块502B-1和502B-2(以下统称为“卷积块502”),该卷积块502B-1和502B-2作用于输入张量501B以形成张量502B-3。上转换块503B-1、503B-2、503B-3、503B-4、503B-5和503B-6(以下统称为“上转换块503B”)作用于张量504B-1、504B-2、504B-3、504B-4、504B-5和504B-6(以下统称为“张量504B”)。作用于张量504B-6的卷积505B产生纹理张量506B和几何形状张量507B。
解码器500C包括卷积块502C-1,该卷积块502C-1作用于输入张量501C以形成张量502C-2。上转换块503C-1、503C-2、503C-3、503C-4、503C-5和503C-6(以下统称为“上转换块503C”)作用于张量502C-2、504C-1、504C-2、504C-3、504C-4、504C-5和504C-6(以下统称为“张量504C”)。作用于张量504C的卷积505C产生纹理张量506C。
阴影网络500D包括卷积块504D-1、504D-2、504D-3、504D-4、504D-5、504D-6、504D-7、504D-8和504D-9(以下统称为“卷积块504D”),卷积块504D-1、504D-2、504D-3、504D-4、504D-5、504D-6、504D-7、504D-8和504D-9在以下各项之后作用于张量503D-1、503D-2、503D-3、503D-4、503D-5、503D-6、503D-7、503D-8和503D-9(以下统称为“张量503D”):下采样502D-1和502D-2以及上采样502D-3、502D-4、502D-5、502D-6和502D-7(以下统称为“上和下采样操作502D”);以及LReLU操作505D-1、505D-2、505D-3、505D-4、505D-5和505D-6(以下统称为“LReLU操作505D”)。在沿着阴影网络500D的不同阶段处,连接510-1、510-2和510-3(以下统称为“连接610”)将张量503D-2连接到张量503D-8,将张量503D-3连接到张量503D-7,并且将张量503D-4连接到张量503D-6。阴影网络500D的输出是阴影图511。
图6A和图6B示出了根据一些实施例的用于实时的、穿着服装的对象动画模型的身体网络600A和服装网络600B(以下统称为“网络600”)的架构。一旦服装与身体解耦,骨架姿态和面部关键点就包含足够的信息以描述身体状态(包括相对紧身的裤子)。
身体网络600A接收骨架姿态601A-1、面部关键点601A-2和视图调节601A-3作为至上转换块603A-1(视图无关)和603A-2(视图相关)(以下统称为“解码器603A”)的输入(以下统称为“输入601A”),产生2D、UV坐标图604A-1、身体平均视图纹理604A-2、身体残余纹理604A-3和身体环境光遮蔽604A-4中的未摆姿势的几何形状。身体平均视图纹理604A-2与身体残余纹理604A-3复合,以生成身体的身体纹理607A-1作为输出。然后在阴影网络605A(参见阴影网络500D)中将LBS变换应用到从UV图恢复的未摆姿势的网格,以产生最终输出网格607A-2。用于训练身体网络的损失函数定义为:
其中,Vp B是在UV坐标中从预测位置图插值的端点位置,并且Vr B是来自内层配准的端点。L(·)是拉普拉斯算子,Tp B是预测纹理,Tt B是每视图重建的纹理,以及MV B是指示有效UV区域的掩膜。
服装网络600B包括条件变分自动编码器(Conditional VariationalAutoencoder,cVAE)603B-1,该条件变分自动编码器603B-1采取未摆姿势的服装几何形状601B-1和平均视图纹理601B-2作为输入(以下统称为“服装输入601B”),并产生高斯分布的参数,在块604B-2中从该参数对隐藏编码604B-1(z)进行上采样以形成隐藏调节张量604B-3。除了隐藏调节张量604B-3之外,cVAE 603B-1生成空间变化的视图调节张量604B-4,作为至视图无关的解码器605B-1和视图相关的解码器605B-2的输入,并对服装几何形状606B-1、服装纹理606B-2和服装残余纹理606B-3进行预测。训练损失可以被描述为:
其中,Vp C是在UV坐标中从预测位置图插值的服装几何形状606B-1的端点位置,并且Vr C是来自内层配准的端点。L(·)是拉普拉斯算子,Tp C是预测纹理606B-2,Tt C是每视图重建的纹理608B-1,以及MV C是指示有效UV区域的掩膜。并且Ekl是库尔贝克-莱布勒(Kullbar-Leibler,KL)散度损失。阴影网络605B(参见阴影网络500D和605A)使用服装模板606B-4来形成服装阴影图608B-2。
图7示出了根据一些实施例的用于提供实时的、穿着服装的对象动画的双层模型的纹理编辑结果。化身721A-1、721A-2和721A-3(以下统称为“化身721A”)对应于对象303的三个不同姿势,并且使用第一套服装764A。化身721B-1、721B-2和721B-3(以下统称为“化身721B”)对应于对象303的三个不同姿势,并且使用第二套服装764B。化身721C-1、721C-2和721C-3(以下统称为“化身721C”)对应于对象303的三个不同姿势,并且使用第三套服装764C。化身721D-1、721D-2和721D-3(以下统称为“化身721D”)对应于对象303的三个不同姿势,并且使用第四套服装764D。
图8示出了根据一些实施例的基于逆渲染的光度对齐方法800。方法800对配准的身体和服装网格(例如,网格321)中的对应误差进行校正,这显著提高了解码器质量,尤其是对于动态服装。方法800是如下的网络训练阶段:该网络训练阶段以可微分的方式将预测的几何形状(例如,身体几何形状604A-1和服装几何形状606B-1)和纹理(例如,身体纹理604A-2和服装纹理606B-2)链接到输入多视图图像(例如,图像301)。为此,方法800对身体和服装网络(例如,网络600)进行联合训练,该身体和服装网络包括变分自动编码器(VAE)803A以及在初始化815之后的VAE 803B(以下统称为“VAE 803”)。VAE 803使用可微分渲染器来渲染输出。在一些实施例中,方法800使用以下损失函数:
其中,IR和IC是渲染的图像和捕获的图像,MR和MC是渲染的前景掩膜和捕获的前景网格,并且Elap是拉普拉斯几何损失(参见方程式9和10)。Esoftvisi是软可见性损失,其处理身体和服装之间的深度推理,以使得梯度可以反向传播,以校正深度顺序。详细地,我们将特定像素的软可见性定义为:
其中,σ(·)是S型(sigmoid)函数,DC和DB是从服装层和身体层的当前视点渲染的深度,以及c是缩放常数。然后在以下情况下将软可见性损失定义为:
Esoftvisi=S2 (13)
该情况为在S>0.5并且根据2D服装分割、该当前像素被指定为服装时。否则,将Esoftvisi设置为0。
在一些实施例中,方法800可以通过预测具有跨帧的较小差异的纹理、以及变形的几何形状,以将渲染输出与地面真值图像对齐来改善光度对应。在一些实施例中,方法800使用逆渲染损失(参见方程式11至13)来同时训练多个VAE 803,并在创建用于驱动实时动画的生成模型时校正对应关系。为了找到良好的最小值,方法800预期避免初始网格821中的光度对应的大变化。此外,方法800预期避免VAE 803调整视图相关的纹理以补偿几何形状差异,这可能会产生伪影。
为了解决上述挑战,方法800将多个输入锚帧(A)811A-1至811A-n(以下统称为“输入锚帧811A”)分成50个相邻帧的多个组块(B):输入组块帧811B-1至811B-n(以下统称为“输入组块帧811B”)。方法800使用输入锚帧811A来训练VAE 803A以获得对齐的锚帧813A-1至813A-n(以下统称为“对齐的锚帧813A”)。并且方法800使用组块帧811B来训练VAE 803B以获得对齐的组块帧813B-1至813B-n(以下统称为“对齐的组块帧813B”)。在一些实施例中,方法800选择第一组块811B-1作为锚帧811A-1,并针对该组块训练VAE 803。在收敛之后,所训练的网络参数对其他组块(B)的训练进行初始化。为了避免组块B与锚帧A的对齐漂移,方法800可以设置小的学习率(例如,用于优化器的0.0001),并且在训练期间将锚帧A与每个其它组块B混合。在一些实施例中,方法800使用单个纹理预测,以用于在来自对象的多个视图中的一个或多个视图、或全部视图中进行逆渲染。与输入锚帧811A和输入组块帧811B相比,对齐的锚帧813A和对齐的组块帧813B(以下统称为“对齐的帧813”)具有更一致的跨帧对应关系。在一些实施例中,对齐的网格825可以用于训练身体网络和服装网络(参见网络600)。
方法800将光度损失(参见方程式11至13)应用于可微分渲染器820A,以分别从初始网格821A-1到821A-n(以下统称为“初始网格821A”)获得对齐的网格825A-1到825A-n(以下统称为“对齐的网格825A”)。独立于VAE 803A,对单独的VAE 803B进行初始化。方法800使用输入组块帧811B来训练VAE 803B以获得对齐的组块帧813B。方法800将同一损失函数(参见方程式11至13)应用于可微分渲染器820B,以分别从初始网格821B-1到821B-n(以下统称为“初始网格821B”)获得对齐的网格825B-1到825B-n(以下统称为“对齐的网格825B”)。
当像素被标记为“服装”、但从该视点看身体层位于服装层之上时,软可见性损失将反向传播信息以更新表面,直到实现正确的深度顺序。在此逆渲染阶段,我们还使用了阴影网络,该阴影网络在给定环境光遮蔽图的情况下计算身体和服装的准阴影图。在一些实施例中,方法800可以在LBS变换之后用身体模板近似环境光遮蔽。在一些实施例中,方法800可以使用来自身体和服装解码器的输出几何形状,来计算精确的环境光遮蔽,以对如下服装变形进行建模:该服装变型比可以从根据关于身体变形的LBS函数收集的服装变形更详细。然后,在应用可微分渲染器820之前,将准阴影图与视图相关的纹理相乘。
图9示出了根据一些实施例的、对对象以不同姿势A、B和C(例如,姿势的时间序列)在单层神经网络模型921A-1、921B-1和921C-1(以下统称为“单层模型921-1”)与双层神经网络模型921A-2、921B-2和921C-2(以下统称为“双层模型921-2”)之间的实时的、三维穿着服装的模型的比较900。多个网络模型921包括身体输出942A-1、942B-1和942C-1(以下统称为“单层身体输出942-1”)和身体输出942A-2、942B-2和942C-2(以下统称为“身体输出942-2”)。多个网络模型921还分别包括服装输出944A-1、944B-1和944C-1(以下统称为“单层服装输出944-1”)和服装输出944A-2、944B-2和944C-2(以下统称为“双层服装输出944-2”)。
双层身体输出942-2受制于骨架姿态和面部关键点的单个帧,而双层服装输出944-2由隐藏编码确定。为了在帧A、B和C之间对服装进行动画化,模型900包括时间卷积网络(TCN)以学习身体动力学和服装变形之间的相关性。TCN接收多个骨架姿态的时间序列(例如,A、B和C),并推断隐藏的服装状态。TCN在通向目标帧的L个帧的窗口中采用关节角度θi作为输入,并通过若干一维(one-dimensional,1D)时间卷积层来预测当前帧C的服装隐藏编码(例如,双层服装输出944C-2)。为了训练TCN,模型900将使以下损失函数最小化:
其中,zc是从经过训练的服装VAE(例如,cVAE 603B-1)获得的地面真值隐藏编码。在一些实施例中,模型900不仅调节对先前的身体状态的预测,而且还调节对先前的服装状态的预测。因此,需要先前帧(例如,姿势A和B)中的服装端点位置和速度来计算当前服装状态(姿势C)。在一些实施例中,至TCN的输入是骨架姿态的时间窗口,不包括先前的服装状态。在一些实施例中,模型900包括TCN的训练损失,以确保预测的服装不与身体相交。在一些实施例中,作为后处理步骤,模型900对双层身体输出942-2和双层服装输出944-2之间的相交进行处理。在一些实施例中,模型900将相交的双层服装输出944-2投影回双层身体输出942-2的表面上,其中在正常身体方向上具有额外的余量。此操作将解决大多数相交伪影,并确保双层服装输出942-2和双层身体输出942-2处于正确深度顺序以用于渲染。相交解决问题的示例可以在姿势B的部分944B-2和946B-2、以及姿势C中的部分944C-2和946C-2中看到。相比之下,姿势B的部分944B-1和946B-1、以及姿势C中的部分944C-1和946C-1示出了身体输出942B-1(942C-1)和服装输出944B-1(944C-1)之间的相交和混合伪影。
图10示出了根据一些实施例的用于实时的、三维穿着服装的对象再现模型1000的动画化身1021A-1(单层、没有隐藏性质、姿势A)、1021A-2(单层、具有隐藏性质、姿势A)、1021A-3(双层、姿势A)、1021B-1(单层、没有隐藏性质、姿势B)、1021B-2(单层、具有隐藏性质、姿势B)和1021B-3(双层、姿势B)。
双层化身1021A-3和1021B-3(以下统称为“双层化身1021-3”)由3D骨架姿态和面部关键点驱动。模型1000将当前帧(例如,姿势A或B)的骨架姿态和面部关键点馈送到身体解码器(例如,身体解码器603A)。服装解码器(例如,服装解码器603B)经由TCN由隐藏服装编码(例如,隐藏编码604B-1)驱动,该TCN采用历史和当前姿态的时间窗口作为输入。模型1000通过对单位高斯分布(例如,服装输入604B)的随机采样对单层化身1021A-1、1021A-2、1021B-1和1021B-2(以下统称为“单层化身1021-1和1021-2”)进行动画化,并且在可用的情况下使用所获得的噪声值来插补隐藏编码。对于化身1021A-2和1021-B-2中的采样的隐藏编码,模型1000将骨架姿态和面部关键点一起馈送至解码器网络(例如,网络600)。模型1000在双层化身1021-3中移除了动画输出中的服装区域中的(尤其是在服装边界周围)严重伪影。事实上,由于身体和服装一起被建模,单层化身1021-1和1021-2依赖于隐藏编码来描述与相同身体姿态相对应的许多可能的服装状态。在动画期间,尽管努力将隐藏空间与驱动信号分离,但是缺乏地面真值隐藏编码导致输出的降级。
双层化身1021-3通过将身体和服装分成不同的模块来实现更好的动画质量,如通过将单层化身1021-1和1021-2中的边界区域1044A-1、1044A-2、1044B-1、1044B-2、1046A-1、1046A-2、1046B-1和1046B-2与双层化身1021-3中的边界区域1044A-3、1046A-3、1044B-3和1046B-3(例如,包括穿着服装的部分和裸露身体部分的区域,以下统称为边界区域1044和1046)进行比较可以看出的。因此,身体解码器(例如,身体解码器603A)可以在给定当前帧的驱动信号的情况下确定身体状态,TCN学习在较长的一段时间内从身体动力学推断最似乎合理的服装状态,并且服装解码器(例如,服装解码器605B)在其学习到的光滑隐藏流形的情况下确保合理的服装输出。此外,双层化身1021-3示出了这些定性图像中具有更清晰的服装边界和更清晰的褶皱图案的结果。对动画输出的定量分析包括相对于所捕获的地面真值图像评估输出图像。模型1000可以根据前景像素上的均方误差(Mean SquareError,MSE)和结构相似性指数测量(Structural Similarity Index Measure,SSIM)来报告评估度量。双层化身1021-3通常在所有三个序列和两个评估度量上都优于单层化身1021-1和1021-2。
图11示出了根据一些实施例的对象303处于第一姿势的不同实时的、三维穿着服装的化身1121A-1、1121B-1、1121C-1、1121D-1、1121E-1和1121F-1(以下统称为“化身1121-1”)与对象303处于第二姿势的穿着服装的化身1121A-2、1121B-2、1121C-2、1121D-2、1121E-2和1121F-2(以下统称为“化身1121-1”)之间的概率相关性的比较1100。
在没有隐藏编码的单层模型中获得化身1121A-1、1121D-1和1121A-2、1121D-2。在使用隐藏编码的单层模型中获得化身1121B-1、1121E-1和1121B-2、1121E-2。并且在双层模型中获得化身1121C-1、1121F-1和1121C-2、1121F-2。
虚线1110A-1、1110A-2和1110A-3(以下统称为“虚线1110A”)指示对象303的区域1146A、1146B、1146C、1146D、1146E和1146F(以下统称为“边界区域1146”)周围的服装区域的变化。
图12示出了根据一些实施例的用于直接服装建模1200的消融分析。帧1210A示出了由没有隐藏空间的模型1200获得的化身1221A、用包括双层网络的模型1200获得的化身1221-1、以及对应的地面真值图像1201-1。化身1221A是从作为输入的骨架姿态序列直接回归服装几何形状和纹理而获得的。帧1210B示出了相比于包括双层网络的模型1200中的化身1221-2,由模型1200在没有纹理对齐步骤的情况下获得的化身1221B与对应的地面真值图像1201-2。化身1221-1和1221-2示出了更清晰的纹理图案。帧1210C示出了在没有视图调节效果的情况下使用模型1200获得的化身1221C。注意化身1221-3中对象的暗色轮廓附近的照明的强反射率,该化身1221-3是使用包括视图调节步骤的模型1200获得的。
此设计的一替代方案是将身体和服装网络(例如,网络600)的功能组合为一个:训练这样的解码器:该解码器采用骨架姿态序列作为输入并预测服装几何形状和纹理作为输出(例如,化身1221-1)。化身1221A在靠近对象的胸部的标志区域周围是模糊的。事实上,即使是骨架姿态序列也不包含足够的信息来完全确定服装状态。因此,将回归量从信息不足的输入(例如,没有隐藏空间)直接训练到最终的服装输出会导致模型对数据的拟合不足。相比之下,包括双层网络的模型1200可以使用生成的隐藏空间对不同的服装状态进行详细建模,同时时间建模网络推断最可能的服装状态。以此方式,双层网络可以产生具有清晰细节的高质量动画输出。
相对于在没有纹理对齐的情况下对数据进行训练的基线模型(化身1221B),模型1200通过在具有纹理对齐的情况下对配准的身体和服装数据进行训练来生成化身1221-2。因此,光度纹理对齐有助于在动画输出中产生更清晰的细节,因为较好的纹理对齐使数据对于网络更容易消化。此外,来自包括双层网络的模型1200的化身1221-3包括视图相关的效果,并且在视觉上比没有纹理对齐的化身1221C更类似于地面真值1201-3。在入射角接近90时,在对象的暗色轮廓附近观察到差异,其中由于菲涅尔反射(Fresnel reflectance),化身1221-3更明亮,此因素使视图相关的输出更逼真。在一些实施例中,时间模型倾向于产生具有小时间窗口抖动的输出。TCN中的较长时间窗口实现了视觉时间一致性和模型效率之间的所需的折衷。
图13是示出了根据一些实施例的用于训练直接服装模型、以根据双目视频创建实时对象动画的方法1300中的多个步骤的流程图。在一些实施例中,方法1300可以至少部分地由执行本文所公开的客户端设备或服务器中的指令的处理器(参见处理器212和存储器220、客户端设备110、以及服务器130)来执行。在一些实施例中,方法1300中的多个步骤中的至少一个或多个步骤可以由安装在客户端设备中的应用程序或包括服装动画模型的模型训练引擎(例如,应用程序222、模型训练引擎232和服装动画模型240)来执行。如本文所公开的,用户可以通过输入和输出元件以及GUI与客户端设备中的应用进行交互(参见输入设备214、输出设备216和GUI 225)。如本文所公开的,服装动画模型可以包括身体解码器、服装解码器、分割工具和时间卷积工具(例如,身体解码器242、服装解码器244、分割工具246和时间卷积工具248)。在一些实施例中,与本公开一致的方法可以包括如下的方法1300中的至少一个或多个步骤:该方法1300中的至少一个或多个步骤以不同顺序、同时、准同时或在时间上重叠执行。
步骤1302包括采集对象的多幅图像,来自对象的多幅图像包括对象的一个或多个不同视角。
步骤1304包括基于对象的多幅图像形成三维服装网格和三维身体网格。
步骤1306包括将三维服装网格与三维身体网格对齐,以形成皮肤-服装边界和衣物纹理。
步骤1308包括基于预测的服装位置和衣物纹理、以及来自该对象的多幅图像的插值位置和衣物纹理确定损失因子。
步骤1310包括根据损失因子,更新包括三维服装网格和三维身体网格的三维模型。
图14是示出了根据一些实施例的用于在虚拟现实环境中嵌入实时的、穿着服装的对象动画的方法1400中的多个步骤的流程图。在一些实施例中,方法1400可以至少部分地由执行本文所公开的客户端设备或服务器中的指令的处理器(参见处理器212和存储器220、客户端设备110和服务器130)来执行。在一些实施例中,方法1400中的多个步骤中的至少一个或多个步骤可以由安装在客户端设备中的应用程序、或包括服装动画模型的模型训练引擎(例如,应用程序222、模型训练引擎232和服装动画模型240)来执行。如本文所公开的,用户可以通过输入元件和输出元件、以及GUI与客户端设备中的应用进行交互(参见输入设备214、输出设备216和GUI 225)。如本文所公开的,服装动画模型可以包括身体解码器、服装解码器、分割工具和时间卷积工具(例如,身体解码器242、服装解码器244、分割工具246和时间卷积工具248)。在一些实施例中,与本公开一致的方法可以包括如下的方法1400中的至少一个或多个步骤:该方法1400中的至少一个或多个步骤以不同顺序、同时、准同时或在时间上重叠执行。
步骤1402包括从对象采集图像。在一些实施例中,步骤1402包括从对象采集立体图像或双目图像。在一些实施例中,步骤1402包括同时或准同时从对象的不同视图采集多幅图像。
步骤1404包括从图像选择多个二维关键点。
步骤1406包括识别与图像中的每个二维关键点相关联的三维骨架姿态。
步骤1408包括用三维模型确定锚定在一个或多个三维骨架姿态中的三维服装网格和三维身体网格。
步骤1410包括生成对象的三维表示,该三维表示包括三维服装网格、三维身体网格和纹理。
步骤1412包括在虚拟现实环境中实时地嵌入对象的三维表示。
硬件概述
图15是示出了示例性计算机系统1500的框图,用该计算机系统1500可以实现图1和图2的客户端和服务器、以及图13和图14的方法。在某些方面,计算机系统1500可以使用在专用服务器中、或集成到另一实体中、或跨越多个实体分布的硬件、或软件和硬件的组合来实现。
计算机系统1500(例如,客户端110和服务器130)包括总线1508或用于通信信息的其他通信机制、以及与总线1508耦接以用于处理信息的处理器1502(例如,处理器212)。举例来说,计算机系统1500可以用一个或多个处理器1502实现。处理器1502可以是通用微处理器、微控制器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、状态机、门控逻辑、分立硬件组件、或可以执行信息的计算或其它操作的任何其它合适的实体。
除了硬件之外,计算机系统1500可以包括创建用于相关计算机程序的执行环境的代码,例如,构成存储在所包括的存储器1504(例如,存储器220)中的以下内容的代码:处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合,所包括的存储器1504例如为随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、寄存器、硬盘、可移动磁盘、CD-ROM、DVD或任何其它合适的存储设备,所包括的存储器1504与总线1508耦接以用于存储信息和由处理器1502执行的指令。处理器1502和存储器1504可以由专用逻辑电路补充或可以并入专用逻辑电路中。
指令可以存储在存储器1504中,并且可以在一个或多个计算机程序产品中实现,该一个或多个计算机程序产品例如为计算机程序指令的一个或多个模块,该一个或多个模块被编码在计算机可读介质上,以用于由计算机系统1500执行或以控制计算机系统1500的操作,并且根据本领域技术人员公知的任何方法,指令包括但不限于如下的计算机语言:例如面向数据的语言(例如,SQL、dBase)、系统语言(例如,C、Objective-C、C++、汇编)、体系结构语言(例如,Java、.NET)以及应用语言(例如,PHP、Ruby、Perl、Python)。指令也可以用如下的计算机语言实现:例如阵列语言、面向方面语言、汇编语言、创作语言(authoringlanguage)、命令行接口语言、编译语言、并发语言、花括号语言(curly-bracketlanguage)、数据流语言、数据结构化语言、声明性语言、深奥的语言(esoteric language)、扩展语言(extension language)、第四代语言、函数式语言、交互模式语言、解释型语言、迭代语言(iterative language)、基于列表的语言(list-based language)、小语言(littlelanguage)、基于逻辑的语言、机器语言、宏语言、元编程语言(metaprogramminglanguage)、多范式语言(multiparadigm language)、数值分析、非基于英语的语言(non-English-based language)、面向对象的基于类的语言、面向对象的基于原型的语言、越位规则语言(off-side rule language)、过程式语言、反射式语言(reflective language)、基于规则的语言、脚本语言、基于栈的语言、同步语言、语法处理语言(syntax handlinglanguage)、可视语言、wirth语言和基于xml的语言。存储器1504也可以用于在执行由处理器1502执行的指令期间,存储临时变量或其它中间信息。
本文所论述的计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于相关程序的单个文件中、或存储在多个协调文件(例如,存储一个或多个模块、一个或多个子程序或代码的一个或多个部分的多个文件)中。计算机程序可以被部署,以在一台计算机上执行或在多台计算机上执行,该多台计算机位于一个站点或跨越多个站点分布并且通过通信网络互连。本说明书中描述的过程和逻辑流可以由一个或多个可编程处理器执行,该一个或多个可编程处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。
计算机系统1500还包括数据存储设备1506(例如磁盘或光盘),该数据存储设备1506与总线1508耦接以用于存储信息和指令。计算机系统1500可以经由输入/输出模块1510耦接至各种设备。输入/输出模块1510可以是任何输入/输出模块。示例性输入/输出模块1510包括数据端口,例如USB端口。输入/输出模块1510被配置为连接至通信模块1512。示例性通信模块1512(例如,通信模块218)包括网络接口卡,例如以太网卡和调制解调器。在某些方面,输入/输出模块1510被配置为连接至多个设备,例如输入设备1514(例如,输入设备214)和/或输出设备1516(例如,输出设备216)。示例性输入设备1514包括键盘和指示设备(例如,鼠标或轨迹球),通过键盘和指示设备用户可以向计算机系统1500提供输入。其他种类的输入设备1514也可以用于提供与用户的交互,其他种类的输入设备1514例如为触觉输入设备、视觉输入设备、音频输入设备、或脑机接口设备。例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以接收任何形式的来自用户的输入,包括声音输入、语音输入、触觉输入或脑电波输入。示例性输出设备1516包括用于向用户显示信息的显示设备,例如液晶显示器(liquid crystal display,LCD)监视器。
根据本公开的一方面,响应于处理器1502执行包含在存储器1504中的一个或多个指令的一个或多个序列,可以使用计算机系统1500来实现客户端110和服务器130。可以将这些指令从另一机器可读介质(例如,数据存储设备1506)读取到存储器1504中。对包含在主存储器1504中的指令的序列的执行,促使处理器1502执行本文所描述的过程步骤。也可以使用多处理布置中的一个或多个处理器来执行包含在存储器1504中的指令的序列。在替代方面,可以使用硬连线电路代替软件指令、或可以结合软件指令使用硬连线电路,以实现本公开的各种方面。因此,本公开的各方面不限于硬件电路和软件的任何特定组合。
本说明书中描述的主题的各方面可以在计算系统中实现,该计算系统包括后端组件(例如,数据服务器)、或包括中间件组件(例如,应用服务器)、或包括前端组件(例如,具有图形用户界面或网络浏览器的客户端计算机,通过该图形用户界面或网络浏览器用户可以与本说明书中描述的主题的实现进行交互);或本说明书中描述的主题的各方面可以在一个或多个这种后端组件、一个或多个这种中间件组件或一个或多个这种前端组件的任何组合中实现。该系统的多个组件可以通过数字数据通信的任何形式或媒介(例如,通信网络)进行互连。通信网络(例如,网络150)可以包括例如LAN、WAN和因特网等中的任何一种或多种。此外,通信网络可以包括但不限于例如以下工具拓扑中的任何一种或多种:包括总线网络、星形网络、环形网络、网状网络、星形总线网络、树形网络或分级网络等。通信模块可以是例如调制解调器或以太网卡。
计算机系统1500可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于运行在各自的计算机上且彼此具有客户端-服务器关系的计算机程序产生。计算机系统1500可以是例如但不限于台式计算机、膝上型计算机或平板计算机。计算机系统1500也可以嵌入另一设备中,该另一设备例如为但不限于移动电话、PDA、移动音频播放器、全球定位系统(Global PositioningSystem,GPS)接收机、视频游戏控制台和/或电视机顶盒。
本文所使用的术语“机器可读存储介质”或“计算机可读介质”指的是参与向处理器1502提供指令以用于执行的任何一个或多个介质。这种介质可以采取许多形式,这种介质包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘或磁盘,例如数据存储设备1506。易失性介质包括动态存储器,例如存储器1504。传输介质包括同轴电缆、铜线和光纤,传输介质包括形成总线1508的导线。机器可读介质的常见形式包括例如软盘、软性磁盘、硬盘、磁带、任何其它磁性介质、CD-ROM、DVD、任何其它光学介质、穿孔卡、纸带、任何具有孔图案的其它物理介质、RAM、PROM、EPROM、FLASH EPROM、任何其它存储芯片或盒式存储器、或计算机可以从其读取的任何其它介质。机器可读存储介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。
为了说明硬件与软件的可互换性,根据硬件和软件的功能概括地描述了诸如各种示例性块、模块、组件、方法、操作、指令和算法的项目。是否将此功能实施为硬件、软件、或硬件与软件的组合,取决于特定应用和施加于整个系统的设计约束。技术人员可以针对每个特定应用以不同方式实现所描述的功能。
如本文所使用的,在一系列项目(用术语“和”或“或”来分隔该一系列项目中的任何项目)之后的短语“中的至少一个”,将列表作为一个整体修饰,而不是修饰该列表的每个成员(即,每个项目)。短语“中的至少一个”并不要求选择至少一个项目;而是,该短语的意思包括这些项目中的任何一个项目中的至少一个、和/或这些项目的任何组合中的至少一个、和/或这些项目中的每个项目中的至少一个。举例来说,短语“A、B和C中的至少一个”或“A、B或C中的至少一个”各指代:仅A、仅B或仅C;A、B和C的任何组合;和/或A、B和C中的每个中的至少一个。
就说明书或权利要求中使用术语“包括(include)”、“具有(have)”等而言,此术语旨在以与术语“包括(comprise)”在权利要求中用作过渡词时“包括(comprise)”被解释时类似的方式具有包括性。单词“示例性”在本文中用于表示“用作示例、实例或说明”。本文中被描述为“示例性”的任何实施例不一定被解释为比其它实施例优选或有利。
除非特别说明,否则提及单数形式的元素并非旨在意指“一个且仅一个”,而是“一个或多个”。本领域普通技术人员已知的或以后将知晓的贯穿本公开描述的各种配置的元素的所有结构和功能等同物通过引用明确地并入本文,并旨在被主题技术所包含。此外,本文所公开的任何内容均不旨在奉献给公众,无论这种公开是否明确地记载在以上描述中。不应根据35U.S.C.§112第6段的规定解释任何条款要素,除非该要素使用短语“用于……的装置”来明确陈述,或在方法条款的情况下,该要素使用短语“用于……的步骤”来陈述。
虽然本说明书包含许多细节,但是这些细节不应被解释为对可能被要求的内容的范围的限制,而应被解释为对主题的特定实施方式的描述。在本说明书中在不同实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独实现或以任何合适的子组合实现。此外,尽管在上文中特征可能被描述为以某些组合起作用并且甚至最初被要求为如此,但是在一些情况下,来自所要求的组合的一个或多个特征可以从该组合中删除,并且所要求的组合可以针对子组合或子组合的变型。
已经根据特定的方面描述了本说明书的主题,但是其它方面可以被实现并且其它方面在以下权利要求的范围内。例如,尽管在附图中以特定顺序描绘了操作,但是这不应被理解为,为了实现期望的结果,要求以所示出的特定顺序或以连续顺序执行这些操作,或要求执行所有所示出的操作。权利要求中所陈述的动作可以以不同的顺序执行,并且仍然实现了期望的结果。作为一个示例,附图中所描绘的过程不一定要求所示出的特定顺序或连续顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述多个方面中的各个系统组件的分离不应被理解为在所有方面中需要这样的分离,并且应理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包到多个软件产品中。其他变型在以下权利要求的范围内。
Claims (15)
1.一种计算机实现的方法,包括:
采集对象的多幅图像,来自所述对象的所述多幅图像包括所述对象的一个或多个不同视角;
基于所述对象的所述多幅图像,形成三维服装网格和三维身体网格;
将所述三维服装网格与所述三维身体网格对齐,以形成皮肤-服装边界和衣物纹理;
基于预测的服装位置和衣物纹理、以及来自所述对象的所述多幅图像的插值位置和衣物纹理,确定损失因子;以及
根据所述损失因子,更新包括所述三维服装网格和所述三维身体网格的三维模型。
2.根据权利要求1所述的计算机实现的方法,其中,采集对象的多幅图像包括:使用同步多摄像头系统从所述对象捕获所述多幅图像。
3.根据权利要求1所述的计算机实现的方法,其中,形成三维身体网格包括:
根据所述对象的所述多幅图像确定骨架姿态;以及
将具有曲面变形的蒙皮网格添加到所述骨架姿态。
4.根据权利要求1所述的计算机实现的方法,其中,形成三维身体网格包括:从所述对象的所述多幅图像中识别所述对象的暴露的皮肤部分,作为所述三维身体网格的一部分。
5.根据权利要求1所述的计算机实现的方法,其中,形成三维服装网格包括:通过以下方式来识别所述三维服装网格中的端点:验证所述端点在每个摄像头视图上的投影属于服装部分。
6.根据权利要求1所述的计算机实现的方法,其中,将所述三维服装网格与所述三维身体网格对齐包括:从所述三维服装网格选择服装部分、并从所述三维身体网格选择身体身体部分,并且将所述服装部分与所述身体部分对齐。
7.根据权利要求1所述的计算机实现的方法,其中,形成三维服装网格和三维身体网格包括:从所述对象的所述多幅图像中检测一个或多个二维关键点;以及从不同的视点对多幅图像进行三角剖分,以将所述二维关键点转换为形成所述三维身体网格或所述三维服装网格的三维关键点。
8.根据权利要求1所述的计算机实现的方法,其中,将所述三维服装网格与所述三维身体网格对齐包括:将所述三维服装网格与第一模板对齐,并将所述三维身体网格与第二模板对齐;以及选择显式约束以区分所述第一模板与所述第二模板。
9.根据权利要求1所述的计算机实现的方法,还包括:对于多个骨架姿态,使用时间编码器来对所述三维模型进行动画化;以及将每个骨架姿态与三维服装网格进行关联。
10.根据权利要求1所述的计算机实现的方法,还包括:基于在预选时间窗口内连接的三维服装网格的多个帧来确定动画损失因子,所述多个帧由动画模型预测并且来源于所述预选时间窗口内的多幅图像;以及基于所述动画损失因子更新所述动画模型。
11.一种系统,包括:
存储器,所述存储器存储有多个指令;以及
一个或多个处理器,所述一个或多个处理器被配置为执行所述多个指令,以促使所述系统:
采集对象的多幅图像,来自所述对象的所述多幅图像包括来自所述对象的不同侧面的一个或多个视图;
基于所述对象的所述多幅图像,形成三维服装网格和三维身体网格;
将所述三维服装网格与所述三维身体网格对齐,以形成皮肤服装边界和衣物纹理;
基于预测的服装位置和纹理、以及来自所述对象的所述多幅图像的插值位置和纹理,确定损失因子;以及
根据所述损失因子,更新包括所述三维服装网格和所述三维身体网格的三维模型,其中,采集对象的多幅图像包括使用同步多摄像头系统捕获所述对象的所述多幅图像。
12.根据权利要求11所述的系统,其中,为了形成三维身体网格,所述一个或多个处理器执行用于以下操作的多个指令:
根据所述对象的所述多幅图像确定骨架姿态;以及
将具有曲面变形的蒙皮网格添加到所述骨架姿态。
13.根据权利要求11所述的系统,具有以下中的任何一项:
a)其中,为了形成三维身体网格,所述一个或多个处理器执行用于以下操作的多个指令:从所述对象的所述多幅图像中识别所述对象的暴露的皮肤部分,作为所述三维身体网格的一部分;或者
b)其中,为了形成三维服装网格,所述一个或多个处理器执行用于以下操作的多个指令:通过以下方式识别所述三维服装网格中的端点:验证所述端点在每个摄像头视图上的投影属于服装部分;或者
c)其中,为了将所述三维服装网格与所述三维身体网格对齐,所述一个或多个处理器执行用于以下操作的多个指令:从所述三维服装网格中选择服装部分,并从所述三维身体网格选择身体部分,并且将所述服装部分与所述身体部分对齐。
14.一种计算机实现的方法,包括:
从对象采集图像;
从所述图像中选择多个二维关键点;
从所述图像中识别与每个二维关键点相关联的三维关键点;
使用三维模型确定三维服装网格和三维身体网格,所述三维服装网格和所述三维身体网格锚定在一个或多个三维骨架姿态中;
生成所述对象的三维表示,所述对象的所述三维表示包括所述三维服装网格、所述三维身体网格、和纹理;以及
在虚拟现实环境中,实时地嵌入所述对象的所述三维表示。
15.根据权利要求14所述的计算机实现的方法,具有以下中的任何一项:
a)其中,针对每个二维关键点识别三维关键点包括:以三维形式沿所述图像的视图插值点对所述图像进行投影;或者
b)其中,确定三维服装网格和三维身体网格包括:基于所述多个二维关键点确定所述三维骨架姿态的损失因子;或者
c)其中,在虚拟现实环境中,嵌入所述对象的所述三维表示包括:根据所述虚拟现实环境,选择所述三维身体网格中的衣物纹理;或者
d)其中,在虚拟现实环境中,嵌入所述对象的所述三维表示包括:对所述对象的所述三维表示进行动画化,以与所述虚拟现实环境进行交互。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/142,460 | 2021-01-27 | ||
US17/576,787 | 2022-01-14 | ||
US17/576,787 US20220237879A1 (en) | 2021-01-27 | 2022-01-14 | Direct clothing modeling for a drivable full-body avatar |
PCT/US2022/014044 WO2022164995A1 (en) | 2021-01-27 | 2022-01-27 | Direct clothing modeling for a drivable full-body animatable human avatar |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116802693A true CN116802693A (zh) | 2023-09-22 |
Family
ID=88040324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280012189.9A Pending CN116802693A (zh) | 2021-01-27 | 2022-01-27 | 对可驱动的全身可动画化人类化身的直接服装建模 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116802693A (zh) |
-
2022
- 2022-01-27 CN CN202280012189.9A patent/CN116802693A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110637305B (zh) | 通过渲染许多3d视图来学习重构3d形状 | |
US10679046B1 (en) | Machine learning systems and methods of estimating body shape from images | |
US20200226821A1 (en) | Systems and Methods for Automating the Personalization of Blendshape Rigs Based on Performance Capture Data | |
US10529137B1 (en) | Machine learning systems and methods for augmenting images | |
Tiwari et al. | Pose-ndf: Modeling human pose manifolds with neural distance fields | |
Khakhulin et al. | Realistic one-shot mesh-based head avatars | |
US11158121B1 (en) | Systems and methods for generating accurate and realistic clothing models with wrinkles | |
US11398059B2 (en) | Processing 3D video content | |
Boss et al. | Samurai: Shape and material from unconstrained real-world arbitrary image collections | |
US10839586B1 (en) | Single image-based real-time body animation | |
Ranjan et al. | Learning multi-human optical flow | |
CN115943436A (zh) | 快速和深度脸部变形 | |
Garbin et al. | Voltemorph: Realtime, controllable and generalisable animation of volumetric representations | |
Su et al. | Danbo: Disentangled articulated neural body representations via graph neural networks | |
US20230130281A1 (en) | Figure-Ground Neural Radiance Fields For Three-Dimensional Object Category Modelling | |
US20220237879A1 (en) | Direct clothing modeling for a drivable full-body avatar | |
US11989846B2 (en) | Mixture of volumetric primitives for efficient neural rendering | |
Siarohin et al. | Unsupervised volumetric animation | |
Karunratanakul et al. | Harp: Personalized hand reconstruction from a monocular rgb video | |
US11900558B2 (en) | Reconstructing three-dimensional models of objects from real images based on depth information | |
US11734888B2 (en) | Real-time 3D facial animation from binocular video | |
CN116802693A (zh) | 对可驱动的全身可动画化人类化身的直接服装建模 | |
EP4285333A1 (en) | Direct clothing modeling for a drivable full-body animatable human avatar | |
CN115769259A (zh) | 从影像学习铰接形状重建 | |
Brahimi et al. | SupeRVol: Super-Resolution Shape and Reflectance Estimation in Inverse Volume Rendering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |