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

使用可微代理的节点图优化

文献发布时间:2024-04-18 20:01:30


使用可微代理的节点图优化

背景技术

材质外观的过程建模提供了生成合成或物理材质的视觉外观的方式。准确地将视觉外观表示为包括诸如块尺寸或材质块之间的间隔的结构元素是过程建模的最具挑战性的方面之一。过程建模集中于从可用于生成材质外观的图像集合中标识材质属性。过程建模通常使用诸如从用户接收离散参数的节点集合来创建材质外观。这允许按需生成纹理和材质,而不是必须预渲染并存储在计算设备的存储器中。

发明内容

本文介绍的是涉及优化用于生成材质外观的材质图的技术/科技。材质图包括用于生成材质外观的不可微分节点和可微分节点。不可微分节点从包括离散和连续参数的组合的输入参数集生成材质外观。使用可微分代理复制每个不可微分节点,可微分代理是经过训练的机器学习模型。可微分代理被训练成复制不可微分节点的功能并且产生输出材质。为了优化材质图,使用可微分代理替换不可微分节点并且与材质图的可微分节点组合。

通过使用可微分代理、可微分节点和目标图像,执行材质图的优化以计算优化的输入集合,该优化的输入集合当输入到原始材质图时,生成表示目标图像的输出材质。在计算优化的输入集合之后,可微分代理被去除并且不可微分节点被替换在原始位置。使用优化的输入集合,节点图优化系统用优化的输入集合替换不可微分节点的输入。然后材质图使用优化的输入集合生成输出材质。

本公开的示例性实施例的附加特征和优点将在以下描述中阐述,并且部分地将从该描述中显而易见,或者可以通过这些示例性实施例的实践而获知。

附图说明

具体实施方式参考附图进行描述,其中:

图1示出了根据一个或多个实施例的执行节点图优化的过程的图示;

图2示出了根据一个或多个实施例的替换材质图(material graph)的不可微分节点的图示;

图3示出了根据一个或多个实施例的使用可微分代理的优化过程的图示;

图4示出了根据一个或多个实施例的利用优化的输入参数生成输出材质的过程的图示;

图5示出了根据一个或多个实施例的节点图优化系统的可微分代理的训练过程;

图6示出了根据一个或多个实施例的来自原始不可微分节点的输出材质和来自节点图优化系统的输出材质的视觉结果的示例比较。

图7示出了根据一个或多个实施例的来自节点图优化系统的不同输出材质的视觉结果与目标图像的示例比较;

图8示出了根据一个或多个实施例的节点图优化系统的示意图;

图9示出了根据一个或多个实施例的节点图优化方法中的一系列动作的流程图;

图10示出了根据一个或多个实施例的训练节点图优化系统的可微分代理的方法中的一系列动作的流程图;

图11示出了根据一个或多个实施例的节点图优化系统可以在其中操作的示例性环境的示意图;以及

图12示出了根据一个或多个实施例的示例性计算设备的框图。

具体实施方式

本公开的一个或多个实施例包括节点图优化系统,该节点图优化系统使用材质图来生成表示目标图像的输出材质。材质图包括一系列可微分节点和不可微分节点以生成输出材质。材质图中的不可微分节点使用依赖于离散参数的过程来生成节点输出。离散参数作为使用通常不可微分的离散参数的过程对优化提出了挑战。

标识材质属性提出了挑战,因为过程建模经常使用不可微分的节点,例如依赖于必须手动调整的离散参数的生成器节点。这些挑战通常限制了材质属性的标识并且导致所生成的材质外观的不准确的视觉外观。

现有技术集中于从图像、材质或用户输入生成过程。一些方法通过训练神经网络以学习用户曝光参数来估计给定过程的参数以匹配输入图像,然而,因为用户曝光参数对于每个用户是有限的集合且是任意的,所以所得到的过程不能被一般化或优化。

另一种方法实现许多过滤器节点的可微分版本,以优化过滤器节点的连续参数,从而匹配目标材质外观。然而,该方法限于过滤器节点,其只能优化材质外观的某些视觉方面(例如,反照率、颜色、粗糙度)并且不能匹配材质外观的结构元素。

在另一种方法中,用户可以指定可以为其生成过程的材质段。然而,该方法与材质属性优化分离,从而阻止了过程的优化。

如上所述,现有方法缺乏执行依赖于离散参数的不可微分节点的优化的能力。作为结果,现有技术产生缺乏材质的结构特征的材质外观,因此是目标图像的不准确表示。备选地,每个不可微分节点的手动调整需要密集的技能和付出来执行单独的调整或接受不合意的输出材质。

为了解决现有方法的这些和其他缺陷,实施例为每个不可微分节点创建可微分代理,以生成到不可微分节点的优化输入集合。这提供了表示包括目标图像的结构元素的目标图像的输出材质。

实施例包括为材质图中的不可微分节点创建可微分代理。通过创建可微分代理,节点图优化系统执行整个材质图的优化,并且生成优化的输入参数集。优化的输入参数集被用于生成表示目标图像的输出材质,而不损失结构元素或不需要手动调整材质图中的节点。为了执行不可微分节点的优化,节点图优化系统创建可微分代理,该可微分代理被训练成复制不可微分节点的过程。例如,可微分代理是机器学习模型,诸如学习输入参数集到不可微分节点的输出的映射的神经网络。节点图优化系统用可微分代理替换不可微分节点,以执行材质图的优化,并且输出优化的输入参数集。使用优化的输入参数集,材质图生成表示目标图像的输出材质。通过创建可微分代理,节点图优化系统执行整个材质图的优化,并且生成优化的输入参数集。优化的输入参数集被用于生成表示目标图像的输出材质,而不损失结构元素或不需要手动调整材质图中的节点。

