掌桥专利:专业的专利平台
掌桥专利
首页

从低分辨率表示合成高分辨率3D形状的合成数据生成系统和应用

文献发布时间:2023-06-19 18:32:25


从低分辨率表示合成高分辨率3D形状的合成数据生成系统和应用

背景技术

诸如模拟、建筑、游戏和电影等领域都依赖于具有丰富几何细节和拓扑结构的高质量三维(3D)内容。然而,创建适合此类应用的高质量3D形状需要大量的开发时间、计算和存储器——通常针对每个单独的形状。相比之下,创建粗略的3D形状——例如,用体素、块、稀疏点云等——消耗更少的时间、计算和存储器,并且已被所有类型的用户广泛采用,包括那些可能不具备3D建模专业知识的用户。

强大的3D表示是基于学习的3D内容创建框架的关键组件。例如,用于高质量重建和合成的良好的3D表示应该能够捕获局部的几何细节,并表示具有任意拓扑结构的对象,同时还具有存储器和计算效率,以便在交互、近实时和/或实时应用中快速推理。为了实现这一目标,先前的方法已经使用了神经隐式表示,该神经隐式表示使用神经网络来表示形状的符号距离场(SDF)和/或占用场(OF)。然而,大多数现有的隐式方法是通过回归到SDF或占用值来训练的,并且无法在底层表面使用显式监督(这种显式监督将允许有益于训练的有用约束),从而导致在合成精细细节时出现伪影。为了缓解这个问题,一些现有的方法使用等值表面技术(诸如行进(marching)立方体(MC)算法),从隐式表示中提取表面网格(mesh)——计算昂贵的方法,严重依赖于MC中使用的栅格(grid)分辨率。在有限的分辨率上运行等值表面,在表面的几何和类型中引入量化误差。因此,现有的隐式方法要么使用导致较低质量的形状合成的隐式表示,要么使用计算昂贵且依赖于栅格分辨率的隐式和显式等值表面技术的组合——从而使这些方法不适合在交互、近实时或实时应用中进行高质量的形状合成。

一些先前的方法包括基于体素的方法,这些方法将3D形状表示为体素,其将粗略的占有率(内部/外部)值存储在规则的栅格上。对于高分辨率的形状合成,通过使用定义在体素栅格的3D补丁(patch)上的判别器,生成式对抗网络已经被用于将几何细节从高分辨率体素形状转移到低分辨率形状。然而,随着分辨率的提高,计算和存储器成本呈立方增长,禁止精细的几何细节和平滑的曲线的重建。

其他先前的方法使用基于表面的方法,直接预测三角形网格。通常情况下,基于表面的方法假定形状的拓扑结构是预定义的,并且对于具有复杂拓扑结构变化的对象,可能会失去准确性。此外,与基于体素的方法类似,计算成本随着栅格分辨率呈立方增加。此外,在先前的方法中生成的网格可能包含类型的误差,诸如由于网格面的自交而产生的非流形顶点和边缘。

发明内容

本公开的实施例涉及到用于深度学习系统和应用的高分辨率形状合成。所公开的系统和方法使用深度3D条件生成模型,以从较低分辨率的3D指南——例如,粗体素(coarsevoxels)、稀疏的点云、扫描等——生成高分辨率的3D形状。可以生成可区分的形状表示,其将隐式和显式3D表示两者结合在一起,并且与先前优化预测SDF或占用值的方法相比,优化3D形状的重建表面,以产生具有更精细几何细节的更高质量的形状。例如,与生成表示的方法(诸网格)相比,本公开的系统和方法产生具有任意拓扑结构的形状。具体来说,例如并不限于,通过使用行进四面体(MT)算法,可以预测由隐式函数编码的可变形四面体栅格参数化的底层2-流形参数化,并将底层2-流形转换为显式网格。MT算法可以是可微分的并且比先前的MC方法更好的性能。该系统可以通过学习适应栅格的分辨率,通过变形和有选择地细分四面体来保持效率——例如,通过只在空间的相关区域集中计算。与基于八叉树(octree-based)的形状合成相比,本公开的网络共同地学习栅格变形和细分,以更好地表示表面,而不依赖于来自预先计算的层次结构的显式(explicit)监督。深度3D卷积生成模型可以是端到端可微分的,允许网络联合优化表面的几何形状和拓扑结构,以及使用显式地定义在表面网格上的损失函数的细分的层次结构。此外,先前的方法声称MC公式中的奇点防止了训练过程中的类型的变化,这一点被本系统和方法推翻。例如,本系统和方法的3D表示扩展到高分辨率,并且不需要对后向推算(pass)进行附加的修改。此外,深度3D卷积生成模型具有表示任意拓扑结构的能力,并直接对表面重建进行优化以缓解这些问题。

