一种基于示例的三维纹理过程生成模型优化方法

allin2022-09-03  82



1.本发明涉及计算机图形领域,尤其涉及一种基于示例的三维纹理过程生成模型优化方法。


背景技术:

2.在计算机图形学中,纹理是常见的表示空间中高频细节信息的方法。通过把纹理包裹在 物体表面,可以描述其表面上每一点处的起伏高低、材质颜色、材质粗糙度等属性;通过把 三维纹理映射到三维空间中的特定区域,可以描述这片区域的特定属性,如云雾中每个位置 对光的散射率、半透明材料中每个位置的反照率等。
3.如何高效地获得纹理数据一直是个饱受关注的问题。人工创作具有较高的人力和时间成 本,捕获现实中的纹理数据在规模和效率上也容易受限。因此,当应用程序需要大量具有一 定统计特征的纹理时,过程生成方法往往是合适的选择。这样的纹理在生活中广泛存在,既 有表示颜色的纹理,也有表示法线、起伏高度、介质密度等材质属性的纹理,比如树干上的 纹路颜色、砖墙表面的法线细节等。纹理的过程生成方法大致有两类:
4.一、基于示例的过程生成。所谓基于示例,是指由用户提供一张二维/三维纹理作为示例, 由生成算法批量地产生与示例图像具有相似视觉风格的纹理。这类方法可以被详细划分为基 于局部相似性的拼接算法、基于纹理优化的算法以及基于神经网络的端到端方法。
5.二、基于程序规则的过程生成,即由人工设计产生纹理数据的生成模型,其中包含了完 整的程序代码。由于编写程序代码的学习成本较高,基于节点图的可视化编程工具在设计者 中非常流行。在这些工具中,设计者可以通过组合具备特定功能的节点来构造程序。
6.这两类方法各有优劣。基于示例的方法自动化程度很高,用户通常只需要提供一幅示例 图像,就可以获得大量与之相似的目标纹理。但这些方法的中间过程近乎黑盒,无法编辑。 在生产实践中,用户常需要高频率地观察结果、调整生成过程,这一需求限制了基于示例的 方法的应用范围。与此相比,基于程序规则的方法易于理解,用户可以编辑生成规则,对目 标纹理的某些特征进行修改;这类方法的缺点则是编写生成规则并非易事,即使是富有经验 的美术工作者,要产生具有特定视觉特征的纹理,也往往需要花费大量时间来设计节点图和 调整节点参数。
7.编写纹理生成程序需要一定的编程基础,在编写过程中也难以观察到中间结果,对艺术 家和美术工作者来说很不方便。为了降低程序规则的编写门槛、提高编写效率,基于节点图 的可视化编程方法被引入到此领域中。目前,用于过程生成的商业软件大多使用这种编程模 式,如houdini,substance painter等。要使得节点图编写的生成规则产生符合预期的纹理, 需要富有经验的艺术家/美术工作者对节点图的结构进行设计。即使有了节点图本身,不同的 节点参数也会产生完全不同的目标纹理。因此,即使商业软件中已经积累了成百上千的节点 图,可以生成各式纹理,用户仍然需要花费大量时间调整节点参
数,这有违过程生成方法“高 效产生纹理”的初衷。


技术实现要素:

8.本发明的目的在于针对现有技术的不足,提供一种基于示例的三维纹理过程生成模型优 化方法。
9.本发明的目的是通过以下技术方案来实现的:一种基于示例的三维纹理过程生成模型优 化方法,包括以下步骤:
10.步骤一:使用者以节点图形式输入基于程序规则的纹理过程生成模型,将该模型输出的 三维目标纹理与预先准备的场景数据结合,经过可微渲染得到表示物体外观的图像。
11.步骤二:将步骤一得到的外观图像和使用者提供的示例图像一起输入风格损失函数中, 并基于该损失函数值对生成模型中的参数进行数值优化。
12.步骤三:在步骤二中的风格损失函数中加入空间标签,降低渲染过程带来的二义性对优 化效果的干扰。
13.进一步地,步骤一通过以下子步骤来实现:
14.(1.1)使用节点图来描述三维纹理的过程生成模型,并用代码生成技术高效地对三维纹理节 点图进行求值和微分。
15.(1.2)借助适用于高次散射和高分辨率的三维纹理数据的可微渲染技术把生成的纹理渲染为 图像。
16.(1.3)引入路径缓存技术来改善传统的可微渲染技术在散射次数较高时需要大量存储空间的 问题,通过多次遍历同一条光线路径的方法大幅降低了所需存储空间。
17.进一步地,步骤二通过以下子步骤来实现:
18.(2.1)将外观图像和示例图像分别输入用于计算机视觉任务的卷积神经网络中,提取其中的 关键特征层。
19.(2.2)对外观图像和示例图像在某个特征层分别对应的两个特征图,将它们所有特征像素的 空间位置信息抹去,形成两个包含m个n维向量的特征样本列表,其中m是特征图像素数,n是 特征像素通道数。
20.(2.3)在n维空间中随机选取一定数量的方向向量。对每个方向向量,计算(2.2)的两个列 表中的每个特征样本在该方向向量上的投影长度,得到两个长度为m的投影向量。
21.(2.4)将两个投影向量的元素各自从小到大排序。
22.(2.5)计算两个投影向量间的欧氏距离,除以总方向向量数后累加到最终的损失函数值上。
23.进一步地,步骤三的具体问题及解决方案为:
24.渲染时场景中的物体形状、环境光源等因素会使得外观图像中物体上的不同区域的颜色 产生差异,这部分差异是场景固有的。如果评估函数将这部分差异归因于目标纹理,进而归 因于节点图参数的影响,就会干扰优化结果。为了解决这一问题,本发明引入空间标签的概 念。空间标签是与外观图像和示例图像具有相同分辨率的图像,用于描述外观图像上不同区 域间的固有差异。空间标签的取值灵活多变,可以是任何能反映固有差异的量。比如用世界 空间法线作为空间标签的值,就相当于把法线差异视为一种固有差异,如
果图像上区域a和区 域b的法线有明显区别,那么就不应比较a和b之间的风格。具体来说,生成空间标签的详细 步骤如下:
25.(3.1)将场景数据中的目标纹理替换为常值纹理,使用可微渲染将场景转换为外观图像,计 算外观图像和示例图像间的平方和差异。
26.(3.2)基于(3.1)中计算的差异对纹理值的梯度对纹理进行梯度下降优化,将优化至收敛 的常值纹理对应的外观图像作为空间标签。
27.(3.3)对(2.1)中获得的所有分辨率与空间标签相同的特征图,将空间标签作为额外的特 征通道附加在原有的特征通道之后。
28.(3.4)对(2.3)中随机选取的每个方向向量(v1,v2,

,vn),将其替换为d个方向向量 {(v1,

,vn,0,

,αm,

,0)|m=1,

,d},其中d是(3.2)中生成的空间标签的通道数。
29.本发明的有益效果是,本发明用程序规则描述纹理生成模型,再用示例对模型参数进行 优化,结合了这两类技术的优势,相比前者节省人力,相比后者编辑灵活。本发明可以辅助 美术工作者快速创作具有特定风格的三维纹理,提高纹理数据的生产效率,以及将图像上特 定物体的纹理迁移到其他渲染的物体上。
附图说明
30.图1是基于示例的三维纹理过程生成模型优化方法流程图;
31.图2是实现该方法所需的核心系统组件图。
具体实施方式
32.下面根据附图详细说明本发明。
33.如图1和图2所示,本发明基于示例的三维纹理过程生成模型优化方法,包括以下步骤:
34.本发明的目的是通过以下技术方案来实现的:一种基于示例的三维纹理过程生成模型优 化方法,包括以下步骤:
35.步骤一:使用者以节点图形式输入基于程序规则的纹理过程生成模型,将该模型输出的 三维目标纹理与预先准备的场景数据结合,经过可微渲染得到表示物体外观的图像。
36.该步骤是本发明生成目标纹理的基础步骤,分为以下子步骤。
37.1)解析使用者输入的节点图结构,生成对该节点图进行求值的函数和求导的函数。生成 求值函数的算法如下:
[0038][0039]
生成求导函数的算法如下:
[0040][0041]
2)利用可微渲染将求值节点图得到的目标纹理渲染为外观图像,同时计算外观图像对目 标纹理的导数。其中,正向渲染过程可采用已相对成熟的路径追踪算法。反向计算导数时, 对每一条从摄像机出发的光线路径,都需要先遍历一次该路径,记录每个顶点处的系数,遍 历完成后利用这些系数计算每个顶点处来自下一个顶点的辐射亮度估计量;然后再次遍历该 路径,将之前计算的辐射亮度估计量代入,累积得到外观图像对目标纹理的导数。
[0042]
步骤二:将步骤一得到的外观图像和使用者提供的示例图像一起输入风格损失函数中, 并基于该损失函数值对生成模型中的参数进行数值优化。
[0043]
该步骤是本发明的核心,分为以下子步骤。
[0044]
1)将外观图像和示例图像分别输入用于计算机视觉任务的卷积神经网络中,提取其中的 关键特征层。这里的神经网络使用vgg-16或vgg-19网络均可。
[0045]
2)对外观图像和示例图像在某个特征层分别对应的两个特征图,将它们所有特征像素的 空间位置信息抹去,形成两个包含m个n维向量的特征样本列表,其中m是特征图像素数,n是 特征像素通道数。
[0046]
3)在n维空间中随机选取一定数量的方向向量。对每个方向向量,计算两个列表中的每 个特征样本在该方向向量上的投影长度,得到两个长度为m的投影向量。
[0047]
4)对每个方向向量,将两个对应的投影向量的元素从小到大排序。
[0048]
5)对每个方向向量,计算对应的两个投影向量间的欧氏距离,除以总方向向量数后累加 到最终的损失函数值上。
[0049]
在得到损失函数值后,使用梯度引导的马尔可夫链蒙特卡洛算法,即metropolis-adjustedlangevin算法对节点取值进行采样。
[0050]
步骤三:在步骤二中的风格损失函数中加入空间标签,降低渲染过程带来的二义性对优 化效果的干扰。
[0051]
该步骤在复杂场景下对本发明的效果有重要作用,分为以下子步骤。
[0052]
1)将场景数据中的目标纹理替换为常值纹理,使用可微渲染将场景转换为外观图像,计 算外观图像和示例图像间的平方和差异。
[0053]
2)基于(1)中计算的差异对纹理值的梯度对纹理进行梯度下降优化,将优化至收敛的常值 纹理对应的外观图像作为空间标签。
[0054]
3)对上一步中获得的所有分辨率与空间标签相同的特征图,将空间标签作为额外的特征 通道附加在原有的特征通道之后。
[0055]
4)对计算损失函数时随机选取的每个方向向量(v1,v2,

,vn),将其替换为d个方向向量 {(v1,

,vn,0,

,αm,

,0)|m=1,

,d},其中d是(3.2)中生成的空间标签的通道数。