通过使输入参数能够被优化,通过使用这些代理,实施例提供了目标图像的按需建模。具体地,可微分代理的使用使材质图的调整自动化,这使得实施例能够基于目标图像创建更准确的过程生成材质。自动调整提供响应材质图,该响应材质图可以对不同的目标图像进行建模,而不需要对每个目标图像进行附加的手动调整。这允许准确地模拟具有不同结构元素的目标图像,而不增加典型系统中所需要的调整时间。

可微分代理可以包括机器学习模型,该机器学习模型可以基于训练输入来调整(例如,训练)以近似未知函数。具体地,可微分代理是可以包括互连的数字神经元的模型的神经网络,互连的数字神经元进行通信和学习以近似复函数并且基于提供给模型的多个输入来生成输出。例如,神经网络包括一个或多个机器学习算法。换言之,神经网络是实现深度学习技术的算法,即利用算法集来尝试对数据中的高级抽象进行建模的机器学习。参考图1-图12讨论关于在节点图优化系统中使用神经网络的其它细节。

图1示出了根据一个或多个实施例的执行节点图优化的过程的图示100。如图1所示,节点图优化系统102包括代理生成器110、优化器116、优化的输入参数120和可微分代理126。节点图优化系统102接收包括材质图106和目标图像108的用户输入104。通过通信地耦合到节点图优化系统102的用户接口从用户接收用户输入104。材质图106包括一系列节点,具有一个或多个不可微分节点和一个或多个可微分节点。目标图像108是表示物理或合成材质的数字图像。

在附图标号1,节点图优化系统接收包括材质图106和目标图像108的用户输入104。在一些实施例中,节点图优化系统被实现为图形编辑应用的一部分,在该图形编辑应用中用户经由触摸屏,例如通过手指或触笔,来输入选择。在其它实施例中,用户使用诸如鼠标、键盘或其它输入设备的附加设备来输入选择。接收具有目标图像108的材质图,用于节点图优化系统来优化材质图以表示目标图像的材质。目标图像108的示例包括由通信地耦合到节点图优化系统的相机设备捕获的或存储在存储器、存储设备或节点图优化系统可访问的其它存储位置中的数字图像。材质图106包括具有至少一个不可微分节点112和可微分节点113的节点集合。关于材质图的附加细节在下面至少参考图2描述。

在附图标记2,代理生成器110标识材质图106内的不可微分节点112。在一些实施例中,不可微分节点112是依赖于离散参数的过程生成器。不可微分节点112的过程是产生图形输出的函数。在一个示例中,不可微分节点112使用该过程来根据节点的类型生成随机形状、像素或图案。不同类型的节点与所生成的不同类型的材质外观相关联。节点类型的示例包括但不限于,砖块生成器、瓦片(tile)生成器、高斯噪声生成器、云噪声生成器或分形和基生成器(fractal sum base generator)。

在不可微分节点112是砖块生成器的示例中,不可微分节点112的类型由代理生成器110使用元数据、标签或其它标识符来标识。砖块生成器的过程将利用输入参数集来创建的砖块图案,输入参数包括但不限于,砖块的数量、每个砖块的斜面、砖块之间的间隙距离、砖块的高度、砖块的斜率、高度/宽度之间的变化、随机性参数、以及表示正方形砖块形状的压缩或拉伸的膨胀比。这些输入参数中的每一个是每次执行该过程时使用的离散值。例如,砖块生成器可以将该过程应用于输入参数,并且根据输入参数产生具有特定数量的砖块的输出材质。然而,如果提供没有离散参数集的目标图像,则使用该过程,砖块生成器不能确定用于再现目标图像的优化的输入参数集。为了确定优化的参数集,节点图优化系统102使用代理生成器来为不可微分节点112选择可微分代理114。

代理生成器110使用节点类型从可微分代理126的库中检索复制不可微分节点112的过程的可微分代理114。可微分代理114是经训练的机器学习模型(例如,神经网络),其被训练以学习不可微分节点112的输出与不可微分节点的输入集合之间的映射。为特定的不可微分节点训练每个可微分代理114。例如,单独的可微分代理114将被训练以分别学习砖块生成器和云生成器。在砖块生成器示例中,可微分代理114可以从目标图像确定输入参数集,并且生成表示目标图像的输出近似。在训练过程中,可微分代理114学习该输入集合中的每个输入与输出近似的感知特性之间的一对一映射。可微分代理114可以因为在训练期间学习的一对一映射而被优化(例如,可微分)。输入集合中的每个输入可以如下面关于附图标号3所描述的那样被优化。

在一些实施例中,材质图106包括多个不可微分节点112。为了处理多个不可微分节点112,代理生成器110为材质图106的每个不可微分节点112标识可微分代理114。虽然图1-图4可以描述具有单个不可微分节点和单个可微分节点的材质图106,但这不是限制性的,并且可以使用节点的任何配置或组合。

在选择可微分代理114之后,代理生成器110用所选择的可微分代理114替换材质图106中的每个不可微分节点112。通过替换每个不可微分节点112,代理生成器110创建可由优化器116处理的可微分材质图115。可微分材质图115包括材质图106和可微分代理114中的任何可微分节点。

