CN110084874B - 对于三维模型的图像风格迁移 - Google Patents
对于三维模型的图像风格迁移 Download PDFInfo
- Publication number
- CN110084874B CN110084874B CN201910066976.1A CN201910066976A CN110084874B CN 110084874 B CN110084874 B CN 110084874B CN 201910066976 A CN201910066976 A CN 201910066976A CN 110084874 B CN110084874 B CN 110084874B
- Authority
- CN
- China
- Prior art keywords
- current
- image
- rendering
- map
- computing devices
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/758—Involving statistics of pixels or of feature values, e.g. histogram matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/653—Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2012—Colour editing, changing, or manipulating; Use of colour codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2024—Style variation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开的示例方面针对的是对于三维模型执行图像风格迁移的系统和方法。在一些实现方式中,系统和方法可使用例如卷积神经网络之类的机器学习模型来生成用于执行风格迁移的图像风格和内容信息。本公开的系统和方法可在渲染图像空间中操作。具体地,一种计算系统可基于在多次迭代的每一者从模型的不同渲染收集的信息来迭代地修改属性渲染贴图(例如纹理贴图、凹凸贴图等等),最终结果是属性渲染贴图以保留内容的方式模仿一个或多个参考图像的风格。在一些实现方式中,每次迭代的风格损耗的计算可利用多视点平均场景统计来执行,而不是独立地对待每个视点。
Description
技术领域
本公开概括而言涉及对于三维模型的图像风格迁移(image style transfer)。更具体而言,本公开涉及通过例如机器学习模型的使用的对于三维模型的图像风格迁移,其中机器学习模型例如是卷积神经网络。
背景技术
风格迁移一般可以指如下的概念和过程:将来自一组参考影像的观感应用到基础图像,从而创建具有或以其他方式展现第一组影像的观感的基础图像的新版本。
更具体而言,存在各种计算系统和方法,它们允许用户选择代表期望的观感(即,期望的风格)的一个或多个参考图像。例如,观感可包括颜色方案、照明方案和/或影像的对其风格作出贡献的其他属性。这些计算系统和方法可将该观感应用到基础图像,从而创建具有期望观感的基础图像的新版本。
然而,虽然这些现有的系统对于二维影像提供最先进的结果,但迄今为止仍然没有用于对于三维模型执行图像风格迁移的可行系统,其中三维模型例如是三维网格模型。只支持二维图像这个事实限制了风格迁移技术的应用的集合。
发明内容
本公开的实施例的一些方面和优点将一部分在接下来的说明书中记载,或者可从说明书中获悉,或者可通过实现实施例来获悉。
本公开的一个示例方面针对的是一种计算机实现的方法。该方法包括由一个或多个计算设备获得一个或多个参考图像和描述三维模型的数据。该方法包括由一个或多个计算设备为一个或多个参考图像确定一个或多个参考图像统计。该方法包括对于多个迭代的每一者由一个或多个计算设备利用当前属性渲染贴图(map)从当前视点渲染三维模型的当前图像。当前属性渲染贴图分别为三维模型的多个位置提供多个属性值。该方法包括对于多个迭代的每一者由一个或多个计算设备为利用当前属性渲染贴图从当前视点渲染的三维模型的当前图像确定一个或多个当前图像统计。该方法包括对于多个迭代的每一者由一个或多个计算设备至少部分基于为当前图像确定的一个或多个当前图像统计来更新一个或多个平均图像统计。该方法包括对于多个迭代的每一者由一个或多个计算设备评估损耗函数,该损耗函数评估一个或多个参考图像统计与一个或多个平均图像统计之间的差异。该方法包括对于多个迭代的每一者由一个或多个计算设备至少部分基于损耗函数的梯度来修改当前属性渲染贴图。
本公开的另一示例方面针对的是一种计算系统。计算系统包括一个或多个处理器和集体地存储指令的一个或多个非暂态计算机可读介质,这些指令当被一个或多个处理器执行时使得计算系统执行操作。操作包括为一个或多个参考图像确定一个或多个参考图像统计。操作包括对于多个迭代的每一者获得利用当前属性渲染贴图从当前视点渲染的三维模型的当前图像。操作包括对于多个迭代的每一者为利用当前属性渲染贴图从当前视点渲染的三维模型的当前图像确定一个或多个当前图像统计。操作包括对于多个迭代的每一者评估损耗函数,该损耗函数至少部分基于一个或多个参考图像统计并且至少部分基于一个或多个当前图像统计来提供损耗值。操作包括对于多个迭代的每一者至少部分基于损耗函数的梯度来修改以下各项的一者或多者:当前属性渲染贴图;被配置为生成当前属性渲染贴图的贴图生成函数的一个或多个参数;或者被配置为渲染当前图像的渲染函数的一个或多个参数。
本公开的另一示例方面针对的是集体地存储指令的一个或多个非暂态计算机可读介质,这些指令当被一个或多个处理器执行时使得该一个或多个处理器执行操作。操作包括为一个或多个参考图像确定一个或多个参考图像统计。操作包括对于多个迭代的每一者获得利用当前属性渲染贴图从当前视点渲染的三维模型的当前图像。操作包括对于多个迭代的每一者为利用当前属性渲染贴图从当前视点渲染的三维模型的当前图像确定一个或多个当前图像统计。操作包括对于多个迭代的每一者评估损耗函数,该损耗函数至少部分基于一个或多个参考图像统计并且至少部分基于一个或多个当前图像统计来提供损耗值。操作包括对于多个迭代的每一者至少部分基于损耗函数的梯度来修改以下各项的一者或多者:当前属性渲染贴图;被配置为生成当前属性渲染贴图的贴图生成函数的一个或多个参数;或者被配置为渲染当前图像的渲染函数的一个或多个参数。
本公开的其他方面针对各种系统、装置、非暂态计算机可读介质、用户界面和电子设备。
参考接下来的说明书和所附的权利要求将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。包含在本说明书中并构成本说明书的一部分的附图图示了本公开的示例实施例并且与描述一起用于说明相关的原理。
附图说明
针对本领域普通技术人员的实施例的详细论述在说明书中记载,说明书参考了附图中,附图中:
图1A描绘了根据本公开的示例实施例的对于三维模型执行风格迁移的示例计算系统的框图。
图1B描绘了根据本公开的示例实施例的示例计算设备的框图。
图1C描绘了根据本公开的示例实施例的示例计算设备的框图。
图2描绘了根据本公开的示例实施例的示例风格迁移管理器的框图。
图3描绘了根据本公开的示例实施例的示例风格迁移管理器的框图。
图4描绘了根据本公开的示例实施例的示例风格迁移管理器的框图。
图5描绘了根据本公开的示例实施例的修改属性渲染贴图(的示例工作流的框图。
图6A和6B描绘了根据本公开的示例实施例的对于三维模型执行风格迁移的示例方法的流程图。
图7A描绘了根据本公开的示例实施例的示例基础纹理贴图。
图7B描绘了根据本公开的示例实施例的利用图7A的示例基础纹理贴图渲染的示例三维模型的示例渲染。
图7C描绘了根据本公开的示例实施例的示例合成纹理贴图。
图7D描绘了根据本公开的示例实施例的利用图7C的示例合成纹理贴图渲染的示例三维模型的示例渲染。
在多幅附图中重复的附图标记旨在识别各种实现方式中的相同特征。
具体实施方式
概述
本公开的示例方面针对的是对于三维模型执行图像风格迁移的系统和方法。更具体而言,在一些实现方式中,本公开的系统和方法可使用例如卷积神经网络之类的机器学习模型来生成随后可用于执行风格迁移的图像风格和内容信息。根据本公开的一个方面,本公开的系统和方法可在渲染图像空间中操作。具体地,一种计算系统可基于在多次迭代的每一次从模型的不同渲染收集的信息来迭代地修改属性渲染贴图(例如纹理贴图、凹凸贴图等等),最终结果是属性渲染贴图以保留内容的方式模仿一个或多个参考图像的风格。根据本公开的另一方面,在一些实现方式中,每次迭代的风格损耗的计算可利用多视点平均场景统计来执行,而不是独立地对待每个视点。此外,可通过渲染操作来反向传播损耗函数的梯度以修改属性渲染贴图本身。从而,本公开的系统和方法可以为三维模型执行风格迁移并且提供一致的属性渲染贴图,其中三维模型包括具有非均一的和/或碎片化的UV映射的模型。
更具体而言,在一些实现方式中,计算系统可以取一个或多个参考图像和任意的(可能纹理化的)三维模型(例如,网格模型)作为输入。该一个或多个参考图像可代表期望的风格。计算系统可迭代地合成新的属性渲染贴图,该新属性渲染贴图提供在渲染三维模型时使用的一个或多个属性值。具体地,新的属性渲染贴图可匹配由一个或多个参考图像提供的期望风格。
更一般而言,属性渲染贴图可分别为三维模型的多个位置提供多个属性值。例如,属性渲染贴图提供的属性值可通过UV映射被映射到三维模型。属性值可以是在渲染模型时使用的模型的任何属性的值。
作为一个示例,属性渲染贴图可以是纹理贴图。纹理贴图可以为三维模型的每个位置提供纹理值。例如,纹理值可包括诸如RGB值、RGBA值、CMYK值、HSV值、HSL值等等之类的颜色值。纹理贴图的一个示例形式是纹理图集(texture atlas)。
作为其他示例,属性渲染贴图可以是为三维模型的每个位置提供表面法线信息的凹凸贴图。每个凹凸贴图可包括法线贴图、位移贴图或者其他形式的凹凸贴图。作为另外的示例,属性渲染贴图可以是为被渲染位置提供光颜色信息的光颜色贴图;为被渲染位置提供光位置信息的光位置贴图;为三维模型的各位置提供材料属性信息(例如,反射性、硬度、声学属性、柔韧性、粗糙度、光度、吸光度等等)的材料属性贴图;和/或其他形式的属性渲染贴图。一般而言,属性渲染贴图可以为渲染模型时使用的模型的任何属性提供属性值。
如上文指出的,计算系统可基于一个或多个参考图像为三维模型的一个或多个属性迭代地合成新的属性渲染贴图。为此,计算系统可基于在多次迭代的每一次从模型的不同渲染收集的信息来迭代地修改属性渲染贴图,最终结果是属性渲染贴图以保留内容的方式模仿一个或多个参考图像的风格。
作为一个示例,在每次迭代,计算系统可对模型的一不同视点采样。例如,计算系统可从一组预期的视点(例如,随机地)选择一视点。该组预期视点可包括所有可用的视点,或者可限于如下的视点:在模型的使用期间,能够从这些视点渲染模型或者以其他方式预期从这些视点渲染模型。
在每个迭代/视点,计算系统可利用属性渲染贴图的当前版本从采样的视点渲染模型的当前图像。在一些实现方式中,计算系统可确定当前图像和(一个或多个)参考图像的相应图像(或特征)统计之间的风格损耗和/或当前图像和利用基础属性渲染贴图从同一视点对模型的渲染的相应内容描述元之间的内容损耗。计算系统可基于风格损耗和/或内容损耗来更新属性渲染贴图。
更具体而言,在一些实现方式中,计算系统可确定当前图像和(一个或多个)参考图像的相应图像统计之间的风格损耗。从而,在一些实现方式中,计算系统可以——可选地在开始迭代过程之前——为(一个或多个)参考图像确定一个或多个图像统计。一个或多个图像统计可以是任何形式的提供描述图像的风格的信息的图像分析。特定图像的图像(或特征)统计可携带该图像的风格(或观感)信息。然而,取决于使用的图像/特征统计,它们可能没有捕捉图像的语义结构。
作为一个示例,一个或多个图像统计可包括直方图(例如,颜色直方图);边缘信息;对比度;空间频率(例如,高频贴图);平均像素值;最大/最小像素值;个体特征通道的中值和/或方差;特征匹配;马尔可夫纹理分析;马尔可夫随机场;等等。
根据本公开的另一方面,在一些实现方式中,计算系统可利用一个或多个机器学习模型——例如卷积神经网络——来生成风格信息。具体地,在一些实现方式中,计算系统可使用一个或多个卷积神经网络来为当前图像和/或(一个或多个)参考图像生成图像统计。
作为一个示例,为了为图像(例如,当前图像和/或参考图像)确定图像统计,计算系统可将该图像输入到卷积神经网络中,并且作为响应接收来自卷积神经网络的输出。在一些实现方式中,卷积神经网络的输出可被用作输入图像的图像统计。在其他实现方式中,从神经网络的隐藏层或神经元获得的一个或多个值(例如,“嵌入”)可被用作图像统计或者用作生成图像统计的基础。作为一个示例,计算系统可至少部分基于在卷积神经网络的内部特征(例如,隐藏神经元)上计算的一个或多个格兰或协方差矩阵来为输入图像确定一个或多个图像统计。
卷积神经网络可被特别地训练来提供一个或多个图像统计。或者,卷积神经网络可以是被预训练来执行一些一般形式的图像分析(例如,图像分类、图像识别、对象识别、对象分割,等等)的一般网络。示例卷积神经网络包括VGG16、VGG19、ResNet50、Inception V3和Xception网络。
另外,计算系统可利用其他机器学习模型或网络作为卷积神经网络的附加或替换来生成图像统计。示例神经网络(例如,深度神经网络)包括前馈神经网络、递归神经网络,等等。可用于生成图像统计的额外示例模型包括线性模型;主成分分析模型;聚类模型(例如,K最近邻);概率模型;马尔可夫随机场;回归模型;等等。
从而,计算系统可以——可选地在开始迭代过程之前——为(一个或多个)参考图像确定一个或多个图像统计。然后,在每次迭代,计算系统可以从不同视点渲染模型的当前图像并且为当前图像估算相同的一个或多个图像统计。在每次迭代,计算系统可至少部分基于为(一个或多个)参考图像确定的一个或多个参考图像统计和为当前图像确定的一个或多个当前图像统计来评估提供损耗值的风格损耗。从而,风格损耗值在每次迭代指示出当前图像的风格与(一个或多个)参考图像展现的风格有多相似。如下文将进一步描述的,可至少部分基于风格损耗值在每次迭代更新当前属性渲染贴图(例如,以减小风格损耗值,以使得模型的渲染变得与(一个或多个)参考图像所展现的风格更相似)。
根据本公开的另外一个方面,在一些实现方式中,风格损耗的计算可利用多视点平均图像统计来执行,而不是独立地对待每个视点。例如,在每次迭代,可利用为当前图像确定的当前图像统计来更新跨多个视点渲染的图像统计的移动平均。损耗函数可基于平均图像统计和为(一个或多个)参考图像确定的参考图像统计之间的差异来提供风格损耗值。
通过计算多个视点上的图像统计的平均并随后利用多视点平均的图像统计来计算风格损耗,计算系统可提供更全局一致的风格迁移结果。具体地,对于三维模型的风格迁移提供了延伸超出传统二维问题的重大额外挑战。作为一个示例,三维模型可包括非均一的和/或碎片化的UV映射。作为另一示例,三维模型可具有只在所有可用视点的一小部分中可见的数个位置(例如,裂缝、角落等等)。通过使用图像统计在多个视点上的平均,风格信息被跨多个视点传递,从而使得能够基于来自多个视点的信息来风格化这些具有挑战性的位置并且导向了更全局一致的结果。
在一些实现方式中,作为在每次迭代使用风格损耗的附加或替换,计算系统可确定当前图像和利用基础属性渲染贴图从同一视点对模型的渲染的相应内容描述元之间的内容损耗。具体地,在一些实现方式中,在每次迭代,计算系统可从所选视点渲染两个图像:使用被迭代更新的当前属性渲染贴图的当前图像和使用基础属性渲染贴图的基础图像。基础属性渲染贴图可以是与模型的原始或基础版本相关联的属性渲染贴图。作为一个示例,基础属性渲染贴图可以是基础纹理贴图。
基础属性贴图可包括辅助传达内容信息的属性值。提供一个具体示例,斑马的模型可具有包括有助于能够被识别为斑马的模型的渲染的纹理值的基础纹理贴图。例如,该纹理贴图可提供包括条纹的纹理。
在每次迭代,计算系统可以为当前图像和基础图像的每一者确定一个或多个内容描述元。每个图像的内容描述元可包括描述图像的内容的任何信息,并且因此,各种形式的内容分析可被执行。作为一个示例,内容描述元可描述图像的语义结构。
在一些实现方式中,与图像统计的计算类似,计算系统可利用一个或多个机器学习模型——例如卷积神经网络——来生成内容信息。具体地,在一些实现方式中,计算系统可使用一个或多个卷积神经网络来为当前图像和/或基础图像生成内容描述元。
作为一个示例,为了为图像(例如,当前图像和/或基础图像)确定内容描述元,计算系统可将该图像输入到卷积神经网络中,并且作为响应接收来自卷积神经网络的输出。在一些实现方式中,卷积神经网络的输出(例如,描述检测到的对象或场景分类的数据)可被用作输入图像的内容描述元。在其他实现方式中,从神经网络的隐藏层或神经元获得的一个或多个值(例如,“嵌入”)可被用作内容描述元或者用作生成内容描述元的基础。
在一些实现方式中,用于生成内容描述元的(一个或多个)卷积神经网络可与用于生成图像统计的那些相同。例如,内容描述元可以是从提取自网络的“更深”或更靠近网络的输出层的隐藏层的信息生成的,而图像统计可以是从提取自网络的“更早”或更靠近网络的输入层的隐藏层的信息生成的。这样,内容描述元可包括更高级别的抽象信息(例如,支配性的内容关系、语义结构,等等),而图像统计可包括更低级别的抽象信息(例如,低级别边缘信息、着色信息,等等)。在其他实现方式中,用于生成内容描述元的(一个或多个)卷积神经网络可与用于生成图像统计的那些不同。
卷积神经网络可被特别地训练来提供一个或多个内容描述元。或者,卷积神经网络可以是被预训练来执行一些一般形式的图像分析(例如,图像分类、图像识别、对象识别、对象分割,等等)的一般网络。示例卷积神经网络包括VGG16、VGG19、ResNet50、InceptionV3和Xception网络。
在每次迭代,计算系统可确定描述为当前图像确定的一个或多个当前内容描述元和为基础图像确定的一个或多个基础内容描述元之间的差异的内容损耗值。具体地,除了风格损耗以外还使用内容损耗使得能够以保留内容的方式执行风格迁移。也就是说,可以平衡经由风格损耗的优化来迁移风格与经由内容损耗的优化来保留内容。继续上文提供的示例,斑马的模型的纹理贴图可被更新以接收风格迁移,然而,其可在风格迁移的纹理内保持内容描述特征,例如条纹。
在每次迭代,计算系统可至少部分基于损耗函数的梯度来修改当前属性渲染贴图。例如,损耗函数的梯度可以是相对于当前图像的梯度。
根据本公开的另一方面,在一些实现方式中,可通过渲染操作来反向传播损耗函数的梯度以修改属性渲染贴图本身。例如,这可通过在渲染期间为每个像素存储UV坐标并随后将像素梯度路由到属性渲染贴图的贡献参数来实现。在一些实现方式中,可围绕每个参数执行双线性插值以在相邻参数间扩散梯度。
可根据各种参数方案来参数化合成的属性渲染贴图,并且计算系统可根据这种参数方案来修改属性渲染贴图的参数。作为一个示例,可利用像素的阵列来参数化属性渲染贴图。作为另一示例,可利用某种其他去相关的结构来参数化属性渲染贴图,所述结构例如是拉普拉斯金字塔(例如,拉普拉斯金字塔的加权谱)。从而,作为一个示例,修改当前属性渲染贴图可包括直接修改属性渲染贴图的属性值(例如,像素值)。作为另一示例,修改当前属性渲染贴图可包括修改属性渲染贴图的一个或多个去相关参数结构,然后在这样的(一个或多个)修改之后从去相关结构重生成属性渲染贴图。
在一些实现方式中,作为在每次迭代基于损耗函数的梯度修改属性渲染贴图的附加或替换,计算系统可修改被配置为生成当前属性渲染贴图的贴图生成函数的一个或多个参数或者被配置为渲染当前图像的渲染函数的一个或多个参数。作为示例,贴图生成函数和渲染函数中的一者或两者可以是或者可以包括机器学习的神经网络(例如,卷积神经网络)或者其他学习的函数(例如,机器学习的线性模型)。
计算系统可在符合一个或多个标准时结束迭代过程。示例标准包括:当损耗函数收敛时;当完成了阈值数目的迭代时;当总损耗值的移动平均小于阈值量时;当总损耗值的迭代与迭代间变化小于阈值量时;和/或其他各种标准。在迭代过程完成时,最终迭代的当前属性渲染贴图可被存储为该三维模型的最终属性渲染贴图。
从而,本公开的系统和方法提供了使得能够对于三维模型执行风格迁移的技术效果和益处,这是现有技术没有实现的。这可能例如对于生成新的虚拟现实环境和/或增强现实环境是尤其有益的。例如,其可简化可用来将纹理或其他渲染属性添加到虚拟和/或增强现实对象/环境的三维模型的过程。确实,只要通过提供三维模型和一个或多个参考图像作为对系统的输入,就可以向该三维模型添加全局一致的纹理。
作为额外的示例技术效果和益处,本公开的系统和方法可通过计算在渲染图像空间中的多个视点上的图像统计的平均并随后利用多视点平均的图像统计来计算风格损耗,从而来提供更全局一致的风格迁移结果。具体地,本公开的系统和方法可以为包括非均一的和/或碎片化的UV映射和/或仅在有限数目的视点中可见的位置的三维模型提供一致的属性渲染贴图。
属性渲染中的改善的全局一致性可例如意味着应用到三维模型的纹理可包括更少的“接缝”和/或不一致的斑块。在虚拟现实实现方式中,这可产生这样一种三维对象:无论从哪个视点观察它,它都具有一致的、无缝的纹理。在某些情景中,这种对象可因此看起来更逼真。
此外,通过利用多视点平均的图像统计来计算风格损耗,而不是独立对待每个视点,损耗可更迅速收敛。其也可使得本文描述的方法更适合于使用单个GPU的执行(例如,由于优化问题可被迭代计算)。
此外,通过使用本文描述的到三维模型的风格迁移,可改善或增强许多潜在应用。这种应用可包括例如虚拟和/或增强现实环境和/或对象的生成、仿真环境的生成、视频游戏场景的生成、动画运动图片场景,等等,和/或包括三维模型的渲染的其他应用。
现在参考附图,现在将更详细论述本公开的示例实施例。
示例设备和系统
图1A描绘了根据本公开的示例实施例的对于三维模型执行风格迁移的示例计算系统100的框图。系统100包括通过网络180通信耦合的用户计算设备102、服务器计算系统130和训练计算系统150。
用户计算设备102可以是任何类型的计算设备,例如个人计算设备(例如,膝上型电脑或桌面型电脑)、移动计算设备(例如,智能电话或平板设备)、游戏控制台或控制器、可穿戴计算设备(例如,增强和/或虚拟现实耳机)、嵌入式计算设备或者任何其他类型的计算设备。
用户计算设备102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何适当的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器等等)并且可以是一个处理器或者操作性连接的多个处理器。存储器114可包括一个或多个非暂态计算机可读存储介质,例如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等等,及其组合。存储器114可存储数据116和被处理器112执行来使得用户计算设备102执行操作的指令118。
在一些实现方式中,用户计算设备102可存储或包括一个或多个风格迁移管理器120。风格迁移管理器120可根据本公开的示例实施例执行对于三维模型的风格迁移。例如,风格迁移管理器120可执行图6A-6B的方法600的一些或全部和/或本文描述的任何其他技术来执行风格迁移。参考图2-4来论述示例风格迁移管理器120。
在一些实现方式中,风格迁移管理器120可以是或者可以其他方式包括各种机器学习模型,例如神经网络(例如,深度神经网络)或者其他类型的机器学习模型,包括非线性模型和/或线性模型。神经网络可包括前馈神经网络、递归神经网络(例如,长短期记忆递归神经网络)、卷积神经网络或者其他形式的神经网络。
在一些实现方式中,一个或多个风格迁移管理器120可以是通过网络180从服务器计算系统130接收的,被存储在用户计算设备存储器114中,并随后被一个或多个处理器112使用或以其他方式实现。在一些实现方式中,用户计算设备102可实现单个风格迁移管理器120的多个并行实例(例如,为了在三维模型的多个实例上执行并行风格迁移)。
额外地或者替换地,一个或多个风格迁移管理器140可被包括在根据客户端-服务器关系与用户计算设备102通信的服务器计算系统130中或者被服务器计算系统130以其他方式存储和实现。例如,风格迁移管理器140可被服务器计算系统130作为web服务(例如,风格迁移服务)的一部分来实现。从而,一个或多个管理器120可被存储和实现在用户计算设备102处,并且/或者一个或多个管理器140可被存储和实现在服务器计算系统130处。管理器140可与上文描述的管理器120相同。
用户计算设备102也可包括接收用户输入的一个或多个用户输入组件122。例如,用户输入组件122可以是对用户输入物体(例如,手指或触笔)的触摸敏感的触摸敏感组件(例如,触摸敏感显示屏或触摸板)。触摸敏感组件可用于实现虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘或者用户可用来提供用户输入的其他手段。
服务器计算系统130包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何适当的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器等等)并且可以是一个处理器或者操作性连接的多个处理器。存储器134可包括一个或多个非暂态计算机可读存储介质,例如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等等,及其组合。存储器134可存储数据136和被处理器132执行来使得服务器计算系统130执行操作的指令138。
在一些实现方式中,服务器计算系统130包括一个或多个服务器计算设备或者由一个或多个服务器计算设备以其他方式实现。在服务器计算系统130包括多个服务器计算设备的场合中,这种服务器计算设备可根据顺序计算体系结构、并行计算体系结构或者其某种组合来操作。
如上所述,服务器计算系统130可存储或以其他方式包括一个或多个风格迁移管理器140。例如,管理器140可以是或者可以其他方式包括各种机器学习模型。示例机器学习模型包括神经网络或其他多层非线性模型。示例神经网络包括前馈神经网络、深度神经网络、递归神经网络和卷积神经网络。参考图2-4来论述示例管理器140。
用户计算设备102和/或服务器计算系统130可经由与通过网络180通信耦合的训练计算系统150的交互来训练管理器120和/或140中包括的机器学习模型(例如,神经网络)。训练计算系统150可与服务器计算系统130分离或者可以是服务器计算系统130的一部分。
训练计算系统150包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何适当的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器等等)并且可以是一个处理器或者操作性连接的多个处理器。存储器154可包括一个或多个非暂态计算机可读存储介质,例如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等等,及其组合。存储器154可存储数据156和被处理器152执行来使得训练计算系统150执行操作的指令158。在一些实现方式中,训练计算系统150包括一个或多个服务器计算设备或者由一个或多个服务器计算设备以其他方式实现。
训练计算系统150可包括模型训练器160,该模型训练器160利用诸如误差的向后传播之类的各种训练或学习技术来训练存储在用户计算设备102和/或服务器计算系统130处的管理器120和/或140中包括的机器学习模型。在一些实现方式中,执行误差的向后传播可包括执行通过时间的截断反向传播。模型训练器160可执行数个一般化技术(例如,权重衰减、退出等等)来改善被训练的模型的一般化能力。
具体地,模型训练器160可基于一组训练数据162来训练风格迁移管理器120和/或140中包括的模型。在一些实现方式中,训练数据162可包括例如利用地面真值图像统计和/或地面真值内容描述元来标记的图像的集合。在其他实现方式中,训练数据162可包括例如利用各种其他信息来标记的图像的集合,所述信息例如是地面真值图像分类、地面真值对象标签、地面真值对象分割,等等。
模型训练器160包括用来提供期望的功能的计算机逻辑。模型训练器160可以用硬件、固件和/或控制通用处理器的软件来实现。例如,在一些实现方式中,模型训练器160包括存储在存储设备上、被加载到存储器中并且被一个或多个处理器执行的程序文件。在其他实现方式中,模型训练器160包括被存储在诸如RAM硬盘或者光介质或磁介质之类的有形计算机可读存储介质中的计算机可执行指令的一个或多个集合。
网络180可以是任何类型的通信网络,例如局域网(例如,内联网)、广域网(例如,互联网)或者其某种组合,并且可包括任何数目的有线或无线链路。一般地,通过网络180的通信可经由任何类型的有线和/或无线连接,利用各种各样的通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如,HTML、XML)和/或保护方案(例如,VPN、安全HTTP、SSL)来承载。
图1A图示了可用于实现本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实现方式中,用户计算设备102可包括模型训练器160和训练数据162。在这种实现方式中,管理器120中包括的机器学习模型可以在用户计算设备102本地被训练且被使用。在这种实现方式的一些中,用户计算设备102可实现模型训练器160来基于用户特定数据来个性化管理器120和/或140中包括的机器学习模型。
图1B描绘了根据本公开的示例实施例的示例计算设备10的框图。计算设备10可以是用户计算设备或服务器计算设备。
计算设备10包括数个应用(例如,应用1至N)。每个应用可包括其自己的风格迁移管理器。每个应用包含其自己的机器学习库和(一个或多个)机器学习模型。例如,每个应用可包括机器学习模型。示例应用包括虚拟现实应用、游戏应用、浏览器应用,等等。
如图1B中所示,每个应用可与计算设备的数个其他组件通信,例如一个或多个传感器、情境管理器、设备状态组件和/或额外的组件。在一些实现方式中,每个应用可利用API(例如,公共API)与每个设备组件通信。在一些实现方式中,每个应用使用的API是该应用特定的。
图1C描绘了根据本公开的示例实施例的示例计算设备50的框图。计算设备50可以是用户计算设备或服务器计算设备。
计算设备50包括数个应用(例如,应用1至N)。每个应用与中央智能层通信。示例应用包括虚拟现实应用、游戏应用、浏览器应用,等等。在一些实现方式中,每个应用可利用API(例如,所有应用的共同API)与中央智能层(以及存储在其中的(一个或多个)模型)通信。
中央智能层包括数个机器学习模型。例如,如图1C中所示,可为每个应用提供相应的机器学习模型(例如,模型)并且由中央智能层来管理该模型。在其他实现方式中,两个或更多个应用可共享单个机器学习模型。例如,在一些实现方式中,中央智能层可以为所有应用提供单个模型(例如,单个模型)。在一些实现方式中,中央智能层被包括在计算设备50的操作系统内或者由计算设备50的操作系统以其他方式实现。中央智能层可采用模型来实现风格迁移管理器。
中央智能层可与中央设备数据层通信。中央设备数据层可以是用于计算设备50的数据的集中仓库。如图1C中所示,中央设备数据层可与计算设备的数个其他组件通信,例如一个或多个传感器、情境管理器、设备状态组件和/或额外的组件。在一些实现方式中,中央设备数据层可利用API(例如,私有API)与每个设备组件通信。
示例风格迁移管理器
图2描绘了根据本公开的示例实施例的示例风格迁移管理器200的框图。风格迁移管理器200可接收一个或多个参考图像202和描述三维模型204的数据作为输入。风格迁移管理器200可以为三维模型204输出属性渲染贴图206。具体地,属性渲染贴图206可展现与一个或多个参考图像202展现的相同的风格。
在一些实现方式中,风格迁移管理器200可迭代地更新属性渲染贴图206。例如,这由图2中的虚线箭头图示。
图3描绘了根据本公开的示例实施例的示例风格迁移管理器300的框图。风格迁移管理器可包括渲染引擎308。渲染引擎308可以是渲染三维模型的图像的任何设备、组件、应用或其他系统。作为一个示例,渲染引擎308可实现开放图形库(Open Graphics Library,OpenGL)来渲染三维模型的图像。作为另一示例,渲染引擎308可由一个或多个图形处理单元(graphics processing unit,GPU)或其他处理设备实现。
风格迁移管理器300也可包括视点选择器310。视点选择器310可选择视点312并且将视点312提供给渲染引擎308。作为一个示例,在每次迭代,视点选择器310可对三维模型204的不同视点采样。例如,视点选择器310可从一组预期的视点(例如,随机地)选择视点。该组预期视点可包括所有可用的视点,或者可限于如下的视点:在模型的使用期间,能够从这些视点渲染模型或者以其他方式预期从这些视点渲染模型。
渲染引擎308可利用当前属性渲染贴图306来渲染三维模型204的当前图像313。
风格迁移管理器300可包括图像统计生成器314。图像统计生成器314可包括生成描述输入图像的风格的图像统计的任何设备、组件、应用或其他系统。
在一个示例中,图像统计生成器314可以是神经网络或者包括神经网络,例如卷积神经网络。从而,作为一个示例,为了为图像(例如,当前图像313和/或(一个或多个)参考图像202)确定图像统计,风格迁移管理器300可将该图像输入到卷积神经网络中,并且作为响应接收来自卷积神经网络的输出。在一些实现方式中,卷积神经网络的输出可被用作输入图像的图像统计。在其他实现方式中,从神经网络的隐藏层或神经元获得的一个或多个值(例如,“嵌入”)可被用作图像统计或者用作生成图像统计的基础。作为一个示例,风格迁移管理器300可至少部分基于在卷积神经网络的内部特征(例如,隐藏神经元)上计算的一个或多个格兰或协方差矩阵来为输入图像确定一个或多个图像统计。
卷积神经网络可被特别地训练来提供一个或多个图像统计。或者,卷积神经网络可以是被预训练来执行一些一般形式的图像分析(例如,图像分类、图像识别、对象识别、对象分割,等等)的一般网络。示例卷积神经网络包括VGG16、VGG19、ResNet50、Inception V3和Xception网络。
另外,图像统计生成器314可利用其他机器学习模型或网络作为卷积神经网络的附加或替换来生成图像统计。示例神经网络(例如,深度神经网络)包括前馈神经网络、递归神经网络,等等。可用于生成图像统计的额外示例模型包括线性模型;主成分分析模型;聚类模型(例如,K最近邻);概率模型;马尔可夫随机场;回归模型;等等。
图像统计生成器314可以为一个或多个参考图像202生成一个或多个参考图像统计316。在一些实现方式中,这在多个迭代执行之前被完成一次。作为一个示例,一个或多个图像统计可包括直方图(例如,颜色直方图);边缘信息;对比度;空间频率(例如,高频贴图);平均像素值;最大/最小像素值;个体特征通道的中值和/或方差;特征匹配;马尔可夫纹理分析;马尔可夫随机场;等等。
图像统计生成器314也可为当前图像313生成一个或多个当前图像统计318。在一些实现方式中,这是在多个迭代的每一者中完成的。作为一个示例,一个或多个图像统计可包括直方图(例如,颜色直方图);边缘信息;对比度;空间频率(例如,高频贴图);平均像素值;最大/最小像素值;个体特征通道的中值和/或方差;特征匹配;马尔可夫纹理分析;马尔可夫随机场;等等。
从而,图像统计生成器314可以——可选地在开始迭代过程之前——为(一个或多个)参考图像202确定一个或多个参考图像统计316。然后,在每次迭代,渲染引擎308可从不同视点312渲染三维模型204的当前图像313,并且图像统计生成器314可以为当前图像313生成一个或多个当前图像统计318。
在每次迭代,风格迁移管理器300可至少部分基于为(一个或多个)参考图像202确定的一个或多个参考图像统计316和为当前图像313确定的一个或多个当前图像统计318来评估提供风格损耗322的风格损耗函数320。作为一个示例,风格损耗322可以是为(一个或多个)参考图像202确定的一个或多个参考图像统计316与在多次迭代中(例如,所有迭代或迭代的移动窗口)平均的当前图像统计318的多视点平均之间的均方误差。作为另一示例,风格损耗322可以是为(一个或多个)参考图像202确定的一个或多个参考图像统计316与当前图像统计318之间的均方误差。
从而,风格损耗322在每次迭代指示出当前图像313的风格与(一个或多个)参考图像202展现的风格有多相似。如下文将进一步描述的,风格迁移管理器300可至少部分基于风格损耗322在每次迭代更新当前属性渲染贴图306(例如,以减小风格损耗322,以使得三维模型204的渲染变得与(一个或多个)参考图像202所展现的风格更相似)。
风格损耗函数320可至少部分基于一个或多个参考图像统计316和一个或多个当前图像统计318来提供风格损耗322。根据本公开的另外一个方面,在一些实现方式中,风格损耗的计算可利用多视点平均图像统计来执行,而不是独立地对待每个视点。例如,在每次迭代,可利用为当前图像确定的当前图像统计来更新跨多个视点渲染的图像统计的移动平均。损耗函数可基于平均图像统计和为(一个或多个)参考图像确定的参考图像统计之间的差异来提供风格损耗值。
如本文别处进一步描述的,风格迁移管理器300可至少部分基于风格损耗来修改当前属性渲染贴图306。作为一个示例,在多个迭代的每一者,风格迁移管理器300可向后通过图像统计生成器314(例如,不修改图像统计生成器314)、通过当前图像313、然后通过由渲染引擎308执行的渲染操作,来反向传播风格损耗322的梯度(例如,相对于当前图像313),以到达当前属性渲染贴图306。风格迁移管理器300可基于反向传播的梯度来修改当前属性渲染贴图306的一个或多个参数(例如,以减小风格损耗322)。
图4描绘了根据本公开的示例实施例的示例风格迁移管理器400的框图。风格迁移管理器400与图3的风格迁移管理器300类似,但在每次迭代还计算内容损耗414。
具体地,风格迁移管理器400可包括渲染引擎308,与图3的管理器300类似。然而,如图4中所示,渲染引擎308还可利用基础属性渲染贴图402从视点312渲染三维模型204的基础图像404。基础属性渲染贴图402可以是与三维模型204的原始或基础版本相关联的属性渲染贴图。作为一个示例,基础属性渲染贴图402可以是基础纹理贴图。
基础属性渲染贴图402可包括辅助传达内容信息的属性值。提供一个具体示例,斑马的模型可具有包括有助于能够被识别为斑马的模型的渲染的纹理值的基础纹理贴图。例如,该纹理贴图可提供包括条纹的纹理。
风格迁移管理器400还可包括内容描述元生成器406。内容描述元生成器406可包括生成描述输入图像的内容的内容描述元的任何设备、组件、应用或其他系统。每个图像的内容描述元可包括描述图像的内容的任何信息,并且因此,各种形式的内容分析可被执行。作为一个示例,内容描述元可描述图像的语义结构。
在一个示例中,内容描述元生成器406可以是神经网络,例如卷积神经网络。从而,在一些实现方式中,与图像统计的计算类似,内容描述元生成器406可利用一个或多个机器学习模型——例如卷积神经网络——来生成内容信息。具体地,在一些实现方式中,内容描述元生成器406可使用一个或多个卷积神经网络来为当前图像和/或基础图像生成内容描述元。
作为一个示例,为了为图像(例如,当前图像313和/或基础图像404)确定内容描述元,内容描述元生成器406可将该图像输入到卷积神经网络中,并且作为响应接收来自卷积神经网络的输出。在一些实现方式中,卷积神经网络的输出(例如,描述检测到的对象或场景分类的数据)可被用作输入图像的内容描述元。在其他实现方式中,从神经网络的隐藏层或神经元获得的一个或多个值(例如,“嵌入”)可被用作内容描述元或者用作生成内容描述元的基础。
在一些实现方式中,用于生成内容描述元的(一个或多个)卷积神经网络可与用于生成图像统计的那些相同。例如,内容描述元可以是从提取自网络的“更深”或更靠近网络的输出层的隐藏层的信息生成的,而图像统计可以是从提取自网络的“更早”或更靠近网络的输入层的隐藏层的信息生成的。这样,内容描述元可包括更高级别的抽象信息(例如,支配性的内容关系、语义结构,等等),而图像统计可包括更低级别的抽象信息(例如,低级别边缘信息、着色信息,等等)。在其他实现方式中,用于生成内容描述元的(一个或多个)卷积神经网络可与用于生成图像统计的那些不同。
卷积神经网络可被特别地训练来提供一个或多个内容描述元。或者,卷积神经网络可以是被预训练来执行一些一般形式的图像分析(例如,图像分类、图像识别、对象识别、对象分割,等等)的一般网络。示例卷积神经网络包括VGG16、VGG19、ResNet50、InceptionV3和Xception网络。
内容描述元生成器406可基于当前图像313生成一个或多个当前内容描述元408。内容描述元生成器406可以为基础图像404生成一个或多个基础内容描述元410。这可在多个迭代的每一者中执行。
内容损耗函数412可至少部分基于一个或多个当前内容描述元408和一个或多个基础内容描述元410来提供内容损耗414。例如,内容损耗414可以是(一个或多个)当前内容描述元408与(一个或多个)基础内容描述元410之间的均方误差。
可基于风格损耗322和内容损耗414来确定总损耗416。例如,总损耗416可以是风格损耗322和内容损耗414的总和(例如,加权和)。
从而,在每次迭代,风格迁移管理器400可确定描述为当前图像313确定的一个或多个当前内容描述元408和为基础图像确定的一个或多个基础内容描述元之间的差异的内容损耗414。具体地,除了风格损耗以外还使用内容损耗使得能够以保留内容的方式执行风格迁移。也就是说,可以平衡经由风格损耗的优化来迁移风格与经由内容损耗的优化来保留内容。继续上文提供的示例,斑马的模型的纹理贴图可被更新以接收风格迁移,然而,其可在风格迁移的纹理内保持内容描述特征,例如条纹。
图5描绘了根据本公开的示例实施例的修改当前属性渲染贴图306的示例工作流的框图。可通过图像统计生成器314(例如,不修改图像统计生成器314)并且还通过内容描述元生成器406(例如,不修改图像统计生成器406)来反向传播总损耗502(例如,相对于当前图像313)的梯度。
接下来,可通过当前图像313并随后通过渲染引擎308执行来渲染当前图像313的渲染操作来反向传播梯度以到达当前属性渲染贴图306。在一些实现方式中,可通过渲染操作来反向传播梯度以修改当前属性渲染贴图306本身。例如,这可通过在渲染期间为每个像素存储UV坐标并随后将像素梯度路由到当前属性渲染贴图306的贡献参数来实现。在一些实现方式中,可围绕每个参数执行双线性插值以在相邻参数间扩散梯度。
可基于反向传播的梯度来修改当前属性渲染贴图306的一个或多个参数(例如,以便减小总损耗502)。可根据各种参数方案来参数化合成的当前属性渲染贴图306,并且计算系统可根据这种参数方案来修改当前属性渲染贴图306的参数。作为一个示例,可利用像素的阵列来参数化当前属性渲染贴图306。作为另一示例,可利用某种其他去相关的结构来参数化当前属性渲染贴图306,所述结构例如是拉普拉斯金字塔(例如,拉普拉斯金字塔的加权谱)。从而,作为一个示例,修改当前属性渲染贴图306可包括直接修改当前属性渲染贴图306的属性值(例如,像素值)。作为另一示例,修改当前属性渲染贴图306可包括修改当前属性渲染贴图306的一个或多个去相关参数结构,然后在这样的(一个或多个)修改之后从去相关结构重生成当前属性渲染贴图306。
在一些实现方式中,作为在每次迭代基于损耗502的梯度修改当前属性渲染贴图306的附加或替换,计算系统可修改被配置为生成当前属性渲染贴图306的贴图生成函数的一个或多个参数或者被配置为渲染当前图像的渲染函数(例如,渲染引擎308)的一个或多个参数。作为示例,贴图生成函数和渲染函数中的一者或两者可以是或者可以包括机器学习的神经网络(例如,卷积神经网络)或者其他学习的函数(例如,机器学习的线性模型)。
示例方法
图6A和6B描绘了根据本公开的示例实施例的对于三维模型执行风格迁移的示例方法的流程图。虽然图6A-6B为了图示和论述而描绘了按特定顺序执行的步骤,但本公开的方法不限于具体图示的顺序或排列。方法600的各种步骤可按各种方式被省略、重排列、组合和/或适应性修改,而不脱离本公开的范围。
首先参考图6A,在602,计算系统可获得一个或多个参考图像和描绘三维模型的数据。在604,计算系统可以为一个或多个参考图像确定一个或多个参考图像统计。
在606,计算系统可初始化属性渲染贴图。在608,计算系统可选择视点。
在610,计算系统可利用当前属性渲染贴图从当前视点渲染三维模型的当前图像。在612,计算系统可利用基础属性渲染贴图从当前视点渲染三维模型的基础图像。
在614,计算系统可以为当前图像确定一个或多个当前图像统计。在614,方法600可前进到图6B的616。
现在参考图6B,在616,计算系统可至少部分基于一个或多个当前图像统计来更新一个或多个平均图像统计。
在618,计算系统可以为当前图像确定一个或多个当前内容描述元。在620,计算系统可以为基础图像确定一个或多个基础内容描述元。
在622,计算系统可评估损耗函数,该损耗函数评估一个或多个平均图像统计与一个或多个参考图像统计之间的风格损耗,以及当前内容描述元与基础内容描述元之间的内容损耗。在624,计算系统可至少部分基于损耗函数的梯度来修改当前属性渲染贴图。
在626,计算系统可确定是否执行额外的迭代。如果计算系统在626确定执行额外的迭代,则方法600可返回到图6A的608并且选择新的视点。
然而,仍参考图6B,如果计算系统在626确定不应当执行额外的迭代,则方法600可前进到628。计算系统可在符合一个或多个标准时结束迭代过程。示例标准包括:当损耗函数收敛时;当完成了阈值数目的迭代时;当总损耗值的移动平均小于阈值量时;当总损耗值的迭代与迭代间变化小于阈值量时;和/或其他各种标准。
在628,计算系统可输出最终属性渲染贴图。例如,在迭代过程完成时,最终迭代的当前属性渲染贴图可在628被存储为三维模型的最终属性渲染贴图。
示例可视化
图7A描绘了根据本公开的示例实施例的示例基础纹理贴图。具体地,示例基础纹理贴图为兔子的三维模型提供了基础纹理。图7B描绘了根据本公开的示例实施例的利用图7A的基础纹理贴图渲染的兔子的三维模型的示例渲染。
图7C描绘了根据本公开的示例实施例的示例合成纹理贴图。具体地,根据本公开的技术并且通过使用文森特·梵高的名画“星夜”作为参考图像来为兔子的三维模型合成了图7C的合成纹理贴图。从而,“星夜”的风格根据本文描述的技术被迁移到图7C的合成纹理贴图。
图7D描绘了根据本公开的示例实施例的利用图7C的示例合成纹理贴图渲染的兔子的三维模型的示例渲染。如图7D的示例渲染中所示,合成纹理贴图模仿了参考图像的风格,但也保留了内容描述信息,例如指示出兔子的头上的眼睛的存在的纹理。
虽然在图7D中提供了三维模型的单个示例渲染,但应当认识到图7C的合成纹理贴图可用于从任何视点渲染三维模型,并且这种渲染将包括迁移的风格。也就是说,本公开的各方面可被执行来生成合成纹理贴图,该合成纹理贴图随后可用于从任何期望视点生成渲染,这与只是将参考图像的风格迁移到三维模型的单个渲染的技术形成对照。
额外的公开
本文论述的技术参考了服务器、数据库、软件应用和其他基于计算机的系统,以及由这种系统采取的动作和发送到和发送自这种系统的信息。基于计算机的系统的内在灵活性允许了在组件之间对于任务和功能的各种各样可能的配置、组合和划分。例如,本文论述的过程可利用单个设备或组件或者组合工作的多个设备或组件来实现。数据库和应用可实现在单个系统上或分布在多个系统间。分布式组件可顺序地或并行地操作。
虽然已针对其各种具体示例实施例详细描述了本主题,但每个示例是作为说明而不是对本公开的限制提供的。本领域技术人员在达到对前述的理解后,可以可靠地产生对这种实施例的更改、变化和等同。从而,本公开不排除包括本领域普通技术人员显而易见的对本主题的这种修改、变化和/或添加。例如,作为一个实施例的一部分图示或描述的特征可与另一实施例一起使用来产生另外一个实施例。从而,希望本公开覆盖这种更改、变化和等同。
Claims (20)
1.一种计算机实现的方法,该方法包括:
由一个或多个计算设备获得一个或多个参考图像和描述三维模型的数据;
由所述一个或多个计算设备为所述一个或多个参考图像确定一个或多个参考图像统计;并且
对于多个迭代的每一者:
由所述一个或多个计算设备利用当前属性渲染贴图从当前视点渲染所述三维模型的当前图像,其中所述当前属性渲染贴图分别为所述三维模型的多个位置提供多个属性值;
由所述一个或多个计算设备为利用所述当前属性渲染贴图从所述当前视点渲染的所述三维模型的当前图像确定一个或多个当前图像统计;
由所述一个或多个计算设备至少部分基于为所述当前图像确定的所述一个或多个当前图像统计来更新一个或多个平均图像统计;
由所述一个或多个计算设备评估损耗函数,所述损耗函数评估所述一个或多个参考图像统计与所述一个或多个平均图像统计之间的差异;并且
由所述一个或多个计算设备至少部分基于所述损耗函数的梯度来修改所述当前属性渲染贴图。
2.如权利要求1所述的计算机实现的方法,其中,所述当前属性渲染贴图包括纹理贴图。
3.如权利要求1所述的计算机实现的方法,其中,所述当前属性渲染贴图包括以下各项的一者或多者:
凹凸贴图;
光颜色贴图;
光位置贴图;或者
材料属性贴图。
4.如权利要求1所述的计算机实现的方法,还包括,对于所述多个迭代的每一者,在所述渲染之前,由所述一个或多个计算设备从一组预期视点中为该迭代选择所述当前视点。
5.如权利要求1所述的计算机实现的方法,其中,被更新的所述一个或多个平均图像统计是在一个或多个先前迭代中确定的图像统计的平均。
6.如权利要求1所述的计算机实现的方法,包括:在执行最终迭代之后,存储或输出所述当前属性渲染贴图来用于渲染所述三维模型。
7.如权利要求1所述的计算机实现的方法,其中:
由所述一个或多个计算设备为所述一个或多个参考图像确定所述一个或多个参考图像统计包括:
由所述一个或多个计算设备将所述一个或多个参考图像输入到卷积神经网络中;并且
由所述一个或多个计算设备至少部分基于在所述卷积神经网络的内部特征上计算的一个或多个第一格兰或协方差矩阵来确定所述一个或多个参考图像统计;并且
对于所述多个迭代的每一者,由所述一个或多个计算设备为所述三维模型的当前图像确定所述一个或多个当前图像统计包括:
由所述一个或多个计算设备将所述当前图像输入到所述卷积神经网络中;并且
由所述一个或多个计算设备至少部分基于在所述卷积神经网络的内部特征上计算的一个或多个第二格兰或协方差矩阵来确定所述一个或多个当前图像统计。
8.如权利要求1所述的计算机实现的方法,还包括,对于所述多个迭代的每一者:
由所述一个或多个计算设备利用基础属性渲染贴图从所述当前视点渲染所述三维模型的基础图像;
由所述一个或多个计算设备为利用所述基础属性渲染贴图从所述当前视点渲染的所述三维模型的基础图像确定一个或多个基础内容描述元;
由所述一个或多个计算设备为利用所述当前属性渲染贴图从所述当前视点渲染的所述三维模型的当前图像确定一个或多个当前内容描述元;
其中,所述损耗函数还评估所述一个或多个基础内容描述元与所述一个或多个当前内容描述元之间的第二差异。
9.如权利要求8所述的计算机实现的方法,其中:
由所述一个或多个计算设备为所述基础图像确定所述一个或多个基础内容描述元包括:
由所述一个或多个计算设备将所述基础图像输入到卷积神经网络中;并且
由所述一个或多个计算设备从所述卷积神经网络的隐藏层获得一个或多个值作为第一嵌入,所述一个或多个基础内容描述元包括所述第一嵌入;并且
由所述一个或多个计算设备为所述当前图像确定所述一个或多个当前内容描述元包括:
由所述一个或多个计算设备将所述当前图像输入到所述卷积神经网络中;并且
由所述一个或多个计算设备从所述卷积神经网络的隐藏层获得一个或多个值作为第二嵌入,所述一个或多个当前内容描述元包括所述第二嵌入。
10.如权利要求1所述的计算机实现的方法,其中,由所述一个或多个计算设备至少部分基于所述损耗函数的梯度来修改所述当前属性渲染贴图包括由所述一个或多个计算设备通过在所述当前图像的所述渲染期间由所述一个或多个计算设备执行的渲染操作来反向传播所述损耗函数的梯度。
11.如权利要求1所述的计算机实现的方法,其中,由所述一个或多个计算设备至少部分基于所述损耗函数的梯度来修改所述当前属性渲染贴图包括由所述一个或多个计算设备至少部分基于所述损耗函数的梯度来修改所述当前属性渲染贴图的一个或多个像素值。
12.如权利要求1所述的计算机实现的方法,其中,由所述一个或多个计算设备至少部分基于所述损耗函数的梯度来修改所述当前属性渲染贴图包括由所述一个或多个计算设备至少部分基于所述损耗函数的梯度来修改所述当前属性渲染贴图的拉普拉斯金字塔。
13.一种计算系统,包括:
一个或多个处理器;以及
集体地存储指令的一个或多个非暂态计算机可读介质,所述指令当被所述一个或多个处理器执行时使得所述计算系统执行操作,所述操作包括:
为一个或多个参考图像确定一个或多个参考图像统计;并且
对于多个迭代的每一者:
获得利用当前属性渲染贴图从当前视点渲染的三维模型的当前图像;
为利用所述当前属性渲染贴图从所述当前视点渲染的所述三维模型的当前图像确定一个或多个当前图像统计;
评估损耗函数,该损耗函数至少部分基于所述一个或多个参考图像统计并且至少部分基于所述一个或多个当前图像统计来提供损耗值;并且
至少部分基于所述损耗函数的梯度来修改以下各项的一者或多者:
所述当前属性渲染贴图;
被配置为生成所述当前属性渲染贴图的贴图生成函数的一个或多个参数;或者
被配置为渲染所述当前图像的渲染函数的一个或多个参数。
14.如权利要求13所述的计算系统,其中,所述当前属性渲染贴图包括纹理贴图。
15.如权利要求13所述的计算系统,其中:
所述操作还包括,对于所述多个迭代的每一者,至少部分基于为所述当前图像确定的所述一个或多个当前图像统计来更新一个或多个平均图像统计;并且
所述损耗函数至少部分基于所述一个或多个参考图像统计和所述一个或多个平均图像统计之间的差异来提供所述损耗值。
16.如权利要求13所述的计算系统,其中:
为所述一个或多个参考图像确定所述一个或多个参考图像统计包括:
将所述一个或多个参考图像输入到卷积神经网络中;并且
至少部分基于在所述卷积神经网络的内部特征上计算的一个或多个第一格兰或协方差矩阵来确定所述一个或多个参考图像统计;并且
对于所述多个迭代的每一者,为所述三维模型的当前图像确定所述一个或多个当前图像统计包括:
将所述当前图像输入到所述卷积神经网络中;并且
至少部分基于在所述卷积神经网络的内部特征上计算的一个或多个第二格兰或协方差矩阵来确定所述一个或多个当前图像统计。
17.如权利要求13所述的计算系统,其中,所述操作还包括,对于所述多个迭代的每一者:
利用基础属性渲染贴图从所述当前视点渲染所述三维模型的基础图像;
为利用所述基础属性渲染贴图从所述当前视点渲染的所述三维模型的基础图像确定一个或多个基础内容描述元;并且
为利用所述当前属性渲染贴图从所述当前视点渲染的所述三维模型的当前图像确定一个或多个当前内容描述元;
其中,所述损耗函数还至少部分基于所述一个或多个基础内容描述元和所述一个或多个当前内容描述元之间的差异来提供所述损耗值。
18.如权利要求17所述的计算系统,其中:
为所述基础图像确定所述一个或多个基础内容描述元包括:
将所述基础图像输入到卷积神经网络中;并且
从所述卷积神经网络的隐藏层获得一个或多个值作为第一嵌入,所述一个或多个基础内容描述元包括所述第一嵌入;并且
为所述当前图像确定所述一个或多个当前内容描述元包括:
将所述当前图像输入到所述卷积神经网络中;并且
从所述卷积神经网络的隐藏层获得一个或多个值作为第二嵌入,所述一个或多个当前内容描述元包括所述第二嵌入。
19.如权利要求13所述的计算系统,其中,所述修改的操作包括通过在渲染所述当前图像时由所述计算系统执行的渲染函数来反向传播所述损耗函数的梯度。
20.集体地存储指令的一个或多个非暂态计算机可读介质,所述指令当被一个或多个处理器执行时使得所述一个或多个处理器执行操作,所述操作包括:
为一个或多个参考图像确定一个或多个参考图像统计;并且
对于多个迭代的每一者:
获得利用当前属性渲染贴图从当前视点渲染的三维模型的当前图像;
为利用所述当前属性渲染贴图从所述当前视点渲染的所述三维模型的当前图像确定一个或多个当前图像统计;
评估损耗函数,该损耗函数至少部分基于所述一个或多个参考图像统计并且至少部分基于所述一个或多个当前图像统计来提供损耗值;并且
至少部分基于所述损耗函数的梯度来修改以下各项的一者或多者:
所述当前属性渲染贴图;
被配置为生成所述当前属性渲染贴图的贴图生成函数的一个或多个参数;或者
被配置为渲染所述当前图像的渲染函数的一个或多个参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/878,621 US10467820B2 (en) | 2018-01-24 | 2018-01-24 | Image style transfer for three-dimensional models |
US15/878,621 | 2018-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110084874A CN110084874A (zh) | 2019-08-02 |
CN110084874B true CN110084874B (zh) | 2022-05-17 |
Family
ID=67299395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910066976.1A Active CN110084874B (zh) | 2018-01-24 | 2019-01-24 | 对于三维模型的图像风格迁移 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10467820B2 (zh) |
CN (1) | CN110084874B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11068141B1 (en) * | 2018-02-02 | 2021-07-20 | Snap Inc. | Device-based image modification of depicted objects |
CN109829849B (zh) * | 2019-01-29 | 2023-01-31 | 达闼机器人股份有限公司 | 一种训练数据的生成方法、装置和终端 |
WO2020235862A1 (en) * | 2019-05-17 | 2020-11-26 | Samsung Electronics Co., Ltd. | Image manipulation |
WO2021076125A1 (en) * | 2019-10-16 | 2021-04-22 | Hewlett-Packard Development Company, L.P. | Training using rendered images |
CN110880016B (zh) * | 2019-10-18 | 2022-07-15 | 平安科技(深圳)有限公司 | 图像风格迁移方法、装置、设备及存储介质 |
US11704802B2 (en) | 2019-11-07 | 2023-07-18 | Accenture Global Solutions Limited | Multi-dimensional model merge for style transfer |
US11455552B2 (en) | 2019-11-22 | 2022-09-27 | Accenture Global Solutions Limited | Intelligent design platform using industrialized experience in product designs |
CN116485638A (zh) * | 2019-12-31 | 2023-07-25 | 武汉星巡智能科技有限公司 | 基于深度卷积网络的图像风格迁移方法、装置及设备 |
US11288522B2 (en) | 2019-12-31 | 2022-03-29 | Woven Planet North America, Inc. | Generating training data from overhead view images |
US11037328B1 (en) * | 2019-12-31 | 2021-06-15 | Lyft, Inc. | Overhead view image generation |
US11244500B2 (en) | 2019-12-31 | 2022-02-08 | Woven Planet North America, Inc. | Map feature extraction using overhead view images |
US11172148B2 (en) * | 2020-01-07 | 2021-11-09 | Google Llc | Methods, systems, and media for generating compressed images |
CN111340865B (zh) * | 2020-02-24 | 2023-04-07 | 北京百度网讯科技有限公司 | 用于生成图像的方法和装置 |
CN115280788A (zh) * | 2020-03-01 | 2022-11-01 | 镭亚股份有限公司 | 多视图风格转换的系统和方法 |
US11586783B2 (en) | 2020-05-21 | 2023-02-21 | Accenture Global Solutions Limited | Intelligent design platform using digital assistants for design process support |
CN112163988B (zh) * | 2020-08-17 | 2022-12-13 | 中国人民解放军93114部队 | 红外图像的生成方法、装置、计算机设备和可读存储介质 |
CN111932664B (zh) * | 2020-08-27 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、电子设备及存储介质 |
CN112241744A (zh) * | 2020-10-20 | 2021-01-19 | 北京字跳网络技术有限公司 | 图像颜色迁移方法、装置、设备和计算机可读介质 |
US20220156415A1 (en) * | 2020-11-13 | 2022-05-19 | Autodesk, Inc. | Techniques for generating subjective style comparison metrics for b-reps of 3d cad objects |
CN112581361B (zh) * | 2020-12-30 | 2023-07-11 | 北京达佳互联信息技术有限公司 | 图像风格迁移模型的训练方法、图像风格迁移方法及装置 |
US20220245510A1 (en) * | 2021-02-03 | 2022-08-04 | Accenture Global Solutions Limited | Multi-dimensional model shape transfer |
US11941771B2 (en) * | 2021-02-03 | 2024-03-26 | Accenture Global Solutions Limited | Multi-dimensional model texture transfer |
CN112861884B (zh) * | 2021-03-19 | 2022-05-03 | 电子科技大学 | 一种基于深度学习的服饰图像外观属性修改方法 |
CN113256778B (zh) * | 2021-07-05 | 2021-10-12 | 爱保科技有限公司 | 生成车辆外观部件识别样本的方法、装置、介质及服务器 |
CN113592988B (zh) * | 2021-08-05 | 2023-06-30 | 北京奇艺世纪科技有限公司 | 三维虚拟角色图像生成方法及装置 |
CN115810101A (zh) * | 2021-09-14 | 2023-03-17 | 北京字跳网络技术有限公司 | 三维模型风格化方法、装置、电子设备及存储介质 |
US11803950B2 (en) * | 2021-09-16 | 2023-10-31 | Adobe Inc. | Universal style transfer using multi-scale feature transform and user controls |
US11989916B2 (en) * | 2021-10-11 | 2024-05-21 | Kyocera Document Solutions Inc. | Retro-to-modern grayscale image translation for preprocessing and data preparation of colorization |
CN114092616B (zh) * | 2021-10-25 | 2023-03-28 | 北京百度网讯科技有限公司 | 渲染方法、装置、电子设备和存储介质 |
CN115936972B (zh) * | 2022-09-27 | 2024-03-22 | 阿里巴巴(中国)有限公司 | 图像生成方法、遥感图像风格迁移方法以及装置 |
CN115908613B (zh) * | 2022-12-01 | 2023-06-06 | 杭州雪爪文化科技有限公司 | 基于人工智能的ai模型生成方法、系统及存储介质 |
CN115588070B (zh) * | 2022-12-12 | 2023-03-14 | 南方科技大学 | 一种三维图像风格化迁移方法及终端 |
CN115861522B (zh) * | 2023-03-02 | 2023-05-30 | 杭州片段网络科技有限公司 | 图像渲染方法及装置 |
CN116418961B (zh) * | 2023-06-09 | 2023-08-22 | 深圳臻像科技有限公司 | 一种基于三维场景风格化的光场显示方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106910247A (zh) * | 2017-03-20 | 2017-06-30 | 厦门幻世网络科技有限公司 | 用于生成三维头像模型的方法和装置 |
CN107330964A (zh) * | 2017-07-24 | 2017-11-07 | 广东工业大学 | 一种复杂三维物体的显示方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8848802B2 (en) * | 2009-09-04 | 2014-09-30 | Stmicroelectronics International N.V. | System and method for object based parametric video coding |
US10013507B2 (en) * | 2013-07-01 | 2018-07-03 | Here Global B.V. | Learning synthetic models for roof style classification using point clouds |
WO2018042388A1 (en) * | 2016-09-02 | 2018-03-08 | Artomatix Ltd. | Systems and methods for providing convolutional neural network based image synthesis using stable and controllable parametric models, a multiscale synthesis framework and novel network architectures |
US10192321B2 (en) * | 2017-01-18 | 2019-01-29 | Adobe Inc. | Multi-style texture synthesis |
US10318889B2 (en) * | 2017-06-26 | 2019-06-11 | Konica Minolta Laboratory U.S.A., Inc. | Targeted data augmentation using neural style transfer |
-
2018
- 2018-01-24 US US15/878,621 patent/US10467820B2/en active Active
-
2019
- 2019-01-24 CN CN201910066976.1A patent/CN110084874B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106910247A (zh) * | 2017-03-20 | 2017-06-30 | 厦门幻世网络科技有限公司 | 用于生成三维头像模型的方法和装置 |
CN107330964A (zh) * | 2017-07-24 | 2017-11-07 | 广东工业大学 | 一种复杂三维物体的显示方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20190228587A1 (en) | 2019-07-25 |
US10467820B2 (en) | 2019-11-05 |
CN110084874A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110084874B (zh) | 对于三维模型的图像风格迁移 | |
Nalbach et al. | Deep shading: convolutional neural networks for screen space shading | |
Kopanas et al. | Point‐Based Neural Rendering with Per‐View Optimization | |
KR102047031B1 (ko) | 딥스테레오: 실세계 이미지로부터 새로운 뷰들을 예측하는 러닝 | |
US11257298B2 (en) | Reconstructing three-dimensional scenes in a target coordinate system from multiple views | |
JP2022531536A (ja) | セマンティック融合 | |
US11308659B2 (en) | View synthesis robust to unconstrained image data | |
CN115735227A (zh) | 反转用于姿态估计的神经辐射场 | |
KR20210013150A (ko) | 조명 추정 | |
US11663467B2 (en) | Methods and systems for geometry-aware image contrast adjustments via image-based ambient occlusion estimation | |
CN114067041B (zh) | 三维模型的材质生成方法、装置、计算机设备和存储介质 | |
CN109685095B (zh) | 根据3d布置类型对2d图像进行分类 | |
US11189060B2 (en) | Generating procedural materials from digital images | |
CN115239861A (zh) | 人脸数据增强方法、装置、计算机设备和存储介质 | |
WO2008014384A2 (en) | Real-time scenery and animation | |
Veeravasarapu et al. | Model-driven simulations for deep convolutional neural networks | |
CN116391206A (zh) | 采用神经渲染的立体表演捕获 | |
US11423617B2 (en) | Subdividing a three-dimensional mesh utilizing a neural network | |
CN116362966A (zh) | 图像处理方法和装置 | |
US20230298269A1 (en) | Systems and Methods for Generating Splat-Based Differentiable Two-Dimensional Renderings | |
Inzerillo et al. | Optimization of cultural heritage virtual environments for gaming applications | |
Galea et al. | Gpu-based selective sparse sampling for interactive high-fidelity rendering | |
EP4080462A1 (en) | Image rendering method and apparatus | |
Tsai et al. | Multiview Regenerative Morphing with Dual Flows | |
Li et al. | Real-time volume rendering with octree-based implicit surface representation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |