CN116664807A - 在图像生成系统和应用中使用对齐贴图的纹理转移和合成 - Google Patents
在图像生成系统和应用中使用对齐贴图的纹理转移和合成 Download PDFInfo
- Publication number
- CN116664807A CN116664807A CN202310161060.0A CN202310161060A CN116664807A CN 116664807 A CN116664807 A CN 116664807A CN 202310161060 A CN202310161060 A CN 202310161060A CN 116664807 A CN116664807 A CN 116664807A
- Authority
- CN
- China
- Prior art keywords
- texture
- data
- representation
- processor
- network
- 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
- 230000015572 biosynthetic process Effects 0.000 title abstract description 26
- 238000003786 synthesis reaction Methods 0.000 title abstract description 26
- 238000012546 transfer Methods 0.000 title abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 122
- 238000013528 artificial neural network Methods 0.000 claims description 39
- 239000013598 vector Substances 0.000 claims description 32
- 238000013507 mapping Methods 0.000 claims description 27
- 238000004088 simulation Methods 0.000 claims description 23
- 238000013135 deep learning Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000009877 rendering Methods 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 10
- 230000003190 augmentative effect Effects 0.000 claims description 9
- 230000003287 optical effect Effects 0.000 claims description 5
- 238000013459 approach Methods 0.000 abstract description 6
- 230000002194 synthesizing effect Effects 0.000 abstract description 5
- 238000012549 training Methods 0.000 description 142
- 238000010801 machine learning Methods 0.000 description 88
- 238000012545 processing Methods 0.000 description 88
- 230000015654 memory Effects 0.000 description 71
- 230000008569 process Effects 0.000 description 56
- 238000013473 artificial intelligence Methods 0.000 description 50
- 238000003860 storage Methods 0.000 description 37
- 238000003384 imaging method Methods 0.000 description 32
- 230000000007 visual effect Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 19
- 238000012800 visualization Methods 0.000 description 17
- 230000011218 segmentation Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 230000004913 activation Effects 0.000 description 11
- 238000001994 activation Methods 0.000 description 11
- 238000013527 convolutional neural network Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 230000000670 limiting effect Effects 0.000 description 7
- 238000007667 floating Methods 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000005520 cutting process Methods 0.000 description 5
- 210000000056 organ Anatomy 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000010276 construction 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
- 230000018109 developmental process Effects 0.000 description 3
- 238000002059 diagnostic imaging Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 239000011165 3D composite Substances 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 241000124008 Mammalia Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000012884 algebraic function Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000037237 body shape Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000004580 weight loss Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本公开涉及在图像生成系统和应用中使用对齐贴图的纹理转移和合成。本文提出的方法可以利用学习将一个或更多个三维(3D)形状的表面上的3D坐标嵌入到对齐的二维(2D)纹理空间中的网络,其中不同3D形状的对应部分可以映射到纹理图像中的同一位置。可以使用纹理对齐模块来进行对齐,该模块生成用于合成纹理的一组基础图像。经训练的网络可以生成所有形状纹理共享的基础,并可以预测输入特定的系数以构建每个形状的输出纹理作为基础图像的线性组合,然后对纹理进行变形以匹配输入的姿势。这种方法可以确保纹理的对齐,即使在网络容量至少有点受限的情况下。为了展开复杂结构或拓扑的形状,可以利用掩模网络,其将形状切成多块以减少2D映射的失真。
Description
相关申请的交叉引用
本申请要求2022年2月28日提交的美国临时专利申请序列号63/314,914的优先权,其标题为“学习用于纹理转移和合成的对齐贴图(Learning Aligned Maps forTexture Transfer and Synthesis)”,该申请以其全部内容和出于所有目的并入本文。
背景技术
各种应用都利用三维(3D)模型的纹理转移和合成,例如为创建三维人类头像转移纹理,为三维模型生成新的纹理,以及从单一图像重建带纹理的对象。利用深度学习的力量,可以从体素、点云、单视图和多视图图像中重建3D形状,并有多种输出形状表示。还提出了三维生成模型来合成新的形状,目的是使三维内容创建民主化。然而,尽管纹理在使三维形状栩栩如生方面很重要,但先前的方法并没有考虑三维形状的纹理合成中的语义信息。以前关于纹理生成的工作主要依赖于将球形网格模板变形为目标形状,因此获得定义在球形表面的纹理贴图,它可以被重新投射到一个方形图像中,以达到纹理合成的目的。一个例子生成具有任意表面拓扑的神经隐含表示的三维形状,但将形状的表面嵌入到球体上,这也会产生球形纹理贴图。球形纹理贴图只能支持有限的拓扑结构,并对于动物肢体等细小的部分会引入严重的扭曲。另一条工作路线是使用隐性纹理场进行纹理合成,而不依赖于显性纹理映射。尽管纹理场被成功地应用于多视图图像重建,但它们主要被用于拟合单个对象或场景。用于这种目的的生成模型通常也存在过度平滑的输出纹理的问题。
附图说明
将参考附图描述根据本公开的各种实施例,其中:
图1示出了根据各种实施例的基于来自源图像的视觉特征和来自源几何体的几何特征的对象合成,示例纹理可以被映射到一组网格以合成独特字符;
图2示出了根据各种实施例的可用于对象对齐的示例网络架构;
图3A和3B示出了根据各种实施例的用于纹理化网格生成的示例神经网络架构;
图4A和4B示出了根据各种实施例的示例纹理图像、分割和纹理化网格;
图5示出了根据各种实施例的用于生成新对象的三维表示的示例过程;
图6示出了根据至少一个实施例的分布式系统的组件,该分布式系统可用于使用生成模型来训练或执行推理;
图7A示出了根据至少一个实施例的推理和/或训练逻辑;
图7B示出了根据至少一个实施例的推理和/或训练逻辑;
图8示出了根据至少一个实施例的示例数据中心系统;
图9示出了根据至少一个实施例的计算机系统;
图10示出了根据至少一个实施例的计算机系统;
图11示出了根据一个或更多个实施例的图形处理器的至少部分;
图12示出了根据一个或更多个实施例的图形处理器的至少部分;
图13是根据至少一个实施例的高级计算管线的示例数据流图;
图14是根据至少一个实施例的用于在高级计算管线中训练、适配、实例化和部署机器学习模型的示例系统的系统图;以及
图15A和图15B示出了根据至少一个实施例的用于训练机器学习模型的过程的数据流图,以及利用预训练的注释模型来增强注释工具的客户端-服务器架构。
具体实施方式
在下面的描述中,将对各种实施例进行描述。为了解释的目的,提出了具体的配置和细节,以提供对实施例的彻底理解。然而,对于本领域的技术人员显而易见的是,实施例可以在没有具体细节的情况下实施。此外,众所周知的特征可以被省略或简化,以避免模糊所描述的实施例。
本文所述的系统和方法可由(但不限制)非自动驾驶车辆、半自动驾驶车辆(例如,在一个或更多个高级驾驶员辅助系统(ADAS)中)、有人驾驶和无人驾驶机器人或机器人平台、仓库车辆、越野车辆、与一个或更多个拖车相联的车辆、飞行器、船只、班车、应急车辆、摩托车、电动或机动自行车、飞机、建筑车辆、火车、水下航行器、遥控车辆(如无人机)、和/或其他车辆类型使用。此外,本文所述的系统和方法可用于各种目的,通过举例和不限制的方式,用于机器控制、机器运动、机器驾驶、合成数据生成、模型训练、感知、增强现实、虚拟现实、混合现实、机器人学、安全和监视、模拟和数字配对、自主或半自主机器应用、深度学习、环境模拟、对象或演员模拟和/或数字配对、数据中心处理、对话式AI(人工智能)、光传输模拟(如光线追踪、路径追踪等)、3D资产的协作内容创建、云计算和/或任何其他合适的应用。
所公开的实施例可以被包含在各种不同的系统中,如汽车系统(例如,用于自主或半自主机器的控制系统,用于自主或半自主机器的感知系统)、使用机器人实现的系统、航空系统、医疗系统、划船系统、智能区域监控系统、用于执行深度学习操作的系统、用于执行模拟操作的系统、用于执行数字孪生操作的系统、使用边缘设备实现的系统、包含一个或更多个虚拟机(VM)的系统、用于执行合成数据生成操作的系统、至少部分在数据中心中实现的系统、用于执行对话式人工智能操作的系统、用于执行光传输模拟的系统、用于执行3D资产的协作内容创建的系统、至少部分使用云计算资源实现的系统和/或其他类型的系统。
根据各种说明性实施例的方法提供了至少部分地基于从两个或更多个其他数字内容实例中获取的方面的新数字内容的合成。这可以包括使用来自至少一个第一对象的视觉方面(以及潜在的其他方面,如语义方面)和来自至少一个其他对象的几何方面(以及潜在的其他方面)来合成新的对象,其中可以使用其他输入,并且其他输入可以与风格、姿势或运动以及其他此类选项有关。在至少一个实施例中,经过训练的机器学习模型可以将三维3D数字或虚拟对象作为输入,并可以生成一个或更多个纹理图像(例如,正面和背面纹理图像),这些图像代表从该对象中提取的纹理(例如,视觉特征)。纹理对齐模块可用于生成一组用于合成纹理的基础图像。经过训练的模型可以生成由形状纹理共享的基础,并可以预测输入特定的系数,以将每个形状的输出纹理构造为基础图像的线性组合。然后,纹理可以被变形以匹配输入的形状和/或姿势。在网络容量有限的情况下,这种方法可以迫使纹理对齐。为了展开复杂结构或拓扑的形状,可以使用掩模网络(masking network)将形状切割成多个部分,这可以帮助减少UV映射中的失真。实施这种方法的系统可以用来基于将第一组对象的形状和姿势与第二组对象的视觉方面相结合来生成或合成新的对象,其中在至少一个实施例中,第一组和第二组可以是同一集合的一部分或甚至是同一组。
在至少一个实施例中,内容合成可用于生成新的内容实例,如新的二维(2D)或三维(3D)视图或新对象的表示,或基于一个或更多个其他对象的特征或方面的组合的对象,或处于不同姿势或状态的同一对象(例如,一个人具有成人而不是儿童的形状,或具有通过肌肉增加或体重减轻而改变的形状,以及其他此类选项)。这些生成的或合成的视图或表示可以用于许多不同的应用或用例,如纳入视频游戏、动画、虚拟/增强/强化现实应用、或环境模拟,如可能对训练机器人、自主或安全系统有用。这样的合成过程可以因为一些原因而是有益的。例如,这种合成允许从相对较小的参考对象集合生成对象的多个实例,其中这些实例可以有不同的视觉外观。此外,这种合成使特定类型的对象能够被修改为具有特定的视觉外观或方面,而不需要艺术家手动执行生成过程的任何部分。这样的合成过程还可以通过改变过程中使用的参考对象,为用户提供快速修改对象外观或者生成新对象的能力。
在各种实施例的范围内也可以使用这种和其他这种功能的变体,因为对于本领域的普通技术人员来说,根据本文包含的教导和建议是显而易见的。
图1示出了根据至少一个实施例的可以在这种合成过程中使用或生成的一组图像的例子。在这个例子中,可以选择具有一个或更多个目标视觉特征或方面的第一对象的特征图像100或表示。在这个例子中,这可能包括诸如肤色、眼睛颜色和发际线等方面。还可以选择几何图像102,它与具有一个或更多个目标几何方面的第二对象(或处于第二姿势或状态的第一对象)相对应。在这个例子中,这可能包括头部的形状,包括鼻子、嘴巴、脸颊等的具体形状。特征图像100的视觉特征可用于生成一个或更多个二维表示,如2D正面纹理104和2D背面纹理106(或其他第一和第二纹理),其中选择对象的哪些部分由正面纹理和背面纹理表示可以是任意的,只要正面纹理和背面纹理在组合时代表对象周围的视图。正面纹理和背面纹理可以包括从源图像中提取并映射到源图像的视觉特征。几何图像102的几何方面可用于生成3D几何108,或第二对象的形状的3D几何表示(例如,网格或点云)。一旦得到,正面纹理104和背面纹理106可以根据3D几何108的形状进行变形。当这些变形的正面纹理和背面纹理被组合起来时,结果是3D合成的结果110,它是新对象的表示,这里是一个新的头,它具有第二对象的形状,但具有第一对象的视觉特征。在这种情况下,合成的结果具有来自源几何体102的头部形状,但具有来自源图像100的头部的视觉特征。通过这种方式,新角色(或其他对象)的外观可以通过选择为外观和几何形状选择的角色(或对象)来生成或修改。
在至少一个实施例中,一个或更多个神经网络,或其他机器学习模型或算法,可用于执行这些步骤中的一个或更多个。例如,神经网络可以被训练和/或用于将一个或更多个多维形状的表面上的多维(例如,三维(3D))坐标嵌入到对齐的二维(2D)空间,例如UV空间,其中U和V表示纹理的轴(以区别于模型空间中的X、Y和Z坐标)。以前的3D形状的纹理表示方法,在诸如纹理转移和合成等操作中,应用球形纹理贴图(这可能会导致严重的失真),或者使用产生缺乏细节的平滑输出的连续纹理场。或者,用图像表示纹理并通过诸如UV的映射方法将其链接到3D网格,可能会提供卓越的结果。在至少一个实施例中,可以使用基于对齐的UV网络(在本文中称为“AUV-Net”)的方法,该方法可以学习将3D表面嵌入到2D对齐的UV空间中,例如通过将不同3D形状的相应语义部分映射到UV空间中的相同位置。因此,纹理可以跨对象对齐,并且可以使用图像的生成模型进行合成。纹理对齐可以以无监督的方式学习,学习到的UV映射和对齐的纹理表示可以允许进行各种操作,包括(但不限于)纹理转移、纹理合成和纹理化单视图重建。
根据至少一个实施例的方法利用映射方法,例如UV映射,该方法允许系统或过程处理任意形状的拓扑结构,并通过将表面切割成多个部分以及将不同的部分映射到平面(例如UV平面)上的不同区域来避免严重失真。这种方法可以通过将纹理存储在UV平面上的高分辨率纹理图像中来进一步保留细节。在至少一个实施例中,可以训练神经网络来联合预测UV映射和纹理图像,从而在不需要符合预先定义的形状拓扑的情况下实现高质量的纹理合成。然而,学习纹理映射并非没有挑战,因为由艺术家或其他此类来源提供的“真值”UV映射通常是随机布局,缺少不同形状之间的对应关系。在这样的数据上训练网络可能会至少部分地由于模糊性而导致欠拟合,或者由于缺乏训练数据而导致过拟合。
为了解决这样的挑战,网络可以学习将3D坐标嵌入到对齐的UV空间,其中不同3D形状的相应部分被映射到纹理图像中的相同位置。这种对齐可以使用纹理对齐模块来获得。该网络可以生成所有形状纹理共享的基础,并可以预测输入特定的系数以将每个形状的输出纹理构建为基础图像的线性组合,然后将纹理变形以匹配输入的姿势。在网络容量有限的情况下,这可以迫使纹理对齐,如图2所示。为了展开复杂结构或拓扑的形状,可以使用掩模网络将形状切割成多个部分,以减少UV映射中的失真。这种方法可以有效地对齐所有形状的纹理,允许通过简单地将一个对象的纹理图像替换成另一个对象的纹理图像来在不同的对象之间交换纹理。使用这种方法产生的对齐的高质量纹理图像可以使纹理的生成模型的训练更加容易,因为它们是对齐的并且与几何体不相干。这种方法还允许从单个图像重建纹理化的3D形状。这些重建已被成功证明适用于各种类型的对象,如人头、人体、哺乳动物、汽车和椅子等。
针对一组形状学习对齐的纹理可能是一项复杂的任务,如通常可能需要各种启发式的假设和手动设计的规则。然而,有可能使用相对简单的对齐模块来进行可以产生强大结果的此类操作。图2示出了可用于对齐图像(如2D图像)的对齐模块的例子。对齐模型的网络结构是关于透视变换的脸部示出的,以展示该模块执行的对齐。在这个例子中,输入图像212可以提供给编码器网络214,例如卷积神经网络214。编码器214可以从输入图像212中提取特征,并生成一个或更多个编码或嵌入,如可能与潜在空间中的一个或更多个向量或点相对应。在这个例子中,编码器214可以预测用于加权基础图像的系数218以便产生输出图像,或确定输出图像的像素的输出颜色220。编码器214还可以从输入图像212中预测形状代码216,该代码可用于调节对齐模块的变形器202。变形器202可以采取多层感知器(MLP)的形式,其将与形状代码216连接的2D点坐标200作为输入并输出一组2D变形坐标204,其可以至少部分地基于从输入图像生成的形状代码216进行变形。变形器202可以将生成器的输出,即典型姿势,变形为目标姿势。变形后的坐标204然后可以作为输入提供给基础生成器208,该基础生成器然后可以输出一组(变形后的)基础图像210。
被选为图像的基础生成器208的网络可以使用多层感知器(MLP),它将2D点(x,y)作为输入并输出此点的颜色。对于N个基础图像,该网络可以输出N个值(例如,灰度颜色)。一个实验设定N=128,采用MLP来生成基础,至少是因为MLP对于基础的颜色和输入点坐标都是完全可微的。作为对比,如果要使用诸如卷积神经网络(CNN)之类的网络来生成基础,或者使用可学习权重的网格来存储基础,则当给定查询点时,可能需要从输出网格中进行采样。无论使用何种采样方法(例如双线性或双三次,等等),从输出颜色到基础和输入点坐标的梯度可以被限制在靠近输入点的小区域或邻域,这可能会禁止变形器202接收有效的梯度。一旦经过训练,查询点的规则网格可以被输入到基础生成器,以获得典型姿势的基础图像和对齐的输出。然而,查询坐标200的输入网格可能需要在训练时用变形器202进行扭曲以使网络输出变形。由于在至少一些实施例中,变形应该随不同的输入而变化,所以形状代码216可以用来调节变形器。
由于在至少一个实施例中输入是图像,所以2D CNN可被用作编码器214来预测诸如形状代码216和系数218的值。由基础生成器208产生的变形基础218可以与系数218相乘以产生最终输出。可以计算出输出图像和输入图像212之间的均方误差(MSE)或其他重建值作为损失。先验损失也可以在训练的早期阶段(例如,在最初的几个时期(epoch))应用,例如通过应用查询点坐标200和变形坐标204之间的MSE,鼓励变形器202执行恒等映射,使得以适当的方向、比例和位置初始化基础。
在训练之后,如果向基础生成器提供原始的未变形查询点,则可以获得对齐的基础和对齐的输出。这样的对齐模型可以对齐输入,因为将输入变形为典型姿势允许基础生成器学习有效的基础分解,这样就可以减少甚至最小化重建误差。如果基础必须表示不同姿势的人脸,这可能会导致更大的重建误差。尽管可以得到对齐的生成器的输出,但由于将一组图像分解成基础然后重建它们的过程的性质,结果的质量可能与输入的质量相差甚远,使它们无法使用。然而,示例网络中的变形器可以学习将典型姿势的面部变形为输入中的不同姿势。因此,映射被反转,然后这样的系统可以将输入的面部变形为典型的姿势。示例MLP变形器可能不是可反转的,但可以通过从输入图像中采样足够多的点,将这些点送入变形器以获得变形坐标,使用采样点的变形坐标和颜色来填补空白图像,以及修复缺失的区域,来获得对齐的输入面部。
在至少一个实施例中,用于合成3D形状的网络可以建立在对齐模块上,如图3A和3B所示。对齐模型可以被认为是用于学习纹理化2D正方形的对齐UV图的网络,其中变形器将从正方形采样的原始点变形到对齐的UV空间。适应3D形状的一种简单方法是用3D CNN编码器取代2DCNN,并调整变形器以将3D点作为输入。然而,与简单的2D到2D映射不同,要将3D形状嵌入到2D平面而不发生重叠、切割并且不发生严重的变形,可能是很困难的。因此,3D形状可以被切割成小块,并且使用不同的图像来表示每一小块。这可以相当于将这些小块放入同一个纹理图像中,而将不同的小块放入不同的图像中可以对基础生成器更加友好。
此外,3D形状上的纹理往往有大面积的纯色或类似的颜色。这种倾向可能会导致变形器"崩溃"。例如,如果输入是一个具有纯白色的形状,那么变形器可以简单地将所有输入的3D点映射到同一个2D点,而生成器只需要将那个2D点变成白色。另一方面,如果输入的形状有多个部分带有相同的颜色,如果损失函数只定义在颜色上,则网络可能很难区分和对齐不同的部分。在许多情况下,3D形状将提供额外的属性,使得点法线和点3D坐标可用于补充点颜色。
在图4的示例网络中,示出了除了颜色图326之外,对齐模块还可以输出法线图328和坐标图330,例如,其中法线图328预测输入点的单位法线,而坐标图330预测输入3D点的位置。这些额外的图328、330可以帮助解决上述问题中的一个或更多个。此外,纹理生成模块308可以包括正面基础生成器310和背面基础生成器316,在本例中它们都可以是MLP。这些基础生成器可以分别用来表示形状的“正面”和“背面”部分,尽管“正面”并不从字面上表示形状的面向前的部分,而是指形状的一部分,以便“正面”与“背面”的结合覆盖整个形状(或至少形状的相关区域)。两个基础生成器310、316可以使用诸如关于图2讨论的过程来输出正面纹理基础312和背面纹理基础318,在这个例子中输入云300的头部用两个纹理贴图表示。不同数量的基础生成器可用于不同的实施例或用于不同的用例,例如,四个基础生成器可用于诸如椅子等可能具有复杂形状的对象,或可能需要更高级别的细节。如图所示,可以使用模块(例如UV映射模块302、编码模块304和表面切割模块306)来处理对象的输入3D表示,例如人物头部的点云表示。如图所示,UV映射模块302和编码模块可以向纹理生成模块308提供输入,例如,UV映射数据被提供给正面基础生成器310和背面基础生成器316,并且正面和背面编码与正面和背面纹理基础312、318一起使用以确定正面和背面颜色数据314、320,其可以使用来自表面切割模块306的切割点数据来生成点颜色数据的掩蔽组合(masked combination)322作为每点输出324,其可以包括用于生成对应图326、328、330的颜色数据、法线数据和坐标数据。示例的一组图像332显示了在UV空间中学习的示例正面和背面纹理,这些纹理表示要根据确定的目标几何形状而变形的外观特征。
如图3B中更详细地示出的,UV映射模块302可以将来自输入点云的坐标350作为变形器352的输入,该变形器可以在UV空间中生成变形坐标354。编码模块(变形器线缺失形状代码)可以接受(体素化的)占有率和颜色数据以输入到编码器358,它可以预测形状代码360、正面纹理代码362和背面纹理代码364,如前面讨论的那样。可以提供正面和背面纹理代码以与纹理基础一起用于确定正面和背面颜色数据,而形状代码可以提供给UV映射模块302的变形器352以执行变形并预测变形的UV坐标354。
表面切割模块306可以将来自输入点云300的坐标和法线366作为输入,并且可以将这些作为输入提供给掩模器网络368,该网络在本例中可以采取MLP的形式。掩模器网络368可用于为输入点云300生成分割掩模。这样的过程可以被认为是将3D形状切割成多个小块,在图3B中表示为正面和背面掩模370,使得这些小块中的每一小块都可以由单个纹理图像表示。除了点坐标和点法线366之外,掩模器的输入还包含来自编码模块304的形状代码360。法线对于分割形状很重要,因为人体网格中的如手指之类的细小部分很难只用点坐标进行分割,因为手指上的点可能在空间中紧密聚集。预测的分割掩模370可用于掩模正面和背面基础生成器的输出,如可通过下式给出:
M·A+(1-M)·B
以产生最终输出。可以注意到,在这个例子中,单一的共享变形器352可以用于正面基础生成器310和背面基础生成器316两者,而不是两个独立的变形器。当把纹理从一个形状转移到另一个形状时的一个潜在问题是,在使用两个不同的纹理图像的形状之间可能会得到接缝。共享变形器352可以通过迫使两个小块共享纹理图像中的相同边界来缓解这个问题,从而在两个纹理图像之间有一丝对应关系。在对纹理图像进行修复后,接缝在大多数情况下几乎不可见。
为了训练这样的网络,形状可以被转换为具有法线和颜色的点云。点云还可以被转换为彩色体素,作为3D CNN编码器的输入。损失可以被确定为五个项的加权和,如可以通过下式给出:
L=wcLc+wnLn+wxLx+wsLs+wpLp
这里,Lc、Ln和Lx分别表示坐标上的颜色损失、法线损失和周期一致性损失。这些值可以被定义为预测和真值之间的MSE。Ls是平滑度损失。对于输入点的子集,可以在σ=0.02的距离内找到它们的邻居,并且点和它们的邻居之间的距离被用来规范UV空间中的相应距离,如可以通过下式给出:
其中,N是输入点的数量,M是子集的大小,pi是第i个输入的3D点,qi是由pi变形的第i个2D UV点,而D(a,b)是点a和点b之间的欧氏距离。这里,T(a,b)被定义为:如果D(a,b)<σ,则为1;否则为0。在每个小批次中,可以用N=16,384个输入点和M=2,048来处理形状。Lp是用于初始化UV坐标和掩模的先验损失,它可以根据训练形状的类别而变化。对于所有对象都朝向z方向的数据集,如图4B所示的人类头部数据集,这可能导致:
这里,mi是掩模器对第i个输入点pi预测的掩模值。如果pi在z方向的法线大于-0.5,则值ni被定义为1,否则为0。值是pi的x坐标,/>是由pi变形的2D UV点的x坐标。这个等式可以用来说明,如果一个点的法线和z轴之间的角度小于120度,则这个点属于"正面"部分。3D输入点中的z坐标可以被去除以得到初始的UV点。先验损失只在训练的前几个时期中使用,以初始化掩模和UV坐标。
网络可以分阶段训练,例如三个阶段,至少部分是由于纹理对齐的质量和失真水平之间的权衡。在某些情况下,对齐纹理可能涉及需要在纹理图像中的严重失真,例如在将轿车与货车对齐时。在许多情况下,可能需要减少失真量,因为它可以减少在渲染纹理时的混叠效果,并可以简化后期处理。如果用损失项的固定权重来训练网络,那么已经观察到很难获得具有最小失真的对齐。为了在至少一个实施例中解决这个问题,网络可以首先用先验损失Lp和一组关注最小失真的权重进行初始化。在第二(或中间)阶段,Lp可以被移除并使用专注于对齐的权重。在最后阶段,可以使用专注于最小失真的权重。对于人类头部数据集的例子,第一阶段有10个时期,其中{wc,wn,wx,ws,wp}={1,0.5,100,100,1};第二阶段有2,000个时期,{1,0.5,1,1,0};第三阶段有2,000个时期,{1,0.5,100,100,0}。
可以有各种应用或操作,其可以利用根据各种实施例的系统和方法。一个这样的操作与纹理转移有关。如图4B所示,在训练AUV-Net之后,可以获得对齐的、高质量的纹理图像。然后在两个训练形状之间可以通过交换它们的纹理图像来交换纹理,通过混合现有的几何形状和纹理产生新的3D内容。如果有一个新的形状不在训练集里,则这个形状可以通过将它的顶点映射到对齐的UV空间来进行纹理化。这可以使用训练后的优化阶段来执行,在这个阶段新的形状被添加到训练集中,并继续训练网络几个时期。在优化过程中,基础生成器的权重可以被固定,以避免影响已经训练好的训练形状。优化之后,可以得到新形状的UV坐标以及它的纹理。
拥有对齐的纹理图像的一个好处是,2D生成模型可用于合成3D形状的新纹理。现有的2D生成模型可以在对齐的高质量纹理图像上进行训练。纹理合成也可以以各种输入为条件,如从单个图像重建纹理化的3D形状。为此,2D残差网络(ResNet)图像编码器可用于从输入图像预测纹理潜在代码和形状代码,CNN解码器可用于从纹理潜在代码预测纹理图像,并且IM-Net解码器可用于根据形状代码预测形状的几何形状。图4A示出了可以为两种类型的物品生成的样本纹理图像400和分割402,在本例中是一辆汽车和一把椅子,如在相应的可视化404中示出。纹理图像400被示出在修复前,并且汽车有两个纹理图像,椅子有四个纹理图像。另一方面,图4B示出了一组对象A、B、C、D的一组纹理图像450(在本例中为正面纹理图像),其可变形以产生纹理网格452,纹理网格452与其他四个人W、X、Y、Z的几何形状相对应。可以看出,可以从四个人身上提取特征并且从另外四个人身上提取几何形状,从而生成一组16个独特的人,其中这些独特的人中的每个人都有一个人的面部特征或方面以及另一个人的几何形状。如前所述,本文提出的生成方法可以在寻找对应关系时使用诸如颜色、法线和位置等线索,然后可以很好地对齐各种特征,如面部孔洞、车窗和车轮、手指和动物四肢。已经观察到,颜色对应对齐至少某些类型的纹理非常有益。
图5示出了可以根据至少一个实施例执行的用于生成新对象的表示的示例过程500。应该理解的是,对于本文介绍的此过程和其他过程,在各种实施例的范围内可以执行额外的、更少的或替代的步骤或类似的或替代的顺序,或至少部分地平行执行,除非另有具体说明。此外,尽管这个例子是关于基于两个对象的表示生成3D表示进行的描述,但在各种实施例的范围内也可以使用不同的维度和具有要组合的方面的多个对象。在这个例子中,获得第一对象的3D表示502,其中该第一对象具有要出现在合成的对象上的一个或更多个目标视觉方面。可以生成对应于3D表示的视觉特征的一个或更多个特征编码504,其中这可能包括前编码和后编码,以及其他此类选项,其中每个编码可与潜在特征空间中的特征向量或点相对应。3D表示的坐标可以被映射506到2D纹理空间。这些坐标映射和特征编码可用于生成508 2D纹理图像,该图像与第一对象相对应并包括至少一些提取的特征的数据值。对于正面纹理图像,纹理图像可以包括从单个视点(例如,对象的整个正面)可见的特征的数据值,而背面纹理图像可以包括从相反视点可见的数据值,使得一对正面纹理图像和背面纹理图像包括表示第一对象的360度视图的数据值。
除了为第一对象生成2D纹理图像外,还可以获得第二对象的几何表示510,其中第二对象可以具有目标形状,该目标形状将用于合成新对象。在一些实施例中,例如在获得的表示是对象的3D模型的情况下,可以生成点云或网状表示,其表示第二对象的形状但没有任何其他视觉特征或方面,如颜色或纹理。2D纹理图像可以被变形512以与3D几何表示的坐标相对应。这可以有效地将纹理图像投射或扭曲(warp)到3D几何表示的形状上,使得纹理图像的视觉特征被放置在几何表示的形状上的适当位置处,例如其中第一人的视觉特征可以被变形以与第二人的面部或身体形状相对应。然后可以生成514新对象的3D表示,其具有第一对象的目标视觉方面和第二对象的目标形状。然后,该3D表示可用于各种应用程序或操作,如用于虚拟现实体验或机器人模拟环境中的3D动画,或用于视频游戏或电影中的3D对象的2D渲染,以及其他此类选项。
如前所述,这种方法可以利用深度学习的力量,3D形状可以从体素、点云、单视图和多视图图像重建,作为例子,有各种输出形状表示。3D生成模型用于合成新的形状的能力可以使3D内容创建民主化。尽管纹理在使3D形状栩栩如生方面很重要,但现有方法通常不允许对3D形状进行语义感知纹理合成。以前的纹理生成工作主要依赖于将球形网格模板扭曲为目标形状,获得定义在球形表面上的纹理贴图,这可以被重新投射到正方形图像中进行纹理合成。一种以前的方法生成具有任意表面拓扑的神经隐式表示的3D形状,但将形状的表面嵌入球体中,这也导致了球形纹理贴图。球形纹理贴图只能支持有限的拓扑结构,并对诸如动物肢体的细小部分会引入严重的失真。另一条工作路线使用隐性纹理场进行纹理合成,而不依赖于显性纹理映射。尽管纹理场被成功地应用于多视图图像重建,但它们主要被用于拟合单个对象或场景。生成模型通常会受到过度平滑的输出纹理的影响。
现有方法的一个类别与基于模板的方法有关。这些方法假设所有的目标形状都可以通过变形模板网格来表示,通常是球体,有时是平面。模板网格的UV图被给出,并在变形后转移到目标形状上。然而,通过施加网格模板,这些方法通常不能捕捉细节,特别是当目标形状的拓扑或结构复杂时。例如,当把球体变形为人体时,很难准确地重建手指。即使变形成功,手指的纹理——当从人体投射到球体然后再投射到其纹理图像时——通常会严重失真。
另一条工作路线不假设给定模板网格,而是假设UV图与输入的3D形状一起提供。UV图和纹理通常由艺术家建模,可以采用任意的布局。为了解决这个问题,这些方法通常需要对纹理图像或3D形状进行真实语义分割,以便进行语义感知的纹理合成。在我们的工作中,我们的目标是在没有这种监督的情况下进行纹理合成。另一类先前的工作与纹理离散化有关。一些方法不是采用UV图将纹理的维度从3D降低到2D,而是将3D形状离散为“原子”,然后对每个“原子”进行着色。当形状表示是体素网格时,可以通过预测每个体素的颜色来对形状进行纹理化。对于三角形网格,每个顶点的颜色可以被预测。然而,由于离散化是在3D而不是在2D(像素),因此这些方法要么不能按比例放大,要么由于表示的不规则性而不能有效地预测颜色。
其他先前的工作侧重于纹理场,其预测连续3D空间中每个3D点的颜色。NeRF系列也采用该方法,通过使用观察方向作为预测每个点的颜色的附加条件。纹理场方法的一个重要问题是,它不能表示高频细节,这是它所使用的MLP的一个属性。提出了位置编码和SIREN来缓解3D隐式场的问题,这在单一形状的过拟合方面效果很好。然而,在生成任务中性能明显下降。隐式方法的结果往往是平滑的,并且缺乏高频细节。另一类先前的工作与密集的对应有关。有大量的工作可以找到形状之间的密集对应关系,这也可以实现纹理转移。然而,这些方法在注册时没有考虑到颜色,这可能会妨碍我们的目标应用的性能。
以前的基于模板的方法假设所有的目标形状都可以通过变形模板网格来表示,例如球体或有时是平面。模板网格的UV图被给出,并在变形后转移到目标形状。然而,通过施加网格模板,这些方法通常不能捕捉细节,特别是当目标形状的拓扑或结构很复杂时。例如,当把球体变形为人体时,据观察很难准确地重建手指。即使变形成功,手指的纹理——当从人体投射到球体然后再投射到其纹理图像时——往往会严重失真。另一条工作路线并不假设给定模板网格,而是假设UV图与输入的3D形状一起提供。UV图和纹理通常由艺术家建模,并且可以采用任意的布局。为了解决这个问题,这些方法通常需要对纹理图像或3D形状进行真实语义分割,以便进行语义感知的纹理合成。根据本文提出的各种实施例的方法可以在没有这种监督的情况下进行纹理合成。
如所讨论的,本文提出的各种方法的各个方面可以是轻量级的,足以在诸如客户端设备(如个人电脑或游戏控制台)的设备上实时执行。这种处理可以对在该客户端设备上生成的或由该客户端设备接收的或从外部源接收的内容(例如,独特资产的渲染版本)进行,例如通过至少一个网络接收的流数据或其他内容。在某些情况下,该内容的处理和/或确定可以由这些其他设备、系统或实体之一执行,然后提供给客户端设备(或另一个这样的接收者)以供呈现或另一个这样的用途。
作为一个例子,图6示出了可用于提供、生成、修改、编码、处理和/或传输图像数据或其他此类内容的示例网络配置600。在至少一个实施例中,客户端设备602可以使用客户端设备602上的内容应用程序604的组件和本地存储在该客户端设备上的数据生成或接收用于会话的数据。在至少一个实施例中,在服务器620(例如,云服务器或边缘服务器)上执行的内容应用程序624可以启动与至少一个客户端设备602相关的会话,因为可以利用会话管理器和存储在用户数据库634中的用户数据,并且可以使诸如来自资产储存库632的一个或更多个数字资产(例如,对象表示)的内容由内容管理器626确定。内容管理器626可以与图像合成模块628合作,以如本文所述通过组合两个或更多个其他对象的形状和视觉方面或特征来生成或合成新的对象(或数字资产),或其他此类内容,以通过客户端设备602提供用于呈现。在至少一个实施例中,该图像合成模块628可以使用一个或更多个神经网络或机器学习模型,其可以使用在服务器620上或与之通信的训练模块630或系统来训练。生成的或增强的音频数据或内容的至少一部分可以使用适当的传输管理器622传输到客户端设备602,以通过下载、流式传输或另一个这样的传输信道发送。编码器可用于在该数据的至少一些传输到客户端设备602之前对其进行编码和/或压缩。在至少一个实施例中,接收此类内容的客户端设备602可以将该内容提供给对应的内容应用程序604,内容应用程序还可以或替代地包括图形用户界面610、内容管理器612和图像合成模块614,以用于在客户端设备602上或由客户端设备602提供、合成、修改或使用内容以进行呈现(或其他目的)。解码器也可用于解码通过网络640接收的数据,以便通过客户端设备602呈现,例如通过显示器606的图像或视频内容和通过至少一个音频播放设备(例如扬声器或耳机)608的音频(例如声音和音乐)。在至少一个实施例中,该内容的至少一些可能已经存储在客户端设备602上,在其上呈现,或可被客户端设备602访问,使得至少该部分内容就不需要通过网络640传输,例如该内容可能先前已经被下载或本地存储在硬盘或光盘上。在至少一个实施例中,可以使用诸如数据流式传输的传输机制来将该内容从服务器620或用户数据库634传输到客户端设备602。在至少一个实施例中,该内容的至少一部分可以从另一个源获得、增强和/或流式传输,例如第三方服务660或其他客户端设备650,其还可以包括用于生成、增强或提供内容的内容应用程序662。在至少一个实施例中,该功能的一部分可以使用多个计算设备或一个或更多个计算设备内的多个处理器来执行,例如可以包括CPU和GPU的组合。
在该示例中,这些客户端设备可以包括任何适当的计算设备,如可以包括台式计算机、笔记本计算机、机顶盒、流式传输设备、游戏控制台、智能手机、平板计算机、VR耳机、AR护目镜、可穿戴计算机或智能电视。每个客户端设备可以通过至少一个有线或无线网络提交请求,所述网络可以包括因特网、以太网、局域网(LAN)或蜂窝网络,以及其他此类选项。在该示例中,这些请求可以提交到与云提供商相关联的地址,所述云提供商可以在云提供商环境下操作或控制一个或更多个电子资源,所述云提供商环境诸如可以包括数据中心或服务器群。在至少一个实施例中,该请求可以由位于网络边缘并且在与云提供商环境相关联的至少一个安全层之外的至少一个边缘服务器接收或处理。通过这种方式,可以通过使得客户端设备能够与距离更近的服务器交互来减少延时,同时还可以提高云提供商环境中资源的安全性。
在至少一个实施例中,此类系统可以用于执行图形渲染操作。在其他实施例中,此类系统可以用于其他目的,诸如用于提供图像或视频内容以测试或验证自主机器应用,或者用于执行深度学习操作。在至少一个实施例中,此类系统可以使用边缘设备来实现,或者可以合并一个或更多个虚拟机(VM)。在至少一个实施例中,此类系统可以至少部分地在数据中心中或至少部分地使用云计算资源来实现。
推理和训练逻辑
图7A示出了用于执行与一个或更多个实施例相关联的推理和/或训练操作的推理和/或训练逻辑715。下面结合图7A和/或图7B提供关于推理和/或训练逻辑715的细节。
在至少一个实施例中,推理和/或训练逻辑715可以包括但不限于代码和/或数据存储701,用于存储前向和/或输出权重和/或输入/输出数据,和/或在一个或更多个实施例的方面中配置被训练为和/或用于推理的神经网络的神经元或层的其他参数。在至少一个实施例中,训练逻辑715可以包括或耦合到用于存储图形代码或其他软件以控制时序和/或顺序的代码和/或数据存储701,其中权重和/或其他参数信息被加载以配置逻辑,包括整数和/或浮点单元(统称为算术逻辑单元(ALU))。在至少一个实施例中,代码(诸如图代码)基于该代码所对应的神经网络的架构将权重或其他参数信息加载到处理器ALU中。在至少一个实施例中,代码和/或数据存储701存储在使用一个或更多个实施例的方面训练和/或推理期间的输入/输出数据和/或权重参数的前向传播期间结合一个或更多个实施例训练或使用的神经网络的每个层的权重参数和/或输入/输出数据。在至少一个实施例中,代码和/或数据存储701的任何部分都可以包括在其他片上或片外数据存储内,包括处理器的L1、L2或L3高速缓存或系统存储器。
在至少一个实施例中,代码和/或数据存储701的任何部分可以在一个或更多个处理器或其他硬件逻辑设备或电路的内部或外部。在至少一个实施例中,代码和/或数据存储701可以是高速缓存存储器、动态随机可访问存储器(“DRAM”)、静态随机可访问存储器(“SRAM”)、非易失性存储器(例如闪存)或其他存储。在至少一个实施例中,对代码和/或数据存储701是在处理器的内部还是外部的选择,例如,或者由DRAM、SRAM、闪存或某种其他存储类型组成,可以取决于片上或片外的可用存储空间,正在执行训练和/或推理功能的延迟要求,在神经网络的推理和/或训练中使用的数据的批大小或这些因素的某种组合。
在至少一个实施例中,推理和/或训练逻辑715可以包括但不限于代码和/或数据存储705,用于存储与在一个或更多个实施例的方面中被训练为和/或用于推理的神经网络的神经元或层相对应的反向和/或输出权重和/或输入/输出数据。在至少一个实施例中,在使用一个或更多个实施例的方面训练和/或推理期间,代码和/或数据存储705存储在输入/输出数据和/或权重参数的反向传播期间结合一个或更多个实施例训练或使用的神经网络的每个层的权重参数和/或输入/输出数据。在至少一个实施例中,训练逻辑715可以包括或耦合到用于存储图代码或其他软件以控制时序和/或顺序的代码和/或数据存储705,其中权重和/或其他参数信息被加载以配置逻辑,该逻辑包括整数和/或浮点单元(统称为算术逻辑单元(ALU))。在至少一个实施例中,代码(诸如图代码)基于该代码所对应的神经网络的架构将权重或其他参数信息加载到处理器ALU中。在至少一个实施例中,代码和/或数据存储705的任何部分可以与其他片上或片外数据存储一起包括,包括处理器的L1、L2或L3高速缓存或系统存储器。在至少一个实施例中,代码和/或数据存储705的任何部分可以在一个或更多个处理器或其他硬件逻辑设备或电路上的内部或外部。在至少一个实施例中,代码和/或数据存储705可以是高速缓存存储器、DRAM、SRAM、非易失性存储器(例如闪存)或其他存储。在至少一个实施例中,代码和/或数据存储705是在处理器的内部还是外部的选择,例如,是由DRAM、SRAM、闪存还是其他某种存储类型组成,取决于可用存储是片上还是片外,正在执行的训练和/或推理功能的延迟要求,在神经网络的推理和/或训练中使用的数据批量大小或这些因素的某种组合。
在至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705可以是分开的存储结构。在至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705可以是相同的存储结构。在至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705可以是部分相同的存储结构和部分分离的存储结构。在至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705的任何部分可以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或系统存储器。
在至少一个实施例中,推理和/或训练逻辑715可以包括但不限于一个或更多个算术逻辑单元(“ALU”)710(包括整数和/或浮点单元),用于至少部分地基于训练和/或推理代码(例如,图代码)或由其指示来执行逻辑和/或数学运算,其结果可能会产生存储在激活存储720中的激活(例如,来自神经网络内部的层或神经元的输出值),其是存储在代码和/或数据存储701和/或代码和/或数据存储705中的输入/输出和/或权重参数数据的函数。在至少一个实施例中,激活响应于执行指令或其他代码,由ALU710执行的线性代数和/或基于矩阵的数学生成在激活存储720中存储的激活,其中存储在代码和/或数据存储705中和/或代码和/或数据存储701中的权重值用作具有其他值的操作数,例如偏置值、梯度信息、动量值或其他参数或超参数,可以将任何或所有这些存储在代码和/或数据存储705或代码和/或数据存储701或其他片上或片外存储中。
在至少一个实施例中,一个或更多个处理器或其他硬件逻辑设备或电路中包括一个或更多个ALU 710,而在另一实施例中,一个或更多个ALU 710可以在处理器或其他硬件逻辑设备或使用它们(例如协处理器)的电路外。在至少一个实施例中,可以将一个或更多个ALU 710包括在处理器的执行单元之内,或者以其他方式包括在由处理器的执行单元可访问的ALU组中,该处理器的执行单元可以在同一处理器内或者分布在不同类型的不同处理器之间(例如,中央处理单元、图形处理单元、固定功能单元等)。在至少一个实施例中,代码和/或数据存储701、代码和/或数据存储705以及激活存储720可以在同一处理器或其他硬件逻辑设备或电路上,而在另一实施例中,它们可以在不同的处理器或其他硬件逻辑设备或电路或相同和不同处理器或其他硬件逻辑设备或电路的某种组合中。在至少一个实施例中,激活存储720的任何部分可以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或系统存储器。此外,推理和/或训练代码可以与处理器或其他硬件逻辑或电路可访问的其他代码一起存储,并可以使用处理器的提取、解码、调度、执行、退出和/或其他逻辑电路来提取和/或处理。
在至少一个实施例中,激活存储720可以是高速缓存存储器、DRAM、SRAM、非易失性存储器(例如,闪存)或其他存储。在至少一个实施例中,激活存储720可以完全地或部分地在一个或更多个处理器或其他逻辑电路内部或外部。在至少一个实施例中,可以取决于片上或片外可用的存储,进行训练和/或推理功能的延迟要求,在推理和/或训练神经网络中使用的数据的批量大小或这些因素的某种组合,选择激活存储720是处理器的内部还是外部,例如,或者包含DRAM、SRAM、闪存或其他存储类型。在至少一个实施例中,图7A中所示的推理和/或训练逻辑715可以与专用集成电路(“ASIC”)结合使用,例如来自Google的处理单元、来自GraphcoreTM的推理处理单元(IPU)或来自IntelCorp的(例如“LakeCrest”)处理器。在至少一个实施例中,图7A所示的推理和/或训练逻辑715可与中央处理单元(“CPU”)硬件,图形处理单元(“GPU”)硬件或其他硬件(例如现场可编程门阵列(“FPGA”))结合使用。
图7B示出了根据至少一个或更多个实施例的推理和/或训练逻辑715。在至少一个实施例中,推理和/或训练逻辑715可以包括但不限于硬件逻辑,其中计算资源被专用或以其他方式唯一地连同对应于神经网络内的一层或更多层神经元的权重值或其他信息一起使用。在至少一个实施例中,图7B中所示的推理和/或训练逻辑715可以与专用集成电路(ASIC)结合使用,例如来自Google的处理单元,来自GraphcoreTM的推理处理单元(IPU)或来自IntelCorp的/>(例如“LakeCrest”)处理器。在至少一个实施例中,图7B中所示的推理和/或训练逻辑715可以与中央处理单元(CPU)硬件、图形处理单元(GPU)硬件或其他硬件(例如现场可编程门阵列(FPGA))结合使用。在至少一个实施例中,推理和/或训练逻辑715包括但不限于代码和/或数据存储701以及代码和/或数据存储705,其可以用于存储代码(例如,图代码)、权重值和/或其他信息,包括偏置值、梯度信息、动量值和/或其他参数或超参数信息。在图7B中所示的至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705中的每一个都分别与专用计算资源(例如计算硬件702和计算硬件706)相关联。在至少一个实施例中,计算硬件702和计算硬件706中的每一个包括一个或更多个ALU,这些ALU仅分别对存储在代码和/或数据存储701和代码和/或数据存储705中的信息执行数学函数(例如线性代数函数),执行函数的结果被存储在激活存储720中。
在至少一个实施例中,代码和/或数据存储701和705以及相应的计算硬件702和706中的每一个分别对应于神经网络的不同层,使得从代码和/或数据存储701和计算硬件702的一个“存储/计算对701/702”得到的激活提供作为代码和/或数据存储705和计算硬件706的下一个“存储/计算对705/706”的输入,以便反映神经网络的概念组织。在至少一个实施例中,每个存储/计算对701/702和705/706可以对应于一个以上的神经网络层。在至少一个实施例中,在推理和/或训练逻辑715中可以包括在存储计算对701/702和705/706之后或与之并行的附加存储/计算对(未示出)。
数据中心
图8示出了可以使用至少一个实施例的示例数据中心800。在至少一个实施例中,数据中心800包括数据中心基础设施层810、框架层820、软件层830和应用层840。
在至少一个实施例中,如图8所示,数据中心基础设施层810可以包括资源协调器812、分组的计算资源814和节点计算资源(“节点C.R.”)816(1)-816(N),其中“N”代表任何正整数。在至少一个实施例中,节点C.R.816(1)-816(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括加速器、现场可编程门阵列(FPGA)、图形处理器等),存储器设备(例如动态只读存储器)、存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(“NWI/O”)设备,网络交换机,虚拟机(“VM”),电源模块和冷却模块等。在至少一个实施例中,节点C.R.816(1)-816(N)中的一个或更多个节点C.R.可以是具有一个或更多个上述计算资源的服务器。
在至少一个实施例中,分组的计算资源814可以包括容纳在一个或更多个机架内的节点C.R.的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组的计算资源814内的节点C.R.的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、存储器或存储资源。在至少一个实施例中,可以将包括CPU或处理器的几个节点C.R.分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。在至少一个实施例中,一个或更多个机架还可以包括任何数量的电源模块、冷却模块和网络交换机,以任意组合。
在至少一个实施例中,资源协调器812可以配置或以其他方式控制一个或更多个节点C.R.816(1)-816(N)和/或分组的计算资源814。在至少一个实施例中,资源协调器812可以包括用于数据中心800的软件设计基础结构(“SDI”)管理实体。在至少一个实施例中,资源协调器108可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图8所示,框架层820包括作业调度器822、配置管理器824、资源管理器826和分布式文件系统828。在至少一个实施例中,框架层820可以包括支持软件层830的软件832和/或应用程序层840的一个或更多个应用程序842的框架。在至少一个实施例中,软件832或应用程序842可以分别包括基于Web的服务软件或应用程序,例如由AmazonWebServices,GoogleCloud和MicrosoftAzure提供的服务或应用程序。在至少一个实施例中,框架层820可以是但不限于一种免费和开放源软件网络应用程序框架,例如可以利用分布式文件系统828来进行大范围数据处理(例如“大数据”)的ApacheSparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器832可以包括Spark驱动器,以促进对数据中心800的各个层所支持的工作负载进行调度。在至少一个实施例中,配置管理器824可以能够配置不同的层,例如软件层830和包括Spark和用于支持大规模数据处理的分布式文件系统828的框架层820。在至少一个实施例中,资源管理器826能够管理映射到或分配用于支持分布式文件系统828和作业调度器822的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层810上的分组计算资源814。在至少一个实施例中,资源管理器826可以与资源协调器812协调以管理这些映射的或分配的计算资源。
在至少一个实施例中,包括在软件层830中的软件832可以包括由节点C.R.816(1)-816(N)的至少一部分,分组的计算资源814和/或框架层820的分布式文件系统828使用的软件。一种或更多种类型的软件可以包括但不限于Internet网页搜索软件、电子邮件病毒扫描软件、数据库软件和流视频内容软件。
在至少一个实施例中,应用层840中包括的一个或更多个应用程序842可以包括由节点C.R.816(1)-816(N)的至少一部分、分组计算资源814和/或框架层820的分布式文件系统828使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序、认知计算和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如PyTorch、TensorFlow、Caffe等)或其他与一个或更多个实施例结合使用的机器学习应用程序。
在至少一个实施例中,配置管理器824、资源管理器826和资源协调器812中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。在至少一个实施例中,自我修改动作可以减轻数据中心800的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或执行差的部分。
在至少一个实施例中,数据中心800可以包括工具、服务、软件或其他资源,以根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,在至少一个实施例中,可以通过使用上文关于数据中心800描述的软件和计算资源,根据神经网络架构通过计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过本文所述的一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心800所描述的资源,使用对应于一个或更多个神经网络的经训练的机器学习模型来推理或预测信息。
在至少一个实施例中,数据中心可以使用CPU、专用集成电路(ASIC)、GPU、FPGA或其他硬件来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
推理和/或训练逻辑715用于执行与一个或更多个实施例相关联的推理和/或训练操作。本文结合图7A和/或图7B提供关于推理和/或训练逻辑715的细节。在至少一个实施例中,推理和/或训练逻辑715可以在系统图8的系统中使用,用于至少部分地基于使用神经网络训练操作、神经网络函数和/或架构或本文所述的神经网络用例计算的权重参数来推理或预测操作。
此类组件可用于使用至少一个第一内容实例的视觉方面和至少一个第二内容实例的几何方面来合成新内容。
计算机系统
图9是示出根据至少一个实施例示例性计算机系统的框图,该示例性计算机系统可以是具有互连的设备和组件的系统,片上系统(SOC)或它们的某种形成有处理器的组合,该处理器可以包括执行单元以执行指令。在至少一个实施例中,根据本公开,例如本文所述的实施例,计算机系统900可以包括但不限于组件,例如处理器902,其执行单元包括逻辑以执行用于过程数据的算法。在至少一个实施例中,计算机系统900可以包括处理器,例如可从加利福尼亚圣塔克拉拉的英特尔公司(IntelCorporationofSantaClara,California)获得的处理器家族、XeonTM、/>XScaleTM和/或StrongARMTM,/>CoreTM或/>NervanaTM微处理器,尽管也可以使用其他系统(包括具有其他微处理器的PC、工程工作站、机顶盒等)。在至少一个实施例中,计算机系统900可以执行可从华盛顿州雷蒙德市的微软公司(MicrosoftCorporationofRedmond,Wash.)获得的WINDOWS操作系统版本,尽管其他操作系统(例如UNIX和Linux)、嵌入式软件和/或图形用户界面也可以使用。
实施例可以用在其他设备中,例如手持设备和嵌入式应用程序。手持设备的一些示例包括蜂窝电话、互联网协议(InternetProtocol)设备、数码相机、个人数字助理(“PDA”)和手持PC。在至少一个实施例中,嵌入式应用程序可以包括微控制器、数字信号处理器(“DSP”)、片上系统、网络计算机(“NetPC”)、机顶盒、网络集线器、广域网(“WAN”)交换机,或根据至少一个实施例可以执行一个或更多个指令的任何其他系统。
在至少一个实施例中,计算机系统900可包括但不限于处理器902,该处理器902可包括但不限于一个或更多个执行单元908,以根据本文描述的技术执行机器学习模型训练和/或推理。在至少一个实施例中,计算机系统900是单处理器台式机或服务器系统,但是在另一实施例中,计算机系统900可以是多处理器系统。在至少一个实施例中,处理器902可以包括但不限于复杂指令集计算机(“CISC”)微处理器、精简指令集计算(“RISC”)微处理器、超长指令字(“VLIW”)微处理器、实现指令集组合的处理器,或任何其他处理器设备,例如数字信号处理器。在至少一个实施例中,处理器902可以耦合到处理器总线910,该处理器总线910可以在处理器902与计算机系统900中的其他组件之间传输数据信号。
在至少一个实施例中,处理器902可以包括但不限于1级(“L1”)内部高速缓存存储器(“cache”)904。在至少一个实施例中,处理器902可以具有单个内部高速缓存或多级内部缓存。在至少一个实施例中,高速缓存存储器可以驻留在处理器902的外部。根据特定的实现和需求,其他实施例也可以包括内部和外部高速缓存的组合。在至少一个实施例中,寄存器文件906可以在各种寄存器中存储不同类型的数据,包括但不限于整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器。
在至少一个实施例中,包括但不限于执行整数和浮点运算的逻辑执行单元908,其也位于处理器902中。在至少一个实施例中,处理器902还可以包括微码(“ucode”)只读存储器(“ROM”),用于存储某些宏指令的微代码。在至少一个实施例中,执行单元908可以包括用于处理封装指令集909的逻辑。在至少一个实施例中,通过将封装指令集909包括在通用处理器的指令集中,以及要执行指令的相关电路,可以使用处理器902中的封装数据来执行许多多媒体应用程序使用的操作。在一个或更多个实施例中,可以通过使用处理器的数据总线的全宽度来在封装的数据上执行操作来加速和更有效地执行许多多媒体应用程序,这可能不需要在处理器的数据总线上传输较小的数据单元来一次执行一个数据元素的一个或更多个操作。
在至少一个实施例中,执行单元908也可以用在微控制器、嵌入式处理器、图形设备、DSP和其他类型的逻辑电路中。在至少一个实施例中,计算机系统900可以包括但不限于存储器920。在至少一个实施例中,存储器920可以实现为动态随机存取存储器(“DRAM”)设备、静态随机存取存储器(“SRAM”)设备、闪存设备或其他存储设备。在至少一个实施例中,存储器920可以存储由处理器902可以执行的由数据信号表示的指令919和/或数据921。
在至少一个实施例中,系统逻辑芯片可以耦合到处理器总线910和存储器920。在至少一个实施例中,系统逻辑芯片可以包括但不限于存储器控制器集线器(“MCH”)916,并且处理器902可以经由处理器总线910与MCH 916通信。在至少一个实施例中,MCH 916可以提供到存储器920的高带宽存储器路径918以用于指令和数据存储以及用于图形命令、数据和纹理的存储。在至少一个实施例中,MCH 916可以在处理器902、存储器920和计算机系统900中的其他组件之间启动数据信号,并且在处理器总线910、存储器920和系统I/O 922之间桥接数据信号。在至少一个实施例中,系统逻辑芯片可以提供用于耦合到图形控制器的图形端口。在至少一个实施例中,MCH 916可以通过高带宽存储器路径918耦合到存储器920,并且图形/视频卡912可以通过加速图形端口(Accelerated Graphics Port)(“AGP”)互连914耦合到MCH 916。
在至少一个实施例中,计算机系统900可以使用系统I/O 922,所述系统I/O 922是专有集线器接口总线来将MCH 916耦合到I/O控制器集线器(“ICH”)930。在至少一个实施例中,ICH 930可以通过本地I/O总线提供与某些I/O设备的直接连接。在至少一个实施例中,本地I/O总线可以包括但不限于用于将外围设备连接到存储器920、芯片组和处理器902的高速I/O总线。示例可以包括但不限于音频控制器929、固件集线器(“FlashBIOS”)928、无线收发器926、数据存储924、包含用户输入和键盘接口的传统I/O控制器923、串行扩展端口927(例如通用串行总线(USB)端口)和网络控制器934。数据存储924可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其他大容量存储设备。
在至少一个实施例中,图9示出了包括互连的硬件设备或“芯片”的系统,而在其他实施例中,图9可以示出示例性片上系统(SoC)。在至少一个实施例中,设备可以与专有互连、标准化互连(例如,PCIe)或其某种组合互连。在至少一个实施例中,计算机系统900的一个或更多个组件使用计算快速链路(CXL)互连来互连。
推理和/或训练逻辑715用于执行与一个或更多个实施例相关的推理和/或训练操作。下文结合图7A和/或图7B提供关于推理和/或训练逻辑715的细节。在至少一个实施例中,推理和/或训练逻辑715可以在图9的系统中使用,用于至少部分地基于使用神经网络训练操作、神经网络函数和/或架构或本文所述的神经网络用例计算的权重参数来推理或预测操作。
此类组件可用于使用至少一个第一内容实例的视觉方面和至少一个第二内容实例的几何方面来合成新内容。
图10是示出根据至少一个实施例的用于利用处理器1010的电子设备1000的框图。在至少一个实施例中,电子设备1000可以是,例如但不限于,笔记本电脑、塔式服务器、机架服务器、刀片服务器、膝上型计算机、台式机、平板电脑、移动设备、电话、嵌入式计算机或任何其他合适的电子设备。
在至少一个实施例中,系统1000可以包括但不限于通信地耦合到任何合适数量或种类的组件、外围设备、模块或设备的处理器1010。在至少一个实施例中,处理器1010使用总线或接口耦合,诸如1℃总线、系统管理总线(“SMBus”)、低引脚数(LPC)总线、串行外围接口(“SPI”)、高清音频(“HDA”)总线、串行高级技术附件(“SATA”)总线、通用串行总线(“USB”)(1、2、3版)或通用异步接收器/发送器(“UART”)总线。在至少一个实施例中,图10示出了系统,该系统包括互连的硬件设备或“芯片”,而在其他实施例中,图10可以示出示例性片上系统(SoC)。在至少一个实施例中,图10中所示的设备可以与专有互连线、标准化互连(例如,PCIe)或其某种组合互连。在至少一个实施例中,图10的一个或更多个组件使用计算快速链路(CXL)互连线来互连。
在至少一个实施例中,图10可以包括显示器1024、触摸屏1025、触摸板1030、近场通信单元(“NFC”)1045、传感器集线器1040、热传感器1046、快速芯片组(“EC”)1035、可信平台模块(“TPM”)1038、BIOS/固件/闪存(“BIOS,FWFlash”)1022、DSP 1060、驱动器1020(例如固态磁盘(“SSD”)或硬盘驱动器(“HDD”))、无线局域网单元(“WLAN”)1050、蓝牙单元1052、无线广域网单元(“WWAN”)1056、全球定位系统(GPS)1055、相机(“USB3.0相机”)1054(例如USB3.0相机)和/或以例如LPDDR3标准实现的低功耗双倍数据速率(“LPDDR”)存储器单元(“LPDDR3”)1015。这些组件可以各自以任何合适的方式实现。
在至少一个实施例中,其他组件可以通过上文所述的组件通信地耦合到处理器1010。在至少一个实施例中,加速度计1041、环境光传感器(“ALS”)1042、罗盘1043和陀螺仪1044可以可通信地耦合到传感器集线器1040。在至少一个实施例中,热传感器1039、风扇1037、键盘1036和触摸板1030可以通信地耦合到EC 1035。在至少一个实施例中,扬声器1063、耳机1064和麦克风(“mic”)1065可以通信地耦合到音频单元(“音频编解码器和D类放大器”)1062,其又可以通信地耦合到DSP 1060。在至少一个实施例中,音频单元1062可以包括例如但不限于音频编码器/解码器(“编解码器”)和D类放大器。在至少一个实施例中,SIM卡(“SIM”)1057可以通信地耦合到WWAN单元1056。在至少一个实施例中,组件(诸如WLAN单元1050和蓝牙单元1052以及WWAN单元1056)可以被实现为下一代形式因素(NGFF)。
推理和/或训练逻辑715用于执行与一个或更多个实施例相关联的推理和/或训练操作。下文结合图7A和/或图7B提供关于推理和/或训练逻辑715的细节。在至少一个实施例中,推理和/或训练逻辑715可以在图10系统中用于至少部分地基于使用神经网络训练操作、神经网络功能和/或架构或本文描述的神经网络用例计算的权重参数来推理或预测操作。
这种组件可用于使用至少一个第一内容实例的视觉方面和至少一个第二内容实例的几何方面来合成新内容。
图11是根据至少一个实施例的处理系统的框图。在至少一个实施例中,系统1100包括一个或更多个处理器1102和一个或更多个图形处理器1108,并且可以是单处理器台式机系统、多处理器工作站系统或具有大量处理器1102或处理器核心1107的服务器系统。在至少一个实施例中,系统1100是结合在片上系统(SoC)集成电路内的处理平台,以在移动、手持或嵌入式设备使用。
在至少一个实施例中,系统1100可以包括或结合在基于服务器的游戏平台中,包括游戏和媒体控制台的游戏控制台、移动游戏控制台、手持游戏控制台或在线游戏控制台。在至少一个实施例中,系统1100是移动电话、智能电话、平板计算设备或移动互联网设备。在至少一个实施例中,处理系统1100还可包括与可穿戴设备耦合或集成在可穿戴设备中,例如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备。在至少一个实施例中,处理系统1100是电视或机顶盒设备,其具有一个或更多个处理器1102以及由一个或更多个图形处理器1108生成的图形界面。
在至少一个实施例中,一个或更多个处理器1102每个包括一个或更多个处理器核心1107,以处理指令,该指令在被执行时执行针对系统和用户软件的操作。在至少一个实施例中,一个或更多个处理器核心1107中的每一个被配置为处理特定指令组1109。在至少一个实施例中,指令组1109可以促进复杂指令集计算(CISC)、精简指令集计算(RISC),或通过超长指令字(VLIW)进行计算。在至少一个实施例中,处理器核心1107可以各自处理不同的指令组1109,该指令组可以包括有助于仿真其他指令组的指令。在至少一个实施例中,处理器核心1107还可以包括其他处理设备,例如数字信号处理器(DSP)。
在至少一个实施例中,处理器1102包括高速缓存存储器1104。在至少一个实施例中,处理器1102可以具有单个内部高速缓存或更多个级别的内部高速缓存。在至少一个实施例中,高速缓存存储器在处理器1102的各个组件之间共享。在至少一个实施例中,处理器1102还使用外部高速缓存(例如,三级(L3)高速缓存或最后一级高速缓存(LLC))(未示出),可以使用已知的高速缓存一致性技术在处理器核心1107之间共享该外部高速缓存。在至少一个实施例中,处理器1102中另外包括寄存器文件1106,处理器可以包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。在至少一个实施例中,寄存器文件1106可以包括通用寄存器或其他寄存器。
在至少一个实施例中,一个或更多个处理器1102与一个或更多个接口总线1110耦合,以在处理器1102与系统1100中的其他组件之间传输通信信号,例如地址、数据或控制信号。在至少一个实施例中,接口总线1110在一个实施例中可以是处理器总线,例如直接媒体接口(DMI)总线的版本。在至少一个实施例中,接口总线1110不限于DMI总线,并且可以包括一个或更多个外围组件互连总线(例如,PCI,PCIExpress)、存储器总线或其他类型的接口总线。在至少一个实施例中,处理器1102包括集成存储器控制器1116和平台控制器集线器1130。在至少一个实施例中,存储器控制器1116促进存储器设备与处理系统1100的其他组件之间的通信,而平台控制器集线器(PCH)1130通过本地I/O总线提供到I/O设备的连接。
在至少一个实施例中,存储器设备1120可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备、相变存储设备或具有适当的性能以用作处理器存储器。在至少一个实施例中,存储设备1120可以用作处理系统1100的系统存储器,以存储数据1122和指令1121,以在一个或更多个处理器1102执行应用程序或过程时使用。在至少一个实施例中,存储器控制器1116还与可选的外部图形处理器1112耦合,其可以与处理器1102中的一个或更多个图形处理器1108通信以执行图形和媒体操作。在至少一个实施例中,显示设备1111可以连接至处理器1102。在至少一个实施例中,显示设备1111可以包括内部显示设备中的一个或更多个,例如在移动电子设备或膝上型设备或通过显示器接口(例如显示端口(DisplayPort)等)连接的外部显示设备中。在至少一个实施例中,显示设备1111可以包括头戴式显示器(HMD),诸如用于虚拟现实(VR)应用或增强现实(AR)应用中的立体显示设备。
在至少一个实施例中,平台控制器集线器1130使外围设备能够通过高速I/O总线连接到存储设备1120和处理器1102。在至少一个实施例中,I/O外围设备包括但不限于音频控制器1146、网络控制器1134、固件接口1128、无线收发器1126、触摸传感器1125、数据存储设备1124(例如,硬盘驱动器、闪存等)。在至少一个实施例中,数据存储设备1124可以经由存储接口(例如,SATA)或经由外围总线来连接,诸如外围组件互连总线(例如,PCI、PCIe)。在至少一个实施例中,触摸传感器1125可以包括触摸屏传感器、压力传感器或指纹传感器。在至少一个实施例中,无线收发器1126可以是Wi-Fi收发器、蓝牙收发器或移动网络收发器,诸如3G、4G或长期演进(LTE)收发器。在至少一个实施例中,固件接口1128使能与系统固件的通信,并且可以是例如统一可扩展固件接口(UEFI)。在至少一个实施例中,网络控制器1134可以启用到有线网络的网络连接。在至少一个实施例中,高性能网络控制器(未示出)与接口总线1110耦合。在至少一个实施例中,音频控制器1146是多通道高清晰度音频控制器。在至少一个实施例中,处理系统1100包括可选的传统(legacy)I/O控制器1140,用于将传统(例如,个人系统2(PS/2))设备耦合到系统1100。在至少一个实施例中,平台控制器集线器1130还可以连接到一个或更多个通用串行总线(USB)控制器1142,该控制器连接输入设备,诸如键盘和鼠标1143组合、相机1144或其他USB输入设备。
在至少一个实施例中,存储器控制器1116和平台控制器集线器1130的实例可以集成到离散的外部图形处理器中,例如外部图形处理器1112。在至少一个实施例中,平台控制器集线器1130和/或存储器控制器1116可以在一个或更多个处理器1102的外部。例如,在至少一个实施例中,系统1100可以包括外部存储器控制器1116和平台控制器集线器1130,其可以配置成在与处理器1102通信的系统芯片组中的存储器控制器集线器和外围控制器集线器。
推理和/或训练逻辑715用于执行与一个或更多个实施例相关联的推理和/或训练操作。下文结合图7A和/或图7B提供关于推理和/或训练逻辑715的细节。在至少一个实施例中,部分或全部推理和/或训练逻辑715可以结合到图形处理器1100中。例如,在至少一个实施例中,本文描述的训练和/或推理技术可以使用一个或更多个ALU,所述ALU体现在图形处理器中。此外,在至少一个实施例中,本文描述的推理和/或训练操作可以使用除图7A或图7B所示的逻辑之外的逻辑来完成。在至少一个实施例中,权重参数可以存储在片上或片外存储器和/或寄存器(示出或未示出)中,其配置图形处理器的ALU,以执行一种或更多种本文所述的机器学习算法、神经网络架构、用例或训练技术。
这种组件可用于使用至少一个第一内容实例的视觉方面和至少一个第二内容实例的几何方面来合成新内容。
图12是根据至少一个实施例的具有一个或更多个处理器核心1202A-1202N、集成存储器控制器1214和集成图形处理器1208的处理器1200的框图。在至少一个实施例中,处理器1200可以包含附加核心,多达并包括以虚线框表示的附加核心1202N。在至少一个实施例中,每个处理器核心1202A-1202N包括一个或更多个内部高速缓存单元1204A-1204N。在至少一个实施例中,每个处理器核心还可以访问一个或更多个共享高速缓存单元1206。
在至少一个实施例中,内部高速缓存单元1204A-1204N和共享高速缓存单元1206表示处理器1200内的高速缓存存储器层次结构。在至少一个实施例中,高速缓存存储器单元1204A-1204N可以包括每个处理器核心内的至少一级指令和数据高速缓存以及共享中级高速缓存中的一级或更多级缓存,例如2级(L2)、3级(L3)、4级(L4)或其他级别的高速缓存,其中将外部存储器之前的最高级别的高速缓存归类为LLC。在至少一个实施例中,高速缓存一致性逻辑维持各种高速缓存单元1206和1204A-1204N之间的一致性。
在至少一个实施例中,处理器1200还可包括一组一个或更多个总线控制器单元1216和系统代理核心1210。在至少一个实施例中,一个或更多个总线控制器单元1216管理一组外围总线,例如一个或更多个PCI或PCIe总线。在至少一个实施例中,系统代理核心1210为各种处理器组件提供管理功能。在至少一个实施例中,系统代理核心1210包括一个或更多个集成存储器控制器1214,以管理对各种外部存储器设备(未示出)的访问。
在至少一个实施例中,一个或更多个处理器核心1202A-1202N包括对多线程同时进行的支持。在至少一个实施例中,系统代理核心1210包括用于在多线程处理期间协调和操作核心1202A-1202N的组件。在至少一个实施例中,系统代理核心1210可以另外包括电源控制单元(PCU),该电源控制单元包括用于调节处理器核心1202A-1202N和图形处理器1208的一个或更多个电源状态的逻辑和组件。
在至少一个实施例中,处理器1200还包括用于执行图处理操作的图形处理器1208。在至少一个实施例中,图形处理器1208与共享高速缓存单元1206和包括一个或更多个集成存储器控制器1214的系统代理核心1210耦合。在至少一个实施例中,系统代理核心1210还包括用于驱动图形处理器输出到一个或更多个耦合的显示器的显示器控制器1211。在至少一个实施例中,显示器控制器1211也可以是经由至少一个互连与图形处理器1208耦合的独立模块,或者可以集成在图形处理器1208内。
在至少一个实施例中,基于环的互连单元1212用于耦合处理器1200的内部组件。在至少一个实施例中,可以使用替代性互连单元,例如点对点互连、交换互连或其他技术。在至少一个实施例中,图形处理器1208经由I/O链路1213与环形互连1212耦合。
在至少一个实施例中,I/O链路1213代表多种I/O互连中的至少一种,包括促进各种处理器组件与高性能嵌入式存储器模块1218(例如eDRAM模块)之间的通信的封装I/O互连。在至少一个实施例中,处理器核心1202A-1202N和图形处理器1208中的每一个使用嵌入式存储器模块1218作为共享的最后一级高速缓存。
在至少一个实施例中,处理器核心1202A-1202N是执行公共指令集架构的同质核心。在至少一个实施例中,处理器核心1202A-1202N在指令集架构(ISA)方面是异构的,其中一个或更多个处理器核心1202A-1202N执行公共指令集,而一个或更多个其他处理器核心1202A-1202N执行公共指令集的子集或不同指令集。在至少一个实施例中,就微架构而言,处理器核心1202A-1202N是异构的,其中具有相对较高功耗的一个或更多个核心与具有较低功耗的一个或更多个功率核心耦合。在至少一个实施例中,处理器1200可以在一个或更多个芯片上实现或被实现为SoC集成电路。
推理和/或训练逻辑715用于执行与一个或更多个实施例相关联的推理和/或训练操作。下文结合图7A和/或图7B提供关于推理和/或训练逻辑715的细节。在至少一个实施例中,部分或全部推理和/或训练逻辑715可以结合到处理器1200中。例如,在至少一个实施例中,本文描述的训练和/或推理技术可以使用一个或更多个ALU,所述ALU体现在图12中的图形处理器1212、图形核心1202A-1202N或其他组件中。此外,在至少一个实施例中,本文描述的推理和/或训练操作可以使用除图7A或图7B所示的逻辑之外的逻辑来完成。在至少一个实施例中,权重参数可以存储在片上或片外存储器和/或寄存器(示出或未示出)中,其配置图形处理器1200的ALU以执行一种或更多种本文所述的机器学习算法、神经网络架构、用例或训练技术。
此类组件可用于使用至少一个第一内容实例的视觉方面和至少一个第二内容实例的几何方面来合成新内容。
虚拟化计算平台
图13是根据至少一个实施例的生成和部署图像处理和推理管线的过程1300的示例数据流程图。在至少一个实施例中,过程1300可以被部署用于在一个或更多个设施1302处与成像设备、处理设备和/或其他设备类型一起使用。过程1300可以在训练系统1304和/或部署系统1306内执行。在至少一个实施例中,训练系统1304可以用于执行机器学习模型(例如,神经网络、对象检测算法、计算机视觉算法等)的训练、部署和实现,以用于部署系统1306。在至少一个实施例中,部署系统1306可以被配置为在分布式计算环境中卸载处理和计算资源,以减少设施1302的基础设施需求。在至少一个实施例中,管线中的一个或更多个应用程序在应用程序执行期间,可以使用或调用部署系统1306的服务(例如,推理、可视化、计算、AI等)。
在至少一个实施例中,在高级处理和推理管线中使用的一些应用程序可以使用机器学习模型或其他AI来执行一个或更多个处理步骤。在至少一个实施例中,可以使用在设施1302处生成(并存储在设施1302处的一个或更多个图片存档和通信系统(PACS)服务器上)的数据1308(例如成像数据)在设施1302处训练机器学习模型,可以使用于自另一个或更多个设施的成像或测序数据1308来训练机器学习模型,或其组合。在至少一个实施例中,训练系统1304可以用于提供应用程序、服务和/或其他资源,以生成用于部署系统1306的工作的、可部署的机器学习模型。
在至少一个实施例中,模型注册表1324可以由对象存储支持,该对象存储可以支持版本控制和对象元数据。在至少一个实施例中,可以从云平台内通过例如云存储(例如,图12的云1226)兼容的应用程序编程接口(API)来访问对象存储。在至少一个实施例中,模型注册表1324内的机器学习模型可以由与API交互的系统的开发者或合作伙伴上传、列出、修改或删除。在至少一个实施例中,API可以提供对方法的访问,所述方法允许具有适当凭证的用户将模型与应用程序相关联,使得模型可以作为应用程序的容器化实例化的执行的一部分来执行。
在至少一个实施例中,训练管线1304(图13)可以包括以下情形:其中设施1302正在训练他们自己的机器学习模型,或者具有需要优化或更新的现有机器学习模型。在至少一个实施例中,可以接收由成像设备、测序设备和/或其他类型设备生成的成像数据1308。在至少一个实施例中,一旦接收到成像数据1308,AI辅助注释1310就可以用于帮助生成与成像数据1308相对应的注释,以用作机器学习模型的地面实况数据。在至少一个实施例中,AI辅助注释1310可以包括一个或更多个机器学习模型(例如,卷积神经网络(CNN)),可以对该机器学习模型进行训练,以生成对应于某些类型的成像数据1308(例如,来自某些设备)的注释。在至少一个实施例中,然后AI辅助注释1310可以被直接使用,或者可以使用注释工具进行调整或微调,以生成地面实况数据。在至少一个实施例中,AI辅助注释1310、标记的临床数据1312或其组合可以用作训练机器学习模型的地面实况数据。在至少一个实施例中,经训练的机器学习模型可以被称为输出模型1316,并且可以由部署系统1306使用,如本文所述。
在至少一个实施例中,训练管线可以包括以下情形:其中设施1302需要机器学习模型,以用于执行用于部署系统1306中的一个或更多个应用程序的一个或更多个处理任务,但是设施1302当前可能没有这种机器学习模型(或者可能没有为此目的而优化的、高效的或有效的模型)。在至少一个实施例中,可以从模型注册表1324中选择现有的机器学习模型。在至少一个实施例中,模型注册表1324可以包括机器学习模型,其被训练为对成像数据执行各种不同的推理任务。在至少一个实施例中,可以在来自不同的设施(例如,位于远处的设施)而不是设施1302的成像数据上训练模型注册表1324中的机器学习模型。在至少一个实施例中,机器学习模型可能已经在来自一个位置、两个位置或任意数量的位置的成像数据上进行训练。在至少一个实施例中,当在来自特定位置的成像数据上进行训练时,可以在该位置处进行训练,或者至少以保护成像数据的机密性或限制成像数据从场外转移的方式进行训练。在至少一个实施例中,一旦在一个位置处训练了模型或部分地训练了模型,则可以将机器学习模型添加到模型注册表1324。在至少一个实施例中,然后可以在任意数量的其他设施处对机器学习模型进行重新训练或更新,经重新训练或更新的模型可以在模型注册表1324中使用。在至少一个实施例中,然后可以从模型注册表1324中选择机器学习模型(并称为输出模型1316),并且可以在部署系统1306中,以执行用于部署系统的一个或更多个应用程序的一个或更多个处理任务。
在至少一个实施例中,场景可以包括需要机器学习模型的设施1302,以用于执行用于部署系统1306中的一个或更多个应用程序的一个或更多个处理任务,但是设施1302当前可能没有这样的机器学习模型(或者可能没有优化的、高效的或有效的模型)。在至少一个实施例中,由于用于训练机器学习模型的训练数据的种群差异、稳健性,训练数据异常的多样性,和/或训练数据的其他问题,从模型注册表1324中选择的机器学习模型可能不会针对在设施1302处生成的成像数据1308进行微调或优化。在至少一个实施例中,AI辅助注释1310可以用于帮助生成与成像数据1308相对应的注释,以用作训练或更新机器学习模型的地面实况数据。在至少一个实施例中,标记的临床数据1312可以用作训练机器学习模型的地面实况数据。在至少一个实施例中,重新训练或更新机器学习模型可以称为模型训练1314。在至少一个实施例中,模型训练1314(例如AI辅助注释1310,标记的临床数据1312或其组合)可以用作重新训练或更新机器学习模型的地面实况数据。在至少一个实施例中,训练的机器学习模型可以被称为输出模型1316,并且可以由部署系统1306使用,如本文所述。
在至少一个实施例中,部署系统1306可以包括软件1318、服务1320、硬件1322和/或其他组件、特征和功能。在至少一个实施例中,部署系统1306可以包括软件“栈”,以使软件1318可以构建在服务1320的顶部上,并且可以使用服务1320来执行一些或全部处理任务,并且服务1320和软件1318可以构建在硬件1322的顶部上,并使用硬件1322来执行部署系统的处理、存储和/或其他计算任务。在至少一个实施例中,软件1318可以包括任意数量的不同容器,其中每个容器可以执行应用程序的实例化。在至少一个实施例中,每个应用程序可以在高级处理和推理管线中执行一个或更多个处理任务(例如,推理、对象检测、特征检测、分割、图像增强、校准等)。在至少一个实施例中,除了接收和配置成像数据以供每个容器使用和/或在通过管线处理后由设施1302使用的容器以外,还可以基于对处理成像数据1308想要的或所需的不同容器的选择来定义高级处理和推理管线(例如,以将输出转换回可用的数据类型。在至少一个实施例中,软件1318内的容器组合(例如,其构成管线)可以被称为虚拟仪器(如本文中更详细地描述的),并且虚拟仪器可以利用服务1320和硬件1322来执行容器中实例化的应用程序的部分或全部处理任务。
在至少一个实施例中,数据处理管线可以响应于推理请求(例如,来自部署系统1306的用户的请求)接收具体格式的输入数据(例如,成像数据1308)。在至少一个实施例中,输入数据可以代表由一个或更多个成像设备生成的一个或更多个图像、视频和/或其他数据表示。在至少一个实施例中,数据可以作为数据处理管线的一部分进行预处理,以准备数据用于由一个或更多个应用程序处理。在至少一个实施例中,可以在管线的一个或更多个推理任务或其他处理任务的输出上执行后处理,以准备下一个应用程序的输出数据和/或准备输出数据,以供用户传输和/或使用(例如作为对推理请求的响应)。在至少一个实施例中,推理任务可以由一个或更多个机器学习模型执行,例如经训练或部署的神经网络,所述模型可以包括训练系统1304的输出模型1316。
在至少一个实施例中,数据处理管线的任务可以封装在容器中,每个容器表示能够引用机器学习模型的应用程序和虚拟化计算环境的离散、全功能实例化。在至少一个实施例中,容器或应用程序可被发布到容器注册表(本文更详细地描述)的私有(例如,有限访问)区域中,并且经训练或部署的模型可存储在模型注册表1324中,并与一个或更多个应用程序相关联。在至少一个实施例中,应用程序的图像(例如,容器图像)可在容器注册表中使用,并且一旦用户从容器注册表中选择图像以用于在管线中部署,则该图像可用于生成用于应用程序的实例化的容器,以供用户的系统使用。
在至少一个实施例中,开发者(例如,软件开发者、临床医生、医生等)可以开发、发布和存储应用程序(例如,作为容器),用于对所提供的数据执行图像处理和/或推理。在至少一个实施例中,可以使用与系统相关联的软件开发工具包(SDK)来执行开发、发布和/或存储(例如,以确保开发的应用程序和/或容器符合系统或与系统兼容)。在至少一个实施例中,所开发的应用程序可以使用SDK在本地测试(例如,在第一设施处,对来自第一设施的数据进行测试),所述SDK作为系统(例如图12中的系统1200)可以支持至少某些服务1320。在至少一个实施例中,由于DICOM对象可能包含一到数百个图像或其他数据类型,并且由于数据的变化,因此开发者可负责管理(例如,设置构造,用于将预处理构建到应用程序中等)传入的数据的提取和准备。在至少一个实施例中,一旦通过系统1300的验证(例如,为了准确性),应用程序便会在容器注册表中可用,以供用户选择和/或实现,以对用户的设施(例如第二设施)处的数据执行一个或更多个处理任务。
在至少一个实施例中,开发者随后可以通过网络共享应用程序或容器,以供系统(例如,图13的系统1300)的用户访问和使用。在至少一个实施例中,可以将完成并经过验证的应用程序或容器存储在容器注册表中,并且可以将相关的机器学习模型存储在模型注册表1324中。在至少一个实施例中,请求实体(其提供推理或图像处理请求)可以浏览容器注册表和/或模型注册表1324,以获得应用程序、容器、数据集、机器学习模型等,选择所需的元素组合以包含在数据处理管线中,并提交图像处理请求。在至少一个实施例中,请求可以包括执行请求所必需的输入数据(以及在一些示例中与患者相关的数据),和/或可以包括对在处理请求时要执行的应用程序和/或机器学习模型的选择。在至少一个实施例中,然后可以将请求传递到部署系统1306的一个或更多个组件(例如,云),以执行数据处理管线的处理。在至少一个实施例中,由部署系统1306进行的处理可以包括引用从容器注册表和/或模型注册表1324中选择的元素(例如,应用程序、容器、模型等)。在至少一个实施例中,一旦通过管线生成结果,结果可返回给用户以供参考(例如,用于在本地、本地工作站或终端上执行的查看应用程序套件中进行查看)。
在至少一个实施例中,为了帮助处理或执行管线中的应用程序或容器,可以利用服务1320。在至少一个实施例中,服务1320可以包括计算服务、人工智能(AI)服务、可视化服务和/或其他服务类型。在至少一个实施例中,服务1320可以提供软件1318中的一个或更多个应用程序所共有的功能,因此可以将功能抽象为可以被应用程序调用或利用的服务。在至少一个实施例中,由服务1320提供的功能可以动态且更有效地运行,同时还可以通过允许应用程序并行地处理数据(例如,使用图12中的并行计算平台1230)来很好地缩放。在至少一个实施例中,不是要求共享服务1320提供的相同功能的每个应用程序都必须具有服务1320的相对应实例,而是可以在各种应用程序之间和之中共享服务1320。在至少一个实施例中,作为非限制性示例,服务可包括可用于执行检测或分割任务的推理服务器或引擎。在至少一个实施例中,可以包括模型训练服务,其可以提供机器学习模型训练和/或重新训练能力。在至少一个实施例中,可以进一步包括数据增强服务,其可以提供GPU加速的数据(例如,DICOM、RIS、CIS、符合REST、RPC、原始等)提取、调整大小、缩放和/或其他增强。在至少一个实施例中,可以使用可视化服务,其可以添加图像渲染效果(例如光线跟踪、光栅化、去噪、锐化等),以向二维(2D)和/或三维(3D)模型添加真实感。在至少一个实施例中,可以包括虚拟仪器服务,其为虚拟仪器的管线内的其他应用程序提供波束赋形、分割、推理、成像和/或支持。
在至少一个实施例中,在服务1320包括AI服务(例如,推理服务)的情况下,作为应用程序执行的一部分,可以通过调用(例如,作为API调用)推理服务(例如,推理服务器),以执行一个或更多个机器学习模型或其处理,来执行一个或更多个机器学习模型。在至少一个实施例中,在另一应用程序包括用于分割任务的一个或更多个机器学习模型的情况下,应用程序可以调用推理服务来执行机器学习模型,以用于执行与分割任务相关联的一个或更多个处理操作。在至少一个实施例中,实现高级处理和推理管线的软件1318,其包括分割应用程序和异常检测应用程序,可以被流水线化,因为每个应用程序可以调用相同的推理服务来执行一个或更多个推理任务。
在至少一个实施例中,硬件1322可包括GPU、CPU、图形卡、AI/深度学习系统(例如,AI超级计算机,诸如NVIDIA的DGX)、云平台或其组合。在至少一个实施例中,可以使用不同类型的硬件1322,以为部署系统1306中的软件1318和服务1320提供高效的、专门构建的支持。在至少一个实施例中,可以实现使用GPU处理来在AI/深度学习系统内、云系统中、和/或部署系统1306的其他处理组件中进行本地处理(例如,在设施1302处),以提高图像处理和生成的效率、准确性和效能。在至少一个实施例中,作为非限制性示例,关于深度学习、机器学习和/或高性能计算,可以针对GPU处理优化软件1318和/或服务1320。在至少一个实施例中,部署系统1306和/或训练系统1304的计算环境中的至少一些可以在具有GPU优化的软件(例如,NVIDIADGX系统的硬件和软件组合)的数据中心、一个或更多个超级计算机或高性能计算机系统中执行。在至少一个实施例中,如本文所述,硬件1322可包括任意数量的GPU,所述GPU可被调用以并行执行数据处理。在至少一个实施例中,云平台还可包括用于深度学习任务的GPU优化执行、机器学习任务或其他计算任务的GPU处理。在至少一个实施例中,可以使用AI/深度学习超级计算机和/或GPU优化的软件(例如,如在NVIDIA的DGX系统上提供的)作为硬件抽象和缩放平台,来执行云平台(例如,NVIDIA的NGC)。在至少一个实施例中,云平台可以在多个GPU上集成应用程序容器集群系统或协调系统(例如,KUBERNETES),以实现无缝缩放和负载均衡。
图14是根据至少一个实施例的用于生成和部署成像部署管线的示例系统1400的系统图。在至少一个实施例中,系统1400可以用于实现图13的过程1300和/或其他过程,包括高级处理和推理管线。在至少一个实施例中,系统1400可以包括训练系统1304和部署系统1306。在至少一个实施例中,可以使用软件1318、服务1320和/或硬件1322,来实现训练系统1304和部署系统1306,如本文所述。
在至少一个实施例中,系统1400(例如,训练系统1304和/或部署系统1306)可以在云计算环境中(例如,使用云1426)实现。在至少一个实施例中,系统1400可以在本地实现(关于医疗服务设施),或者作为云计算资源和本地计算资源的组合来实现。在至少一个实施例中,可以通过制定安全措施或协议,将对云1426中的API的访问权限限制为授权用户。在至少一个实施例中,安全协议可以包括网络令牌,其可以由认证(例如,AuthN、AuthZ、Gluecon等)服务签名,并且可以携带适当的授权。在至少一个实施例中,虚拟仪器的API(本文中描述)或系统1400的其他实例可以被限制为已被审核或授权用于交互的一组公共IP。
在至少一个实施例中,系统1400的各个组件可以使用多种不同网络类型中的任何一种在彼此之间进行通信,所述不同网络类型包括但不限于经由有线和/或无线通信协议的局域网(LAN)和/或广域网(WAN)。在至少一个实施例中,系统1400的设施和组件之间的通信(例如,用于发送推理请求、用于接收推理请求的结果等)可以通过一个或更多个数据总线、无线数据协议(Wi-Fi)、有线数据协议(例如以太网)等进行传送。
在至少一个实施例中,类似于本文关于图13所描述的,训练系统1304可以执行训练管线1404。在至少一个实施例中,其中部署系统1306将在部署管线1410中使用一个或更多个机器学习模型,训练管线1404可用于训练或重新训练一个或更多个(例如,预训练的)模型,和/或实现一个或更多个预训练模型1406(例如,无需重新训练或更新)。在至少一个实施例中,作为训练管线1404的结果,可以生成输出模型1316。在至少一个实施例中,训练管线1404可以包括任意数量的处理步骤,诸如但不限于成像数据(或其他输入数据)的转换或适配。在至少一个实施例中,对于由部署系统1306使用的不同的机器学习模型,可以使用不同的训练管线1404。在至少一个实施例中,类似于关于图13描述的第一示例的训练管线1404可用于第一机器学习模型,类似于关于图13描述的第二示例的训练管线1404可用于第二机器学习模型,类似于关于图13描述的第三示例的训练管线1404可用于第三机器学习模型。在至少一个实施例中,可以根据每个相对应机器学习模型的要求来使用训练系统1304内任务的任何组合。在至少一个实施例中,一个或更多个机器学习模型可能已经被训练并准备好用于部署,因此训练系统1304可能不会对机器学习模型进行任何处理,并且一个或更多个机器学习模型可以由部署系统1306来实现。
在至少一个实施例中,根据实现方式或实施例,输出模型1316和/或预训练模型1406可包括任何类型的机器学习模型。在至少一个实施例中并且不限于此,系统1400使用的机器学习模型可以包括使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k-最近邻(Knn)、k均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、递归、感知器、长/短期记忆(LSTM)、Hopfield、Boltzmann、深度信念、反卷积、生成对抗、液体状态机等),和/或其他类型的机器学习模型。
在至少一个实施例中,训练管线1404可以包括AI辅助注释,如本文关于至少图14更详细描述的。在至少一个实施例中,可以通过任何数量的技术来生成标记的临床数据1312(例如,传统注释)。在至少一个实施例中,在一些示例中可以在绘图程序(例如,注释程序)、计算机辅助设计(CAD)程序、标记程序、适用于生成地面实况的注释或标签的另一类型的应用程序中、和/或可以手绘,生成标签或其他注释。在至少一个实施例中,地面实况数据可以被合成产生(例如,从计算机模型或渲染生成)、真实产生(例如,从真实世界数据设计和生成)、机器自动产生(例如,使用特征分析和学习从数据中提取特征,然后生成标签)、人工注释(例如,标记器或注释专家,定义标签的位置)和/或其组合。在至少一个实施例中,对于成像数据1308(或机器学习模型使用的其他数据类型)的每个实例,可以存在由训练系统1304生成的相对应的地面实况数据。在至少一个实施例中,可以作为部署管线1410的一部分执行AI辅助注释;补充或代替训练管线1404中包括的AI辅助注释。在至少一个实施例中,系统1400可以包括多层平台,所述多层平台可以包括诊断应用程序(或其他应用程序类型)的软件层(例如软件1318),其可以执行一个或更多个医学成像和诊断功能。在至少一个实施例中,系统1400可以通信地耦合到(例如,经由加密链路)一个或更多个设施的PACS服务器网络。在至少一个实施例中,系统1400可被配置为从PACS服务器访问和引用数据,以执行操作,例如训练机器学习模型、部署机器学习模型、图像处理、推理和/或其他操作。
在至少一个实施例中,软件层可以被实现为安全的、加密的和/或经认证的API,通过所述API可以从外部环境(例如,设施1302)援引(invoke)(例如,调用(call))应用程序或容器。在至少一个实施例中,应用程序随后可以调用或执行一个或更多个服务1320,以执行与各自的应用程序相关联的计算、AI或可视化任务,并且软件1318和/或服务1320可以利用硬件1322以有效和高效的方式执行处理任务。
在至少一个实施例中,部署系统1306可以执行部署管线1410。在至少一个实施例中,部署管线1410可以包括任意数量的应用程序,所述应用程序可以是顺序的、非顺序的,或者以其他方式应用于成像数据(和/或其他数据类型)-包括AI辅助注释,所述成像数据由成像设备、测序设备、基因组学设备等生成,如上所述。在至少一个实施例中,如本文所述,用于个体设备的部署管线1410可以被称为用于设备的虚拟仪器(例如,虚拟超声仪器、虚拟CT扫描仪器、虚拟测序仪器等)。在至少一个实施例中,对于单个设备,可以存在不止一个部署管线1410,这取决于从设备生成的数据所期望的信息。在至少一个实施例中,在期望从MRI机器检测到异常的情况下,可以存在第一部署管线1410,并且在期望从MRI机器的输出进行图像增强的情况下,可以存在第二部署管线1410。
在至少一个实施例中,图像生成应用程序可以包括包括使用机器学习模型的处理任务。在至少一个实施例中,用户可能希望使用他们自己的机器学习模型,或者从模型注册表1324中选择机器学习模型。在至少一个实施例中,用户可以实现他们自己的机器学习模型或选择机器学习模型,以包含在执行处理任务的应用程序中。在至少一个实施例中,应用程序可以是可选择的和可定制的,并且通过定义应用程序的构造,针对特定用户的应用程序的部署和实现被呈现为更加无缝的用户体验。在至少一个实施例中,通过利用系统1400的其他特征(例如服务1320和硬件1322),部署管线1410可以更加用户友好,提供更容易的集成,并且产生更准确、高效和及时的结果。
在至少一个实施例中,部署系统1306可以包括用户接口1413(例如,图形用户接口、Web接口等),所述用户接口可以被用于选择要包括在部署管线1410中的应用程序、布置应用程序、修改或改变应用程序或其参数或构造、在设置和/或部署期间使用部署管线1410以及与其交互,和/或以其他方式与部署系统1306交互。在至少一个实施例中,尽管没有关于训练系统1304示出,但是用户接口1414(或不同的用户接口)可用于选择在部署系统1306中使用的模型、用于选择用于在训练系统1304中训练或重新训练的模型,和/或用于以其他方式与训练系统1304交互。
在至少一个实施例中,除了应用程序协调系统1428之外,还可以使用管线管理器1412来管理部署管线1410的应用程序或容器与服务1320和/或硬件1322之间的交互。在至少一个实施例中,管线管理器1412可以被配置为促进从应用程序到应用程序、从应用程序到服务1320,和/或从应用程序或服务到硬件1322的交互。在至少一个实施例中,尽管示出为包括在软件1318中,这并不旨在进行限制,并且在一些示例中,管线管理器1412可以被包括在服务1320中。在至少一个实施例中,应用程序协调系统1428(例如,Kubernetes、DOCKER等)可以包括容器协调系统,其可以将应用程序分组到容器中,作为用于协调、管理、缩放和部署的逻辑单元。在至少一个实施例中,通过将来自部署管线1410的应用程序(例如,重建应用程序、分割应用程序等)与各个容器相关联,每个应用程序可以在自包含的环境(例如,在内核级)中执行,以提高速度和效率。
在至少一个实施例中,每个应用程序和/或容器(或其映像)可以被单独开发、修改和部署(例如,第一用户或开发者可以开发、修改和部署第一应用程序,第二用户或开发者可以开发、修改和部署与第一用户或开发者分开的第二应用程序),这可以允许专注并关注单个应用程序和/或容器的任务,而不受另一个应用程序或容器的任务的阻碍。在至少一个实施例中,管线管理器1412和应用程序协调系统1428可以辅助不同容器或应用程序之间的通信和协作。在至少一个实施例中,只要每个容器或应用程序的预期输入和/或输出是系统已知的(例如,基于应用程序或容器的构造),则应用程序协调系统1428和/或管线管理器1412可以促进每个应用程序或容器之间和之中的通信以及资源的共享。在至少一个实施例中,由于部署管线1410中的一个或更多个应用程序或容器可以共享相同的服务和资源,因此应用程序协调系统1428可以在各个应用程序或容器之间和之中进行协调、负载均衡,并确定服务或资源的共享。在至少一个实施例中,调度器可用于跟踪应用程序或容器的资源需求、这些资源的当前使用或计划使用,以及资源可用性。因此,在至少一个实施例中,考虑到系统的需求和可用性,调度器可以将资源分配给不同的应用程序,并在应用程序之间和之中分配资源。在一些示例中,调度器(和/或应用程序协调系统1428的其他组件)可以基于施加在系统上的约束(例如,用户约束)来确定资源可用性和分布,例如服务质量(QoS)、对数据输出的迫切需求(例如,以确定是执行实时处理还是延迟处理)等。
在至少一个实施例中,由部署系统1306中的应用程序或容器利用并由其共享的服务1320,可以包括计算服务1416、AI服务1418、可视化服务1420和/或其他服务类型。在至少一个实施例中,应用程序可以调用(例如,执行)一个或更多个服务1320,以执行针对应用程序的处理操作。在至少一个实施例中,应用程序可以利用计算服务1416来执行超级计算或其他高性能计算(HPC)任务。在至少一个实施例中,可以利用一个或更多个计算服务1416来执行并行处理(例如,使用并行计算平台1430),以通过一个或更多个应用程序和/或单个应用程序的一个或更多个任务基本上同时地处理数据。在至少一个实施例中,并行计算平台1430(例如,NVIDIA的CUDA)可以在GPU(GPGPU)(例如,GPU1422)上实现通用计算。在至少一个实施例中,并行计算平台1430的软件层可以提供对GPU的虚拟指令集和并行计算元素的访问,以执行计算内核。在至少一个实施例中,并行计算平台1430可以包括存储器,并且在一些实施例中,可以在多个容器之间和之中,和/或在单个容器内的不同处理任务之间和之中共享存储器。在至少一个实施例中,可以为多个容器和/或容器内的多个进程生成进程间通信(IPC)调用,以使用于自并行计算平台1430的共享存储器段的相同数据(例如,其中一应用程序或更多个应用程序的多个不同阶段正在处理相同的信息)。在至少一个实施例中,不是复制数据并将数据移动到存储器中的不同位置(例如,读/写操作),而是可以将存储器相同位置中的相同数据用于任何数量的处理任务(例如,在同一时间、不同时间等)。在至少一个实施例中,由于作为处理的结果数据被用于生成新数据,因此数据的新位置的该信息可以在各个应用程序之间存储和共享。在至少一个实施例中,数据的位置以及经更新或修改的数据的位置可以是如何理解容器中的有效负载的定义的一部分。
在至少一个实施例中,可以利用AI服务1418来执行推理服务,该推理服务用于执行与应用程序相关联的机器学习模型(例如,任务为执行应用程序的一个或更多个处理任务)。在至少一个实施例中,AI服务1418可以利用AI系统1424来执行机器学习模型(例如,诸如CNN之类的神经网络)以用于分割、重建、对象检测、特征检测、分类和/或其他推理任务。在至少一个实施例中,部署管线1410的应用程序可以使用于自训练系统1304的一个或更多个输出模型1316和/或应用程序的其他模型,来对成像数据执行推理。在至少一个实施例中,使用应用程序协调系统1428(例如,调度器)进行推理的两个或更多个示例可以是可用的。在至少一个实施例中,第一类别可以包括高优先级/低延时路径,其可以实现更高服务水平协议,例如用于在紧急情况下对紧急请求执行推理,或者在诊断过程中用于放射科医生。在至少一个实施例中,第二类别可以包括标准优先级路径,其可用于可能不紧急的请求或者可以在稍后的时间执行分析的情况。在至少一个实施例中,应用程序协调系统1428可以基于优先级路径来分配资源(例如,服务1320和/或硬件1322),以用于AI服务1418的不同推理任务。
在至少一个实施例中,共享存储器可以被安装到系统1400中的AI服务1418。在至少一个实施例中,共享存储器可以操作为高速缓存(或其他存储设备类型),并且可以用于处理来自应用程序的推理请求。在至少一个实施例中,当提交推理请求时,部署系统1306的一组API实例可以接收请求,并且可以选择一个或更多个实例(例如,为了最佳拟合、为了负载均衡等)来处理请求。在至少一个实施例中,为了处理请求,可以将请求输入到数据库中,如果尚未在高速缓存中,则可以从模型注册表1324定位机器学习模型,验证步骤可以确保将适当的机器学习模型加载到高速缓存中(例如,共享存储),和/或可以将模型的副本保存到高速缓存中。在至少一个实施例中,如果应用程序尚未运行或没有足够的应用程序的实例,则可使用调度器(例如,管线管理器1412的调度器)来启动在请求中引用的应用程序。在至少一个实施例中,如果尚未启动推理服务器来执行模型,则可以启动推理服务器。每个模型可以启动任意数量的推理服务器。在至少一个实施例中,在将推理服务器聚类的拉(pull)模型中,每当负载均衡有利时,就可以将模型高速缓存。在至少一个实施例中,推理服务器可以静态加载到相应的分布式服务器中。
在至少一个实施例中,可以使用在容器中运行的推理服务器来执行推理。在至少一个实施例中,推理服务器的实例可以与模型(并且可选地与模型的多个版本)相关联。在至少一个实施例中,如果在接收到对模型执行推理的请求时推理服务器的实例不存在,则可以加载新实例。在至少一个实施例中,当启动推理服务器时,可以将模型传递到推理服务器,使得可以使用相同的容器来服务不同的模型,只要推理服务器作为不同的实例运行即可。
在至少一个实施例中,在应用程序执行期间,可以接收对给定应用程序的推理请求,并且可以加载(如果尚未加载的话)容器(例如,托管推理服务器的实例),以及可以调用启动程序。在至少一个实施例中,容器中的预处理逻辑可以(例如,使用CPU和/或GPU)对传入的数据进行加载、解码和/或执行任何附加的预处理。在至少一个实施例中,一旦数据准备好进行推理,容器就可以根据需要对数据进行推理。在至少一个实施例中,这可以包括对一个图像(例如,手部X光线)的单个推理调用,或可要求对数百个图像(例如,胸部CT)进行推理。在至少一个实施例中,应用程序可在完成之前总结结果,其可以包括但不限于单个置信度得分、像素级分割、体素级分割、生成可视化或生成文本以总结结果。在至少一个实施例中,可以为不同的模型或应用程序分配不同的优先级。例如,一些模型可具有实时(TAT小于1分钟)优先级,而其他模型可具有较低的优先级(例如,TAT小于10分钟)。在至少一个实施例中,模型执行时间可以从请求机构或实体进行测量,并且可以包括合作网络遍历时间以及推理服务的执行时间。
在至少一个实施例中,请求在服务1320和推理应用程序之间的传送可以隐藏在软件开发工具包(SDK)后面,并且可以通过队列提供鲁棒的传输。在至少一个实施例中,将通过API将请求放置在队列中,以用于个体应用程序/租户ID组合,并且SDK将从队列中拉取请求并将请求提供给应用程序。在至少一个实施例中,在SDK将从中拾取队列的环境中,可以提供队列的名称。在至少一个实施例中,通过队列的异步通信可能有用,因为它可以允许应用程序的任何实例在其可用时拾取工作。可以通过队列将结果传送回去,以确保没有数据丢失。在至少一个实施例中,队列还可以提供对工作进行分割的能力,因为最高优先级的工作可以进入与应用程序的大多数实例连接的队列,而最低优先级的工作可以进入与单个实例连接的队列,所述实例按照接收到的顺序处理任务。在至少一个实施例中,应用程序可以在GPU加速的实例上运行,所述实例在云1426中生成,并且推理服务可以在GPU上执行推理。
在至少一个实施例中,可以利用可视化服务1420来生成用于查看应用程序和/或部署管线1410输出的可视化。在至少一个实施例中,可视化服务1420可以利用GPU1422来生成可视化。在至少一个实施例中,可视化服务1420可以实现诸如光线追踪之类的渲染效果,以生成更高质量的可视化。在至少一个实施例中,可视化可以包括但不限于2D图像渲染、3D体渲染、3D体重建、2D层析切片、虚拟现实显示、增强现实显示等。在至少一个实施例中,可以使用虚拟化环境来生成虚拟交互显示或环境(例如,虚拟环境),以供系统用户(例如,医生、护士、放射科医生等)进行交互。在至少一个实施例中,可视化服务1420可以包括内部可视化器、电影和/或其他渲染或图像处理能力或功能(例如,光线追踪、光栅化、内部光学器件等)。
在至少一个实施例中,硬件1322可以包括GPU 1422、AI系统1424、云1426和/或用于执行训练系统1304和/或部署系统1306的任何其他硬件。在至少一个实施例中,GPU 1422(例如,NVIDIA的TESLA和/或QUADRO GPU)可包括可用于执行计算服务1416、AI服务1418、可视化服务1420、其他服务和/或软件1318的任何特征或功能的处理任务的任意数量的GPU。例如,对于AI服务1418,GPU 1422可用于对成像数据(或机器学习模型使用的其他数据类型)执行预处理,对机器学习模型的输出执行后处理和/或执行推理(例如以执行机器学习模型)。在至少一个实施例中,云1426、AI系统1424和/或系统1400的其他组件可以使用GPU1422。在至少一个实施例中,云1426可以包括用于深度学习任务的GPU优化的平台。在至少一个实施例中,AI系统1424可以使用GPU,并且可以使用一个或更多个AI系统1424来执行云1426(或者任务为深度学习或推理的至少部分)。同样,尽管硬件1322被示出为离散组件,但这并不意图是限制,并且硬件1322的任何组件可以与硬件1322的任何其他组件组合,或由硬件1322的任何其他组件利用。
在至少一个实施例中,AI系统1424可包括专门构建的计算系统(例如,超级计算机或HPC),该计算系统配置用于推理、深度学习、机器学习和/或其他人工智能任务。在至少一个实施例中,除了CPU、RAM、存储器和/或其他组件、特征或功能之外,AI系统1424(例如,NVIDIA的DGX)还可以包括可以使用多个GPU1422来执行分GPU优化的软件(例如,软件栈)。在至少一个实施例中,可以在云1426中(例如,在数据中心中)实现一个或更多个AI系统1424,以执行系统1400的一些或全部基于AI的处理任务。
在至少一个实施例中,云1426可以包括GPU加速的基础设施(例如,NVIDIA的NGC),其可以提供用于执行系统1400的处理任务的GPU优化的平台。在至少一个实施例中,云1426可以包括AI系统1424,其用于执行系统1400的一个或更多个基于AI的任务(例如,作为硬件抽象和缩放平台)。在至少一个实施例中,云1426可以与利用多个GPU的应用程序协调系统1428集成,以实现应用程序和服务1320之间和之中的无缝缩放和负载均衡。在至少一个实施例中,如本文所述,云1426可以负责执行系统1400的至少一些服务1320,包括计算服务1416、AI服务1418和/或可视化服务1420。在至少一个实施例中,云1426可以执行大小批的推理(例如,执行NVIDIA的TENSORRT),提供加速的并行计算API和平台1430(例如,NVIDIA的CUDA),执行应用程序协调系统1428(例如,KUBERNETES),提供图形渲染API和平台(例如,用于光线跟踪,2D图形、3D图形和/或其他渲染技术以产生更高质量的电影效果),和/或可以为系统1400提供其他功能。
图15A示出了根据至少一个实施例的用于训练、重新训练或更新机器学习模型的过程1500的数据流图。在至少一个实施例中,可以使用作为非限制性示例的图15的系统1500来执行过程1500。在至少一个实施例中,过程1500可以利用服务和/或硬件,如本文所述。在至少一个实施例中,由过程1500生成的精炼模型1512可以由部署系统针对部署管线中的一个或更多个容器化的应用程序执行。
在至少一个实施例中,模型训练1514可包括使用新的训练数据(例如,新的输入数据(诸如客户数据集1506),和/或与输入数据相关联的新的地面实况数据)重新训练或更新初始模型1504(例如,预训练模型)。在至少一个实施例中,为了重新训练或更新初始模型1504,可以重置或删除初始模型1504的输出或损失层,和/或用更新的或新的输出或损失层代替。在至少一个实施例中,初始模型1504可以具有从先前的训练中保留下来的先前精细调整的参数(例如,权重和/或偏差),因此训练或重新训练1514可能不需要花费与从头开始训练模型一样长的时间或不需要那么多的处理。在至少一个实施例中,在模型训练1514期间,通过重置或替换初始模型1504的输出或损失层,在新的客户数据集1506上生成预测时,可以基于与输出或损失层的精度相关联的损失计算,更新和重新调整新数据集的参数。
在至少一个实施例中,可以将经预训练的模型1506存储在数据存储或注册表中。在至少一个实施例中,经预训练的模型1506可能已经至少部分地在除了执行过程1500的设施之外的一个或更多个设施处被训练。在至少一个实施例中,为了保护患者、受试者或不同设施的客户的隐私和权利,经预训练的模型1506可能已经使用本地生成的客户或患者数据在本地进行了训练。在至少一个实施例中,可以使用云和/或其他硬件来训练经预训练的模型1306,但是机密的、受隐私保护的患者数据可以不被传送到云的任何组件(或其他非本地硬件)、由其使用或由其访问。在至少一个实施例中,如果使用于自不止一个设施的患者数据来训练经预训练的模型1506,则在来自另一设施的患者或客户数据上进行训练之前,经预训练的模型1506可能已经针对每个设施进行了单独训练。在至少一个实施例中,例如在客户或患者数据已发布隐私问题(例如,通过放弃,用于实验用途等),或者其中客户或患者数据包括在公共数据集中的情况下,来自任意数量的设施的客户或患者数据可以用于在本地和/或外部训练经预训练的模型1506,例如在数据中心中或其他云计算基础设施中。
在至少一个实施例中,在选择应用程序以在部署管线中使用时,用户还可以选择用于特定应用程序的机器学习模型。在至少一个实施例中,用户可能没有模型以使用,因此用户可以选择要与应用程序一起使用的经预训练的模型。在至少一个实施例中,经预训练的模型可能没有被优化用于在用户设施的客户数据集1506上生成准确的结果(例如,基于患者多样性、人口统计、所使用的医学成像设备的类型等)。在至少一个实施例中,在将经预训练的模型部署到部署管线中以与一个或更多个应用程序一起使用之前,经预训练的模型可以被更新、重新训练和/或微调,以用于在各个设施处使用。
在至少一个实施例中,用户可以选择要更新、重新训练和/或微调的经预训练的模型,并且该经预训练的模型可以称为过程1500中训练系统的初始模型1504。在至少一个实施例中,客户数据集1506(例如,成像数据、基因组数据、测序数据或由设施处的设备生成的其他数据类型)可用于对初始模型1504执行模型训练(其可包括但不限于传递学习),以生成精炼模型1512。在至少一个实施例中,可以由训练系统1304生成与客户数据集1506相对应的地面实况数据。在至少一个实施例中,可以至少部分地由临床医生、科学家、医生、从业者在设施处生成地面实况数据。
在至少一个实施例中,在一些示例中可以使用AI辅助注释来生成地面实况数据。在至少一个实施例中,AI辅助注释(例如,使用AI辅助注释SDK实现)可以利用机器学习模型(例如,神经网络)来生成用于客户数据集的建议或预测的地面实况数据。在至少一个实施例中,用户可以在计算设备上的用户界面(图形用户界面(GUI))内使用注释工具。
在至少一个实施例中,用户1510可以经由计算设备1508与GUI交互,以编辑或微调注释或自动注释。在至少一个实施例中,多边形编辑特征可以用于将多边形的顶点移动到更精确或微调的位置。
在至少一个实施例中,一旦客户数据集1506具有相关联的地面实况数据,则地面实况数据(例如,来自AI辅助注释、手动标记等)可以在模型训练期间用于生成精炼模型1512。在至少一个实施例中,客户数据集1506可以被应用到初始模型1504任意次数,并且地面实况数据可以用于更新初始模型1504的参数,直到对于精炼模型1512达到可接受的精度水平为止。在至少一个实施例中,一旦生成精炼模型1512,就可以在设施处的一个或更多个部署管线内部署精炼模型1512,以用于执行关于医学成像数据的一个或更多个处理任务。
在至少一个实施例中,可以将精炼模型1512上传到模型注册表中的经预训练的模型,以由另一个设施选择。在至少一个实施例中,他的过程可以在任意数量的设施处完成,使得可以在新数据集上对精炼模型1512进一步精炼任意次数,以生成更通用的模型。
图15B是根据至少一个实施例的用于利用经预训练的注释模型来增强注释工具的客户端-服务器架构1532的示例图示。在至少一个实施例中,可以基于客户端-服务器架构1532来实例化AI辅助注释工具1536。在至少一个实施例中,成像应用程序中的注释工具1536可以帮助放光线医生,例如识别器官和异常。在至少一个实施例中,成像应用程序可以包括软件工具,作为非限制性示例,所述软件工具帮助用户1510识别原始图像1534中(例如,在3DMRI或CT扫描中)的特定感兴趣器官上的几个极值点,并接收特定器官的所有2D切片的自动注释结果。在至少一个实施例中,结果可以作为训练数据1538存储在数据存储中,并且用作(例如但不限于)用于训练的地面实况数据。在至少一个实施例中,当计算设备1508发送用于AI辅助注释的极值点时,例如,深度学习模型可以接收该数据作为输入并返回分割器官或异常的推理结果。在至少一个实施例中,预实例化的注释工具(例如图15B中的AI辅助注释工具1536B)可以通过对服务器(诸如注释助手服务器1540)进行API调用(例如API调用1544)来增强,注释助手服务器1540可包括存储在例如注释模型注册表中的一组经预训练的模型1542。在至少一个实施例中,注释模型注册表可以存储经预训练的模型1542(例如,机器学习模型,诸如深度学习模型),其被预训练以对特定器官或异常执行AI辅助注释。在至少一个实施例中,可以通过使用训练管线来进一步更新这些模型。在至少一个实施例中,随着添加新标记的数据,可以随时间改进预安装的注释工具。
各种实施例可由以下条款描述:
1.一种计算机实现的方法,包括:
获得第一对象的三维3D表示;
生成与所述3D表示相对应的一个或更多个特征编码;
将所述3D表示的坐标映射到二维2D纹理空间;
部分地基于所述2D纹理空间中的映射坐标和所述一个或更多个特征编码,生成与所述第一对象的输入3D表示相对应的2D纹理图像;以及
使所述2D纹理图像变形以与第二对象的3D几何相对应。
2.根据条款1所述的计算机实现的方法,其中所述第一对象的所述3D表示是包括具有颜色数据的点的点云。
3.根据条款1所述的计算机实现的方法,其中所述一个或更多个特征编码包括与所述第一对象的第一部分相对应的第一纹理特征向量、与所述第一对象的第二部分相对应的第二纹理特征向量以及由编码器网络生成的形状代码向量,所述编码器网络至少接收所述第一对象的所述3D表示作为输入。
4.根据条款3所述的计算机实现的方法,进一步包括:
将所述2D纹理空间中的所述映射坐标作为输入提供给第一基础生成器网络以生成第一纹理基础,以及提供给第二基础生成器网络以生成第二纹理基础。
5.根据条款4所述的计算机实现的方法,进一步包括:
使用部分地基于所述第一纹理基础和所述第一纹理特征向量确定的点颜色数据来生成第一纹理图像;以及
使用部分地基于所述第二纹理基础和所述第二纹理特征向量确定的点云颜色数据来生成第二纹理图像。
6.根据条款5所述的计算机实现的方法,进一步包括:
分割所述第一对象的所述3D表示的表面点,以生成与所述第一对象的所述第一部分相对应的第一掩模和与所述第一对象的所述第二部分相对应的第二掩模;以及
将所述第一掩模和所述第二掩模与所述第一纹理图像和所述第二纹理图像一起使用,以生成所述第二对象的坐标的颜色值的掩蔽组合。
7.根据条款1所述的计算机实现的方法,其中在由编码网络生成所述一个或更多个特征编码之前,将所述第一对象的所述3D表示分割成多个体素。
8.根据条款1所述的计算机实现的方法,其中所述目标对象是与所述第一对象不同的对象,或者是处于不同姿势或状态的所述第一对象。
9.根据条款1所述的计算机实现的方法,其中与所述第一对象相对应的所述一个或更多个特征编码包括所述对象的语义信息。
10.一种处理器,包括:
一个或更多个电路,用于:
获得第一对象的三维3D表示;
生成与所述3D表示相对应的一个或更多个特征编码;
将所述3D表示的坐标映射到二维2D纹理空间;
部分地基于所述2D纹理空间中的映射坐标和所述一个或更多个特征编码,生成与所述第一对象的输入3D表示相对应的2D纹理图像;以及
使所述2D纹理图像变形以与第二对象的3D几何相对应。
11.根据条款10所述的处理器,其中所述一个或更多个特征编码包括与所述第一对象的第一部分相对应的第一纹理特征向量、与所述第一对象的第二部分相对应的第二纹理特征向量以及由编码器网络生成的形状代码向量,所述编码器网络至少接收所述第一对象的所述3D表示作为输入。
12.根据条款11所述的处理器,其中所述一个或更多个电路用于进一步执行以下操作:
将所述2D纹理空间中的所述映射坐标作为输入提供给第一基础生成器网络以生成第一纹理基础,以及提供给第二基础生成器网络以生成第二纹理基础。
13.根据条款12所述的处理器,其中所述一个或更多个电路用于进一步执行以下操作:
使用部分地基于所述第一纹理基础和所述第一纹理特征向量确定的点颜色数据来生成第一纹理图像;以及
使用部分地基于所述第二纹理基础和所述第二纹理特征向量确定的点云颜色数据来生成第二纹理图像。
14.根据条款13所述的处理器,其中所述一个或更多个电路用于进一步执行以下操作:
分割所述第一对象的所述3D表示的表面点,以生成与所述第一对象的所述第一部分相对应的第一掩模和与所述第一对象的所述第二部分相对应的第二掩模;以及
将所述第一掩模和所述第二掩模与所述第一纹理图像和所述第二纹理图像一起使用,以生成所述第二对象的坐标的颜色值的掩蔽组合。
15.根据条款10所述的处理器,其中所述处理器被包括在以下的至少一个中:
用于执行模拟操作的系统;
用于执行模拟操作以测试或验证自主机器应用的系统;
用于执行数字孪生操作的系统;
用于执行光传输模拟的系统;
用于渲染图形输出的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
用于生成或呈现虚拟现实VR内容的系统;
用于生成或呈现增强现实AR内容的系统;
用于生成或呈现混合现实MR内容的系统;
包含一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;
用于使用模拟执行硬件测试的系统;
用于合成数据生成的系统;
用于3D资产的协作内容创建平台;或
至少部分地使用云计算资源实现的系统。
16.一种系统,包括:
一个或更多个处理器,用于使用神经网络来使第一对象的至少一个2D纹理图像变形以与第二对象的3D几何相对应,所述一个或更多个处理器进一步用于部分地基于2D纹理空间中的所述第一对象的3D表示的映射坐标和从所述3D表示提取的一个或更多个特征编码来生成所述至少一个2D纹理图像。
17.根据条款16所述的系统,其中所述一个或更多个特征编码包括与所述第一对象的第一部分相对应的第一纹理特征向量、与所述第一对象的第二部分相对应的第二纹理特征向量以及由编码器网络生成的形状代码向量,所述编码器网络至少接收所述第一对象的所述3D表示作为输入。
18.根据条款17所述的系统,其中所述一个或更多个处理器还用于:
将所述2D纹理空间中的所述映射坐标作为输入提供给第一基础生成器网络以生成第一纹理基础,以及提供给第二基础生成器网络以生成第二纹理基础。
19.根据条款18所述的系统,其中所述一个或更多个处理器还用于:
使用部分地基于所述第一纹理基础和所述第一纹理特征向量确定的点颜色数据来生成第一纹理图像;以及
使用部分地基于所述第二纹理基础和所述第二纹理特征向量确定的点云颜色数据来生成第二纹理图像。
20.根据条款16所述的系统,其中所述系统包括以下中的至少一个:
用于执行模拟操作的系统;
用于执行模拟操作以测试或验证自主机器应用的系统;
用于执行数字孪生操作的系统;
用于执行光传输模拟的系统;
用于渲染图形输出的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
用于生成或呈现虚拟现实VR内容的系统;
用于生成或呈现增强现实AR内容的系统;
用于生成或呈现混合现实MR内容的系统;
包含一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;
用于使用模拟执行硬件测试的系统;
用于合成数据生成的系统;
用于3D资产的协作内容创建平台;或
至少部分地使用云计算资源实现的系统。
其他变型在本公开的精神内。因此,尽管公开的技术易于进行各种修改和替代构造,但是某些示出的其实施例在附图中示出并且已经在上面进行了详细描述。然而,应理解,无意将公开内容限制为所公开的一种或更多种特定形式,而是相反,其意图是涵盖落入如所附权利要求书所定义的本公开内容的精神和范围内的所有修改、替代构造和等同物。
除非另有说明或显然与上下文矛盾,否则在描述所公开的实施例的上下文中(特别是在所附权利要求的上下文中),术语“一”和“一个”和“该”以及类似指代的使用应被解释为涵盖单数和复数,而不是作为术语的定义。除非另有说明,否则术语“包括”、“具有”、“包含”和“含有”应被解释为开放式术语(意味着“包括但不限于”)。术语“连接”(在未经修改时指的是物理连接)应解释为部分或全部包含在内、附接到或连接在一起,即使有某些介入。除非本文另外指出,否则本文中对数值范围的引用仅旨在用作分别指代落入该范围内的每个单独值的简写方法,并且每个单独值都被并入说明书中,就如同其在本文中被单独叙述一样。除非另外指出或与上下文矛盾,否则术语“集”(例如“项目集”)或“子集”的使用应解释为包括一个或更多个成员的非空集合。此外,除非另外指出或与上下文矛盾,否则术语相对应集的“子集”不一定表示对应集的适当子集,而是子集和对应集可以相等。
除非以其他方式明确指出或与上下文明显矛盾,否则诸如“A,B和C中的至少一个”或“A,B与C中的至少一个”形式的短语之类的连接语在上下文中理解为通常用于表示项目、条款等,其可以是A或B或C,也可以是A和B和C集的任何非空子集。例如,在具有三个成员的集的说明性示例中,连接短语“A,B和C中的至少一个”和“A,B与C中的至少一个”是指以下任意集:{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C}。因此,这种连接语言通常不旨在暗示某些实施例要求存在A中的至少一个,B中的至少一个和C中的至少一个。另外,除非另有说明或与上下文矛盾,否则术语“多个”表示复数的状态(例如,“多个项目”表示多个项目)。多个项目中项目的数量至少为两个,但如果明确指示或通过上下文指示,则可以更多。此外,除非另有说明或从上下文中可以清楚得知,否则短语“基于”是指“至少部分基于”而不是“仅基于”。
除非本文另外指出或与上下文明显矛盾,否则本文描述的过程的操作可以任何合适的顺序执行。在至少一个实施例中,诸如本文所述的那些过程(或其变形和/或其组合)之类的过程在配置有可执行指令的一个或更多个计算机系统的控制下执行,并且被实现为代码(例如,可执行指令,一个或更多个计算机程序或一个或更多个应用程序),该代码通过硬件或其组合在一个或更多个处理器上共同执行。在至少一个实施例中,代码以例如计算机程序的形式存储在计算机可读存储介质上,该计算机程序包括可由一个或更多个处理器执行的多个指令。在至少一个实施例中,计算机可读存储介质是非暂时性计算机可读存储介质,其排除了暂时性信号(例如,传播的瞬态电或电磁传输),但包括非暂时性数据存储电路(例如,缓冲区、高速缓存和队列)。在至少一个实施例中,代码(例如,可执行代码或源代码)被存储在其上存储有可执行指令的一组一个或更多个非暂时性计算机可读存储介质(或用于存储可执行指令的其他存储器)上,该可执行指令在由计算机系统的一个或更多个处理器执行时(即,作为被执行的结果),使得计算机系统执行本文所述的操作。在至少一个实施例中,一组非暂时性计算机可读存储介质包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的个体非暂时性存储介质中的一个或更多个缺少全部代码,而是多个非暂时性计算机可读存储介质共同存储全部代码。在至少一个实施例中,可执行指令被执行,以使得不同的指令由不同的处理器执行,例如,非暂时性计算机可读存储介质存储指令,并且主中央处理单元(“CPU”)执行一些指令,而图形处理单元(“GPU”)执行其他指令。在至少一个实施例中,计算机系统的不同组件具有单独的处理器,并且不同的处理器执行指令的不同子集。
因此,在至少一个实施例中,计算机系统被配置为实现单独地或共同地执行本文所述的过程的操作的一个或更多个服务,并且这样的计算机系统被配置有使能实施操作的适用的硬件和/或软件。此外,实现本公开的至少一个实施例的计算机系统是单个设备,并且在另一实施例中是分布式计算机系统,其包括以不同方式操作的多个设备,使得分布式计算机系统执行本文所述的操作,并且使得单个设备不执行所有操作。
本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例,并且不对公开的范围构成限制,除非另有要求。说明书中的任何语言都不应被解释为表示任何未要求保护的要素对于实践公开内容是必不可少的。
本文引用的所有参考文献,包括出版物、专利申请和专利,均通过引用并入本文,其程度就如同每个参考文献被单独且具体地指示为以引用的方式并入本文并且其全部内容在本文中阐述一样。
在说明书和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解,这些术语可能不旨在作为彼此的同义词。相反,在特定示例中,“连接”或“耦合”可用于指示两个或更多个元件彼此直接或间接物理或电接触。“耦合”也可能意味着两个或更多个元素彼此不直接接触,但仍彼此协作或交互。
除非另有明确说明,否则可以理解,在整个说明书中,诸如“处理”、“计算”、“计算”、“确定”等之类的术语,是指计算机或计算系统或类似的电子计算设备的动作和/或过程,其将计算系统的寄存器和/或存储器中表示为物理量(例如电子)的数据处理和/或转换为类似表示为计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据。
以类似的方式,术语“处理器”可以指处理来自寄存器和/或存储器的电子数据并将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据的任何设备或存储器的一部分。作为非限制性示例,“处理器”可以是CPU或GPU。“计算平台”可以包括一个或更多个处理器。如本文所使用的,“软件”进程可以包括例如随时间执行工作的软件和/或硬件实体,诸如任务、线程和智能代理。同样,每个过程可以指代多个过程,以连续地或间歇地顺序地或并行地执行指令。术语“系统”和“方法”在本文中可以互换使用,只要系统可以体现一种或更多种方法,并且方法可以被认为是系统。
在本文件中,可以参考获得、获取、接收或将模拟或数字数据输入子系统、计算机系统或计算机实现的机器中。可以通过多种方式来获得、获取、接收或输入模拟和数字数据,例如通过接收作为函数调用或对应用程序编程接口的调用的参数的数据。在一些实现方式中,可以通过经由串行或并行接口传输数据来完成获得、获取、接收或输入模拟或数字数据的过程。在另一实现方式中,可以通过经由计算机网络将数据从提供实体传输到获取实体来完成获得、获取、接收或输入模拟或数字数据的过程。也可以参考提供、输出、传送、发送或呈现模拟或数字数据。在各种示例中,提供、输出、传送、发送或呈现模拟或数字数据的过程可以通过将数据作为函数调用的输入或输出参数、应用程序编程接口或进程间通信机制的参数进行传输来实现。
尽管上面的讨论阐述了所描述的技术的示例实现,但是其他架构可以用于实现所描述的功能,并且旨在落入本公开的范围内。此外,尽管出于讨论的目的在上面定义了具体的职责分配,但是根据情况,可以以不同的方式分配和划分各种功能和职责。
此外,尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求书所要求保护的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现权利要求的示例性形式。
Claims (20)
1.一种计算机实现的方法,包括:
获得第一对象的三维3D表示;
生成与所述3D表示相对应的一个或更多个特征编码;
将所述3D表示的坐标映射到二维2D纹理空间;
部分地基于所述2D纹理空间中的映射坐标和所述一个或更多个特征编码,生成与所述第一对象的输入3D表示相对应的2D纹理图像;以及
使所述2D纹理图像变形以与第二对象的3D几何相对应。
2.根据权利要求1所述的计算机实现的方法,其中所述第一对象的所述3D表示是包括具有颜色数据的点的点云。
3.根据权利要求1所述的计算机实现的方法,其中所述一个或更多个特征编码包括与所述第一对象的第一部分相对应的第一纹理特征向量、与所述第一对象的第二部分相对应的第二纹理特征向量以及由编码器网络生成的形状代码向量,所述编码器网络至少接收所述第一对象的所述3D表示作为输入。
4.根据权利要求3所述的计算机实现的方法,进一步包括:
将所述2D纹理空间中的所述映射坐标作为输入提供给第一基础生成器网络以生成第一纹理基础,以及提供给第二基础生成器网络以生成第二纹理基础。
5.根据权利要求4所述的计算机实现的方法,进一步包括:
使用部分地基于所述第一纹理基础和所述第一纹理特征向量确定的点颜色数据来生成第一纹理图像;以及
使用部分地基于所述第二纹理基础和所述第二纹理特征向量确定的点云颜色数据来生成第二纹理图像。
6.根据权利要求5所述的计算机实现的方法,进一步包括:
分割所述第一对象的所述3D表示的表面点,以生成与所述第一对象的所述第一部分相对应的第一掩模和与所述第一对象的所述第二部分相对应的第二掩模;以及
将所述第一掩模和所述第二掩模与所述第一纹理图像和所述第二纹理图像一起使用,以生成所述第二对象的坐标的颜色值的掩蔽组合。
7.根据权利要求1所述的计算机实现的方法,其中在由编码网络生成所述一个或更多个特征编码之前,将所述第一对象的所述3D表示分割成多个体素。
8.根据权利要求1所述的计算机实现的方法,其中所述目标对象是与所述第一对象不同的对象,或者是处于不同姿势或状态的所述第一对象。
9.根据权利要求1所述的计算机实现的方法,其中与所述第一对象相对应的所述一个或更多个特征编码包括所述对象的语义信息。
10.一种处理器,包括:
一个或更多个电路,用于:
获得第一对象的三维3D表示;
生成与所述3D表示相对应的一个或更多个特征编码;
将所述3D表示的坐标映射到二维2D纹理空间;
部分地基于所述2D纹理空间中的映射坐标和所述一个或更多个特征编码,生成与所述第一对象的输入3D表示相对应的2D纹理图像;以及
使所述2D纹理图像变形以与第二对象的3D几何相对应。
11.根据权利要求10所述的处理器,其中所述一个或更多个特征编码包括与所述第一对象的第一部分相对应的第一纹理特征向量、与所述第一对象的第二部分相对应的第二纹理特征向量以及由编码器网络生成的形状代码向量,所述编码器网络至少接收所述第一对象的所述3D表示作为输入。
12.根据权利要求11所述的处理器,其中所述一个或更多个电路进一步用于执行以下操作:
将所述2D纹理空间中的所述映射坐标作为输入提供给第一基础生成器网络以生成第一纹理基础,以及提供给第二基础生成器网络以生成第二纹理基础。
13.根据权利要求12所述的处理器,其中所述一个或更多个电路进一步用于执行以下操作:
使用部分地基于所述第一纹理基础和所述第一纹理特征向量确定的点颜色数据来生成第一纹理图像;以及
使用部分地基于所述第二纹理基础和所述第二纹理特征向量确定的点云颜色数据来生成第二纹理图像。
14.根据权利要求13所述的处理器,其中所述一个或更多个电路进一步用于执行以下操作:
分割所述第一对象的所述3D表示的表面点,以生成与所述第一对象的所述第一部分相对应的第一掩模和与所述第一对象的所述第二部分相对应的第二掩模;以及
将所述第一掩模和所述第二掩模与所述第一纹理图像和所述第二纹理图像一起使用,以生成所述第二对象的坐标的颜色值的掩蔽组合。
15.根据权利要求10所述的处理器,其中所述处理器被包括在以下的至少一个中:
用于执行模拟操作的系统;
用于执行模拟操作以测试或验证自主机器应用的系统;
用于执行数字孪生操作的系统;
用于执行光传输模拟的系统;
用于渲染图形输出的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
用于生成或呈现虚拟现实VR内容的系统;
用于生成或呈现增强现实AR内容的系统;
用于生成或呈现混合现实MR内容的系统;
包含一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;
用于使用模拟执行硬件测试的系统;
用于合成数据生成的系统;
用于3D资产的协作内容创建平台;或
至少部分地使用云计算资源实现的系统。
16.一种系统,包括:
一个或更多个处理器,用于使用神经网络以使第一对象的至少一个2D纹理图像变形以与第二对象的3D几何相对应,所述一个或更多个处理器还用于部分地基于2D纹理空间中的所述第一对象的3D表示的映射坐标和从所述3D表示提取的一个或更多个特征编码来生成所述至少一个2D纹理图像。
17.根据权利要求16所述的系统,其中所述一个或更多个特征编码包括与所述第一对象的第一部分相对应的第一纹理特征向量、与所述第一对象的第二部分相对应的第二纹理特征向量以及由编码器网络生成的形状代码向量,所述编码器网络至少接收所述第一对象的所述3D表示作为输入。
18.根据权利要求17所述的系统,其中所述一个或更多个处理器还用于:
将所述2D纹理空间中的所述映射坐标作为输入提供给第一基础生成器网络以生成第一纹理基础,以及提供给第二基础生成器网络以生成第二纹理基础。
19.根据权利要求18所述的系统,其中所述一个或更多个处理器还用于:
使用部分地基于所述第一纹理基础和所述第一纹理特征向量确定的点颜色数据来生成第一纹理图像;以及
使用部分地基于所述第二纹理基础和所述第二纹理特征向量确定的点云颜色数据来生成第二纹理图像。
20.根据权利要求16所述的系统,其中所述系统包括以下中的至少一个:
用于执行模拟操作的系统;
用于执行模拟操作以测试或验证自主机器应用的系统;
用于执行数字孪生操作的系统;
用于执行光传输模拟的系统;
用于渲染图形输出的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
用于生成或呈现虚拟现实VR内容的系统;
用于生成或呈现增强现实AR内容的系统;
用于生成或呈现混合现实MR内容的系统;
包含一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;
用于使用模拟执行硬件测试的系统;
用于合成数据生成的系统;
用于3D资产的协作内容创建平台;或至少部分地使用云计算资源实现的系统。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/314,914 | 2022-02-28 | ||
US18/149,454 | 2023-01-03 | ||
US18/149,454 US20230274492A1 (en) | 2022-02-28 | 2023-01-03 | Texture transfer and synthesis using aligned maps in image generation systems and applications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116664807A true CN116664807A (zh) | 2023-08-29 |
Family
ID=87726692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310161060.0A Pending CN116664807A (zh) | 2022-02-28 | 2023-02-23 | 在图像生成系统和应用中使用对齐贴图的纹理转移和合成 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116664807A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117274501A (zh) * | 2023-11-16 | 2023-12-22 | 杭州新畅元科技有限公司 | 一种可驱动数字人建模方法、装置、设备及介质 |
-
2023
- 2023-02-23 CN CN202310161060.0A patent/CN116664807A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117274501A (zh) * | 2023-11-16 | 2023-12-22 | 杭州新畅元科技有限公司 | 一种可驱动数字人建模方法、装置、设备及介质 |
CN117274501B (zh) * | 2023-11-16 | 2024-02-09 | 杭州新畅元科技有限公司 | 一种可驱动数字人建模方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11816790B2 (en) | Unsupervised learning of scene structure for synthetic data generation | |
US20210089921A1 (en) | Transfer learning for neural networks | |
US11494976B2 (en) | Neural rendering for inverse graphics generation | |
US11995883B2 (en) | Scene graph generation for unlabeled data | |
US20220230376A1 (en) | Motion prediction using one or more neural networks | |
US11875449B2 (en) | Real-time rendering with implicit shapes | |
US20230109379A1 (en) | Diffusion-based generative modeling for synthetic data generation systems and applications | |
US20230326124A1 (en) | Adaptive temporal image filtering for rendering realistic illumination | |
US20230385983A1 (en) | Identifying application buffers for post-processing and re-use in secondary applications | |
CN116206042A (zh) | 空间哈希一致采样 | |
US20230274492A1 (en) | Texture transfer and synthesis using aligned maps in image generation systems and applications | |
CN116664807A (zh) | 在图像生成系统和应用中使用对齐贴图的纹理转移和合成 | |
US11546568B1 (en) | View synthesis for dynamic scenes | |
US20240005604A1 (en) | Synthesizing three-dimensional shapes using latent diffusion models in content generation systems and applications | |
US20230377099A1 (en) | Synthesizing content using diffusion models in content generation systems and applications | |
US11922558B2 (en) | Hybrid differentiable rendering for light transport simulation systems and applications | |
US20240119612A1 (en) | Identifying duplicate objects using canonical forms in content creation systems and applications | |
US20220391667A1 (en) | Processing ultrahyperbolic representations using neural networks | |
US20230343019A1 (en) | Volume rendering in distributed content generation systems and applications | |
US20240185506A1 (en) | Hybrid differentiable rendering for light transport simulation systems and applications | |
US20230325988A1 (en) | Spatiotemporal filtering for light transport simulation systems and applications | |
CN117716423A (zh) | 使用深度学习从音频数据中的语音推理情绪 |
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 |