在附图标号3,优化器116执行可微分材质图115的多阶段优化。在一些实施例中,优化器116执行可微分材质图的三阶段优化。对于三阶段优化,执行优化的第一阶段以优化材质图106中的所有可微分节点(例如,过滤器节点),同时每个可微分代理114保持固定。在优化的第二阶段,优化器116对材质图106中的可微分节点和每个可微分代理114执行全局初始化。在优化的第三阶段,优化器116通过应用特征损失和样式损失的组合来生成全局优化的参数。关于图3描述了执行优化的附加细节。

使用三阶段优化,优化器116计算优化的输入参数118的集合。优化的输入参数118表示当输入到可微分材质图115时生成表示目标图像108的输出材质的输入参数。当输入到包括不可微分节点和可微分节点的材质图106时,优化的输入参数118还生成表示目标图像108的输出材质。

在附图标记4,节点图优化系统102用优化的输入参数118替换材质图106的现有输入参数。在一个示例中,节点图优化系统102去除针对材质图106的输入参数的每个值(例如,砖块的数量、砖块的高度等),并用优化的输入参数118的对应值来替换每个值。

材质图106使用优化的输入参数118来生成表示目标图像108的输出材质122。在具有多种类型的节点的一些实施例中,优化的输入参数118的子集(例如,砖块生成器参数被提供给砖块生成器节点,模糊过滤器参数被提供给模糊过滤器等)被提供给材质图106中的每个不可微分节点112和每个可微分节点。节点图优化系统102可以将输出材质122的一部分或全部提供给用户界面以显示给用户。

在一些实施例中,训练管理器124对多个神经网络执行异步训练以生成可微分代理126的库。训练管理器124使用涉及一对的训练数据来训练每个神经网络,该对包括不可微分节点类型(例如,砖块生成器)、训练参数集以及不可微分节点的真实输出(例如,砖块图案)。神经网络使用损失函数学习,以最小化近似生成器映射(例如,每个神经网络的输出)和不可微分节点的真实输出之间的逐像素差异(pixelwise difference)。在完成训练时,训练管理器124将每个神经网络添加到可微分代理126的库。关于图5和图10描述了训练管理器和训练过程的附加细节。

图2示出了根据一个或多个实施例的替换材质图的不可微分节点的图示。如上所述,材质图106包括不可微分节点112(例如,过程生成器)和可微分节点204(例如,过滤器节点)。虽然图2描绘了单个不可微分节点112和单个可微分节点204,但材质图106可以具有任何数量的节点。材质图106使用不可微分节点112和可微分节点204的配置从输入参数202生成输出材质222(例如,图案、图像或合成材质)。输入参数202可以包括作为不可微分节点112的输入的离散参数和作为可微分节点204的输入的连续参数。如图2所示,输入参数202可以是单个值集合,子集从该单个值集合被提供给相应的节点类型。输入参数202可以通过用户选择或从先前与材质图106相关联的预定输入参数集接收。

如上所述,代理生成器110标识不可微分节点112,并且用所选择的可微分代理114执行替换。为了替换不可微分节点112,代理生成器110从材质图106中去除不可微分节点112,并且将可微分代理114插入到材质图106中。在插入可微分代理114之后,节点图优化系统102可以将可微分材质图115提供给优化器以执行可微分材质图115中的所有节点的优化。下面参考图3描述优化过程的其它细节。

在具有多个不可微分节点的一些实施例中,代理生成器110用相应的可微分代理替换每个不可微分节点,以形成可微分材质图115。对于材质图中相同类型的不可微分节点(例如,一个砖块生成器和另一个砖块生成器),相同的可微分代理114可用于多于一个替换操作。

图3示出了根据一个或多个实施例的可微分材质图的优化过程的图示。如上所述,在用可微分代理替换材质图中的不可微分节点之后,材质图被变换为可微分材质图并且能够被优化。

优化器116接收来自用户输入104的目标图像108和来自代理生成器110的包括可微分代理114和可微分节点204的可微分材质图115。为了执行优化,优化器116将可微分代理114的输入参数集表示为θ

优化器116计算优化的输入参数,表示为

在为可微分节点204生成优化参数

在一些实施例中,优化器116执行可微分材质图115的优化的第三阶段,以通过应用由损失函数L

图4示出了根据一个或多个实施例的生成具有优化的输入参数的输出材质的过程的图示。在优化器116生成如上参考图3所述的优化的输入参数118之后,优化的输入参数118被输入到包括不可微分节点112和可微分节点204的材质图106。材质图106接收优化的输入参数120,并且使用不可微分节点112和可微分节点204来生成表示目标图像108的输出材质122。如图4所示,输出材质122表示目标图像108的瓦片结构和外观。

例如,输出材质122复制瓦片之间的间隔、瓦片的数量以及目标图像108的颜色和外观。虽然图4中所示出的示例是包括瓦片结构的目标图像108,但本公开的实施例用于具有包括结构的任何材质外观的任何类型的目标图像。其它示例包括但不限于砖块图案、划痕图案、弧形路面等。

在一些实施例中,节点图优化系统102去除可微分代理114,并且将每个原始不可微分节点112恢复到材质图106中不可微分节点112位于代理生成器110插入可微分代理114之前的位置。例如,输出材质122可以由材质图106使用优化的输入参数118来生成。

图5示出了根据一个或多个实施例的节点图优化系统的可微分代理的训练过程。例如,可微分代理114可以由训练管理器124来训练。训练管理器124获得包括输入参数504和训练材质506的训练数据502的集合。输入参数504包括不可微分节点的离散输入值(例如,砖块的数量、砖块间隔等)。训练材质506使用输入参数504表示不可微分节点的输出。

在训练过程中,输入参数504和训练材质506用于训练可微分代理114以复制不可微分节点的过程。训练管理器124使用输入参数504的变化值和相应的训练材质来训练可微分代理114以学习输入集合中的每个输入与输出近似的感知特性之间的一对一映射。可微分代理114生成近似生成器映射以产生训练材质的近似,并且应用使训练材质506和可微分代理114的输出之间的像素差最小化的损失函数508。

损失函数508表示为L=λ

图6示出了根据一个或多个实施例的各种输出材质的感知结果与各种可微分代理的相应输出的示例比较。具体地,图6示出了不可微分节点的输出材质和可微分代理的相应近似,该可微分代理被训练为复制根据本文讨论的各种实施例的不可微分节点的过程。

如图6所示,列602和606描绘了各种不可微分节点(例如,不可微分节点112)的各种输出材质。在列604和608中,描绘了由各种可微分代理(例如,可微分代理114)生成的近似。

在一个示例中,在行610中,不可微分节点类型是砖块生成器。如列602和606所示,砖块生成器使用如上所述的输入参数产生具有砖块数量、砖块之间的间隔和其它感知特性的输出。被训练以复制砖块生成器的过程的可微分代理在列604和608中创建输出材质。

示出了其他类型的不可微分节点类型,包括划痕生成器、瓦片生成器、弧形路面生成器和点处理纹理基础特征(PPTBF)。每个类型的不可微分节点的列602和604使用如上所述的不可微分节点类型的输入参数生成输出。

图7示出了根据一个或多个实施例的来自原始不可微分节点的输出材质和来自具有目标图像的节点图优化系统的输出材质的感知结果的示例比较。具体地,图7示出了材质图106的输出材质702,仅具有过滤器优化的输出704,节点图优化系统的输出材质706和目标图像708。材质图106的输出材质702示出了没有优化的不可微分节点的输出。输出704是包括过滤器优化但不包括不可微分节点优化的典型方法。图表700示出了使用本文描述的实施例的输出材质706显着地胜过材质图106和仅具有过滤器优化的输出704。如图7所示,使用本文所描述的实施例的输出材质706更准确地表示目标图像708的结构元素。

图8示出了根据一个或多个实施例的节点图优化系统(例如,上述“节点图优化系统102”)的示意图。如图所示,节点图优化系统800可以包括但不限于用户界面管理器802、代理生成器804、优化器806、可微分代理管理器810、训练管理器812和存储管理器814。存储管理器814包括可微分代理818、材质图820、优化输入参数822和目标图像824。

如图8所示,节点图优化系统800包括用户界面管理器802。例如,用户界面管理器802允许用户向节点图优化系统800提供目标图像824和节点或材质图820的选择。在一些实施例中,用户界面管理器802提供用户界面,用户可以通过该用户界面上载表示要生成的输出材质的目标图像824,如上所述。备选地或附加地,用户界面可以使用户能够从本地或远程存储位置下载图像(例如,通过提供与图像源相关联的地址(例如,URL或其它端点))。在一些实施例中,用户界面可以使用户能够链接诸如相机或其他硬件的图像捕获设备以捕获图像数据并将其提供给节点图优化系统800。

另外,用户界面管理器802允许用户请求节点图优化系统800分析材质图820并生成优化的输入参数集822以匹配目标图像。例如,节点图优化系统为材质图的不可微分节点选择可微分代理并且执行完全可微分优化。在一些实施例中,用户界面管理器802使用户能够查看优化的输入参数或材质输出。

如图8所示,节点图优化系统800包括代理生成器804。代理生成器804可以接收材质图820和目标图像824,并且协调节点图优化系统800的其它组件,以标识材质图中的一个或多个不可微分节点,并且从经训练的可微分代理库中选择可微分代理。例如,如所讨论的,材质图820可以包括一系列不可微分节点和可微分节点。代理生成器804为每个不可微分节点选择可微分代理(例如,经训练的神经网络)。每个不可微分节点由所选择的可微分代理替换。

如图8所示,节点图优化系统800还包括优化器808。优化器808接收目标图像824和包括可微分代理和可微分节点的材质图820。优化器808执行每个可微分节点和每个可微分代理的优化。优化器808计算优化的输入参数集,其产生表示目标图像824的输出材质。

如图8所示,节点图优化系统800还包括可微分代理管理器810。可微分代理管理器810可以托管多个可微分代理(例如,神经网络或其它机器学习模型)。可微分代理管理器810可以包括执行环境、库和/或执行可微分代理所需的任何其它数据。在一些实施例中,可微分代理管理器810可以与专用软件和/或硬件资源相关联以执行可微分代理。如所讨论的,经训练的可微分代理818可以被实现为任何类型的生成器网络,诸如StyleGAN的生成器或其他生成器。在各种实施例中,取决于实现方式,由可微分代理管理器810托管的每个经训练的可微分代理可以是相同类型的生成器或者可以是不同类型的生成器。虽然在图8中被描绘为由单个可微分代理管理器810托管,但是在各种实施例中,经训练的可微分代理818可以被托管在多个可微分代理管理器中和/或作为不同组件的一部分。例如,每个经训练的可微分代理可以由它们自己的可微分代理管理器或其它主机环境来托管,其中执行相应的可微分代理,或者可微分代理可以根据例如每个自己的可微分代理的资源要求等而跨可微分代理管理器散布。