技术特征:
1.一种基于示例的三维纹理过程生成模型优化方法,其特征在于,包括以下步骤:步骤一:以节点图形式输入基于程序规则的纹理过程生成模型,将该模型输出的三维目标纹理与预先准备的场景数据结合,经过可微渲染得到表示物体外观的图像;步骤二:将步骤一得到的外观图像和示例图像一起输入风格损失函数中,并基于该损失函数值对生成模型中的参数进行数值优化;步骤三:在步骤二中的风格损失函数中加入空间标签,降低渲染过程带来的二义性对优化效果的干扰。2.根据权利要求1所述的外观图像计算方法,其特征在于,所述步骤一具体为:(1.1)使用节点图来描述三维纹理的过程生成模型,并用代码生成技术对三维纹理节点图进行求值和微分;(1.2)用蒙特卡洛方法追踪场景中的光线传输路径,从而将生成的纹理渲染为图像;对场景中的每条光线路径,不断在单位球面上随机采样散射方向,以摄像机为起点,连续基于当前散射点位置用光线追踪求出下一个散射点,在此过程中累积每个散射点处光源对该传输路径携带的辐射亮度产生的贡献;(1.3)利用反向求导方法计算(1.2)中渲染的图像对纹理的导数;对每一条从摄像机出发的光线路径,先遍历一次该路径,记录每个顶点处的系数,遍历完成后利用这些系数计算每个顶点处来自下一个顶点的辐射亮度估计量;然后再次遍历该路径,将之前计算的辐射亮度代入链式求导法则,累积起来得到渲染图像对纹理的导数。3.根据权利要求1所述的损失函数计算方法,其特征在于,所述步骤二通过以下子步骤来实现:(2.1)将外观图像和示例图像分别输入用于计算机视觉任务的卷积神经网络中,提取其中的关键特征层;(2.2)对外观图像和示例图像在某个特征层分别对应的两个特征图,将它们所有特征像素的空间位置信息抹去,形成两个包含m个n维向量的特征样本列表,其中n是特征图像素数,n是特征像素通道数;(2.3)在n维空间中随机选取一定数量的方向向量;对每个方向向量,计算(2.2)的两个列表中的每个特征样本在该方向向量上的投影长度,得到两个长度为m的投影向量;(2.4)将两个投影向量的元素各自从小到大排序;(2.5)计算两个投影向量间的欧氏距离,除以总方向向量数后累加到最终的损失函数值上。4.根据权利要求1所述的空间标签,其特征在于,所述步骤三通过以下子步骤来实现:(3.1)将场景数据中的目标纹理替换为常值纹理,使用可微渲染将场景转换为外观图像,计算外观图像和示例图像间的平方和差异;(3.2)基于(3.1)中计算的差异对纹理值的梯度对纹理进行梯度下降优化,将优化至收敛的常值纹理对应的外观图像作为空间标签;(3.3)对(2.1)中获得的所有分辨率与空间标签相同的特征图,将空间标签作为额外的特征通道附加在原有的特征通道之后;(3.4)对(2.3)中随机选取的每个方向向量(v1,v2,

,v
n
),将其替换为d个方向向量{(v1,

,v
n
,0,


m
,

,0)|m=1,

,d},其中d是(3.2)中生成的空间标签的通道数。

技术总结
本发明公开了一种基于示例的三维纹理过程生成模型优化方法,该方法在基于程序规则的过程纹理生成技术的基础上,根据示例图像自动优化生成模型的参数。本发明使用可微渲染技术将生成的纹理转换至表示物体外观的图像,用该图像与示例图像间的风格风格损失对生成模型参数进行优化,并在损失函数中加入空间标签,以降低渲染过程带来的二义性对优化效果的干扰。相比已有的基于程序规则的过程纹理生成技术,该方法自动化程度更高;而相比已有的基于示例的生成技术,该方法允许使用者编辑生成模型,更加灵活。此外,该方法是首个针对三维纹理的过程生成模型的参数优化方法。的过程生成模型的参数优化方法。的过程生成模型的参数优化方法。


技术研发人员:官庄 任重
受保护的技术使用者:浙江大学
技术研发日:2022.02.25
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-2785.html

最新回复(0)