附图说明

下面参考附图详细描述用于深度学习系统和应用的高分辨率形状合成的本系统和方法,其中;

图1是示出了根据本公开的一些实施例的三维(3D)形状合成和重建的过程的数据流图;

图2A示出了根据本公开的一些实施例的四面体的体积细分的示例;

图2B示出了根据本公开的一些实施例的具有和不具有体积细分的表面估计的可视化示例;

图3示出了根据本公开的一些实施例的识别等值面的顶点位置的示例;

图4A-4B示出了根据本公开的一些实施例的具有和不具有选择性体积细分的情况下,计算和存储器资源需求的指示图;

图5是示出了根据本公开的一些实施例的用于高分辨率形状合成的方法流程图;

图6是适合用于实现本公开的一些实施例的计算设备的框图;以及

图7是适合用于实现本公开的一些实施例的示例数据中心的框图。

具体实施方式

公开了涉及深度学习系统和应用的高分辨率形状合成的系统和方法。本文描述的系统和方法可以用于各种目的,通过示例和不限制的方式,用于机器控制、机器运动、机器驾驶、合成数据生成、模型训练、感知、增强现实、虚拟现实、混合现实、机器人学、安全和监视、自主或半自主机器应用、深度学习、环境模拟、数据中心处理、会话式人工智能、光传输模拟(例如,光线追踪、路径追踪等)、3D资产的协作内容创建、云计算和/或任何其他合适的应用。

所公开的实施例可以被包括在各种不同的系统中,诸如汽车系统(例如,自主或半自主机器的控制系统、自主或半自主机器的感知系统)、使用机器人实现的系统、航空系统、医疗系统、划船系统、智能区域监测系统、执行深度学习操作的系统、执行模拟操作的系统、使用边缘设备实现的系统、合并一个或更多个虚拟机(VM)的系统、用于执行合成数据生成操作的系统、至少部分地在数据中心中实现的系统、用于执行会话式人工智能操作的系统、用于执行光传输模拟的系统、用于执行3D资产的协作内容创建的系统、至少部分地使用云计算资源实现的系统和/或其他类型的系统。尽管本文主要针对3D形状或内容的创建、合成或重建进行了描述,但这并不意味着是限制性的,本公开的系统和方法可用于二维(2D)形状或内容的创建、合成或重建,而不偏离本公开的范围。

参考图1,图1是示出了根据本公开的一些实施例的用于3D形状合成和重建的过程100的数据流图。应该理解的是,本文描述的这种和其他布置只是作为示例提出的。其他布置和元素(例如,机器、接口、功能、顺序、功能的分组等)可以用来补充或代替所示的那些,并且一些元素可以被完全省略。此外,本文描述的许多元素是功能实体,可以作为离散的或分布式的组件,或与其他组件一起,以任何合适的组合和位置来实现。本文描述的由实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由执行存储在存储器中的指令的处理器来执行。在一些实施例中,组件、特征和/或功能中的一个或更多个可以类似于图6的示例计算设备600和/或图7的示例数据中心700的那些。