如图8所示,节点图优化系统800还包括训练管理器812。训练管理器812可以教导、引导、调整和/或训练一个或多个神经网络(例如,可微分代理)。具体地,训练管理器812可以基于多个训练数据来训练微分代理。例如,微分代理818可以被训练成复制材质图的不可微分节点的输出材质。另外,如上所述,使用深度特征损失和样式损失的组合,可以使用损失函数进一步优化微分代理818。更具体地,训练管理器812可以访问、标识、生成、创建和/或确定训练输入,并且利用该训练输入来训练和微调可微分代理。例如,训练管理器812可以端对端地训练微分代理818,如上所述。

如图8所示,节点图优化系统800还包括存储管理器814。存储管理器814维护节点图优化系统800的数据。存储管理器814可以根据需要维护任何类型、大小或种类的数据,以执行节点图优化系统800的功能。如图8所示,存储管理器814包括可微分代理818。可微分代理818可以包括神经网络集合,其被训练以复制材质图中的不可微分节点的输出。具体地,在一个或多个实施例中,可微分代理818包括一个或多个神经网络以复制多种类型的不可微分节点的函数,诸如砖块生成器、瓦片生成器、划痕生成器等。

如图8进一步所示,存储管理器814还包括材质图820。材质图820可以包括一系列节点,包括可微分节点和不可微分节点,它们从输入参数集生成输出材质。存储管理器814还可以包括优化的输入参数822。优化的输入参数822可以包括输入参数集,当输入到材质图中时,产生表示目标图像824的输出材质。存储管理器814还可以包括目标图像824。目标图像824可以对应于旨在由节点图优化系统表示的材质外观,诸如物理材质或合成生成的材质的图像。

节点图优化系统800的每个组件802-814及其对应元件(如图8所示)可以使用任何适当的通信技术彼此通信。将认识到,尽管组件802-814及其对应元件在图8中被示为分离的,但是组件802-814及其对应元件中的任一个可以被组合为更少的组件,诸如被组合为单个设施或模块,被划分为更多的组件,或者被配置为不同的组件,如可以服务于特定实施例。

组件802-814及其对应元件可以包括软件、硬件或两者。例如,组件802-814及其对应元件可以包括存储在计算机可读存储介质上并且可由一个或多个计算设备的处理器执行的一个或多个指令。当由一个或多个处理器执行时,节点图优化系统800的计算机可执行指令可以使客户端设备和/或服务器设备执行本文描述的方法。备选地,组件802-814及其对应元件可以包括硬件,例如执行特定功能或功能组的专用处理设备。另外,组件802-814及其对应元件可以包括计算机可执行指令和硬件的组合。

此外,节点图优化系统800的组件802-814可以例如被实现为一个或多个独立应用、一个或多个应用模块、一个或多个插件、一个或多个库函数或可由其它应用调用的函数、和/或云计算模型。因此,节点图优化系统800的组件802-814可以被实现为独立应用,诸如桌面或移动应用。此外,节点图优化系统800的组件802-814可以被实现为托管在远程服务器上的一个或多个基于web的应用。备选地或附加地,节点图优化系统800的组件可以在一套移动设备应用或“应用”中实现。

图1-图8、对应的文本和示例,提供了允许用户执行包括不可微分节点的材质图的优化的多种不同的系统和设备。除了前述内容之外,还可以根据包括用于实现特定结果的方法中的动作和步骤的流程图来描述实施例。例如,图9和10示出了根据一个或多个实施例的示例性方法的流程图。关于图9和10描述的方法可以用更少或更多的步骤/动作来执行,或者步骤/动作可以以不同的顺序来执行。另外,本文中所描述的步骤/动作可以重复或彼此并行地或与相同或类似步骤/动作的不同实例并行地执行。

图9示出了根据一个或多个实施例的节点图优化方法中的一系列动作的流程图900。在一个或多个实施例中,方法900在包括节点图优化系统800的数字媒体环境中执行。方法900旨在说明根据本公开的一个或多个方法,而不旨在限制可能的实施例。备选实施例可以包括比图9所示的步骤更多、更少或不同的步骤。

如图9所示,方法900包括接收目标图像和材质图的动作902,材质图要被优化以用于复制目标图像的材质。在一些实施例中,节点图优化系统从图形编辑应用的用户界面接收材质图和目标图像,其中用户经由诸如鼠标、键盘或其它输入设备的设备输入选择。

如图9所示,方法900包括标识材质图的不可微分节点的动作904,其中不可微分节点包括输入参数集。在一些实施例中,节点图优化系统使用元数据、名称或其它标识符来标识不可微分节点,以指示不可微分节点的功能。不可微分节点是过程生成器,其创建材质贴图集合,这些材质贴图被合成以创建视觉图案。

如图9所示,方法900包括从可微分代理库中选择可微分代理的动作906,所选择的可微分代理被训练成复制所标识的不可微分节点的输出。节点图优化系统选择被训练成复制在动作902处标识的不可微分节点的过程的可微分代理。

