1.本公开大体上涉及计算机生成图形。更具体地,本公开涉及使三维对象的静态扫描图动画化。
背景技术:2.诸如动画三维(3d)对象的3d内容正在变得越来越流行。例如,3d内容经常在电影、游戏中找到,并且可以完全由计算机生成,或者由对象的设定图像或其组合生成。使静态对象动画化包括利用表面表征(诸如皮肤)和互连部分(诸如骨骼)的分层集合两者来构建对象。将静态对象构建成动画是复杂且耗时的,这阻碍了创建全动画对象的广泛传播力。
技术实现要素:3.技术问题
4.本公开提供了用于构建的3d扫描人体模型的方法和装置。
5.技术方案
6.在一个实施方式中,提供了用于对象构建的电子装置。电子装置包括处理器。处理器配置成:获得对象的3d扫描图。处理器还配置成:通过最小化已建参数模型与3d扫描图之间的表面距离以及最小化3d关节误差,将已建参数模型与3d扫描图相匹配。处理器还配置成:识别已建参数模型与3d扫描图之间的对应关系。此外,处理器配置成:基于对应关系将已建参数模型的属性转移到3d扫描图以生成所构3d扫描图。处理器还配置成:将动画动作应用到所构3d扫描图。具有所应用的动画动作的所构3d扫描图呈现在显示器上。
7.在另一个实施方式中,提供了用于对象构建的方法。方法包括:获得对象的3d扫描图。方法还包括:通过最小化已建参数模型与3d扫描图之间的表面距离以及最小化3d关节误差,将已建参数模型与3d扫描图相匹配。该方法还包括:识别已建参数模型与3d扫描图之间的对应关系。此外,方法包括:基于对应关系将已建参数模型的属性转移到3d扫描图以生成所构3d扫描图。方法还包括:将动画动作应用到所构3d扫描图。具有所应用的动画动作的所构3d扫描图呈现在显示器上。
8.从以下附图、描述和权利要求中,其它技术特征对于本领域的技术人员来说可以是显而易见的。
9.在进行下面的详细描述之前,阐述在整个本专利文件中使用的特定的词语和短语的定义可能是有利的。术语“联接”及其派生词指代两个或多个元件之间的任何直接的或间接的通信,无论这些元件是否彼此物理接触。术语“发送”、“接收”和“通信”以及其派生词包括直接通信和间接通信两者。术语“包括”和“包含”以及其派生词意指非限制性地包括。术语“或”是包含性的,意指“和/或”。短语“与
……
相关的”以及其派生词意指包括、被包括在
……
内、与
……
互连、包含、被包含在
……
内、连接到或与
……
连接、联接到或与
……
联接、可与
……
通信、与
……
配合、交织、并列、接近、绑定到或与
……
绑定、具有、具有
……
的特性、具有或与之具有
……
的关系等。术语“控制器”意指控制至少一个操作的任何装置、系
统或其部分。这种控制器可以实现为硬件、或硬件和软件和/或固件的组合。与任何特定的控制器相关的功能可以是集中式的或分布式的,无论是本地的还是远程的。当与项目的列表一起使用时,短语“至少一个”意指可以使用所列项目中的一个或更多的不同的组合,并且可以仅需要列表中的一个项目。例如,“a、b和c中的至少一个”包括以下组合中的任一者:a、b、c、a和b、a和c、b和c、以及a和b和c。
10.此外,下面描述的各种功能可以由一个或更多计算机程序来实现或支持,计算机程序中的每个由计算机可读程序代码形成并且在计算机可读介质中实现。术语“应用”和“程序”指代适于在合适的计算机可读程序代码中实现的一个或更多计算机程序、软件组件、指令集、过程、功能、对象、类、实例、相关数据、或其部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够由计算机访问的任何类型的介质,诸如只读存储器(rom)、随机存取存储器(ram)、硬盘驱动器、光盘(cd)、数字视频光盘(dvd)、或任何其它类型的存储器。“非暂时性”计算机可读介质排除暂时性地传输电信号或其它信号的有线、无线、光、或其它通信链路。非暂时性计算机可读介质包括可以永久存储数据的介质以及可以存储数据并随后重写数据的介质,诸如可重写光盘或可擦除存储装置。
11.在整个本专利文件中提供了对其它特定的词语和短语的定义。本领域的普通技术人员应当理解,在许多(如果不是大多数)实例中,此类定义适用于如此定义的词语和短语的先前以及未来的使用。
附图说明
12.为了更透彻地理解本公开及其优点,现在结合附图对以下描述进行参考,在附图中,相同的参照标记代表相同的组件:
13.图1示出根据本公开的实施方式的示例性通信系统;
14.图2和图3示出根据本公开的实施方式的示例性电子装置;
15.图4示出根据本公开的实施方式的将3d扫描图转换为动画模型的示例图;
16.图5a示出根据本公开的实施方式的用于将静态对象构建成动画模型的示例性方法;
17.图5b和图5c示出根据本公开的实施方式的已建参数身体模型;
18.图6a示出根据本公开的实施方式的用于拟合的示例性方法;
19.图6b和图6c示出根据本公开的实施方式的将静态对象关联到已建参数身体模型的示例;
20.图7a和图7b示出根据本公开的实施方式的使已建参数身体模型的组成部分变形的示例;
21.图7c示出根据本公开的实施方式的使用语义变形的示例性方法;
22.图8a示出根据本公开的实施方式的用于蒙皮的示例性方法;
23.图8b示出根据本公开的实施方式的在图8a的蒙皮方法期间转移权重;
24.图8c示出根据本公开的实施方式的在图8a的蒙皮方法期间将扫描图转换为预定义的姿势;
25.图9a示出根据本公开的实施方式的用于修补的示例性方法;
26.图9b和图9c示出根据本公开的实施方式的3d扫描图的2d图像以及修补之前和之后的图像;
27.图9d和图9e示出根据本公开的实施方式的校正与3d扫描图对象的手和脚相关的误差的过程;
28.图9f示出根据本公开的实施方式的在生成所构3d扫描图的不同阶段的图像;
29.图9g示出根据本公开的实施方式的填充;以及
30.图10示出根据本公开的实施方式的用于对象构建的示例性方法。
具体实施方式
31.下面讨论的图1至图10以及本专利文件中用于描述本公开的原理的各种实施方式仅仅是示例性的,而不应以任何方式被解释为限制本公开的范围。本领域的技术人员将了解,本公开的原理可以在任何适当布置的系统或装置中实现。
32.许多不同类型的装置能够提供与增强现实(ar)或虚拟现实(vr)相关的沉浸式体验。应当注意,vr是视觉对象或视觉场景的渲染版本,而ar是现实世界环境的交互体验,在该交互体验中驻留在现实世界环境中的对象被虚拟对象、虚拟信息或两者增强。能够提供ar和vr内容的一个示例性装置是头戴式显示器(hmd)。hmd是使用户能够观看vr场景并且基于用户头部的移动来调整所显示的内容的装置。通常,hmd依赖于集成到装置中并且与外部计算机连接的(线缆连接的)专用屏幕,或者依赖于插入到hmd中的(非线缆连接的)装置,诸如智能电话。第一种方法利用一个或更多轻质屏幕并且受益于高计算能力。相反,基于智能电话的系统利用更高的移动性,并且生产成本更低。在这两种情况下,所生成的视频体验是相同的。应当注意,如本文所用,术语“用户”可以表示使用电子装置的人或另一装置(诸如人工智能电子装置)。
33.对象的3d扫描图是从一组图像获得的照片般逼真的模型。3d扫描图是对象(诸如人或动物)的360度3d图像。图像可以来自诸如彩色相机(诸如红绿蓝(rgb)相机)之类的相机或来自深度相机、或者来自两者的组合(诸如rgb-d相机)。对象的3d扫描图可以通过以下来创建:以不同的角度(或取向)捕获对象的多个图像,然后将各个图像拼接在一起。对象的3d扫描图可以用于3d图形(诸如游戏、用户的化身、电影等)、3d打印(制作对象的小雕像)等中。例如,可以创建3d扫描图作为人的化身。3d扫描图可以由数百万个顶点组成。
34.本公开的实施方式考虑到了由于用于生成3d扫描图的图像是静态的(非移动的),所以3d扫描图也不具有自行移动的能力。因此,本公开的实施方式提供了自动地对静态3d扫描图构建动作的系统和方法。即,构建3d扫描图是向静态3d扫描图提供动作(动画)的能力。在构建3d扫描图之后,扫描图的某部分能够在关节处相对于3d扫描图的其它部分移动。例如,如果扫描图是关于人的,则3d扫描图的关节可以对应于肘、膝、髋、腕、手指、脚趾、踝等。3d扫描图的关节用于提供这样的运动,该运动模拟可由人执行的运动。即,构建3d扫描图(诸如人的3d扫描图)可以使可在ar和vr应用中使用的静态扫描图动画化。
35.为了使3d扫描图动画化,“构建(rigging)”应用于3d扫描图。构建包括基于骨骼的分层和适当的蒙皮权重,蒙皮权重限定为根据输入的动作使3d扫描图的表面变形。骨骼结构可以基于包括预定位置处的关节的参数模型。即,骨骼结构类似于人体的骨骼结构,因为它被设计成在特定位置(诸如关节)处移动,而其它部分保持刚性。
36.根据本公开的实施方式,构建包括两个部分:拟合和蒙皮。拟合包括将已建参数模型的骨骼型结构应用到3d扫描图。骨骼是用于限定对象(诸如人)的骨结构的关节树。尽管树结构对于不同的扫描模型保持固定,但关节位置可以变化。这样,身体动作在骨骼树上限定。每个关节具有三个自由度(dof)以限定其旋转。根关节具有三个或更多dof以限定平移。蒙皮对表面顶点(皮肤)如何受到关节的动作的影响进行限定。针对骨骼的给定动作,扫描图的表面变形,以便以最小的伪像执行动作。当将动作应用到先前具有骨骼的3d扫描图并且对其应用蒙皮时,3d扫描图被动画化以跟随动作。
37.本公开的实施方式考虑到了对于给定的3d扫描图,有这样的可能性:可能存在遮挡(诸如孔洞),或者3d扫描图的部分可能连接不正确(诸如图9f的图像942a中所示)。当一个身体部位阻挡另一个身体部位时,3d扫描图可能具有自遮挡。例如,人的手臂可能阻挡了躯干的一部分。类似地,诸如当一个身体部位块被隐藏时,3d扫描图的一部分可能被省略。例如,人的手可能位于口袋中,并且因此不会包括在3d扫描图中。因此,本公开的实施方式提供了用于识别3d扫描图的被遮挡或缺失部分并填充被遮挡或缺失区域的系统和方法。
38.本公开的实施方式提供用于自动地构建3d扫描图以使3d扫描图动画化的系统和方法。自动构建3d扫描图可以在服务器上或在捕获经编译生成3d扫描图的图像的电子装置上执行。
39.为了使静态3d扫描图动画化,本公开的实施方式使用已建参数身体模型(也称为参数身体模型)。参数身体模型用来将构建信息转移到3d扫描图模型。首先,对齐参数身体模型和3d扫描图。对齐是将参数身体模型的形状和姿势参数优化为3d扫描图的形状和姿势参数的过程。语义变形分量(sdc)可以用于增强拟合结果。在对齐参数身体模型和3d扫描图之后,识别参数身体模型与3d扫描图之间的对应关系。为了创建完整的可动画化3d扫描图,使用识别到的对应关系来断开3d扫描图的不需要的连接、去除自遮挡等。为了断开不需要的连接,使用对应关系来分离3d扫描图的已连接但可分离的部分。例如,如果人的手臂连接到躯干,使用对应关系来从躯干分离手臂,以使手臂可以通过动画来移动。在构建3d扫描图之后,可以将动画添加到化身以执行任何预定义的动作。
40.本公开的实施方式提供了用于构建对象(诸如人)的3d扫描图的系统和方法。人可以处于任何姿势。人可以穿着各种衣服。3d扫描图甚至可以包括不需要的连接、自遮挡和缺失区域。
41.本公开的实施方式还提供了用于将3d关节误差和倒角距离组合作为拟合能量的系统和方法,其中,拟合能量将被最小化以将3d扫描图与参数身体模型对齐,而不管衣服和姿势的变化。本公开的实施方式还提供了通过执行sdc来强化3d扫描图与参数身体模型之间的拟合的系统和方法。应当注意,sdc也可以用来在身体完全构建之后重塑身体(以便改变所构3d扫描图的物理形状)。本公开的实施方式还提供了使用几何形状和纹理修补来断开不需要的连接、修复自遮挡、填充3d扫描图的缺失区域等的系统和方法。
42.图1示出根据本公开的实施方式的示例性通信系统100。图1中所示的通信系统100的实施方式仅用于说明。在不脱离本公开的范围的情况下,可以使用通信系统100的其它实施方式。
43.通信系统100包括促进通信系统100中的各个组件之间的通信的网络102。例如,网络102可以在网络地址之间传送网际协议(ip)分组、帧中继帧、异步传输模式(atm)信元、或
其它信息。网络102包括一个或更多局域网(lan)、城域网(man)、广域网(wan)、诸如因特网的全球网络的全部或一部分、或在一个或更多位置处的任何其它通信系统。
44.在本示例中,网络102促进服务器104与各种客户端装置106-116之间的通信。客户端装置106-116可以是例如智能电话、平板计算机、膝上型计算机、个人计算机、可穿戴装置、头戴式显示器(hmd)等。服务器104可以代表一个或更多服务器。每个服务器104包括可以为一个或更多客户端装置(诸如客户端装置106-116)提供计算服务的任何合适的计算装置或处理装置。例如,每个服务器104可以包括一个或更多处理装置、存储指令和数据的一个或更多存储器、以及促进通过网络102的通信的一个或更多网络接口。如下面更详细描述的,服务器104可以将可动画化的3d模型构建到一个或更多显示装置,诸如客户端装置106-116。
45.每个客户端装置106-116代表通过网络102与至少一个服务器(诸如服务器104)或其它计算装置交互的任何合适的计算装置或处理装置。在本示例中,客户端装置106-116包括台式计算机106、移动电话或移动装置108(例如智能电话)、pda 110、膝上型计算机112、平板计算机114和hmd 116。然而,任何其它或附加的客户端装置可以用在通信系统100中。智能电话代表一类移动装置108,它们是具有移动操作系统以及针对语音、短消息服务(sms)和因特网数据通信的集成移动宽带蜂窝网络连接的手持装置。hmd 116可以显示包括一个或更多动画扫描图的360
°
场景。
46.在本示例中,一些客户端装置108-116与网络102间接通信。例如,移动装置108和pda 110经由诸如蜂窝基站或enodeb(enb)的一个或更多基站118进行通信。此外,膝上型计算机112、平板计算机114和hmd 116经由诸如ieee 802.11无线接入点的一个或更多无线接入点120进行通信。注意,这些仅用于说明,并且每个客户端装置106-116可以直接与网络102通信,或者经由任何合适的中间装置或网络与网络102间接通信。在某些实施方式中,服务器104或任何客户端装置106-116可以用来使接收到的3d扫描图动画化并将动画化的扫描图发送到另一个客户端装置,诸如任何客户端装置106-116。
47.在某些实施方式中,客户端装置106-114中的任何一个安全且有效地向另一装置(例如,服务器104)发送信息。此外,客户端装置106-116中的任何一个可以触发其自身与服务器104之间的信息传输。客户端装置106-114中的任何一个可以在经由支架连接到头戴式耳机时起到vr显示器的作用,并且起到类似于hmd 116的作用。例如,移动装置108可以在附接到支架系统并且佩戴在用户的眼睛上时起到类似于hmd 116的作用。移动装置108(或任何其它客户端装置106-116)可以触发其自身与服务器104之间的信息传输。
48.在某些实施方式中,客户端装置106-116或服务器104中的任何一个可以创建3d扫描图,发送3d扫描图,使3d扫描图动画化,接收动画3d扫描图,呈现动画3d扫描图,或执行其组合。例如,移动装置108可以捕获模型的图像并将图像传送到服务器104以进行构建。又例如,移动装置108可以从其它客户端装置接收多个图像,并将图像传送到服务器104以进行构建。再例如,移动装置108(或任何其它客户端装置)可以执行模型的构建。
49.尽管图1示出通信系统100的一个示例,但是可以对图1进行各种改变。例如,通信系统100可以在任何合适的布置中包括任何数量的每个组件。通常,计算和通信系统具有多种配置,并且图1不将本公开的范围限于任何特定的配置。虽然图1示出可以使用本专利文件中公开的各种特征的一个操作环境,但是这些特征可以用在任何其它合适的系统中。
50.尽管图1示出通信系统100的一个示例,但是可以对图1进行各种改变。例如,通信系统100可以在任何合适的布置中包括任何数量的每个组件。通常,计算和通信系统具有多种配置,并且图1不将本公开的范围限于任何特定的配置。虽然图1示出可以使用本专利文件中公开的各种特征的一个操作环境,但是这些特征可以用在任何其它合适的系统中。
51.图2和图3示出根据本公开的实施方式的示例性电子装置。特别地,图2示出示例性服务器200,并且服务器200可以代表图1中的服务器104。服务器200可以代表一个或更多本地服务器、远程服务器、集群计算机、以及这样的组件,该组件充当无缝资源、基于云的服务器等的单个池。服务器200可以由图1的客户端装置106-116中的一个或更多或者另一个服务器访问。
52.如图2中所示,服务器200包括总线系统205,该总线系统205支持至少一个处理装置(诸如处理器210)、至少一个存储装置215、至少一个通信接口220和至少一个输入/输出(i/o)单元225之间的通信。
53.处理器210执行可存储在存储器230中的指令。处理器210可以包括任何合适数量和类型的处理器或任何合适布置的其它装置。处理器210的示例性类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。在某些实施方式中,处理器210可以使存储在存储装置215内的3d扫描图动画化
54.存储器230和永久存储空间235是代表能够存储和促进信息(诸如数据、程序代码、或临时或永久原理的其它合适的信息)的检索的任何结构的存储装置215的示例。存储器230可以代表随机存取存储器或任何其它合适的易失性存储装置或非易失性存储装置。例如,存储在存储器230中的指令可以包括用于构建接收到的3d扫描图的指令和用于使所构3d扫描图动画化的指令。永久存储空间235可以包含支持数据的长期存储的一个或更多组件或装置,诸如只读存储器、硬盘驱动器、闪存、或光盘。
55.通信接口220支持与其它系统或装置的通信。例如,通信接口220可以包括网络接口卡或促进通过图1的网络102的通信的无线收发器。通信接口220可以支持通过任何合适的物理通信链路或无线通信链路进行的通信。例如,通信接口220可以向另一装置(诸如客户端装置106-116中的一个)发送所构3d扫描图。
56.i/o单元225允许数据的输入和输出。例如,i/o单元225可以通过键盘、鼠标、小键盘、触摸屏、或其它合适的输入装置为用户输入提供连接。i/o单元225还可以向显示器、打印机、或其它合适的输出装置发送输出。然而,注意,可以省略i/o单元225,诸如当经由网络连接与服务器200发生i/o交互时。
57.注意,虽然图2被描述为代表图1的服务器104,但是相同或相似的结构可以用在一个或更多不同的客户端装置106-116中。例如,台式计算机106或膝上型计算机112可以具有与图2所示的那些相同或相似的结构。
58.图3示出示例性电子装置300,并且电子装置300可以代表图1中的客户端装置106-116中的一个或更多。电子装置300可以是移动通信装置、台式计算机(类似于图1的台式计算机106)、便携式电子装置(类似于图1的移动装置108、pda 110、膝上型计算机112、平板计算机114、或hmd 116)等。在某些实施方式中,图1的客户端装置106-116中的一个或更多可以包括与电子装置300相同或相似的配置。在某些实施方式中,电子装置300可用于数据传输、构建3d模型和使3d模型动画化、以及媒体呈现应用。
59.如图3中所示,电子装置300包括天线305、射频(rf)收发器310、发射(tx)处理电路315、麦克风320和接收(rx)处理电路325。rf收发器310可以包括例如rf收发器、蓝牙收发器、wi-fi收发器、zigbee收发器、红外收发器、以及其它各种无线通信信号。电子装置300还包括扬声器330、处理器340、输入/输出(i/o)接口(if)345、输入部350、显示器355、存储器360、以及传感器365。存储器360包括操作系统(os)361、一个或更多应用362和图像363。
60.rf收发器310从天线305接收从网络102的接入点(诸如基站、wi-fi路由器、或蓝牙装置)或其它装置(诸如wi-fi、蓝牙、蜂窝、5g、lte、lte-a、wimax、或任何其它类型的无线网络)发送的传入rf信号。rf收发器310对传入rf信号进行下变频以生成中频信号或基带信号。中频信号或基带信号被发送到rx处理电路325,rx处理电路325通过对基带信号或中频信号进行滤波、解码和/或数字化来生成经处理基带信号。rx处理电路325将经处理基带信号发送到扬声器330(诸如用于语音数据)或处理器340以用于进一步处理(诸如用于web浏览数据)。
61.tx处理电路315从麦克风320接收模拟语音数据或数字语音数据或者从处理器340接收其它传出基带数据。传出基带数据可以包括web数据、电子邮件、或交互式视频游戏数据。tx处理电路315对传出基带数据进行编码、多路复用和/或数字化,以生成经处理基带信号或中频信号。rf收发器310从tx处理电路315接收传出的经处理基带信号或中频信号,并将基带信号或中频信号上变频为经由天线305发送的rf信号。
62.处理器340可以包括一个或更多处理器或其它处理装置。处理器340可以执行存储在存储器360中的指令,诸如os 361,以便控制电子装置300的整体操作。例如,处理器340可以根据公知的原理来控制rf收发器310、rx处理电路325和tx处理电路315接收前向信道信号并且发送反向信道信号。处理器340可以包括任何合适数量和类型的处理器或任何合适布置的其它装置。例如,在某些实施方式中,处理器340包括至少一个微处理器或微控制器。处理器340的示例性类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。
63.处理器340还能够执行驻留在存储器360中的其它进程和程序,诸如接收和存储数据的操作。处理器340可以根据执行过程的需要将数据移入或移出存储器360。在某些实施方式中,处理器340被配置成基于os 361或响应于从外部源或操作者处接收的信号来执行一个或更多应用362。例如,应用362可以包括vr应用或ar应用、相机应用(用于静止图像和视频)、拼接应用(用于将多个图像拼接在一起以生成3d模型)、构建应用、视频电话呼叫应用、电子邮件客户端、社交媒体客户端、短信客户端、虚拟助理等。
64.处理器340还联接到i/o接口345,i/o接口345向电子装置300提供连接到诸如客户端装置106-114的其它装置的能力。i/o接口345是这些附件与处理器340之间的通信路径。
65.处理器340还联接到输入部350和显示器355。电子装置300的操作者可以使用输入部350将数据或输入值输入到电子装置300中。输入部350可以是键盘、触摸屏、鼠标、跟踪球、语音输入、或能够充当用户接口以允许用户与电子装置300交互的其它装置。例如,输入部350可以包括语音识别进程,从而允许用户输入语音命令。在另一个示例中,输入部350可以包括触摸面板、(数字)笔传感器、键、或超声输入装置。触摸面板可以识别例如至少一个方案(诸如电容方案、压敏方案、红外方案、或超声方案)中的触摸输入。输入部350可以通过向处理器340提供附加输入来与传感器365和/或相机相关联。在某些实施方式中,传感器
365包括一个或更多惯性测量单元(imu)(诸如加速度计、陀螺仪和磁力计)、动作传感器、光学传感器、相机、压力传感器、心率传感器、高度计等。输入部350还可以包括控制电路。在电容方案中,输入部350可以识别触摸或接近。
66.显示器355可以是液晶显示器(lcd)、发光二极管(led)显示器、有机led(oled)、有源矩阵oled(amoled)、或能够呈现诸如来自网站、视频、游戏、图像等的文本和/或图形的其它显示器。显示器355的尺寸可以适合hmd。显示器355可以是单个显示屏或能够创建立体显像的多个显示屏。在某些实施方式中,显示器355是平视显示器(hud)。显示器355可以显示3d对象,诸如动画3d对象。
67.存储器360联接到处理器340。存储器360的一部分可以包括ram,且存储器360的另一部分可以包括闪存或其它rom。存储器360可以包括永久存储空间(未示出),永久存储空间代表能够存储和促进信息(诸如数据、程序代码和/或其它合适的信息)的检索的任何结构。存储器360可以包含支持数据的长期存储的一个或更多组件或装置,诸如只读存储器、硬盘驱动器、闪存、或光盘。存储器360还可以包含媒体内容。媒体内容可以包括各种类型的媒体,诸如图像、视频、3d内容、vr内容、ar内容、动画和静态3d对象等。
68.存储器360还可以包括图像363。图像363可以包括对象(诸如人)的静态图像。可以从用户周围的多个角度拍摄图像,使得当图像拼接在一起时可以生成对象的360度视图。在某些实施方式中,图像363可以包括先前由电子装置300生成或从另一个电子装置接收的单个3d对象。
69.电子装置300还包括一个或更多传感器365,传感器365可以计量物理量或检测电子装置300的激活状态并将计量到的或检测到的信息转换为电信号。例如,传感器365可以包括一个或更多用于触摸输入的按钮、相机、手势传感器、imu传感器(诸如陀螺仪或陀螺仪传感器、以及加速度计)、眼睛跟踪传感器、气压传感器、磁传感器或磁力计、握持传感器、接近传感器、颜色传感器、生物物理传感器、温度/湿度传感器、照度传感器、紫外(uv)传感器、肌电图(emg)传感器、脑电图(eeg)传感器、心电图(ecg)传感器、ir传感器、超声传感器、虹膜传感器、指纹传感器、颜色传感器(诸如红绿蓝(rgb)传感器/相机)、深度传感器、d-rgb传感器(深度红绿蓝传感器/相机)等。传感器365还可以包括用于控制其中包括的任何传感器的控制电路。
70.如下面更详细讨论的,这些传感器365中的一个或更多可以用来控制用户接口(ui)、检测ui输入、确定取向并面向用户的方向以进行三维内容显示识别等。这些传感器365中的任何一个可以位于电子装置300内,位于可操作地连接到电子装置300的辅助装置内,位于被配置成保持电子装置300的头戴式耳机内,或者位于其中电子装置300包括头戴式耳机的单个装置内。
71.尽管图2和图3示出电子装置的示例,但是可以对图2和图3进行各种改变。例如,可以组合、进一步细分或省略图2和图3中的各种组件,并且可以根据特定的需要添加附加组件。作为特定的示例,处理器340可以被划分成多个处理器,诸如一个或更多中央处理单元(cpu)和一个或更多图形处理单元(gpu)。此外,与计算和通信系统一样,电子装置和服务器可以具有多种配置,并且图2和图3不将本公开限于任何特定的电子装置或服务器。
72.图4示出根据本公开的实施方式的将3d扫描图转换为动画模型的示例图400。图4的实施方式仅用于说明,并且在不脱离本公开的范围的情况下可以使用其它实施方式。
73.图400包括两个不同的输入,第一输入410和第二输入420。第一输入410和第二输入420是对象的360度视图。对象是人的对象。第一输入410和第二输入420可以由拼接在一起以生成单个3d扫描图的多个图像生成。第一输入410和第二输入420是静态的,使得所述输入不具有与其相关的运动。
74.如本公开的实施方式所公开的自动构建使静态3d扫描图动画化。例如,对于诸如第一输入410的给定输入,输出412a、412b、412c、412d、412e和412f(统称为412)将是基于一组动画指令的可移动化身。类似地,对于第二输入420,输出422a、422b、422c、422d、422e和422f(统称为422)将是基于一组动画指令的可移动化身。添加到第一输入410的动画正在舞动,而添加到第二输入420的动画正在打斗。如图所示,可移动化身412和422与人类类似地在相应关节处移动,而没有关节的区域保持笔直(非弯曲)。
75.尽管图4示出图400,但是可以对图4进行各种改变。例如,不同的动画可以应用到输入。图4不将本公开限于任何特定的系统或装置。
76.图5a示出根据本公开的实施方式的用于将静态对象构建成动画模型的示例性方法500。图5b和图5c示出根据本公开的实施方式的已建参数身体模型580和585。图5a至图5c的实施方式仅用于说明,并且在不脱离本公开的范围的情况下可以使用其它实施方式。
77.方法500可以由服务器104、图1的客户端装置106-116中的一个、图2的服务器200、图3的电子装置300、或另一个合适的装置来执行。在某些实施方式中,方法500可以由通过一个或更多网络互连的计算机的“云”来执行,其中,该计算机各自为在被图1的网络102访问时利用群集的计算机和组件充当无缝资源的单个池的计算系统。在一些实施方式中,用来处理方法500的组件的一部分可以包括在不同的装置中,诸如多个服务器104或200、多个客户端装置106-116、或不同装置的其它组合。为了便于说明,方法500被描述为由具有图2的服务器200的内部组件的、图1的服务器104执行。注意,除了服务器104之外或作为服务器104的替代,具有图3的电子装置300的内部组件的、图1的客户端装置106-116中的任何一个可以用来执行方法500。
78.在步骤510中,处理器210获得3d对象。3d对象可以是3d对象(诸如人)的扫描图。可以从图3的电子装置300的图像363获得3d对象。处理器210可以将图像363拼接在一起以形成代表3d对象的3d扫描图。
79.在步骤520中,处理器210将参数身体模型(诸如图5b的参数身体模型580)拟合到3d扫描图。例如,针对步骤510的给定3d对象,处理器210将对象光栅化为多个2d视图。然后,处理器210融合不同视图的所识别的界标。然后将界标融合在一起以获得3d关节。然后,处理器210基于3d关节的位置将参数身体模型(诸如图5b的参数身体模型580)与3d扫描图对齐。在图6a至图6c中更详细地描述了步骤520中的参数身体模型(诸如图5b的参数身体模型580)与3d扫描图的拟合。
80.在步骤530中,处理器210执行蒙皮,蒙皮用于找到参数身体模型(诸如图5b的参数身体模型580)的与3d扫描图的顶点最近三角形。在识别到参数身体模型(诸如图5b的参数身体模型580)的三角形和与它最近的3d扫描图的顶点之后,处理器210对用于3d扫描图的顶点变换的权重进行插值。在图8a至图8c中更详细地描述了步骤530的蒙皮。
81.在步骤540中,处理器210执行修补。例如,处理器210识别任何孔洞,并填充孔洞以及断开3d扫描图的不需要的连接。在步骤540中,处理器210将顶点的uv坐标转移到2d域,以
便填充孔洞并添加填充,以减少在所构3d扫描图的运动期间出现任何颜色不连续。在图9a至图9g中更详细地描述了步骤540的修补。
82.在步骤550中,处理器210使用导出器来减小所构3d扫描图的尺寸。在某些实施方式中,导出器是gltf导出器。在某些实施方式中,在使用导出器之后,可以将所构3d扫描图发送到图1的客户端装置中的任何一个。
83.在步骤560,处理器210可以接收动画动作565。动画动作565可以存储在诸如数据库或图2的存储器230的信息储存库中。可以从诸如客户端装置106-116之一的另一个装置接收动画动作。动画动作提供了关于所构3d扫描图的哪个关节(或关节的组合)应该移动以及移动的幅度和方向的指令。
84.在步骤570中,处理器210输出动画对象。在某些实施方式中,当服务器(诸如服务器200)构建对象时,将对象转移到一个或更多客户端装置,诸如图1的头戴式显示器116或移动装置108、或信息储存库。在某些实施方式中,当客户端装置中的一个构建对象时,可以在客户端装置的显示器上呈现对象。
85.图5b的参数身体模型580示出参数身体模型的整个视图。参数身体模型包括互连部分的分层集合,互连部分诸如为骨骼以及连接骨骼的关节,其中骨骼允许关节移动。即,骨骼是用来限定参数身体模型的骨结构的关节树。身体动作限定在骨骼树上。例如,关节中的一些或全部在三个dof中旋转。关节可以遍布参数身体模型580定位,诸如在颈、肩、腕、肘、腕、手指、髋、膝、踝、脚趾处,以及遍布参数身体模型580的面部和背部。关节使参数身体模型580能够在与人相似的位置处弯曲,并且在模拟人的动作的每个关节处执行相似的动作。
86.图5c的参数身体模型585示出图5b的参数身体模型580的特写。参数身体模型585是由多个三角形形状组成的网格。当关节移动时,三角形可以根据需要伸展或收缩以修改参数身体模型585的轮廓。注意还有除了三角形之外或作为三角形的替代的其它形状。
87.尽管图5a至图5c示出方法500和参数身体模型580和585,但是可以对图5a至图5c进行各种改变。例如,虽然图5a被示为一系列步骤,但是各种步骤可以重叠,并行发生,或者发生任何次数。图5a至图5c不将本公开限于任何特定的系统或装置。
88.图6a示出根据本公开的实施方式的用于拟合的示例性方法520a。方法520a更详细地描述了图5a的步骤520。图6b和图6c示出根据本公开的实施方式的将静态对象关联到已建参数身体模型的示例。图6a至图6c的实施方式仅用于说明,并且在不脱离本公开的范围的情况下可以使用其它实施方式。
89.方法520a可以由服务器104、图1的客户端装置106-116中的一个、图2的服务器200、图3的电子装置300、或另一个合适的装置来执行。在某些实施方式中,方法520a可以由通过一个或更多网络互连的计算机的“云”来执行,其中,该计算机各自为在被图1的网络102访问时利用群集的计算机和组件充当无缝资源的单个池的计算系统。在一些实施方式中,用来处理方法520a的组件的一部分可以包括在不同的装置中,诸如多个服务器104或200、多个客户端装置106-116、或不同装置的其它组合。为了便于说明,方法520a被描述为由具有图2的服务器200的内部组件的、图1的服务器104执行。注意,除了服务器104之外或作为服务器104的替代,具有图3的电子装置300的内部组件的、图1的客户端装置106-116中的任何一个可以用来执行方法520a。
90.给定3d人体扫描图,诸如在图5a的步骤510中获得的3d对象,处理器210首先将扫描图光栅化为多个视图(步骤522)。在某些实施方式中,3d对象被光栅化为15个不同的视图。视图是二维的,并且来自3d对象的不同取向。例如,图6b示出多个视图中的两个视图,视图512a和视图514a。
91.在步骤524中,处理器210从3d对象的多个视图中识别2d界标。例如,由处理器执行姿势检测以识别多个视图中的每个的界标。界标定位在2d图像的关节处。在某些实施方式中,算法openpose用作姿势检测算法。
92.当3d对象是人的3d扫描图时,处理器210识别(i)对象的身体、(ii)对象的手、(iii)对象的面部、(iv)等等上的多个界标。在某些实施方式中,处理器210识别人的3d扫描图的身体上的24个界标、手上的42个界标、以及面部上的70个界标。例如,图6c示出界标,诸如视图512b上的界标516a。注意,视图512b与图6b的视图512a是相同的视图,但是包括所有识别到的界标。如图所示的多个界标遍布视图512b定位。
93.图6c还示出视图512b和514b。注意,视图512b与图6a的视图512a是相同的视图,但是包括识别到的界标。类似地,视图514b与图6b的视图514a是相同的视图,但是包括所有识别到的界标和骨骼结构。例如,视图514b上的界标516b对应于视图512b的界标516a。视图514b还包括骨骼结构,诸如骨518。骨是可以相对于一个或更多识别到的界标(诸如界标516b或516c)移动的刚性结构。骨518将界标516b(对应于3d对象的肘)连接到界标516c(对应于3d对象的肩),或两者。如图所示,骨518对应于人体的肱骨(其从肩延伸到肘)。
94.在执行姿势检测和界标识别之后,处理器210在步骤526中将来自不同视图的各组2d界标融合到3d坐标中。公式(1)描述了针对每个3d界标jj最小化来自不同视图的2d界标。
95.公式(1)
[0096][0097]
在视图i中,表达式w
ij
(confidence)是界标jj的置信权重。表达式projectmi是i的投影矩阵。在视图i中,表达式是界标jj的2d坐标。
[0098]
在步骤528中,处理器210通过最小化界标差来制定优化能量。公式(2)描述了优化能量,优化能量依赖于将3d关节误差和倒角距离(chamfer distance)组合以将已建参数身体模型拟合到3d扫描图。3d关节误差是3d扫描图的3d界标与已建参数身体模型的3d关节之间的差异。倒角距离是3d扫描图与已建参数身体模型之间的距离。
[0099]
公式(2)
[0100]
e(θ,β)=e
data
(θ,β)+e
pose
(θ)+e
body_landmark
(θ,β)+e
face_landmark
(θ,β)+e
hand_landmark
(θ,β)
[0101]
变量θ,β是已建参数身体模型的姿势和形状参数的集合。变量e
data
是测量已建参数身体模型与3d扫描图之间的倒角差的数据拟合项。变量e
pose
是对姿势参数进行正则化的正则化项。变量e
body_landmark
、e
face_landmark
以及e
hand_landmark
是用于测量3d身体、面部和手界标在已建参数身体模型与3d扫描图之间的差异的界标引导拟合项。在优化之后,在已建参数身体模型与3d扫描图之间获得对齐。
[0102]
尽管图6a至图6c示出方法530a及其各种应用,但是可以对图6a至图6c进行各种改
变。例如,虽然图6a被示为一系列步骤,但是各种步骤可以重叠,并行发生,或者发生任何次数。图6a至图6c不将本公开限于任何特定的系统或装置。
[0103]
图7a和图7b示出根据本公开的实施方式的使已建参数身体模型的组成部分变形的示例。图7c示出根据本公开的实施方式的使用语义变形的示例性方法760。图7a至图7c的实施方式仅用于说明,并且在不脱离本公开的范围的情况下可以使用其它实施方式。
[0104]
在某些实施方式中,处理器210将已建参数模型(rigged parametric model)的形状空间重新参数化为符合人体的不同语义段的sdc。通常从有限尺寸的数据集中训练已建参数身体模型。这样,这些已建参数身体模型的全局形状混合形状(通常从形状的主成分分析计算得出)仅跨越非常有限的形状空间,并且不能用来表示不同年龄组和身体形状的人体。
[0105]
如图7a中所示,处理器210可以修改已建参数身体模型的特定组成部分,以便将已建参数身体模型拟合到人的给定3d扫描图。例如,如图7a的图形700中所示,可以基于改变(i)身体和腿比例720a、(ii)腰720b、(iii)腿长720c、以及(iv)臂长720d的参数来修改已建参数身体模型710。
[0106]
已建参数身体模型721和723表示相对于已建参数身体模型710的身体和腿比例720a的变化。例如,当已建参数身体模型710的身体和腿比例720a减小时,如已建参数身体模型721所示,身体的尺寸增大,而腿的尺寸减小。相反,当已建参数身体模型710的身体和腿比例720a增大时,如已建参数身体模型723所示,身体的尺寸减小,而腿的尺寸增大。
[0107]
已建参数身体模型724和726表示相对于已建参数身体模型710的腰720b的变化。例如,当与已建参数身体模型710的腰720b相关的因子减小时,如已建参数身体模型724所示,腰的尺寸增大。相反,当与已建参数身体模型710的腰720b相关的因子增大时,如已建参数身体模型726所示,腰的尺寸减小。
[0108]
已建参数身体模型727和729表示相对于已建参数身体模型710的腿长720c的变化。例如,当与已建参数身体模型710的腿长720c相关的因子减小时,如已建参数身体模型727所示,腿的尺寸增大。相反,当与已建参数身体模型710的腿长720c相关的因子增大时,如已建参数身体模型729所示,腿的尺寸减小。
[0109]
已建参数身体模型730和732表示相对于已建参数身体模型710的臂长720d的变化。例如,当与已建参数身体模型710的臂长720d相关的因子减小时,如已建参数身体模型730所示,臂的尺寸增大。相反,当与已建参数身体模型710的臂长720d相关的因子增大时,如已建参数身体模型731所示,臂的尺寸减小。
[0110]
图7b示出图形750,图形750示出改变已建参数身体模型对所构3d扫描图的影响。即,图形750示出修改已建参数身体模型的特定组成部分以便利用经修改的已建参数身体模型来修改所构建的3d扫描图的效果。如下面更详细地讨论的,所构3d扫描图是包括已建参数身体模型的特性的3d扫描图。
[0111]
所构3d扫描图752表示利用已建参数身体模型的组成部分构建的3d扫描图。当修改已建参数身体模型时,如输出754a至754f所示,所构3d扫描图752发生相应变换。例如,通过减小已建参数身体模型的腰的尺寸,所构3d扫描图的腰如输出754a所示地被修改。相反地,通过增大已建参数身体模型的腰的尺寸,所构3d扫描图的腰如输出754b所示地被修改。又例如,通过减小已建参数身体模型的腿的尺寸,所构3d扫描图的腿如输出754c所示地被
修改。相反,通过增大已建参数身体模型的腿的尺寸,所构3d扫描图的腿如输出754d所示地被修改。再例如,通过减小已建参数身体模型的臂的尺寸,所构3d扫描图的臂如输出754e所示地被修改。相反,通过增大已建参数身体模型的臂的尺寸,所构3d扫描图的臂如输出754f所示地被修改。因此,sdc既可以用于将已建参数身体模型拟合到3d扫描图,也可以用于修改所构3d扫描图的外观。
[0112]
图7的方法760描述了对已建参数身体模型的形状重新参数化的过程。方法760可以由服务器104、图1的客户端装置106-116中的一个、图2的服务器200、图3的电子装置300、或另一个合适的装置来执行。在某些实施方式中,方法760可以由通过一个或更多网络互连的计算机的“云”来执行,其中该计算机各自为在被图1的网络102访问时利用群集的计算机和组件充当无缝资源的单个池的计算系统。在一些实施方式中,用来处理方法760的组件的一部分可以包括在不同的装置中,诸如多个服务器104或200、多个客户端装置106-116、或不同装置的其它组合。为了便于说明,方法760被描述为由具有图2的服务器200的内部组件的、图1的服务器104执行。注意,除了服务器104之外或作为服务器104的替代,具有图3的电子装置300的内部组件的、图1的客户端装置106-116中的任何一个可以用来执行方法760。
[0113]
在步骤762中,处理器210生成多个训练样本。用已建参数身体模型的不同混合形状系数生成样本作为训练样本,(在下面的公式(3)中)表示为x。训练样本用来分析不同身体部位的形状变化。训练样本为其中f是训练样本的数量,并且n是已建参数身体模型的顶点的数量。,
[0114]
在步骤764中,处理器210针对每个身体部位优化sdc。为了生成局部变形分量使得存在用于控制某些身体部位的长度和形状的单独分量,处理器210基于公式(3)来制定sdc优化。表达式是权重,其中nc是变形分量的数量。第一项||x-wc||2确保了c能够代表数据样本x。第二项l1/l2是局部变形分量c的加权范数,其在公式(4)中描述。
[0115]
公式(3)
[0116]
argmin
w,c
||x-wc||2+s(c) s.t. v(w)
[0117]
公式(4)
[0118][0119]
变量λ是空间变化的权重。变量λ约束变形分量的稀疏性和局部化。针对每个组成部分,处理器210通过首先限定包含身体模型上的顶点的圆的变形中心来生成λi。圆可以位于已建参数身体模型的臂处,不同的圆可以位于已建参数身体模型的腿处,以及另外的圆可以位于已建参数身体模型的躯干和大腿周围。圆基于语义身体测量,诸如胸、腰、臀等。然后,如下面公式(5)中所描述,对圆的测地距离(geodesic distance)d
ij
形成空间变化的λ。公式(5)能够实现平滑的形状变化。约束v(w)对于通过设定来防止权重变大是必要的。
[0120]
公式(5)
[0121]
λ
ij
=λmax(0,min(1,(d
ij-d
min
)/(d
ij-d
max
)))
[0122]
在步骤766中,处理器210在图5的拟合步骤520、图5的蒙皮步骤530、以及图6a的方法520a、以及图8a的方法530a、或其组合中使用sdc。另外,sdc可以用于通过增大或减小腿、腹部等来以语义方式重塑3d身体。针对身体测量结果(诸如前臂长、小腿长、腰围、头围等)建立变形分量。使用sdc,可以修改所构3d扫描图,诸如使所构3d扫描图更苗条和更强壮。
[0123]
尽管图7a至图7c示出sdc及其各种应用,但是可以对图7a至图7c进行各种改变。例如,虽然图7c被示为一系列步骤,但是各种步骤可以重叠,并行发生,或者发生任何次数。图7a至图7c不将本公开限于任何特定的系统或装置。
[0124]
图8a示出根据本公开的实施方式的用于蒙皮的示例性方法530a。方法530a更详细地描述了图5a的步骤530。图8b示出根据本公开的实施方式在图8a的蒙皮方法期间转移权重。图8c示出根据本公开的实施方式在图8a的蒙皮方法期间将扫描图转换为预定义的姿势。图8a至图8c的实施方式仅用于说明,并且在不脱离本公开的范围的情况下可以使用其它实施方式。
[0125]
方法530a可以由服务器104、图1的客户端装置106-116中的一个、图2的服务器200、图3的电子装置300、或另一个合适的装置来执行。在某些实施方式中,方法530a可以由通过一个或更多网络互连的计算机的“云”来执行,其中计算机各自为在被图1的网络102访问时利用群集的计算机和组件充当无缝资源的单个池的计算系统。在一些实施方式中,用来处理方法530a的组件的一部分可以包括在不同的装置中,诸如多个服务器104或200、多个客户端装置106-116、或不同装置的其它组合。为了便于说明,方法530a被描述为由具有图2的服务器200的内部组件的、图1的服务器104执行。注意,除了服务器104之外或作为服务器104的替代,具有图3的电子装置300的内部组件的、图1的客户端装置106-116中的任何一个可以用来执行方法530a。
[0126]
在步骤532中,处理器210识别已建参数模型与3d扫描图之间的对应关系。为了识别已建参数模型与3d扫描图之间的对应关系,处理器210将已建参数模型的区域关联到3d扫描图的相应顶点。针对3d扫描图的每个顶点,处理器210识别已建参数身体模型上的最近三角形。
[0127]
在步骤534中,处理器210通过对权重进行插值来识别属性,并且然后转移权重。将已建参数模型的权重转移到3d扫描图是基于对应关系来生成所构3d扫描图。将已建参数模型的属性转移到3d扫描图是基于将与已建参数模型的可识别部分相关的关节、蒙皮权重、uv坐标和标记关联到3d扫描图。
[0128]
插值权重对应于重心坐标。例如,图8b示出3d扫描图上的顶点812以及其在已建参数身体模型上的最近三角形810。
[0129]
例如,对于顶点i(图8b的顶点812),其在三角形810上的最近点的重心坐标是w1、w
2i
、w3。然后,可以如公式(6)中所描述地识别其到关节的绑定权重。
[0130]
公式(6)
[0131]wij
=w1*w
j1
+w2*w
j2
+w3*w
j3
[0132]
注意,变量w
j1
、w
j2
、w
j3
是与最近三角形的那三个顶点对应的三个绑定权重。处理器210可以重新制定与已建参数身体模型类似的3d扫描图的顶点变换。即,对于每个顶点i,在公式(7)中描述了其变换的坐标vi。
[0133]
公式(7)
[0134][0135]
在公式(7)中,w
ij
是关节的插值蒙皮权重。表达式tj是关节j的变换。表达式是t姿势中的顶点坐标。
[0136]
注意,下面的公式(8)的表达式和下面的公式(9)的表达式是用形状参数β和姿势参数θ限定的形状和姿势混合形状。这两个混合形状使用与上述绑定权重相同的对应策略和重心插值来限定。在公式(8)和(9)中,bs(β)k和b
p
(θ)k描述了具有已建参数身体模型的顶点指数k的最近三角形的、依赖于形状和姿势的变形。
[0137]
公式(8)
[0138][0139]
公式(9)
[0140][0141]
在步骤536中,如图8c所示,3d扫描图转换为t姿势。t姿势表示站立的人双脚并拢并且双臂向两侧伸展。t姿势中的顶点坐标可以通过对公式(10)的变换求逆来计算。
[0142]
公式(10)
[0143][0144]
在步骤538中,处理器执行线性混合。为了执行线性混合,处理器210使用以上的公式(7)的线性混合蒙皮,在固定β的同时利用变化的不同姿势参数θ使3d扫描图变形,或者如图4中所示的那样,我们可以调整身体形状参数β以创建一些夸张的身体风格。注意,3d扫描图不是通过各种参数来动画化的,可以通过变化的不同姿势参数θ来手动移动3d扫描图,诸如从图8c的t姿势移动到输出412a、输出412b、输出412c、输出412d、输出412e、或输出412f。
[0145]
尽管图8a至图8c示出蒙皮及其各种应用,但是可以对图8a至图8c进行各种改变。例如,虽然图8a被示为一系列步骤,但是各种步骤可以重叠,并行发生,或者发生任何次数。图8a至图8c不将本公开限于任何特定的系统或装置。
[0146]
图9a示出根据本公开的实施方式的用于修补的示例性方法540a。方法540a更详细地描述图5a的步骤540。图9b和图9c示出根据本公开的实施方式的进行修补之前和之后的3d扫描图的2d图像。图9d和图9e示出根据本公开的实施方式的校正与3d扫描图对象的手和脚相关的误差的过程。图9f示出根据本公开的实施方式的在生成所构3d扫描图的不同阶段的图像。图9g示出根据本公开的实施方式的填充。图9a至图9g的实施方式仅用于说明,并且在不脱离本公开的范围的情况下可以使用其它实施方式。
[0147]
修补描述了修复3d扫描图的过程。修复3d扫描图以去除伪像,所述伪像在3d扫描图被动画化时会降低3d扫描图的质量。例如,由于不同身体部位之间的一些三角形顶点接近,或由于身体部位的一些自遮挡,需要修复来自原始3d扫描图的拉伸三角形或缺失信息
(诸如几何形状和颜色)。修复3d扫描图包括:对3d扫描图的没必要地连接的部分(诸如图9f的图像942a)进行分离、对3d扫描图的包括遮挡或孔洞(诸如图9b的孔洞909a和909b)的部分进行修复、对3d扫描图的手和脚(诸如图9d和图9e中所示)进行修复等。
[0148]
方法540a可以由服务器104、图1的客户端装置106-116中的一个、图2的服务器200、图3的电子装置300、或另一个合适的装置来执行。在某些实施方式中,方法540a可以由通过一个或更多网络互连的计算机的“云”来执行,其中计算机每个都是在被图1的网络102访问时利用群集的计算机和组件充当无缝资源的单个池的计算系统。在一些实施方式中,用来处理方法540a的组件的一部分可以包括在不同的装置中,诸如多个服务器104或200、多个客户端装置106-116、或不同装置的其它组合。为了便于说明,方法540a被描述为由具有图2的服务器200的内部组件的、图1的服务器104执行。注意,除了服务器104之外或作为服务器104的替代,具有图3的电子装置300的内部组件的、图1的客户端装置106-116中的任何一个可以用来执行方法540a。
[0149]
在步骤542中,基于顶点是否跨过不同的身体部位,从所构3d扫描图转移uv坐标信息,并且切割所构3d扫描图的某些三角形。为了识别不同的身体部位,服务器200识别与已建参数模型的不同部分相关的标记。在某些实施方式中,对已建参数模型的三角形的组进行标记,以识别身体的不同部分。在图8b中示出已建参数模型的三角形。可以基于三角形在已建参数模型中的位置,将不同的标记分配给不同的三角形的组。例如,标记可以包括头、躯干、腿一、腿二、臂一、臂二、手一、手二、以及脚一和脚二。这样,已建参数模型的三角形可以包括基于其位置的特定标记。
[0150]
在识别已建参数模型的不同身体部位之后,基于标记,服务器200根据已建参数模型的三角形与所构3d扫描图之间的对应关系来标记所构3d扫描图的顶点。
[0151]
服务器自动切割拉伸的三角形并将所有顶点的uv坐标转移到2duv域。这是通过在已建参数模型上对来自每个顶点的最近三角形的uv坐标进行插值来执行的。下面的公式(11)描述了从所构3d扫描图中识别顶点。例如,w1、w2和w3对应于三角形的三个点(诸如图8b的三角形810中所示的w1、w2和w3)。
[0152]
公式(11)
[0153]
uv=w1uv1+w2uv2+w3uv3[0154]
图9b的图像904和906示出基于uv转移的2d图像。图像904和906基于标记来分离所构3d扫描图的不同身体部位。例如,图像904示出2d位移图像,且图像906示出基于所构3d扫描图902a和902b的2d颜色图像。
[0155]
注意,所构3d扫描图902b的部分包括孔洞,诸如孔洞909a。孔洞909a表示为如图像904中所示的孔洞909b。孔洞(诸如孔洞909a和909b)可能由于遮挡而形成。还要注意,所构3d扫描图902a的某些部分可能形成不良,诸如手908。如图所示,手908没有描绘各个手指。
[0156]
在步骤544中,服务器200烘焙2d uv域上的颜色和几何纹理,其中几何纹理代表扫描图相对于已建参数模型的表面的位移。即,服务器200将3d几何形状和纹理修补问题转换为2d修补问题(根据步骤542)。然后,服务器200将位移信息烘焙到图像904中,并且将颜色信息烘焙到图像906中,以分别生成图9c的图像914和916。通过将纹理烘焙到图像904中,如919b所示,孔洞909b被填充。在某些实施方式中,服务器可以使用任何修补技术。
[0157]
在某些实施方式中,服务器200添加填充区域以避免不同图形之间的颜色泄漏和
沿着切割接缝线的平滑。填充添加在图像914和916的每个身体部位周围。下面参照图9g更详细地描述填充。
[0158]
在某些实施方式中,如图9d的图像920或图9b的手908中所示,所构3d扫描图的手通常包括伪像。服务器使用参数模型模板(template)来提供手网格(在图9d的图像922中示出)作为对扫描图的手(诸如图9c的手918)的替换。手网格用来替换所构3d扫描图的现有的手。如公式(12)中所描述的sigmoid混合函数可以用来去除手和臂之间的间隙。
[0159]
公式(12)
[0160][0161]
在上面的公式(12)中,x是某个臂顶点与最近的手顶点之间的距离。在某些实施方式中,臂网格上的混合顶点的最大值x为0.015。公式(12)的w是混合权重。然后,服务器通过如公式(13)所描述的混合函数使臂顶点平滑化。在下面的公式(13)中,v
reconstruction
和v
template
分别是来自所构3d扫描图和模板的顶点。
[0162]
公式(13)
[0163]vfinal
=w*v
reconstruction
+(1-w)*v
template
[0164]
在某些实施方式中,如图9e的图像930中所示,所构3d扫描图的脚通常包括伪像。服务器可以用诸如脚932的模板替换扫描图的脚。在某些实施方式中,服务器用原始3d扫描图的鞋网格替换重构的“脚”网格。
[0165]
在步骤546中,服务器修复任何纹理问题。例如,服务器可以使用神经网络来识别和修复所构3d扫描图的任何颜色纹理或几何纹理。它们在步骤544之前没有被修复。
[0166]
在步骤548中,在执行修补和填充之后,服务器基于(图9c的)经修改的图像914和916、(图9d的)图像922的经修改的手、以及(图9d的)经修改的脚932来重新生成所构3d扫描图,如图9c的经修改的所构3d扫描图912a和912b所示的那样。即,经修改的所构3d扫描图912a和912b不包括任何孔洞以及改进的手和脚。
[0167]
图9f示出在修改所构3d扫描图的不同阶段的各种图像。例如,图像940示出原始的3d扫描图。图像942a示出在用拉伸的三角形进行线性混合蒙皮之后的变形网格。图像942b示出对所构3d扫描图的不同身体部位进行切割的效果。即,如图像942a中所示的拉伸三角形被切割,使得手不再不期望地连接到躯干。图像942c示出基于修补而重构的所构3d扫描图。即,图像942c是具有重构的几何形状和颜色纹理的所构3d扫描图。图像942d示出具有经修复的手和鞋的完全修改后的所构3d扫描图。即,图像942d是基于图像940的完全修改后的所构3d扫描图。
[0168]
图9g示出根据本公开的实施方式的填充。如上面在步骤544中所讨论的,服务器将填充添加到2d图像的区域,以避免不同图形之间的颜色泄漏和沿着切割接缝线的平滑。图像950示出没有填充的所构3d扫描图。如图所示,在位置951a和951b处存在颜色渗出。在执行填充之后,如图像952中所示,填充防止颜色渗出。
[0169]
尽管图9a至图9g示出修补及其各种应用,但是可以对图9a至图9g进行各种改变。例如,虽然图9a被示为一系列步骤,但是各种步骤可以重叠,并行发生,或者发生任何次数。图9a至图9g不将本公开限于任何特定的系统或装置。
[0170]
图10示出根据本公开的实施方式的用于对象构建的示例性方法1000。方法1000可
以由服务器104、图1的客户端装置106-116中的一个、图2的服务器200、图3的电子装置300、或另一个合适的装置来执行。在某些实施方式中,方法1000可以由通过一个或更多网络互连的计算机的“云”来执行,其中计算机每个都是在被图1的网络102访问时利用群集的计算机和组件充当无缝资源的单个池的计算系统。在一些实施方式中,用来处理方法1000的组件的一部分可以包括在不同的装置中,诸如多个服务器104或200、多个客户端装置106-116、或不同装置的其它组合。为了便于说明,方法1000被描述为由具有图2的服务器200的内部组件的、图1的服务器104执行。注意,除了服务器104之外或作为服务器104的替代,具有图3的电子装置300的内部组件的、图1的客户端装置106-116中的任何一个可以用来执行方法1000。
[0171]
在步骤1002中,服务器200接收对象的3d扫描图。在某些实施方式中,服务器200基于与对象的不同取向对应的、从另一个装置(诸如客户端装置中的一个)接收的多个图像来生成3d扫描图。例如,服务器200可以被配置成将多个图像拼接在一起以生成3d扫描图。注意,多个2d图像可以来自一个或更多相机,诸如彩色相机、深度相机等。
[0172]
在步骤1004中,服务器200将已建参数模型匹配到3d扫描图。已建参数模型是类似于3d扫描图并且包括预先识别的关节的模型。例如,如果3d扫描图是人,则已建参数模型也是人的模型。即,人的已建参数模型在模型上的特定位置处具有与人体的关节对应的预定义关节。例如,已建参数模型包括骨骼系统,诸如骨骼和关节,使得已建参数模型能够模仿人的运动。
[0173]
为了将已建参数模型与3d扫描图相匹配,服务器200最小化已建参数模型与3d扫描图之间的表面距离。另外,为了将已建参数模型与3d扫描图相匹配,服务器200最小化已建参数模型与3d扫描图之间的3d关节误差。
[0174]
为了匹配已建参数模型和3d扫描图,服务器200提取3d扫描图的不同视图(或取向)。例如,服务器200在不同视图(或取向)中呈现3d扫描图。在某些实施方式中,服务器200在15个不同的视图(或取向)中呈现3d扫描图,诸如正面、背面、侧面、顶部、底部、以及在它们之间的其它各种角度。
[0175]
当在不同的视图中呈现3d扫描图之后,服务器200识别不同视图中的每个上的多个2d界标。界标对应于整个身体的各种关节位置。根据每个视图的取向,服务器200通过身体、手和脸部识别预定义数量的界标。在某些实施方式中,整个身体有25个界标,整个手有42个界标,以及整个脸部有70个界标。不是所有的界标都将在每个视图中被识别,因为一些界标会被遮挡。
[0176]
然后,服务器200组合来自3d扫描图的不同取向的多个2d界标,以识别3d扫描图的3d界标。即,3d界标是3d扫描图上的与在多个视图中被识别的多个2d界标对应的坐标集合。此后,服务器200识别3d关节误差,该3d关节误差基于3d扫描图的3d界标与已建参数模型的3d关节之间的差异。然后,服务器200最小化3d关节误差以及3d扫描图的表面与已建参数模型之间的距离。例如,可以修改已建参数模型以匹配3d扫描图的形状。例如,可以拉长或缩短已建参数模型的两个关节之间的距离,以匹配3d扫描图的相应关节之间的距离。
[0177]
在某些实施方式中,服务器200生成已建参数模型的可修改的局部区域。然后,服务器200通过使已建参数模型的局部区域变形来修改已建参数模型的局部区域以匹配3d扫描图的相应形状。例如,可以改变已建参数模型的身体和腿的比率。例如,可以改变相比于
身体高度的腿的高度,同时保持已建参数模型的总高度固定。又例如,可以增大或减小已建参数模型的腰以匹配3d扫描图。类似地,可以增大或减小已建参数模型的腿长和臂长以匹配3d扫描图。
[0178]
在步骤1006中,服务器200识别已建参数模型与3d扫描图之间的对应关系。为了识别已建参数模型与3d扫描图之间的对应关系,服务器200将已建参数模型的区域关联到3d扫描图的相应顶点。例如,对于3d扫描图的每个顶点,服务器200识别已建参数模型的最近三角形。此后,服务器200识别权重并对权重进行插值。
[0179]
在步骤1008中,服务器200基于对应关系将已建参数模型的属性转移到3d扫描图以生成所构3d扫描图。为了将已建参数模型的属性转移到3d扫描图,服务器200将与已建参数模型的可识别部分相关的关节、蒙皮权重、uv坐标和标记关联到3d扫描图。
[0180]
在某些实施方式中,当3d对象代表人时,服务器200识别3d扫描图的手和脚。服务器200可以用手的模板网格替换所构3d扫描图的手。服务器200可以用扫描网格替换所构3d扫描图的脚。
[0181]
在某些实施方式中,服务器200可以分离所构3d扫描图的不经意地连接的部分。例如,如图4f的示例942a所示,如果所构3d扫描图的臂的一部分仍然连接到身体的话。
[0182]
在某些实施方式中,服务器200可以识别并填充所构3d扫描图的任何孔洞(遮挡)。为了填充孔洞,服务器200将已建参数模型的身体标记信息转移到所构3d扫描图。服务器200可以基于身体标记信息在与两个或更多预定义身体部位对应的顶点处分割所构3d扫描图。在将所构3d扫描图分割成多个3d部分之后,基于对应关系将坐标从已建参数模型转移到所构3d扫描图。服务器200基于转移的坐标生成包括2d位移图像和颜色图像的2d图像。2d图像在图9b的图像904和906中示出。注意,2d位移图像和颜色图像代表所构3d扫描图的由身体标记信息指示的多个3d部分,并且2d位移图像的第一位移图像对应于颜色图像的第一颜色图像。
[0183]
为了转移坐标,服务器200基于来自已建参数模型的最近三角形的第一uv坐标的插值来识别3d扫描图的顶点的uv坐标。然后,服务器200将顶点的uv坐标转移到2d域以生成2d图像的2d位移图像和颜色图像。
[0184]
然后,服务器200修改2d图像的2d位移图像和颜色图像。例如,服务器200可以对2d位移图像和颜色图像的边界添加填充,以防止当2d图像用来对所构3d扫描图进行重构时在各区域处的颜色不连续。
[0185]
服务器200还可以通过填充孔洞并添加颜色来修改2d位移图像和颜色图像。例如,服务器200可以识别位移图像和颜色图像的、包括缺失几何形状和纹理的区域(诸如孔洞)的部分。为了修改位移图像和颜色图像,服务器200基于已建参数模型的相应表面在位移图像的孔洞处添加几何形状。服务器200还基于第一颜色图像的纹理将纹理添加到所添加的几何结构。一旦孔洞被填充和着色,服务器200就基于经修改的2d位移图像和颜色图像来对所构3d扫描图进行重构。
[0186]
在某些实施方式中,在生成所构3d扫描图之后,服务器200可以修改所构3d扫描图的外观。例如,服务器200可以使所构3d扫描图的局部区域变形。例如,可以改变所构3d扫描图的身体和腿比例。例如,可以改变相比于身体高度的腿高度,同时保持所构3d扫描图的总高度固定。又例如,可以增大或减小所构3d扫描图的腰。调节腰可以代表增大或减小所构3d
扫描图的体重。例如,如果用户希望被表示为所构3d扫描图的自己的化身更苗条,则可以减小所构3d扫描图的腰。类似地,可以基于来自用户的输入来增大或减小所构3d扫描图的腿长和臂长。
[0187]
在步骤1010中,服务器200将动画动作添加到所构3d扫描图。可以基于接收到的输入(该输入提供描述运动的指令)来使所构3d扫描图动画化和移动。
[0188]
在某些实施方式中,在显示器上呈现具有所应用的动画动作的所构3d扫描图。例如,可以将具有所应用的动画动作的所构3d扫描图从服务器传送到包括显示器的客户端装置中的一个。如果所构3d扫描图是在客户端装置(而不是服务器)中的一个上创建的,则可以响应于来自用户的输入来显示所构3d扫描图。
[0189]
尽管图10示出方法1000,但是可以对图10进行各种改变。例如,虽然图10被示为一系列步骤,但是各种步骤可以重叠,并行发生,或者发生任何次数。图10不将本公开限于任何特定的系统或装置。
[0190]
尽管附图示出用户装置的不同示例,但是可以对附图进行各种改变。例如,用户装置可以在任何合适的布置中包括任何数量的每个组件。通常,附图不将本公开的范围限于任何特定的配置。此外,虽然附图示出其中可以使用本专利文件中公开的各种用户装置特征的操作环境,但是这些特征可以用在任何其它合适的系统中。本技术中的任何描述都不应被理解为暗示任何特定的元件、步骤或功能是必须包括在权利要求范围内的必要元素。
[0191]
尽管已经用示例性实施方式描述了本公开,但是可以向本领域的技术人员建议各种改变和修改。本公开旨在包括落入所附权利要求的范围内的这种改变和修改。