过程100可用于合成或重建高质量的3D形状和对象。为了生成3D形状,可以接收和/或生成表示一个或更多个输入102的输入数据。输入102可以包括点云(例如,在实施例中的稀疏点云)、体素化形状(例如,粗体素化形状)、扫描(例如,3D扫描)和/或另一种类型——例如,较低质量——的输入102。该输入可以使用一个或更多个机器学习模型进行处理,诸如,但不限于,如图1中(A)-(E)表示的用于高分辨率形状合成的深度3D条件生成模型。例如,输入102可以使用该模型进行处理,用于:(A)在初始栅格分辨率下预测符号距离场(SDF);(B)选择性地细分栅格的四面体并内插(interpolate)经细分的栅格的更新的SDF;(C)细化边界SDF和变形以及修剪图形(graph);(D)在内插的SDF上执行行进四面体方法,以生成三角形网格;以及(E)使用可微分表面细分将三角形网格转换成参数化表面。例如,可以执行操作(A)-(C)以生成隐式函数104,并可以执行操作(D)以生成显式表面106,以及(E)可以执行表面细分以生成一个或更多个输出108(例如,高质量的3D形状或对象)。

过程100的模型可以使用为高分辨率重建和合成而设计的混合3D表示。3D表示可以使用用可变形的四面体栅格编码的SDF来表示。该栅格可以完全四面体化单元立方体,其中体积中的每个单元可以是四面体,具有例如四个顶点和面。这种表示的好处是:栅格顶点可以变形以更高效地表示形状的几何。此外,在实施例中,符号距离值可以被定义在栅格的顶点上,以隐式地表示底层表面,而不是像先前的方法那样在每个四面体上定义编码占用。符号距离值的使用,而不是占用,可以在表示底层表面时提供更多的灵活性。可变形四面体网格可被用作隐式函数的近似值。为了生成可变形四面体栅格,(V

为了进一步提高灵活性,同时保持存储器和计算的可控性,预测的表面周围的四面体可以被细分——例如,使用选择性细分。通过这种方式,可以用从粗到细的方式来表示形状,以提高效率。表面四面体,T

图2B示出了与不使用体积细分相比沿着表面四面体进行体积细分的结果。例如,可视化230包括与地面实况表面238一起的估计表面的部分236,其中估计表面的部分236没有捕获地面实况表面238的轮廓。然而,可视化232包括在体积细分之后和在局部更新顶点位置和SDF之前的估计表面的部分236,然而,可视化234包括在体积细分之后和更新顶点位置和SDF之后的估计表面的更新部分240。估计表面的更新部分240更接近于地面实况表面238的轮廓,从而导致对象的更准确的隐式表示。

基于符号距离的隐式表示——例如,在细分之后——可以使用行进四面体层转换为三角形网格,并且该网格可以用可微分表面细分模块转换为参数化表面。例如,可以使用行进四面体(MT)算法将编码的SDF转换为显式三角形网格。考虑到四面体顶点的SDF值,{s(v

可以在三角形网格上执行可微分的表面细分,以提高图形的表示能力和视觉质量。可以执行循环(loop)细分方法,而不是使用固定的参数集进行细分,而是使用可学习的参数。具体来说,可学习的参数可以包括每个网格顶点v′

在非限制性实施例中,可用于生成输出108的深度神经网络(DNN)可以包括3D深度条件生成模型。例如,DNN可以使用本文所述的混合3D表示法来学习从输入x中输出高分辨率的3D网格,M,该输入x可以包括点云、粗体素化的形状、扫描和/或类似物。例如,DNN可以包括一个或更多个模块,在处理输入x的过程中,每个模块的任务是计算中间输出或最终输出,以生成3D网格,M。

在一些实施例中,如图1所示,模型可以包括一个或更多个机器学习模型,用初始SDF预测110执行任务。因此,该模型可以包括从点云中提取3D特征体积F

在获得初始SDF后,可以执行表面细化112,以迭代细化表面和细分四面体栅格。例如,可以根据当前的s(v)值识别表面四面体T

其中N

在表面细化之后,可以执行体积细分操作,并可以在其后进行附加的表面细化操作。例如,T

此外,因为SDF值和位置是从细分前的级别继承的(inherited),在最终表面计算的损失可以反向传播到所有层面的所有顶点。因此,该模型可以自动地学习细分四面体,而不需要像先前的方法那样在中间步骤中没有附加的损失项来监督八叉树层次结构的学习。

在使用行进四面体算法提取表面网格后(例如,图1中的操作(D)),可学习的表面细分可以在(E)处应用。因为输出是三角形的网格,可学习的表面细分可以将输出转换为具有无限分辨率的参数化表面,这允许模型的端到端可训练性。在实践中,可以在提取的网格上生成新的图形,并且图形卷积网络可用于预测每个顶点v′

在一些实施例中,给定来自模型的可微分表面表示,可以在使用3D生成器预测的最终表面上应用3D判别器(discriminator)(例如,在隐式函数104、行进四面体算法和/或表面细分以生成显式表面106之后)。3D判别器可用于从高曲率区域和预测的网格采样的局部补丁,并且损失——例如,本文所述的对抗性损失——可推动预测重建高保真几何细节。例如,3D判别器可以包括3D卷积神经网络(CNN),并且可用于从预测的网格计算的SDF,以捕获局部细节。可以从目标网格中随机选择高曲率的顶点v,并在v周围的体素化区域计算地面实况SDF,

本公开的模型——例如,3D深度条件生成模型——可以是端到端可训练的。在一个或更多个实施例中,一个或更多个模块可以被监督,以最小化定义在最终预测网格M上的误差。可以使用一个或更多个损失函数,每个损失函数都包括一个或更多个不同的损失项。例如,在非限制性的实施例中,可以使用包括三个不同项的损失函数:用于鼓励与地面实况表面对齐的表面对齐损失;用于改善生成的形状的真实性的对抗损失;以及用于正则化SDF和顶点变形的行为的正则化。

表面对齐损失可以包括从地面实况(ground truth)网格M

其中,

对抗性损失可以根据下面的公式(4)来计算:

关于正则化,方程(3)和(4)的损失函数对提取的表面进行操作,因此,只有四面体栅格中接近等值面的顶点可以接收梯度,而其他顶点不可以。表面损失也可以不提供关于内部和/或外部的信息,因为翻转四面体中所有顶点的SDF符号会导致由行进四面体算法提取的是同一个表面。这可以导致在训练过程中出现断开的组件,因此可以添加SDF损失来正则化SDF值。在一些实施例中,SDF正则化损失可以根据下面的公式(5)来计算:

L=λ

现在参考图5,本文描述的方法500的每个框包括可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器来执行。方法500也可以体现为存储在计算机存储介质上的计算机可使用指令。方法500可以由独立的应用程序、服务或托管服务(独立的或与另一托管服务相结合)、或另一产品的插件提供,仅举几例。此外,作为示例,方法500是针对图1的过程100描述的。然而,方法500可以附加地或替代地由任何一个过程或系统,或任何流程和系统的组合执行,包括但不限于本文所描述的那些。

图5是示出了根据本公开的一些实施例的用于高分辨率形状合成的方法500的流程图。在框B502,方法500包括至少部分地基于对象的输入表示,在四面体栅格的初始栅格分辨率下计算符号距离场(SDF)。例如,使用输入102,可以在四面体栅格的初始栅格分辨率上计算SDF。

在框B504,方法500包括对四面体栅格进行细分和变形,以生成在更新的分辨率下的更新的四面体栅格。例如,四面体栅格可以被选择性地细分和变形。

在框B506,方法500包括使用SDF和更新的四面体栅格计算更新的SDF。例如,基于细分和变形,可以计算更新的四面体栅格的更新的顶点的SDF值。

在一些实施例中,框B504和/或框B506的操作可以被多次执行——例如,直到达到目标分辨率。

在框B508,方法500包括在更新的四面体栅格上执行行进四面体算法以生成三角形网格。例如,可以在可变形栅格上执行行进四面体算法(例如,在细分、变形和更新SDF之后),以提取等值面(例如,三角形网格)。

在框B510,方法500包括细分三角形网格,以生成对象的最终表面表示。然后,表面细分可以应用于等值表面,以生成参数化(例如,显式)表面作为输出108。

示例计算设备

图6为适合用于实现本公开一些实施例的示例计算设备600的框图。计算设备600可以包括直接或间接耦合下列设备的互连系统602:存储器604,一个或更多个中央处理单元(CPU)606,一个或更多个图形处理单元(GPU)608,通信接口610,输入/输出(I/O)端口612,输入/输出组件614,电源616,一个或更多个呈现组件618(例如显示器)和一个或更多个逻辑单元620。在至少一个实施例中,计算设备600可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,一个或更多个GPU 608可以包括一个或更多个vGPU,一个或更多个CPU 606可以包括一个或更多个vCPU,和/或一个或更多个逻辑单元620可以包括一个或更多个虚拟逻辑单元。因此,计算设备600可以包括分立组件(例如,专用于计算设备600的完整GPU)、虚拟组件(例如,专用于计算设备600的GPU的一部分),或其组合。

尽管图6的各个框被示为经由具有线路的互连系统602连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件618可以被认为是I/O组件614(例如如果显示器为触摸屏)。作为另一个示例,CPU 606和/或GPU608可以包括存储器(例如,存储器604可以表示除了GPU 608、CPU 606和/或其他组件的存储器以外的存储设备)。换言之,图6的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图6的计算设备的范围内。

互连系统602可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连系统602可以包括一种或更多种链路或总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线,和/或另一种类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 606可以直接连接到存储器604。此外,CPU 606可以直接连接到GPU 608。在组件之间存在直接或点对点连接的情况下,互连系统602可以包括PCIe链路来执行该连接。在这些示例中,计算设备600中不需要包括PCI总线。

存储器604可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备600访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。

计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器604可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备600访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。

计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。

CPU 606可以被配置为执行计算机可读指令中的至少一些,以便控制计算设备600的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 606中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 606可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备600的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备600的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机制(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备600还可以包括一个或更多个CPU 606。

除了或替代CPU 606,GPU 608还可以被配置为执行至少一些计算机可读指令,以控制计算设备600的一个或更多个组件执行一个或更多个本文所述的方法和/或过程。一个或更多个GPU 608可以是集成GPU(例如,具有一个或更多个CPU 606)和/或一个或更多个GPU 608可以是离散GPU。在实施例中,一个或更多个GPU 608可以是一个或更多个CPU 606的协处理器。计算设备600可以使用GPU 608来渲染图形(例如,3D图形)或执行通用计算。例如,GPU 608可用于GPU上的通用计算(GPGPU)。GPU 608可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU 608可以响应于渲染命令(例如经由主机接口接收的来自CPU 606的渲染命令)而生成用于输出图像的像素数据。GPU 608可以包括诸如显示存储器之类的用于存储像素数据或任何其他合适的数据(例如GPGPU数据)的图形存储器。显示存储器可以作为存储器604的部分而被包括。GPU 608可以包括(例如经由链路)并行操作的两个或更多GPU。链路可以直接连接GPU(例如,使用NVLINK),也可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每个GPU 608可以生成用于输出的不同部分或者用于不同输出的像素数据或GPGPU数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的存储器,或者可以与其他GPU共享存储器。

除了或替代CPU 606和/或GPU 608,逻辑单元620可以被配置为执行至少一些计算机可读指令,以控制计算设备600的一个或更多个组件来执行本文描述的一种或更多种方法和/或过程。在实施例中,CPU 606、GPU 608和/或逻辑单元620可以离散地或联合地执行方法、过程和/或其部分的任何组合。一个或更多个逻辑单元620可以是一个或更多个CPU606和/或一个或更多个GPU 608的一部分和/或集成在其中和/或一个或更多个逻辑单元620可以是CPU 606和/或GPU 608的离散组件或以其他方式在其外部。在实施例中,一个或更多个逻辑单元620可以是一个或更多个CPU 606和/或一个或更多个GPU 608的处理器。

逻辑单元620的示例包括一个或更多个处理核心和/或其组件,例如数据处理单元(DPU)、张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM)、树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、外围组件互连(PCI)或外围组件互连快速(PCIe)元件等。

通信接口610可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备600能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口610可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网或InfiniBand通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。在一个或更多个实施例中,逻辑单元620和/或通信接口610可以包括一个或更多个数据处理单元(DPU),用于将在网络和/或通过互联系统602接收到的数据直接发送到(例如,其存储器)一个或更多个GPU 608。

I/O端口612可以使得计算设备600能够逻辑地耦合到包括I/O组件614、呈现组件618和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备600中。说明性I/O组件614包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、浏览仪、打印机、无线设备等等。I/O组件614可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备600的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备600可以包括诸如立体相机系统之类的深度相机、红外相机系统、RGB相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备600可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备600用来渲染沉浸式增强现实或者虚拟现实。

电源616可以包括硬接线电源、电池电源或者其组合。电源616可以向计算设备600供电以使得计算设备600的组件能够操作。

呈现组件618可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件618可以接收来自其他组件(例如GPU 608、CPU 606、DPU等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。

示例数据中心

图7示出了示例数据中心700,其可用于本公开的至少一个实施例中。数据中心700可以包括数据中心基础设施层710、框架层720、软件层730和应用层740。

如图7所示,数据中心基础设施层710可以包括资源协调器712、分组的计算资源714和节点计算资源(“节点C.R.”)716(1)-716(N),其中“N”代表任何完整的正整数。在至少一个实施例中,节点C.R.716(1)-716(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括DPU、加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等),存储器设备(例如动态只读存储器),存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(“NW I/O”)设备,网络交换机,虚拟机(“VM”),电源模块和冷却模块等。在一些实施例中,节点C.R.716(1)-716(N)中的一个或更多个节点C.R.可以对应于具有一个或更多个上述计算资源的服务器。此外,在一些实施例中,节点C.R.716(1)-716(N)可以包括一个或更多个虚拟组件,例如vGPU、vCPU等,和/或节点C.R.716(1)-716(N)中的一个或更多个可以对应于虚拟机(VM)。

在至少一个实施例中,分组的计算资源714可以包括容纳在一个或更多个机架内的节点C.R.716的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组的计算资源714内的节点C.R.716的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、存储器或存储资源。在至少一个实施例中,可以将包括CPU、GPU、DPU和/或其他处理器的几个节点C.R.716分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。一个或更多个机架还可以包括以任意组合的任何数量的电源模块、冷却模块和/或网络交换机。

资源协调器712可以配置或以其他方式控制一个或更多个节点C.R.716(1)-716(N)和/或分组的计算资源714。在至少一个实施例中,资源协调器712可以包括用于数据中心700的软件设计基础结构(“SDI”)管理实体。资源协调器712可以包括硬件、软件或其某种组合。

在至少一个实施例中,如图7所示,框架层720可以包括作业调度器732、配置管理器734、资源管理器736和分布式文件系统738。框架层720可以包括支持软件层730的软件732和/或应用程序层740的一个或更多个应用程序742的框架。软件732或应用程序742可以分别包括基于Web的服务软件或应用程序,例如由Amazon Web Services,Google Cloud和Microsoft Azure提供的服务软件或应用程序。框架层720可以是但不限于一种免费且开源的软件网络应用框架,例如可以利用分布式文件系统738来进行大规模数据处理(例如“大数据”)的Apache Spark

在至少一个实施例中,包括在软件层730中的软件732可以包括由节点C.R.716(1)-716(N)的至少部分,分组的计算资源714和/或框架层720的分布式文件系统738使用的软件。一种或更多种类型的软件可以包括但不限于Internet网页搜索软件、电子邮件病毒浏览软件、数据库软件和流视频内容软件。

在至少一个实施例中,应用层740中包括的一个或更多个应用程序742可以包括由节点C.R.716(1)-716(N)的至少部分、分组的计算资源714和/或框架层720的分布式文件系统738使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序,认知计算和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如PyTorch、TensorFlow、Caffe等)和/或其他与一个或更多个实施例结合使用的机器学习应用程序。

在至少一个实施例中,配置管理器734、资源管理器736和资源协调器712中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。自我修改动作可以减轻数据中心700的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或行差的部分。

数据中心700可以包括工具、服务、软件或其他资源,用于根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,可以通过使用上文关于数据中心700描述的软件和计算资源,根据神经网络架构计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心700所描述的资源,使用对应于一个或更多个神经网络的经训练的机器学习模型来推理或预测信息,例如但不限于本文所述的那些。

在至少一个实施例中,数据中心700可以使用CPU、专用集成电路(ASIC)、GPU、FPGA和/或其他硬件(或与之对应的虚拟计算资源)来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。

示例网络环境

适用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图6的计算设备600的一个或更多个实例上实现—例如,每个设备可以包括计算设备600的类似组件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可以是作为数据中心700的一部分而被包括的,其示例在此关于图7更详细地描述。

网络环境的组件可以通过网络彼此通信,网络可以是有线、无线或两者。网络可以包括多个网络,或者多个网络中的网络。举例来说,网络可以包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(例如因特网和/或公共交换电话网(PSTN))、和/或一个或更多个专用网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或甚至接入点(以及其他组件)之类的组件可以提供无线连接。

兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下服务器可能不包括在网络环境中),以及一个或更多个客户端-服务器网络环境(在这种情况下一个或更多个服务器可以包含在网络环境中)。在对等网络环境中,本文描述的关于服务器的功能可以在任意数量的客户端设备上实现。

在至少一个实施例中,网络环境可以包括一个或更多个基于云的网络环境、分布式计算环境、它们的组合等。基于云的网络环境可以包括框架层、作业调度器、资源管理器,以及在一个或更多个服务器上实现的分布式文件系统,这些服务器可以包括一个或更多个核心网络服务器和/或边缘服务器。框架层可以包括用于支持软件层的软件和/或应用层的一个或更多个应用程序的框架。软件或应用程序可分别包括基于网络的服务软件或应用程序。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用程序(例如,通过经由一个或更多个应用程序编程接口(API)访问服务软件和/或应用程序)。框架层可以是但不限于一种类型的免费且开源软件网络应用程序框架,例如可以使用分布式文件系统进行大规模数据处理(例如,“大数据”)。

基于云的网络环境可以提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些各种功能中的任何一个都可以分布在来自(例如,可以分布在州、地区、国家、全球等地的一个或更多个数据中心的)中央或核心服务器的多个位置。如果到用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,仅限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。

客户端设备可以包括本文关于图6描述的示例计算设备600的至少一些组件、特征和功能。作为示例而非限制,客户端设备可以体现为个人计算机(PC)、膝上型计算机、移动设备、智能手机、平板计算机、智能手表、可穿戴计算机、个人数码助理(PDA)、MP3播放器、虚拟现实头戴式显示器、全球定位系统(GPS)或设备、视频播放器、摄像机、监视设备或系统、车辆、船只、飞行器、虚拟机器、无人机、机器人、手持通信设备、医院设备、游戏设备或系统、娱乐系统、车载计算机系统、嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描述设备的任意组合或任何其他合适的设备。

本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。

如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素A、元素B和/或元素C”可以包括仅仅元素A,仅仅元素B,仅仅元素C,元素A和元素B,元素A和元素C,元素B和元素C,或者元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。进一步,“元素A和元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。

这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。

相关技术
  • 光栅3D显示中超高分辨率合成图像的快速生成方法
  • 光栅3D显示中超高分辨率合成图像的快速生成方法
技术分类

06120115601996