如图9所示,方法900包括使用相应的经训练的神经网络和目标图像来为所标识的不可微分节点生成优化的输入参数集的动作908。节点优化系统执行对可微分代理和可微分节点的优化。在一些实施例中,优化包括优化所有可微分节点同时每个可微分代理保持固定的第一阶段。优化还包括优化所有可微分节点和可微分代理的第二阶段。在第一阶段和第二阶段完成时,节点图优化系统生成优化的输入参数,当输入到材质图时,其表示在动作902接收的目标图像。

如图9所示,方法900包括用优化的输入参数替换材质图的不可微分节点的输入参数集的动作910。节点图优化系统使用优化的输入参数集来替换材质图的不可微分节点的输入参数。在一些实施例中,节点图优化系统从不可微分节点中去除输入参数,并且将优化的输入参数插入到材质图的不可微分节点中。

如图9所示,方法900包括由材质图生成输出材质以使用不可微分节点的优化的输入参数来表示目标图像的动作912。材质图使用一系列可微分节点和不可微分节点从优化的输入参数生成输出材质。输出材质表示目标图像。

图10示出了根据一个或多个实施例的节点图优化方法中的一系列动作的流程图1000。在一个或多个实施例中,方法1000在包括节点图优化系统800的数字媒体环境中执行。方法1000旨在说明根据本公开的一个或多个方法,而不旨在限制可能的实施例。备选实施例可以包括比图10所示的步骤更多、更少或不同的步骤。

如图10所示,方法1000包括接收训练材质和可微分代理的输入参数集的动作1002。训练管理器接收由不可微分节点生成的训练材质并将参数输入到神经网络中。训练管理器使用训练材质和输入参数来训练可微分代理以生成经训练的机器学习模型,该经训练的机器学习模型生成复制训练材质的优化输入参数。

在一些实施例中,训练管理器通过对不可微分节点的多个过程参数和基准真值图像进行采样,并且训练可微分代理以最小化输出材质和基准真值图像之间的像素差异,来训练可微分代理。

如图10所示,方法1000包括使用训练材质和输入参数来训练神经网络以生成经训练的机器学习模型的动作1004,该经训练的机器学习模型为表示目标图像的材质图生成优化的输入参数。例如,使用涉及包括不可微分节点类型和不可微分节点的真实输出的对(pair)的训练数据来训练神经网络。每个神经网络使用损失函数来学习,以最小化每个神经网络的输出和不可微分节点的真实输出之间的逐像素差异。

图11示出了根据一个或多个实施例的其中节点图优化系统800可以操作的示例性环境1100的示意图。在一个或多个实施例中,环境1100包括服务提供商1102,服务提供商1102可以包括经由一个或多个网络1108连接到多个客户端设备1106A-1106N的一个或多个服务器1104。客户端设备1106A-1106N、一个或多个网络1108、服务提供商1102和一个或多个服务器1104可以使用适合于传输数据和/或通信信号的任何通信平台和技术,包括支持远程数据通信的任何已知通信技术、设备、介质和协议,彼此通信或与其他组件通信,其示例将在下面参考图12更详细地描述。

尽管图11示出了客户端设备1106A-1106N、一个或多个网络1108、服务提供商1102以及一个或多个服务器1104的特定布置,但是各种附加布置也是可能的。例如,客户端设备1106A-1106N可以绕过网络1108直接与一个或多个服务器1104通信。或者备选地,客户端设备1106A-1106N可以直接彼此通信。服务提供商1102可以是公共云服务提供商,其在一个或多个数据中心拥有并操作他们自己的基础设施,并按需向客户和终端用户提供该基础设施以在一个或多个服务器1104上托管应用。服务器可以包括一个或多个硬件服务器(例如,主机),每个硬件服务器具有其自己的计算资源(例如,处理器、存储器、盘空间、联网带宽等),其可以在多个客户之间安全地划分,每个客户可以在一个或多个服务器1104上托管它们自己的应用。在一些实施例中,服务提供商可以是维护单个组织的云基础设施的私有云提供商。一个或多个服务器1104可以类似地包括一个或多个硬件服务器,每个都具有它自己的计算资源,可以类似地包括一个或多个硬件服务器在由一个或多个服务器托管的应用之间划分,以供组织的成员或其客户使用。

类似地,尽管图11的环境1100被描绘为具有各种组件,但是环境1100可以具有附加的或备选的组件。例如,环境1100可以在具有节点图优化系统800的单个计算设备上实现。具体地,节点图优化系统800可以全部或部分地在客户端设备1102A上实现。

如图11所示,环境1100可以包括客户端设备1106A-1106N。客户端设备1106A-1106N可以包括任何计算设备。例如,客户端设备1106A-1106N可以包括一个或多个个人计算机、膝上型计算机、移动设备、移动电话、平板电脑、专用计算机、TV或其他计算设备,包括下面参考图12描述的计算设备。尽管图11中示出了三个客户端设备,但是可以理解,客户端设备1106A-1106N可以包括任意数量的客户端设备(大于或小于所示)。

此外,如图11所示,客户端设备1106A-1106N和一个或多个服务器1104可以经由一个或多个网络1108进行通信。一个或多个网络1108可以表示单个网络或网络的集合(诸如因特网、企业内联网、虚拟专用网(VPN)、局域网(LAN)、无线局域网(WLAN)、蜂窝网络、广域网(WAN)、城域网(MAN)或两个或更多个这样的网络的组合)。因此,一个或多个网络1108可以是客户端设备1106A-1106N可以通过其访问服务提供商1102和服务器1104(反之亦然)的任何适合的网络。下面将参考图12更详细地讨论一个或多个网络1108。

此外,环境1100还可以包括一个或多个服务器1104。一个或多个服务器1104可以生成、存储、接收和发送任何类型的数据,包括可微分代理818、材质图820、优化输入参数822、目标图像824或其他信息。例如,服务器1104可以从诸如客户端设备1106A的客户端设备接收数据,并且将数据发送到诸如客户端设备1102B和/或1102N的另一客户端设备。服务器1104还可以在环境1100的一个或多个用户之间传输电子消息。在一个示例实施例中,服务器1104是数据服务器。服务器1104还可以包括通信服务器或网络托管服务器。下面将参考图12讨论关于服务器1104的附加细节。

如上所述,在一个或多个实施例中,一个或多个服务器1104可以包括或实现节点图优化系统800的至少一部分。具体地,节点图优化系统800可以包括在一个或多个服务器1104上运行的应用,或者可以从一个或多个服务器1104下载节点图优化系统800的一部分。例如,节点图优化系统800可以包括允许客户端设备1106A-1106N与在一个或多个服务器1104处托管的内容交互的网络托管应用。为了说明,在环境1100的一个或多个实施例中,一个或多个客户端设备1106A-1106N可以访问由一个或多个服务器1104支持的网页。具体地,客户端设备1106A可以运行网络应用(例如,网络浏览器)以允许用户访问、查看和/或与在一个或多个服务器1104处托管的网页或网站交互。

在一个或多个实施例中,当客户端设备1106A访问托管在一个或多个服务器1104处的网页或其他网络应用时,一个或多个服务器1104可以提供对存储在一个或多个服务器1104处的一个或多个数字图像(例如,目标图像824,诸如相机胶卷或个人照片)和材质图820的访问。此外,客户端设备1106A可以接收请求(即,经由用户输入)以生成用于材质图820的优化的输入参数集来表示目标图像824,并且将该请求提供给一个或多个服务器1104。在接收到请求时,一个或多个服务器1104可以自动执行上述方法和过程以生成优化的输入参数,该优化的输入参数在用于材质图中时,生成表示目标图像的输出材质。一个或多个服务器1104可以向客户端设备1106A提供输出材质、材质图或优化的输入参数的全部或部分,以向用户显示。

如上所述,节点图优化系统800可以全部或部分地由环境1100的各个元件1102-1108实现。应当理解,尽管关于环境1100的特定元件在前面的示例中描述了节点图优化系统800的某些组件,但是各种备选实现是可能的。例如,在一个或多个实施例中,节点图优化系统800在客户端设备1106A-N中的任何一个上实现。类似地,在一个或多个实施例中,节点图优化系统800可以在一个或多个服务器1104上实现。此外,节点图优化系统800的不同组件和功能可以在客户端设备1106A-1106N、一个或多个服务器1104以及网络1108之间分离实现。

本公开的实施例可以包括或利用包括计算机硬件的专用或通用计算机,例如一个或多个处理器和系统存储器,如下面更详细地讨论的。本公开范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。具体地,本文描述的一个或多个过程可以至少部分地实现为包含在非瞬态计算机可读介质中并且可由一个或多个计算设备(例如,本文描述的任何媒体内容访问设备)执行的指令。一般而言,处理器(例如,微处理器)从非瞬态计算机可读介质(例如,存储器等)接收指令,并执行那些指令,从而执行一个或多个过程,包括本文描述的一个或多个过程。

计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非瞬态计算机可读存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种截然不同的计算机可读介质:非瞬态计算机可读存储介质(设备)和传输介质。

非瞬态计算机可读存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(“SSD”)(例如,基于RAM)、闪存、相变存储器(“PCM”)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备、或可用于以计算机可执行指令或数据结构的形式存储期望程序代码装置并可由通用或专用计算机访问的任何其他介质。

“网络”被定义为能够在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,计算机适当地将该连接视为传输介质。传输介质可以包括网络和/或数据链路,其可用于携带计算机可执行指令或数据结构形式的期望程序代码装置,并且可由通用或专用计算机访问。上述各项的组合也应包括在计算机可读介质的范围内。

此外,在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以自动地从传输介质传送到非瞬态计算机可读存储介质(设备)(反之亦然)。例如,可以将通过网络或数据链路接收的计算机可执行指令或数据结构缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终将其传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。因此,应当理解,非瞬态计算机可读存储介质(设备)可以包括在也(或甚至主要)利用传输介质的计算机系统组件中。

计算机可执行指令包括例如当在处理器处执行时使通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令和数据。在一些实施例中,在通用计算机上执行计算机可执行指令,以将通用计算机转变为实现本公开的元件的专用计算机。计算机可执行指令可以是例如二进制指令、诸如汇编语言的中间格式指令、或者甚至是源代码。尽管已经以特定于结构特征和/或方法动作的语言描述了该主题,但是应当理解,在所附权利要求中定义的主题不一定限于上述特征或动作。相反,所描述的特征和动作被公开作为实现权利要求的示例形式。

本领域技术人员将理解,本公开可以在具有许多类型的计算机系统配置的网络计算环境中实施,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、平板电脑、寻呼机、路由器、交换机等。本公开还可以在分布式系统环境中实施,其中本地和远程计算机系统通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合),两者都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。

本公开的实施例还可以在云计算环境中实现。在本说明书中,“云计算”被定义为用于实现对可配置计算资源的共享池的按需网络访问的模型。例如,可以在市场中采用云计算来提供对可配置计算资源的共享池的无处不在且方便的按需访问。可配置计算资源的共享池可以经由虚拟化快速供应,并且只需很少的管理工作或服务提供商交互即可释放,然后进行相应的缩放。

云计算模型可以由各种特性组成,例如按需自助服务、广泛的网络接入、资源池、快速弹性、测量服务等。云计算模型还可以公开各种服务模型,例如软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”)。云计算模型也可以使用不同的部署模型进行部署,例如私有云、社区云、公共云、混合云等。在本说明书和权利要求书中,“云计算环境”是其中采用云计算的环境。

图12以框图形式示出了可被配置为执行上述一个或多个过程的示例性计算设备1200。可以理解,诸如计算设备1200的一个或多个计算设备可以实现节点图优化系统。如图12所示,计算设备可以包括处理器1202、存储器1204、一个或多个通信接口1206、存储设备1208和一个或多个I/O”设备/接口1210。在某些实施例中,计算设备1200可以包括比图12中所示的组件更少或更多的组件。现在将更详细地描述图12中所示的计算设备1200的组件。

在特定实施例中,(多个)处理器1202包括用于执行指令的硬件,诸如构成计算机程序的那些指令。作为示例而非限制,为了执行指令,(多个)处理器1202可以从内部寄存器、内部高速缓存、存储器1204或存储设备1208取回(或获取)指令,并对它们进行解码和执行。在各种实施例中,(多个)处理器1202可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、片上系统(SoC)、或其他(多个)处理器或处理器组合。

计算设备1200包括耦合到(多个)处理器1202的存储器1204。存储器1204可用于存储由(多个)处理器执行的数据、元数据和程序。存储器1204可以包括易失性和非易失性存储器中的一个或多个,诸如随机存取存储器(“RAM”)、只读存储器(“ROM”)、固态盘(“SSD”)、闪存、相变存储器(“PCM”)或其他类型的数据存储。存储器1204可以是内部或分布式存储器。

计算设备1200还可以包括一个或多个通信接口1206。通信接口1206可以包括硬件、软件或两者。通信接口1206可以提供用于计算设备与一个或多个其他计算设备1200或一个或多个网络之间的通信(例如,基于分组的通信)的一个或多个接口。作为示例而非限制,通信接口1206可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或者用于与诸如WI-FI的无线网络进行通信的无线NIC(WNIC)或无线适配器。计算设备1200还可以包括总线1212。总线1212可以包括将计算设备1200的组件彼此耦合的硬件、软件或两者。

计算设备1200包括存储设备1208,存储设备1208包括用于存储数据或指令的存储设备。作为示例而非限制,存储设备1208可以包括上述非瞬态存储介质。存储设备1208可以包括硬盘驱动器(HDD)、闪存、通用串行总线(USB)驱动器或这些或其他存储设备的组合。计算设备1200还包括一个或多个输入或输出(“I/O”)设备/接口1210,其被提供以允许用户向计算设备1200提供输入(例如用户笔划)、从计算设备1200接收输出、以及以其他方式向和从计算设备1200传输数据。这些I/O设备/接口1210可以包括鼠标、小键盘或键盘、触摸屏、相机、光学扫描仪、网络接口、调制解调器、其他已知的I/O设备或这些I/O设备/接口1210的组合。触摸屏可以用触笔或手指激活。

I/O设备/接口1210可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示驱动器)、一个或多个音频扬声器、以及一个或多个音频驱动器。在某些实施例中,I/O设备/接口1210被配置为向显示器提供图形数据以呈现给用户。图形数据可以表示一个或多个图形用户界面和/或可以服务于特定实现的任何其他图形内容。

在前述说明书中,参考其特定示例性实施例描述了实施例。参考本文讨论的细节来描述各种实施例,并且附图说明了各种实施例。以上描述和附图说明一个或多个实施例,并且不应被解释为限制。描述了许多具体细节以提供对各种实施例的透彻理解。

在不偏离其精神或基本特性的情况下,实施例可以包括其他特定形式。所描述的实施例在所有方面仅被认为是说明性的而不是限制性的。例如,可以用更少或更多的步骤/动作来执行本文描述的方法,或者可以以不同的顺序来执行步骤/动作。此外,本文描述的步骤/动作可以彼此并行地重复或执行,或者与相同或相似步骤/动作的不同实例并行地重复或执行。因此,本发明的范围由所附权利要求指示,而不是由前述描述指示。权利要求的含义和等同范围内的所有变更均应落入其范围内。

在上述各种实施例中,除非另有特别说明,否则诸如短语“A、B或C中的至少一个”的析取语言旨在理解为A、B或C或其任意组合(例如,A、B和/或C)。因此,析取语言不旨在也不应被理解为暗示给定实施例要求至少一个A、至少一个B或至少一个C每个都存在。

相关技术
  • 点播分发系统压力测试方法及装置、计算机装置及计算机存储介质
  • 系统自动测试方法、装置、计算机设备及存储介质
  • 测试方法、装置、计算机可读存储介质和计算机设备
  • 一种自动化压力测试方法及装置、计算设备及存储介质
  • 软件测试方法、装置、计算机设备和可读存储介质
  • 一种实现多存储器压力测试方法,系统,设备及计算机可读存储介质
  • 系统的压力测试方法、装置、计算机设备及可读存储介质
技术分类

06120116559869