CN111723902A - 使用神经网络动态估计增强现实场景中位置的照明参数 - Google Patents
使用神经网络动态估计增强现实场景中位置的照明参数 Download PDFInfo
- Publication number
- CN111723902A CN111723902A CN201911159261.7A CN201911159261A CN111723902A CN 111723902 A CN111723902 A CN 111723902A CN 201911159261 A CN201911159261 A CN 201911159261A CN 111723902 A CN111723902 A CN 111723902A
- Authority
- CN
- China
- Prior art keywords
- location
- training
- lighting
- digital
- scene
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 166
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 27
- 238000012549 training Methods 0.000 claims description 337
- 238000005286 illumination Methods 0.000 claims description 106
- 238000009877 rendering Methods 0.000 claims description 30
- 238000010586 diagram Methods 0.000 claims description 19
- 230000000873 masking effect Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 abstract description 15
- 230000006870 function Effects 0.000 description 36
- 230000000875 corresponding effect Effects 0.000 description 32
- 238000004891 communication Methods 0.000 description 21
- 239000000284 extract Substances 0.000 description 13
- 230000000007 visual effect Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000003909 pattern recognition Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 235000004035 Cryptotaenia japonica Nutrition 0.000 description 1
- 244000146493 Cryptotaenia japonica Species 0.000 description 1
- 208000036829 Device dislocation Diseases 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000002537 cosmetic Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- 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/006—Mixed reality
-
- 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
- G06V10/443—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 by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- 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/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Biophysics (AREA)
- Image Analysis (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开的实施例涉及使用神经网络动态估计增强现实场景中位置的照明参数。本公开涉及使用局部照明估计神经网络来估计用于增强现实的数字场景内特定位置的照明参数的方法、非瞬态计算机可读介质和***。例如,基于在数字场景中绘制虚拟对象的请求,***使用局部照明估计神经网络为数字场景内的指定位置生成位置特定照明参数。***还根据参数在指定位置处绘制包括虚拟对象的经修改的数字场景。***生成这样的位置特定照明参数,以针对数字场景内的不同位置在空间上改变和适配照明条件。由于绘制虚拟对象的请求是实时(或接近实时)的,因此***可以响应于绘制请求,快速生成不同的位置特定照明参数,这些参数准确反映数字场景内不同位置的照明条件。
Description
背景技术
增强现实***通常用计算机模拟的对象描绘数字增强的图像或其他场景。为了描绘此类场景,增强现实***有时会用阴影和其他照明条件绘制真实对象和计算机模拟的对象。许多增强现实***尝试无缝绘制与真实世界中的对象合成的虚拟对象。为了实现令人信服的合成,增强现实***必须使用与物理场景相匹配的一致的照明来照亮虚拟对象。由于现实世界在不断变化(例如对象移动,照明变化),因此预先捕获照明条件的增强现实***通常无法调整照明条件以反映现实世界的变化。
尽管在估计针对数字增强场景的照明条件方面取得了进步,但是一些技术限制仍然阻碍了传统增强现实***真实地描绘计算设备上的照明条件。这些限制包括:当数字增强场景发生变化时更改照明条件,实时(或接近实时)地快速绘制或调整照明条件,以及如实地捕获整个场景的照明变化。这些局限性在三维场景更为严重,在三维场景中,给定时刻的每个位置都可以从整个360度方向范围接收不同量的光。当尝试如实且令人信服地将合成对象绘制到场景中时,整个场景的方向依赖性和光线变化都起着至关重要的作用。
例如,一些常规增强现实***不能实时(或接近实时)描绘计算机模拟对象的照明条件。在一些情况下,常规增强现实***使用环境光模型(即,仅单个常数项而没有方向信息)来估计对象从其环境接收的光。例如,常规增强现实***经常使用简单启发式来创建照明条件,诸如通过依赖对象(或对象周围)的像素的平均亮度值来在环境光模型中创建照明条件。这样的近似不会捕获照明的方向变化,并且在许多条件下可能无法产生合理的环境照明近似——从而导致不切实际和不自然的照明。这样的照明使计算机模拟的对象在数字增强的场景中显得不真实或不合适。例如,在一些情况下,当用于计算机模拟的对象的光来自数字增强图像中所示的视角(或视点)之外时,常规***不能准确地在对象上描绘照明。
除了描绘真实照明的挑战外,在一些情况下,常规增强现实***不能灵活地调整或改变针对场景中特定计算机模拟的对象的照明条件。例如,一些增强现实***将数字增强图像的照明条件确定为一组对象或整个图像,而不是数字增强图像内特定对象或位置的照明条件。因为这样的照明条件通常适用于一组对象或整个图像,所以常规***不能调整特定对象的照明条件,或者只能在低效率使用计算资源的情况下通过重新确定整个数字增强图像的照明条件来进行调整。
与影响增强现实中照明的真实性或灵活性的技术限制无关,常规增强现实***有时不能快速估计数字增强场景中对象的照明条件。例如,一些常规增强现实***接收定义诸如图像几何或材料特性之类的基线参数的用户输入,并且基于基线参数来估计数字增强场景的参数光。尽管一些常规***可以应用此类用户定义的参数来准确估计照明条件,但此类***既不能快速估计参数照明,也不能将图像几何特定照明模型应用于具有不同光源和几何的其他场景。
发明内容
本公开描述了方法、非瞬态计算机可读介质和***的实施例,这些方法、非瞬态计算机可读介质和***除了提供其他益处之外,还解决了前述问题。例如,基于在数字场景中绘制虚拟对象的请求,所公开的***使用局部照明估计神经网络为数字场景内的指定位置生成位置特定照明参数。在某些实现中,所公开的***绘制经修改的数字场景,该数字场景包括根据位置特定照明参数照亮的在指定位置处的虚拟对象。如下所述,所公开的***可以生成这样的位置特定照明参数,以针对数字场景内的不同位置在空间上改变照明。因此,因为绘制虚拟对象的请求是实时(或接近实时)的,所以所公开的***可以基于这样的绘制请求快速生成不同的位置特定照明参数,这些参数准确地反映出数字场景的不同位置处的照明条件。
例如,在一些实施例中,所公开的***标识在数字场景内的指定位置处绘制虚拟对象的请求。所公开的***使用局部照明估计神经网络的第一组网络层从数字场景中提取全局特征图。***还生成用于指定位置的局部位置指示符,并基于局部位置指示符来修改数字场景的全局特征图。基于经修改的全局特征图,***使用局部照明估计神经网络的第二组层为指定位置生成位置特定照明参数。响应于绘制请求,***绘制经修改的数字场景,该数字场景包括根据位置特定照明参数照亮的在指定位置处的虚拟对象。
以下描述阐述了所公开方法、非瞬态计算机可读介质和***的附加特征和优点,并且可以使这些附加特征和优点变得明显,或者可以从示例性实施例的实践中公开它们。
附图说明
详细描述参考下面简要描述的附图。
图1图示了增强现实***和照明估计***,其使用局部照明估计神经网络来生成数字场景内针对指定位置的位置特定照明参数,并且根据一个或多个实施例的参数,在指定位置绘制包括虚拟对象的经修改的数字场景。
图2图示了根据一个或多个实施例的数字训练场景和对应的立方图。
图3图示了根据一个或多个实施例的位置特定球谐训练系数的次数。
图4A图示出根据一个或多个实施例的照明估计***,该照明估计***训练局部照明估计神经网络以针对数字场景内的各指定位置生成位置特定球谐系数。
图4B图示出根据一个或多个实施例的照明估计***,该照明估计***使用经训练的局部照明估计神经网络以针对数字场景内的一个指定位置生成位置特定球谐系数。
图5A图示出根据一个或多个实施例的照明估计***,该照明估计***训练局部照明估计神经网络以使用来自神经网络各层的特征图的坐标来生成针对数字场景内的各指定位置的位置特定球谐系数。
图5B图示出根据一个或多个实施例的照明估计***,该照明估计***使用经训练的局部照明估计神经网络以使用来自神经网络各层的特征图的坐标来生成针对数字场景中的一个指定位置的位置特定球谐系数。
图6A-图6C图示出根据一个或多个实施例的计算设备,该计算设备响应于不同的绘制请求而分别根据位置特定照明参数和新位置特定照明参数来绘制包括在指定位置和新指定位置处的虚拟对象的数字场景。
图7A图示出根据一个或多个实施例的数字场景以及根据由照明估计***生成的基础真实照明参数和位置特定照明参数绘制的对应的红绿蓝表示和光强度表示。
图7B图示出根据一个或多个实施例的、包括根据基础真实照明参数照亮的指定位置处的虚拟对象的数字场景,以及包括根据由照明估计***生成的位置特定照明参数照亮的在指定位置处的虚拟对象的数字场景。
图8图示出根据一个或多个实施例的照明估计***可以在其中操作的环境的框图。
图9图示出根据一个或多个实施例的图8的照明估计***的示意图。
图10图示出根据一个或多个实施例的用于训练局部照明估计神经网络以生成位置特定照明参数的一系列动作的流程图。
图11图示出根据一个或多个实施例的、用于应用经训练的局部照明估计神经网络以生成位置特定照明参数的一系列动作的流程图。
图12图示出用于实现本公开的一个或多个实施例的示例性计算设备的框图。
具体实施方式
本公开描述了照明估计***的一个或多个实施例,该照明估计***使用局部照明估计神经网络来估计针对用于增强现实的数字场景内的特定位置的照明参数。例如,基于在数字场景中绘制虚拟对象的请求,照明估计***使用局部照明估计神经网络为数字场景内的指定位置生成位置特定照明参数。在某些实现中,照明估计***还根据参数在指定位置处绘制包括虚拟对象的经修改的数字场景。在一些实施例中,照明估计***生成这样的位置特定照明参数,以针对数字场景内的不同位置在空间上改变和适配照明条件。因为绘制虚拟对象的请求是实时(或接近实时)的,所以照明估计***可以快速生成不同的位置特定照明参数,这些参数响应于绘制请求而准确地反映数字场景内不同位置处的照明条件或从数字场景的不同视角来反应照明条件。照明估计***同样可以快速生成反映照明或其他条件的变化的不同位置特定的照明参数。
例如,在一些实施例中,照明估计***标识在数字场景内的指定位置处绘制虚拟对象的请求。为了绘制这样的场景,照明估计***使用局部照明估计神经网络的第一组网络层从数字场景中提取全局特征图。照明估计***还生成用于指定位置的局部位置指示符,并基于局部位置指示符来修改数字场景的全局特征图。基于经修改的全局特征图,照明估计***使用局部照明估计神经网络的第二组层为指定位置生成位置特定照明参数。响应于绘制请求,照明估计***绘制经修改的数字场景,该数字场景包括根据位置特定照明参数在指定位置被照亮的虚拟对象。
通过使用位置特定照明参数,在一些实施例中,照明估计***既可以从场景的不同视角照亮虚拟对象,又可以针对不同位置、不同视角、对场景或场景中的虚拟对象的照明改变或其他环境改变而快速更新照明条件。例如,在一些情况下,照明估计***生成位置特定照明参数,该位置特定照明参数从数字场景内的各种视角捕获虚拟对象的位置的照明条件。在标识将虚拟对象移动到新指定位置的位置调整请求后,照明估计***还可以为新指定位置生成新的局部位置指示符,并使用神经网络为数字场景修改全局特征图以为新指定位置输出新照明参数。在标识或以其他方式响应于数字场景的照明条件的改变时,照明估计***可以同样地更新数字场景的全局特征图以输出用于新照明条件的新照明参数。例如,当观看者的视点发生变化(例如,相机在场景中移动)时,当场景中的照明发生变化(例如,灯光被添加、被变暗、被遮挡、被暴露)时,当场景中的对象或场景本身发生变化时,照明估计***可以动态确定或更新照明参数。
为了生成位置特定照明参数,照明估计***可以使用不同类型的局部位置指示符。例如,在某些实施例中,照明估计***标识(作为局部位置指示符)表示数字场景内的指定位置的局部位置坐标。相比之下,在一些实现中,照明估计***从由局部照明估计神经网络的不同层提取的特征中标识一个或多个局部位置指示符,诸如来自由神经网络层提取的不同特征图的、对应于指定位置的像素。
当生成位置特定照明参数时,照明估计***可以生成球谐系数,该系数指示针对虚拟对象在数字场景中指定位置的照明条件。当数字场景以低动态范围(“LDR”)照明表示时,此类位置特定球谐系数可以捕获数字场景内某个位置的高动态范围(“HDR”)照明。当虚拟对象改变数字场景中的位置时,照明估计***可以使用局部照明估计神经网络通过请求在虚拟对象的更改位置上真实地描绘照明的更改,来生成新位置特定的球谐系数。
如上所述,在一些实施例中,照明估计***不仅应用局部照明估计神经网络,而且可以可选地训练这样的网络以生成位置特定照明参数。当训练神经网络时,在某些实现中,照明估计***使用局部照明估计神经网络的第一组层从数字训练场景中提取全局特征训练图。照明估计***还生成用于数字训练场景内的指定位置的局部位置训练指示符,并基于用于指定位置的局部位置训练指示符来修改全局特征训练图。
根据经修改的全局特征训练图,照明估计***使用局部照明估计神经网络的第二组网络层,为指定位置生成位置特定照明训练参数。照明估计***随后基于针对数字训练场景内指定位置的位置特定照明训练参数与基础真实照明参数的比较,修改局部照明估计神经网络的网络参数。通过迭代生成此类位置特定照明训练参数并调整神经网络的网络参数,照明估计***可以将局部照明估计神经网络训练到收敛点。
如前所述,照明估计***可以使用基础真实照明参数指定位置以便于训练。为了创建这样的基础真实照明参数,在一些实施例中,照明估计***为数字训练场景内的各种位置生成立方图。照明估计***随后将数字培训场景的立方图投影到基础真实球谐系数。当迭代训练局部照明估计神经网络时,这种基础真实球谐系数可以被用于比较。
如上所述,所公开的照明估计***克服了阻碍常规增强现实***的若干技术缺陷。例如,照明估计***改进了现有增强现实***针对数字场景内的特定位置生成照明条件的准确性和真实性。如上下文所述,照明估计***可以部分地通过使用局部照明估计神经网络来创建这种现实的照明,该局部神经网络被训练为基于数字场景内指定位置的局部位置指示符生成位置特定球形照明参数。
与使用导致亮度不自然的平均亮度值的一些常规***不同,所公开的照明估计***可以创建具有与局部位置指示符相对应的坐标级精度的照明参数。此外,与某些常规***不能描绘来自数字场景视角之外的照明不同,所公开的照明估计***可以创建捕捉从数字场景视角之外的光源发出的照明条件的照明参数。为了获得这种准确性,在一些实施例中,照明估计***生成位置特定球谐系数,该系数从数字场景内的多个视点有效地捕获位置特定的现实和看起来自然的照明条件。
除了更现实地描绘照明之外,在一些实施例中,照明估计***在相对于现有增强现实***针对不同位置绘制不同照明条件方面表现出更大的灵活性。与一些常规增强现实***不同,其仅限于为一组对象或整个图像重新确定照明,照明估计***可以针对虚拟对象移动到的不同位置灵活地适配照明条件。例如,在标识出移动虚拟对象的位置调整请求后,所公开的照明估计***可以使用新局部位置指示符来修改数字场景的现有全局特征图。通过修改全局特征图以反映新指定位置,照明估计***可以为新指定位置生成新位置特定照明参数,而不必重新确定针对其他对象或整个图像的照明条件。这种灵活性使得用户能够在移动设备或其他计算设备的增强现实应用中操纵对象。
独立于现实和灵活性,所公开的照明估计***还可以提高增强现实***绘制具有针对虚拟对象的位置特定照明数字场景的速度。与依靠检查图像的几何形状或类似基线参数的照明模型不同,所公开的照明估计***使用需要相对较少的输入的神经网络来估计照明,该相对较少的输入即数字场景和虚拟对象位置的指示符。通过训练局部照明估计神经网络来分析此类输入,照明估计***减少了快速生成数字场景内特定位置的照明参数所需的计算资源。
现在转到图1,该图图示了使用神经网络来估计位置特定照明参数的增强现实***108和照明估计***110。一般而言,如图1所示,照明估计***110标识在数字场景102中指定位置绘制虚拟对象106的请求,并使用局部照明估计神经网络112生成针对指定位置的位置特定照明参数114。基于该请求,增强现实***108与照明估计***110一起绘制经修改的数字场景116,该数字场景116包括根据位置特定照明参数114被照亮的在指定位置处的虚拟对象106。尽管图1描绘了包括照明估计***110并绘制经修改的数字场景116的增强现实***108,但是照明估计***110可以备选地单独绘制经修改的数字场景116。
如刚刚指出的,照明估计***110标识在数字场景102内的指定位置处绘制虚拟对象106的请求。例如,照明估计***110可以标识来自移动设备的数字请求,以在数字图像中描绘的一件家具(或另一真实物品)上的特定位置处绘制虚拟枕头(或其他虚拟物品)。不管来自请求的对象或场景的类型如何,在一些实施例中,绘制数字场景的请求都包括绘制虚拟对象的指定位置的指示。
如本公开中所使用的,术语“数字场景”是指对象的数字图像、模型或描绘。例如,在一些实施例中,数字场景包括从特定视点或从多个视点来看的真实场景的数字图像。作为另一示例,数字场景可以包括场景的三维数字模型。不管格式如何,数字场景都可以包括来自光源的光的描绘。仅举一个示例说明,一个数字场景可以包括一个真实房间的数字图像,该房间包含真实的墙壁、地毯、家具以及人,具有从灯或窗户发出的光线。如下面进一步讨论的,可以将数字场景修改为在描绘增强现实的经调整或经修改的数字场景中包括虚拟对象。
相关地,术语“虚拟对象”是指在物理世界中不存在的计算机生成的图形对象。例如,虚拟对象可以包括由计算机创建以用于在增强现实应用中使用的对象。这样的虚拟对象可以是但不限于虚拟附件、动物、衣物、化妆品、鞋类、固定装置、家具、陈设品、毛发、人、人体特征、交通工具或计算机创建的任何其他图形对象。本公开通常使用单词“虚拟”来指定特定的虚拟对象(例如,“虚拟枕头”或“虚拟鞋”),但是通常是指没有单词“真实”的真实对象(例如,“床”、“沙发”)。
如图1进一步所示,照明估计***110为绘制请求中的指定位置标识或生成局部位置指示符104。如本文所使用的,术语“局部位置指示符”是指用于数字场景内的位置的数字标识符。例如,在某些实现中,局部位置指示符包括数字坐标、像素或其他标记,其指示来自绘制虚拟对象的请求的数字场景内的指定位置。为了说明,局部位置指示符可以是表示指定位置的坐标或与指定位置相对应的像素(或像素的坐标)。在其他实施例中,照明估计***110可以将局部位置指示符生成(并且输入)到局部照明估计神经网络112中,或者使用局部照明估计神经网络112从特征图中标识一个或多个局部位置指示符。
除了生成局部位置指示符外,照明估计***110还使用局部照明估计神经网络112分析数字场景102和局部位置指示符104中的一者或两者。例如,在一些情况下,照明估计***110使用局部照明估计神经网络112的第一组层从数字场景102中提取全局特征图。照明估计***110可以进一步基于用于指定位置的局部位置指示符104来修改数字场景102的全局特征图。
如本文所用,术语“全局特征图”是指表示数字场景(例如,数字图像或三维数字模型)的特征的多维阵列或多维矢量。例如,用于数字场景的全局特征图可以表示整个数字场景的不同视觉或潜在特征,诸如可见或嵌入在数字图像或三维数字模型中的照明或几何特征。如下所述,局部照明估计神经网络的一层或多层输出数字场景的全局特征图。
术语“局部照明估计神经网络”是指人工神经网络,其生成指示数字场景内某个位置的照明条件的照明参数。特别地,在某些实现中,局部照明估计神经网络是指人工神经网络,其生成指示针对与数字场景内的虚拟对象相对应的指定位置的照明条件的位置特定照明参数图像。在一些实施例中,局部照明估计神经网络包括以下网络层中的一些或全部:密集连接的卷积网络(“DenseNet”)中的一个或多个层、卷积层和完全连接层。
在修改全局特征图之后,照明估计***110使用局部照明估计神经网络112的第二组网络层,来基于经修改的全局特征图生成位置特定照明参数114。如本公开中所使用的,术语“位置特定照明参数”是指指示照明或照亮数字场景的一部分或者照明或照亮数字场景中的位置的参数。例如,在一些实施例中,位置特定照明参数定义、指定或以其他方式指示与数字场景的指定位置相对应的像素的照明或阴影。这样的位置特定照明参数可以定义虚拟对象在指定位置处的像素的阴影或色调。在一些实施例中,位置特定的照明参数包括球谐系数,该系数指示针对虚拟对象的数字场景内的指定位置的照明条件。因此,位置特定照明参数可以是与球体表面相对应的函数。
如图1进一步所示,增强现实***108除了生成这样的照明参数之外,还对经修改的数字场景116进行绘制,该经修改的数字场景116包括在指定位置处根据位置特定照明参数114被照亮的虚拟对象106。例如,在一些实施例中,增强现实***108在数字场景102内叠加或以其他方式集成虚拟对象106的计算机生成的图像。作为绘制的一部分,增强现实***108选择并绘制虚拟对象106的像素,该像素反映由位置特定照明参数114指示的照明、阴影或适当的色相。
如以上所建议的,在一些实施例中,照明估计***110使用用于数字场景的立方图来投影用于数字场景的指定位置的基础真实照明参数。图2图示了与数字场景相对应的立方图的示例。如图2所示,数字训练场景202包括由光源照亮的对象的视点。为了生成用于训练的基础真实照明参数,在一些情况下,照明估计***110选择并标识数字训练场景202中的位置。照明估计***110还生成与所标识的位置相对应的立方图204a-204d,其中每个立方图表示数字训练场景202内的所标识的位置。然后,照明估计***110将立方图204a-204d投影到基础真实球谐系数,以用于训练局部照明估计神经网络。
照明估计***110可选地通过修改现实的场景或计算机生成的场景的图像来生成或准备数字训练场景,诸如数字训练场景202。例如,在一些情况下,照明估计***110修改普林斯顿大学SUNCG数据集的三维场景,如Shuran Song等人在IEEE计算机视觉和模式识别会议论文集(2017)的“Semantic Scene Completion from a Single Depth Image(单深度图像的语义场景完成)”中所描述的,其全部内容通过引用并入本文。SUNCG数据集中的场景通常包括现实的房间和家具布局。基于SUNCG数据集,照明估计***110计算基于物理的场景图像绘制。在一些这样的情况下,照明估计***110使用Mitsuba框架来计算基于物理的绘制,如Yinda Zhang等人在IEEE计算机视觉和模式识别会议论文集(2017)的“Physically-Based Rendering for Indoor Scene Understanding UsingConvolutional Neural Networks(使用卷积神经网络进行室内场景理解的基于物理的绘制)”(以下简称“Zhang”)中所描述的,其全部内容通过引用并入本文。
为了消除这种绘制中的一些不准确性和偏差,在一些实施例中,照明估计***110在一些方面更改了Zhang算法的计算方法。首先,照明估计***110以数字方式去除看起来与室内场景不一致的光,诸如用于地板、墙壁和天花板的区域光。其次,研究人员没有如Zhang中那样使用单个全景图进行室外照亮,而是从200个HDR室外全景图的数据集中随机选择了一个全景图,并绕全景图的Y轴应用了随机旋转。第三,不是为每个室内区域光分配相同的强度,照明估计***110随机地选择具有均匀分布的一百和五百坎德拉之间的光强度。然而,在生成数字训练场景的一些实现中,照明估计***110使用与Zhang所描述的相同的绘制方法和空间分辨率。
因为室内场景可以包括光源和光强度的任意分布,所以照明估计***110标准化每个基于物理的数字场景的绘制。当标准化绘制时,照明估计***110使用以下等式:
在等式(1)中,I表示具有HDR的原始图像绘制,I′表示重新曝光的图像绘制,m设置为0.8的值以及P90表示原始图像绘制I的90%。通过重新曝光原始图像绘制I,重新曝光的图像绘制I′仍包含HDR值。照明估计***110进一步将具有介于1.8和2.2之间的随机值的伽马色调映射操作应用于重新曝光的图像绘制I′,并且剪切所有大于1的值。通过应用伽马色调映射操作,照明估计***110可以产生具有饱和明亮窗口和改进场景对比度的图像。
如上所述,照明估计***110标识诸如数字训练场景202的数字训练场景内的样本位置。如图2所示,数字训练场景202包括四个球体,这些球体标识了照明估计***110所标识的四个样本位置。出于说明目的,数字训练场景202包括球体。因此,这些球体表示由照明估计***110标识的样本位置的可视化,而不是数字训练场景202中的对象。
为了标识这样的样本位置,在一些实施例中,照明估计***110以距图像边界的图像分辨率的20%的余量来标识数字训练场景202的四个不同象限。在每个象限中,照明估计***110标识一个样本位置。
如上面进一步指出的,照明估计***110基于来自数字训练场景202的样本位置来生成立方图204a-204d。如图2所示,每个立方图204a-204d在HDR中包括六个可视部分,其表示数字训练场景202的六个不同视角。立方图204a例如包括视觉部分206a-206e。在一些情况下,每个立方图204a-204d包括64×64×6分辨率。这样的分辨率对五次或以下的球谐函数影响很小,并有助于快速绘制立方图。
为了绘制立方图204a-204d,照明估计***110可以应用具有512个直接样本的两阶段主样本空间Metropolis光照传输(“PSSMLT”)。当生成立方图的视觉部分,诸如视觉部分206c时,照明估计***110沿表面法线10厘米的方向平移表面位置,以使将立方图的一部分置于另一对象的表面内的风险最小化。在一些实现中,照明估计***110使用相同的方法来标识数字训练场景中的样本位置并生成对应的立方图作为确定基础真实位置特定球谐系数的前序。
例如,在生成立方图204a-204d之后,照明估计***110将立方图204a-204d投影到用于数字训练场景202中每个已标识位置的基础真实位置特定球谐系数。在一些情况下,基础真实位置特定球谐系数包括5次的系数。为了计算这样的球谐,在一些实施例中,照明估计***110应用最小二乘法来投影立方图。
例如,照明估计***110可以使用以下等式来投影立方图:
在等式(2)中,f表示由立方图的可视部分所示的每个方向的光强度,其中对应于像素位置的立体角对光强度进行加权。符号表示次l和阶m的球谐函数。在一些情况下,对于每个立方图,照明估计***110针对每个颜色通道(例如,三阶)计算5次(或某个其他次数)的球谐系数,从而得到36×3的球谐系数。
在一些实施例中,除了生成基础真实位置特定球谐系数,照明估计***110还以特定方式增强数字训练场景。首先,照明估计***110将曝光随机缩放到0.2到4之间的均匀分布。第二,照明估计***110将用于色调映射操作符的伽马值随机地设置在1.8和2.2之间。第三,照明估计***110在X轴上反转数字训练场景的视点。类似地,照明估计***110通过反转负阶谐波(如符号所示)来转换基础真实球谐系数以匹配反转的视点。
如以上进一步建议的,在某些实现中,照明估计***110可以使用不同次数的球谐系数。例如,照明估计***110可以为每个颜色通道生成五次的基础真实球谐系数,或者为每个颜色通道生成五次的位置特定球谐系数。图3图示了根据不同次数的球谐的、球谐的各种次数的视觉表示以及针对数字场景内位置的完整环境图的照明条件。
如图3所示,视觉表示302a、302b、302c、302d和302e分别对应于一次、二次、三次、四次和五次的球谐。特别地,视觉表示302a-302e中的每一个包括在视觉上表示不同次数的一行中的一个或多个球体。如图3所示,随着每个次的增加,球谐系数指示更详细的照明条件。
为了说明,图3包括用于数字场景内位置的完整环境图304的照明描绘306a-306e。照明描绘306a、306b、306c、306d和306e分别对应于一次、二次、三次、四次和五次的球谐系数。随着球谐的次数的增加,照明描绘306a-306e更好地捕获了完整环境图304中所示的照明。如照明描绘306a-306e所示,球谐系数可以隐式地捕获数字场景的遮挡和几何形状。
如以上所建议的,照明估计***110可以将各种架构和输入用于局部照明估计神经网络。图4A和图4B描绘了照明估计***110的示例,其分别训练和应用局部照明估计神经网络以生成位置特定照明参数。图5A和5B描绘了照明估计***110的另一实施例,其分别训练和应用局部照明估计神经网络以生成位置特定照明参数。这两个实施例都可以使用数字训练场景和来自立方图的对应球谐系数,如关于图2和图3所描述的。
例如,如图4A所示,照明估计***110迭代地训练局部照明估计神经网络406。作为训练迭代的概述,照明估计***110使用局部照明估计神经网络406的第一组网络层408从数字训练场景中提取全局特征训练图。照明估计***110还生成用于数字训练场景内的指定位置的局部位置训练指示符,并且基于局部位置训练指示符来修改全局特征训练图。
基于对组合特征训练图中反映的全局特征训练图的修改,照明估计***110使用局部照明估计神经网络406的第二组网络层416为指定位置生成位置特定球谐系数。然后,照明估计***110基于数字训练场景中指定位置的位置特定球谐系数与基础真实球谐系数的比较,来修改局部照明估计神经网络406的网络参数。
例如,如图4A所示,照明估计***110将数字训练场景402馈送到局部照明估计神经网络406。在接收到数字训练场景402作为训练输入后,第一组网络层408从数字训练场景402中提取全局特征训练图410。在一些这样的实施例中,全局特征训练图410表示数字训练场景402的视觉特征,诸如数字训练场景402的光源位置和全局几何形状。
如上所述,在某些实现中,第一组网络层408包括DenseNet的层,诸如DenseNet的各个较低层。例如,第一组网络层408可以包括卷积层,其后是密集块,以及(在一些情况下)卷积层、池化层和密集块的一组或多组。在一些情况下,第一组网络层408包括来自DenseNet 120的层,如G.Huang等人在IEEE计算机视觉与模式识别会议论文集(2017)的“Densely Connected Convolutional Layers(密集连接的卷积层)”(以下简称“Huang”)中所描述的,其全部内容通过引用并入本文。照明估计***110可选地使用在ImageNet上训练的权重为DenseNet的各层初始化网络参数,如Olga Russakovsky等人在国际计算机视觉杂志211-252(2015)第30卷,第3期的“ImageNet Large Scale Visual RecognitionChallenge(ImageNet大规模视觉识别挑战)”(以下简称“Russakovsky”)中所描述的,其全部内容通过引用并入本文。无论如何为第一组网络层408初始化网络参数的体系结构,第一组网络层408可选地以对应于数字训练场景402的密集特征图的形式输出全局特征训练图410。
在DenseNet层的备选方案中,第一组网络层408包括来自卷积神经网络(“CNN”)的编码器,其包括几个卷积层,其后是四个残留层。在一些这样的实施例中,第一组网络层408包括由马克·安德烈·加德纳(Marc-AndréGardner)等人在ACM图形交易(2017)第36卷,第6号文章“Learning to Predict Indoor Illumination from a Single Image(学习从单个图像预测室内照明)”(以下简称“Gardner”)中描述的编码器,其全部内容通过引用并入本文。因此,作为编码器,第一组网络层408可选地以数字训练场景402的编码特征图的形式输出全局特征训练图410。
如图4A进一步所示,照明估计***110标识或生成针对数字训练场景404内指定位置的局部位置训练指示符404。例如,照明估计***110可以标识表示数字训练场景402内的指定位置的局部位置训练坐标。这样的坐标可以表示数字训练场景402内的样本位置的二维坐标,该坐标对应于由照明估计***110生成的立方图(和基础真实球谐系数)。
在已经标识出局部位置训练指示符404之后,照明估计***110使用局部位置训练指示符404来修改全局特征训练图410。在一些情况下,例如,照明估计***110使用局部位置训练指示符404来掩蔽全局特征训练图410。例如,照明估计***110可选地根据局部位置训练指示符404生成掩蔽特征训练图,诸如通过将矢量编码器应用于局部位置训练指示符404(例如,通过独热编码)。在一些实现中,掩蔽特征训练图包括值的数组,其指示针对数字训练场景402内的指定位置的局部位置训练指示符404,诸如指示数字训练场景402内指定位置的坐标的数字的一个或多个值,和指示数字训练场景402内其他位置的坐标的其他值(例如数字零)。
如图4A进一步所示,照明估计***110将全局特征训练图410和局部位置训练指示符404的掩蔽特征训练图相乘,以生成掩蔽密集特征训练图412。因为掩蔽特征训练图和全局特征训练图410可以包括相同的空间分辨率,所以在一些实施例中,掩蔽特征训练图有效地掩蔽全局特征训练图410以创建掩蔽密集特征训练图412。掩蔽密集特征训练图412相应地表示用于数字训练场景402内的指定位置的局部特征图。
在一些实施例中,在生成掩蔽密集特征训练图412时,照明估计***110将全局特征训练图410和掩蔽密集特征训练图412拼接(concatenate)以形成组合特征训练图414。例如,照明估计***110将全局特征训练图410和掩蔽密集特征训练图412耦合在一起,以形成双重特征图或堆叠特征图作为组合特征训练图414。备选地,在某些实现中,照明估计***110将来自全局特征训练图410的值的行与来自掩蔽密集特征训练图412的值的行组合以形成组合特征训练图414。但是任何合适的拼接方法都可以被使用。
如图4A进一步所示,照明估计***110将组合特征训练图414馈送到局部照明估计神经网络406的第二组网络层416。如图4A所示,第二组网络层416包括网络层418和420中的一个或两个,并且可以包括回归器。在某些实现中,例如,第二组网络层416包括作为网络层418的卷积层和作为网络层420的完全连接层。第二组网络层416可选地包括在构成网络层418的卷积层和构成网络层420的完全连接层之前的退出层之间的最大池化层。作为具有此类层的训练迭代的一部分,照明估计***110可选地使组合特征训练图414通过具有批处理标准化和指数学习单元(“ELU”)学习功能的几个卷积层和几个完全连接层。
在使组合特征训练图414通过第二组网络层416之后,局部照明估计神经网络406输出位置特定球谐训练系数422。与上面的公开内容一致,位置特定球谐训练系数422指示数字训练场景402内的指定位置的照明条件。例如,位置特定球谐训练系数422指示由局部位置训练指示符404标识的、数字训练场景402内的指定位置的照明条件。
在生成位置特定球谐训练系数422之后,照明估计***110将位置特定球谐训练系数422与基础真实球谐系数426进行比较。如本公开中所使用的,术语“基础真实球谐系数”是指根据一个或多个立方图根据经验确定的球谐系数。例如,基础真实球谐系数426表示从对应于由局部位置训练指示符404标识的数字训练场景402内的位置的立方图投影的球谐系数。
如由图4A进一步指示的,照明估计***110使用损失函数424来比较位置特定球谐训练系数422与基础真实球谐系数426。在一些实施例中,照明估计***110使用均方误差(“MSE”)函数作为损失函数424。备选地,在某些实现中,照明估计***110使用L2损失函数、均值绝对误差函数、均值绝对百分比误差函数、绘制损失函数、均方根误差函数或其他合适的损失函数作为损失函数424。
在从损失函数424确定损失后,照明估计***110修改局部照明估计神经网络406的网络参数(例如权重或值),以在后续的训练迭代中使用从损失函数434到局部照明估计神经网络406的箭头所示的反向传播来减少损失函数424的损失。例如,照明估计***110可以增加或减少来自局部照明估计神经网络406内的第一组网络层408或第二组网络层416中的一些(或全部)的权重或值,以减少或最小化后续训练迭代中的损失。
在为初始训练迭代修改了局部照明估计神经网络406的网络参数之后,照明估计***110可以执行附加的训练迭代。在后续的训练迭代中,例如,照明估计***110提取用于附加数字训练场景的附加全局特征训练图,生成用于附加数字训练场景内的指定位置的附加局部位置训练指示符,并基于附加的局部位置训练指示符修改附加的全局特征训练图。基于附加的组合特征训练图,照明估计***110为指定位置生成附加的位置特定球谐训练系数。
照明估计***110随后基于来自损失函数424的损失来修改局部照明估计神经网络406的网络参数,以比较附加的位置特定球谐训练系数与附加的数字训练场景中指定位置的附加基础真实球谐系数。在一些情况下,照明估计***110执行训练迭代,直到局部照明估计神经网络406的值或权重在训练迭代之间没有显著变化或满足收敛准则为止。
为了到达收敛点,照明估计***110可选地使用20个数字训练场景的迷你批处理和Adam优化器来训练图4A或图5A所示的局部照明估计神经网络406(下面描述后者),该优化器以0.0001的学习率和0.0002的权重衰减最小化训练迭代过程中的损失。在一些这样的训练实验期间,当生成大于零的次数(诸如,五次)的位置特定球谐训练系数时,照明估计***110更快地达到收敛点。
照明估计***110还使用训练过的局部照明估计神经网络来生成位置特定照明参数。图4B描绘了一个这样的应用的示例。通常,如图4B所示,照明估计***110标识在数字场景428中指定位置绘制虚拟对象432的请求。照明估计***110使用局部照明估计神经网络406来分析数字场景428和局部位置指示符430两者,以生成用于指定位置的位置特定球谐系数440。基于该请求,照明估计***110绘制经修改的数字场景442,该数字场景442包括根据位置特定球谐系数440在指定位置被照明的虚拟对象432。
如刚刚指出的,照明估计***110标识在数字场景428内的指定位置处绘制虚拟对象432的请求。例如,照明估计***110可以标识来自执行增强现实应用的计算设备的数字请求,以在数字场景428中描绘的人(或另一真实物品)上的特定位置处绘制虚拟头部配件(或其他虚拟物品)。如图4B所示,绘制虚拟对象432的请求包括用于绘制虚拟对象432的指定位置的局部位置指示符430。
基于接收到图4B所示的请求,照明估计***110将数字场景428输入到局部照明估计神经网络406中。特别地,照明估计***110将数字场景428馈送到第一组网络层408,以用于第一组网络层408从数字场景428中提取全局特征图434。如上所述,第一组网络层408可选地包括来自DenseNet的层,并输出密集特征图作为全局特征图434。备选地,第一组网络层408可选地包括编码器并且输出编码的特征图作为全局特征图434。
如图4B进一步所示,照明估计***110为数字场景428内的指定位置生成局部位置指示符430。例如,在一些实施例中,照明估计***110从绘制虚拟对象432的请求中标识出局部位置指示符430(例如,使用局部位置指示符作为数字场景428中的二维或三维坐标)。照明估计***110随后基于局部位置指示符430来修改全局特征图434。
为了进行这样的修改,照明估计***110可以使用局部位置指示符430来掩蔽全局特征图434。在一些实现中,例如,照明估计***110诸如通过将矢量编码器应用于局部位置指示符430(例如,通过独热编码)而从局部位置指示符430生成掩蔽特征图。如上所述,掩蔽特征图可以包括指示数字场景428内的指定位置的局部位置指示符430的值(例如,1和0)的数组。
如图4B进一步指示,照明估计***110将全局特征图434和用于局部位置指示符430的掩蔽特征图相乘,以生成掩蔽密集特征图436。假定掩蔽特征图和全局特征图434包括相同的空间分辨率,则在一些实施例中,掩蔽特征图有效地掩蔽全局特征图434,以创建掩蔽密集特征图436。掩蔽密集特征图436相应地表示了数字场景428内指定位置的局部特征图。
在一些实施例中,在生成掩蔽密集特征图436时,照明估计***110将全局特征图434和掩蔽密集特征图436拼接起来,以形成组合特征图438。为了形成组合特征图438,照明估计***110可以使用上述的任何拼接方法。照明估计***110随后将组合特征图438馈送到第二组网络层416。
通过使组合特征图438通过第二组网络层416,局部照明估计神经网络406输出位置特定球谐系数440。与上面的公开内容一致,位置特定球谐系数440指示数字场景428内的指定位置的照明条件,诸如由局部位置指示符430标识的指定位置。
在生成这样的照明参数之后,照明估计***110绘制包括虚拟对象432的经修改的数字场景442,该虚拟对象432在指定位置根据位置特定球谐系数440被照亮。例如,在一些实施例中,照明估计***110在数字场景428内叠加或以其他方式集成虚拟对象432的计算机生成的图像。作为绘制的一部分,照明估计***110选择并绘制虚拟对象432的像素,该像素反映位置特定球谐系数440所指示的照明、阴影或适当色相。
如上所述,图5A和图5B描绘了照明估计***110的另一实施例,其分别训练和应用局部照明估计神经网络以生成位置特定照明参数。如图5A所示,例如,照明估计***110迭代地训练局部照明估计神经网络504。作为训练迭代的概述,照明估计***110使用局部照明估计神经网络504的第一组网络层506从数字训练场景中提取全局特征训练图。照明估计***110还根据由第一组网络层的各层输出的特征图,生成用于数字训练场景内的指定位置的多个局部位置训练指示符。照明估计***110随后基于局部位置训练指示符来修改全局特征训练图。
基于从修改全局特征训练图得到的组合特征训练图,照明估计***110使用局部照明估计神经网络504的第二组网络层516生成指定位置的位置特定球谐系数。然后,照明估计***110基于数字训练场景内指定位置的位置特定球谐系数与基础真实球谐系数的比较,修改局部照明估计神经网络504的网络参数。
例如,如图5A所示,照明估计***110将数字训练场景502馈送到局部照明估计神经网络504。在接收到数字训练场景504作为训练输入之后,第一组网络层506从数字训练场景502提取全局特征训练图508。在一些实施例中,第一组网络层506包括来自DenseNet的层,并以密集特征图的形式输出全局特征训练图508,诸如由Huang描述的各种密集块的输出。在一些这样的实现中,第一组网络层506还包括几个卷积层和最大池化层,这降低了全局特征训练图508的分辨率。在DenseNet层的备选方案中,第一组网络层506可以包括编码器,并以编码特征图的形式输出全局特征训练图508,诸如由Gardner描述的编码器的输出。与其形式无关,全局特征训练图508可以表示数字训练场景502的视觉特征,诸如数字训练场景502的光源位置和全局几何形状。
除了生成全局特征训练图508之外,照明估计***110还从第一组网络层506的各个层中的每一个中标识特征训练图。如图5A所示,例如,来自第一组网络层506的各个层共同输出包括每个这样的特征训练图的特征训练图510。照明估计***110从特征训练图510的每个特征训练图中选择与数字训练场景502内的指定位置相对应的训练像素。例如,照明估计***110可选地从每个特征训练图选择与指定位置相对应的每个训练像素的坐标。每个训练像素(或对应的坐标)表示指定位置的局部位置训练指示符。
如图5A进一步所示,照明估计***110根据从特征训练图510中选择的训练像素来生成超列训练图512。例如,在一些实施例中,照明估计***110诸如通过拼接每个选定像素的特征来组合或拼接每个选定的训练像素,以形成超列训练图512。因此,超列训练图512表示数字训练场景502内指定位置的局部特征。在一些这样的实施例中,照明估计***110生成超列地图,如Aayush Bansal等人在IEEE计算机视觉和模式识别会议论文集(2016)的“Marr Revisited:2D-3D Model Alignment via Surface Normal Prediction(马尔再访:经由表面法线预测进行2D-3D模型对齐)”中所描述的,或Bharath Hariharan等人在IEEE计算机视觉和模式识别会议论文集(2015)的“Hypercolumns for Object Segmentation andFine-Grained Localization(用于对象分割和细粒度定位的超列)”中所描述的,这两篇文章的全部内容均通过引用并入本文。
在一些实施例中,在生成超列训练图512时,照明估计***110将全局特征训练图508和超列训练图512拼接起来以形成组合特征训练图514。为了形成组合特征训练图514,照明估计***110可选地(i)将全局特征训练图508和超列训练图512耦合在一起以形成双重或堆叠特征图,或者(ii)将来自全局特征训练图508的值的行与来自超列训练图512的值的行进行组合。但是可以使用任何合适的拼接方法。
如图5A进一步所示,照明估计***110将组合特征训练图514馈送到局部照明估计神经网络504的第二组网络层516。在某些实现中,例如,第二组网络层516包括完全连接层。作为具有此类层的训练迭代的一部分,照明估计***110可选地使组合特征训练图514通过具有批处理标准化和ELU学习功能的几个完全连接层。
在使组合特征训练图514通过第二组网络层516之后,局部照明估计神经网络504输出位置特定球谐训练系数518。与上面的公开内容一致,位置特定球谐训练系数518指示数字训练场景502内的指定位置的照明条件。例如,位置特定球谐训练系数518指示由来自特征训练图510的局部位置训练指示符标识的、数字训练场景502内的指定位置的照明条件。
在生成位置特定球谐训练系数518之后,照明估计***110比较位置特定球谐训练系数518与基础真实球谐系数522。基础真实球谐系数522表示从对应于数字训练场景502中的样本位置的立方图投影的球谐系数,该样本位置即由来自特征训练图510的局部位置训练指示符指示的相同指定位置。
如图5A进一步所示,照明估计***110使用损失函数520来比较位置特定球谐训练系数518与基础真实球谐系数522。在一些实施例中,照明估计***110使用MSE函数作为损失函数520。备选地,在某些实现中,照明估计***110使用L2损失函数、均值绝对误差函数、均值绝对百分比误差函数、绘制损失函数、均方根误差函数、或其他合适的损失函数作为损失函数520。
在从损失函数520确定损失之后,照明估计***110修改局部照明估计神经网络504的网络参数(例如权重或值),以在后续的训练迭代中减少损失函数520的损失。例如,照明估计***110可以增加或减少来自局部照明估计神经网络504内的第一组网络层506或第二组网络层516中的一些(或全部)的权重或值,以减少或最小化后续训练迭代中的损失。
在针对初始训练迭代而修改了局部照明估计神经网络504的网络参数之后,照明估计***110可以执行附加的训练迭代。在后续的训练迭代中,例如,照明估计***110提取用于附加的数字训练场景的附加的全局特征训练图,为附加的数字训练场景内的指定位置生成附加的局部位置训练指示符,以及基于附加局部位置训练指示符修改附加全局特征训练图。基于附加的组合特征训练图,照明估计***110为指定位置生成附加的位置特定球谐训练系数。
照明估计***110随后基于来自损失函数520的损失修改局部照明估计神经网络504的网络参数,该损失函数520比较附加位置特定球谐训练系数与附加数字训练场景内的指定位置的附加基础真实球谐系数。在一些情况下,照明估计***110执行训练迭代,直到局部照明估计神经网络504的值或权重在训练迭代过程中没有显著变化或满足收敛准则为止。
图5B描绘了使用局部照明估计神经网络504生成位置特定照明参数的示例。通常,如图5B所示,照明估计***110标识在数字场景524内的指定位置处绘制虚拟对象526的请求。照明估计***110使用局部照明估计神经网络504来分析数字场景524和多个局部位置指示符两者,以生成用于指定位置的位置特定球谐系数536。基于该请求,照明估计***110绘制经修改的数字场景538,该场景包括根据位置特定球谐系数536在指定位置被照明的虚拟对象526。
如刚刚指出的,照明估计***110标识在数字场景524内的指定位置处绘制虚拟对象526的请求。例如,照明估计***110可以标识来自计算设备的数字请求,以在数字场景524中描绘的风景(或另一真实物品)上的特定位置处绘制虚拟动物或角色(或其他虚拟物品)。尽管图5B未示出,但是绘制虚拟对象526的请求包括数字场景524内的指定位置的指示,在该位置绘制虚拟对象526。
基于接收到图5B所示的请求,照明估计***110将数字场景524输入到局部照明估计神经网络504中。特别地,照明估计***110将数字场景524馈送到第一组网络层506,以从数字场景524中提取全局特征图528。如上所述,第一组网络层506可选地包括来自DenseNet的层,并输出密集特征图作为全局特征图528。备选地,第一组网络层506可选地包括编码器,并输出编码特征图作为全局特征图528。
如图5B进一步所示,照明估计***110从第一组网络层506的各个层的每一个中标识特征图。如图5B所示,例如,来自第一组网络层506的各个层共同输出特征图530——包括每个这样的特征图。照明估计***110从特征图510的每个特征图中选择与数字场景524内的指定位置相对应的像素。例如,照明估计***110从每个特征图中为与指定位置相对应的每个像素选择坐标。
如图5B进一步所示,照明估计***110根据从特征图530选择的像素来生成超列图532。例如,在一些实施例中,照明估计***110诸如通过拼接来自每个所选像素的特征,来组合或拼接每个所选像素以形成超列图532。超列图532相应地表示数字场景524内指定位置的局部特征。
在一些实施例中,在生成超列图532时,照明估计***110将全局特征图528和超列图532拼接起来以形成组合特征图534。为了形成组合特征图534,照明估计***110可以使用上述的任何拼接方法。然后,照明估计***110将组合特征图534馈送到第二组网络层516。
通过使组合特征图534通过第二组网络层516,局部照明估计神经网络504输出位置特定球谐系数536。与上面的公开内容一致,位置特定球谐系数536指示数字场景524内指定位置的照明条件,诸如由来自特征图530的局部位置指示符标识的指定位置。
在生成了这样的照明参数之后,照明估计***110绘制包括虚拟对象526的经修改的数字场景538,虚拟对象526在指定位置处根据位置特定球谐系数536被照亮。例如,在一些实施例中,照明估计***110在数字场景524内叠加或以其他方式集成虚拟对象526的计算机生成的图像。作为绘制的一部分,照明估计***110选择并绘制虚拟对象526的像素,这些像素反映由位置特定球谐系数536指示的照明、阴影或适当的色相。
除了准确地描绘指定位置处的照明条件之外,在图4B和图5B中生成的位置特定球谐系数可以从数字场景内的指定位置的不同视角动态地捕获照明。在一些实施例中,当数字场景的视角在相机视点、模型定向或其他视角调整中发生变化时,尽管这种视角发生了变化,但位置特定球谐系数仍可以准确指示指定位置的照明条件。例如,在一些实施例中,照明估计***110标识视角调整请求以从不同视点绘制数字场景,诸如通过检测重新定向数字场景的移动设备的移动或标识修改数字场景视角的用户输入(例如,调整视角的相机移动)。基于视角调整请求,照明估计***110可以从不同视点绘制经修改的数字场景,该场景包括根据图4B或图5B中生成的位置特定球谐系数在指定位置被照亮的虚拟对象。
备选地,在某些实现中,照明估计***110响应于数字场景的视角调整和对应视点变化(例如,调整视角的相机移动),调整或生成新位置特定照明参数。例如,在一些实施例中,照明估计***110从新的或不同视点标识视角调整请求以在数字场景内的指定位置处绘制虚拟对象。基于这种视角调整请求,照明估计***110可以生成与上面的图4B或图5B一致的新位置特定照明参数。
在一些情况下,例如,照明估计***110从不同视点为数字场景内的指定位置生成新局部位置指示符(例如,如图4B所示,用于新指定位置的新坐标,或如图5B所示,与来自每个特征图的新指定位置相对应的像素的新坐标)。照明估计***110随后基于从不同视点针对指定位置的新局部位置指示符来修改数字场景的全局特征图,以形成新的经修改的全局特征图(例如,拼接新全局特征图和新的掩蔽密集特征图以形成新的组合特征图,如图4B所示,或拼接新全局特征图和新超列图以形成新的组合特征图,如图5B所示)。基于新的经修改的全局特征图,照明估计***110使用第二组网络层(例如,图4B中的第二组网络层416或图5B中的第二组网络层516)从不同视点为指定位置生成新位置特定照明参数。响应于视角调整请求,照明估计***110相应地绘制经调整的数字场景,该数字场景包括根据新位置特定照明参数在指定位置被照亮的虚拟对象。
除了图4B和图5B中所示的位置特定球谐系数和经修改的数字场景外,照明估计***110可以响应于位置调整请求而生成新位置特定球谐系数和经调整的数字场景,以在新的指定位置绘制虚拟对象。例如,使用来自图4B的局部照明估计神经网络406,照明估计***110可以从位置调整请求中标识新局部位置指示符,并且基于新局部位置指示符来修改全局特征图以生成新的掩蔽密集特征图。使用来自图5B的局部照明估计神经网络504,照明估计***110可以从由第一组网络层506输出的特征图中标识出多个新局部位置指示符,并根据从这些特征图中选择的像素来生成超列图。
使用来自图4B或图5B的神经网络架构,照明估计***110可以生成新组合特征图,并使用第二组网络层来生成新位置特定球谐系数。基于位置调整请求,照明估计***110因此可以绘制包括虚拟对象的经调整的数字场景,虚拟对象在新指定位置处根据新的位置特定球谐系数被照亮。响应于位置调整请求,照明估计***110可以相应地使照明条件适配到计算设备将虚拟对象移动到的不同位置。
除了响应于位置调整来更新位置特定球谐系数和数字场景外,照明估计***110可以响应于照明条件的改变或调整、场景中对象的移动或场景的其他改变,而生成新位置特定球谐系数和经调整的场景。例如,使用来自图4B的第一组网络层408,照明估计***110可以从场景中提取新的全局特征图,并基于局部位置指示符修改新的全局特征图,以生成新的掩蔽密集特征图。使用来自图5B的第一组网络层506,照明估计***110可以生成新全局特征图并从选自这种新全局特征图的像素生成新的超列图。
使用来自图4B或图5B的神经网络架构,照明估计***110可以生成新组合特征图,并使用第二组网络层来生成反映经调整的照明条件的新位置特定球谐系数。因此,基于针对数字场景内的指定位置的照明条件的调整,照明估计***110可以绘制包括虚拟对象的经调整的数字场景,虚拟对象在指定位置根据新位置特定球谐系数被照亮。响应于对照明条件的调整,照明估计***110可以相应地适配位置特定照明参数以反映对照明条件的调整。
图6A-图6C描绘了照明估计***110的实施例,其中计算设备响应于不同的绘制请求,分别根据位置特定照明参数和新位置特定照明参数在指定位置,然后在新指定位置绘制包括虚拟对象的数字场景。作为概述,图6A-图6C各自描绘了包括用于增强现实***108和照明估计***110的增强现实应用的计算设备600。增强现实应用包括使计算设备600执行图6A-图6C中描绘的某些动作的计算机可执行指令。
本公开不是重复地将增强现实应用中的计算机可执行指令描述为使得计算设备600执行这样的动作,而是主要将计算设备600或照明估计***110描述为执行动作的速记。本公开还涉及由图6A-图6C指示的各种用户交互,诸如当计算设备600检测到虚拟对象的用户选择时。尽管计算设备600在图6A-图6C中显示为移动设备(例如,智能手机),但是计算设备600可以备选地是任何类型的计算设备,诸如台式机、膝上型电脑或平板电脑,并且还可以检测到任何适当的用户交互,包括但不限于麦克风的音频输入、游戏设备按钮输入、键盘输入、鼠标单击、与触摸屏的手写笔交互或触摸屏上的触摸姿势。
现在回到图6A,该图描绘了计算设备600,该设备呈现包括屏幕602内的数字场景610的图形用户界面606a。如图所示,数字场景610包括真实对象612a和612b。图形用户界面606a还包括用于虚拟对象608a-608c的可选择选项栏604。通过呈现图形用户界面606a,计算设备600为用户提供选项以请求照明估计***110在数字场景610内的指定位置处绘制一个或多个虚拟对象608a-608c。
例如,如图6A所示,计算设备600检测到用户交互,该用户交互请求照明估计***110在数字场景610内的指定位置614处绘制虚拟对象608a。特别地,图6A描绘了计算设备600检测将虚拟对象608a移动到指定位置614的拖放姿势。尽管图6A图示了使用拖放姿势的用户,但是计算设备600可以检测到请求照明估计***110在数字场景内绘制虚拟对象的任何合适的用户交互。
基于接收到对照明估计***110在数字场景610内绘制虚拟对象608a的请求,增强现实***108与照明估计***110一起在指定位置614绘制虚拟对象608a。图6B描绘了这种绘制的示例。如图所示,计算设备600呈现包括在屏幕602内的经修改的数字场景616的图形用户界面606b。与上面的公开内容一致,计算设备600绘制包括虚拟对象608a的经修改的数字场景616,虚拟对象608a在指定位置614处根据由照明估计***110生成的位置特定照明参数被照亮。
为了生成这样的位置特定照明参数,照明估计***110可选地执行图4B或图5B所示的动作。如图6B中的绘制形式所示,位置特定照明参数指示虚拟对象608a的现实照明条件,其中照明和阴影与真实对象612a和612b一致。虚拟对象608a和真实对象612a和612b的阴影始终反射来自经修改的数字场景616中所示视角之外光源的光。
如上所述,照明估计***110可以响应于位置调整请求而生成新位置特定照明参数和经调整的数字场景,以在新的指定位置处绘制虚拟对象。图6C描绘了这样的经调整的数字场景的示例,其反映了新位置特定照明参数。如图6C所示,计算设备600呈现包括在屏幕602内的经调整的数字场景618的图形用户界面606c。计算设备600检测包括位置调整请求的用户交互,以将虚拟对象608a从指定位置614移动到新的指定位置620。
基于接收到照明估计***110移动虚拟对象608a的请求,增强现实***108与照明估计***110一起在新的指定位置620处绘制虚拟对象608a。因此,图6C描绘了计算设备600绘制包括虚拟对象608a的经调整的数字场景618,该虚拟对象608a在新的指定位置620处根据由照明估计***110生成的新位置特定照明参数而被照亮。
为了生成这样的新位置特定照明参数,照明估计***110可选地修改全局特征图,并使用照明估计神经网络来生成如图4B或图5B所示的位置特定球谐系数。如图6C所示,位置特定照明参数指示虚拟对象608a的现实照明条件,其中虚拟对象608a具有与真实对象612a和612b一致的调整后照明和阴影。如图6B到图6C的过渡所示,照明估计***110可以响应于在虚拟场景中移动虚拟对象的位置调整请求,将照明条件实时(或接近实时)适配到不同的位置。
如上所述,照明估计***110可以生成位置特定照明参数,其指示对数字场景内位置的准确和现实的照明条件。为了测试照明估计***110的准确性和真实性,研究人员修改了来自SUNCG数据集的数字场景(如上所述),并应用了局部照明估计神经网络来生成位置特定照明参数,以用于此类数字场景中的各个位置。图7A和图7B图示了数字场景的各种绘制中的这种准确性和真实性的示例,数字场景具有根据来自照明估计***110的基础真实照明参数而被照亮的位置以及根据来自照明估计***110的位置特定照明参数而被照亮的位置。
对于图7A和图7B两者,研究人员训练了如图4A所描绘的局部照明估计神经网络,其中局部照明估计神经网络包括来自DenseNet 120的第一组网络层中的DenseNet块,并使用在ImageNet上训练的权重来初始化网络参数。在图7A和图7B两者中,研究人员根据图4B所示的动作,通过应用经过训练的局部照明估计神经网络,进一步生成了位置特定球谐系数。
例如,如图7A所示,研究人员修改了来自SUNCG数据集的数字场景702。数字场景702包括指示指定位置的指定位置704,该指定位置作为用于估计照明条件的目标。出于比较的目的,研究人员根据基础真实球谐系数绘制了指定位置的红绿蓝(“RBG”)表示706和光强度表示710。与上面的公开内容一致,研究人员从立方图投射了指定位置704的基础真实球谐系数。研究人员进一步使用了照明估计***110生成指定位置704的位置特定球谐系数。在生成这种照明参数后,增强现实***108与照明估计***110一起根据位置特定球谐系数绘制指定位置704的RBG表示708和光强度表示712。
作为对图7A所示的RGB表示和光强度表示的比较的指示,照明估计***110生成位置特定球谐系数,该系数准确而现实地估计位于指定位置704的对象的照明条件。与一些常规的增强现实***不同,照明估计***110准确地估计从数字场景702视点之外的光源发出的照明。尽管最强的光源来自捕获数字场景702的相机后方,但是照明估计***110仍以与反映基础真实情况的RBG表示706和光强度表示710中所示的那些照明条件相似的准确性和真实性,来估计RBG表示708和光强度表示712中所示的照明条件。
图7B图示了经修改的数字场景714,该场景包括在根据基础真实球谐系数被照亮的指定位置处的虚拟对象718a-718d。与上面的公开内容一致,研究人员从立方图投影出了基础真实球谐系数,以用于经修改的数字场景714中的指定位置。图7B进一步图示了经修改的数字场景716,其包括在指定位置处根据由照明估计***110生成的位置特定球谐系数照亮的虚拟对象720a-720d。为了确定在指定位置处的虚拟对象720a-720d的估计照明条件,照明估计***110为经修改的数字场景716中的每个指定位置生成了位置特定球谐系数。
出于比较的目的,研究人员使用了照明估计***110为经修改的数字场景714中的虚拟对象718a-718d和经修改的数字场景716中的虚拟对象720a-720d绘制金属球。如图7B所示,经修改的数字场景714和经修改的数字场景716两者在相同的指定位置处分别包括虚拟对象718a-718d和虚拟对象720a-720d。
如对经修改的数字场景714和716中虚拟对象的照明的比较所指示的,照明估计***110会生成位置特定球谐系数,该系数准确和现实地估计在经修改的数字场景716中每个对象相应的指定位置处的虚拟对象720a-720d的照明条件。尽管虚拟对象720a-720d的光强度与虚拟对象718a-720d的光强度略有不同,但训练过的局部照明估计神经网络从经修改的数字场景716的基础场景中检测到足够的几何上下文,以生成系数,该***既(i)使被遮挡的金属球变暗,也(ii)在暴露于来自经修改的数字场景716视角之外光源的光在金属球上反射强方向性光。
现在转到图8和图9,这些图提供了照明估计***可以在其中操作的环境概述以及照明估计***的架构示例。特别地,图8描绘了图示根据一个或多个实施例的示例性***环境(“环境”)800的框图,照明估计***806可以在该***环境中操作。具体地,图8图示了环境800,其包括(多个)服务器802、(多个)第三方服务器810、网络812、客户端设备814以及与客户端设备814相关联的用户818。尽管图8图示了一个客户端设备和一个用户,但是在备选实施例中,环境800可以包括任何数目的计算设备和相关联的用户。类似地,尽管图8图示了(多个)服务器802、(多个)第三方服务器810、网络812、客户端设备814和用户818的特定布置,但是各种附加布置也是可能的。
如图8所示,(多个)服务器802、(多个)第三方服务器810、网络812和客户端设备814可以直接或间接地彼此通信耦合,诸如通过网络812耦合,这将在下面关于图12进一步描述。(多个)服务器802和客户端设备814可以包括任何类型的计算设备,包括一个或多个计算设备,如下面关于图12进一步讨论的。
如图8所示,(多个)服务器802可以生成、存储、接收和/或传送任何类型的数据,包括将数字场景输入到神经网络或请求绘制虚拟对象以创建增强现实场景的用户输入。例如,(多个)服务器802可以从客户端设备814接收请求在数字场景内的指定位置处绘制虚拟对象的用户输入,然后利用局部照明估计神经网络来生成指定位置的位置特定照明参数。在生成这样的参数之后,(多个)服务器802可以进一步绘制包括虚拟对象的经修改的数字场景,虚拟对象在指定位置处根据位置特定照明参数被照亮。在一些实施例中,(多个)服务器802包括数据服务器、通信服务器或web托管服务器。
如图8进一步所示,(多个)服务器802可以包括增强现实***804。通常,增强现实***804促进基于增强现实的图像中数字内容(例如,场景的二维数字图像或场景的三维数字模型)的生成、修改、共享、访问、存储和/或删除。例如,增强现实***804可以使用(多个)服务器802来生成包括虚拟对象的经修改的数字图像或模型或修改现有的数字场景。在某些实现中,增强现实***804使用(多个)服务器802从客户端设备814接收标识数字场景、虚拟对象、或数字场景内的指定位置的用户输入,或者向客户端设备814传送表示数字场景、虚拟对象、或指定位置的数据。
除了增强现实***804之外,(多个)服务器802还包括照明估计***806。照明估计***806是上述照明估计***110的实施例(以及可以执行功能、方法和过程)。例如,在一些实施例中,照明估计***806使用(多个)服务器802来标识在数字场景内的指定位置处绘制虚拟对象的请求。照明估计***806进一步使用(多个)服务器802,以使用局部照明估计神经网络的第一组网络层从数字场景中提取全局特征图。在某些实现中,照明估计***806还使用(多个)服务器802来生成用于指定位置的局部位置指示符,并基于局部位置指示符来修改数字场景的全局特征图。基于经修改的全局特征图,照明估计***806进一步使用(多个)服务器802来(i)使用局部照明估计神经网络的第二组层为指定位置生成位置特定照明参数,以及(ii)绘制经修改的数字场景,该数字场景包括在指定位置处根据位置特定照明参数被照亮的虚拟对象。
如先前的实施例所建议的,照明估计***806可以全部或部分地由环境800的各个元件来实现。尽管图8图示了在(多个)服务器802内实现的照明估计***806,但是照明估计***806的组件可以在环境800的其他组件中实现。例如,在一些实施例中,客户端设备814包括照明估计***806,并且执行以上和以下描述的照明估计***806的所有功能、方法和过程。本公开下面关于图9进一步描述了照明估计***806的组件。
如图8进一步所示,在一些实施例中,客户端设备814包括允许用户818发送和接收数字通信的计算设备。例如,客户端设备814可以包括台式计算机、膝上型计算机、智能电话、平板电脑或其他电子设备。在一些实施例中,客户端设备814还包括允许用户818发送和接收数字通信的一个或多个软件应用(例如,增强现实应用816)。例如,增强现实应用816可以是安装在客户端设备814上的软件应用,或者是托管在(多个)服务器802上的软件应用。当托管在(多个)服务器802上时,增强现实应用816可以由客户端设备814通过另一应用来访问,诸如web浏览器。在一些实现中,增强现实应用816包括指令,该指令在由处理器执行时使客户端设备814呈现一个或多个图形用户界面,诸如包括数字场景和/或虚拟对象的用户界面,当生成位置特定的照明参数或经修改的数字场景时,这些数字场景和/或虚拟对象用于用户818选择作为输入,或者用于照明选择***806包括作为输入。
还如图8所示,增强现实***804被通信地耦合到增强现实数据库808。在一个或多个实施例中,增强现实***804访问并查询来自增强现实数据库808的与来自照明估计***806的请求相关联的数据。例如,增强现实***804可以访问数字场景、虚拟对象、数字场景内的指定位置或照明估计***806的位置特定照明参数。如图8所示,增强现实数据库808与(多个)服务器802分开维护。备选地,在一个或多个实施例中,增强现实***804和增强现实数据库808包括(多个)服务器802内的单个组合***或子***。
现在转到图9,该图提供了关于照明估计***806的组件和特征的附加细节。特别地,图9图示了实现增强现实***804和照明估计***806的计算设备900。在一些实施例中,计算设备900包括一个或多个服务器(例如,(多个)服务器802)。在其他实施例中,计算设备900包括一个或多个客户端设备(例如,客户端设备814)。
如图9所示,计算设备900包括增强现实***804。在一些实施例中,增强现实***804使用其组件来提供用于在增强现实应用816的用户界面中生成数字场景或其他基于增强现实的图像或修改现有数字场景或其他基于增强现实的图像的工具。附加地,在一些情况下,增强现实***804有助于基于增强现实的图像中的数字内容的生成、修改、共享、访问、存储和/或删除。
如图9进一步所示,计算设备900包括照明估计***806。照明估计***806包括但不限于数字场景管理器902、虚拟对象管理器904、神经网络训练器906、神经网络操作器908、增强现实绘制器910和/或存储管理器912。以下各段依次描述了这些组件中的每个组件。
如刚刚提到的,照明估计***806包括数字场景管理器902。数字场景管理器902接收有关数字场景的输入,标识和分析数字场景。例如,在一些实施例中,数字场景管理器902接收标识数字场景的用户输入,并从增强现实应用中呈现数字场景。附加地,在一些实施例中,数字场景管理器902标识多个数字场景以用于作为图像序列(例如,增强现实序列)的一部分的呈现。
如图9进一步所示,虚拟对象管理器904接收关于虚拟对象的输入,标识和分析虚拟对象。例如,在一些实施例中,虚拟对象管理器904接收标识虚拟对象并请求照明估计***110在数字场景内的指定位置处绘制虚拟对象的用户输入。附加地,在一些实施例中,虚拟对象管理器904提供用于虚拟对象的可选选项,诸如在增强现实应用的用户界面中示出的可选选项。
如图9进一步所示,神经网络训练器906训练局部照明估计神经网络918。例如,在一些实施例中,神经网络训练器906使用局部照明估计神经网络918的第一组网络层从数字训练场景中提取全局特征训练图。附加地,在一些实施例中,神经网络训练器906生成用于数字训练场景内的指定位置的局部位置训练指示符,并基于用于指定位置的局部位置训练指示符来修改全局特征训练图。根据经修改的全局特征训练图,神经网络训练器906(i)使用局部照明估计神经网络918的第二组网络层为指定位置生成位置特定照明训练参数,并且(ii)基于针对数字训练场景内指定位置的位置特定照明训练参数与基础真实照明参数的比较,修改局部照明估计神经网络的网络参数。
在一些这样的实施例中,神经网络训练器906分别训练如图4A和图5A所示的局部照明估计神经网络918。在一些实施例中,神经网络训练器906还与存储管理器912通信,以应用和/或访问来自数字场景914的数字训练场景、来自位置特定照明参数920的基础真实照明参数和/或局部照明估计神经网络918。
如图9进一步所示,神经网络操作器908应用局部照明估计神经网络918的训练版本。例如,在一些实施例中,神经网络操作器908使用局部照明估计神经网络918的第一组网络层从数字场景提取全局特征图。神经网络操作器908还生成用于指定位置的局部位置指示符,并基于局部位置指示符来修改数字场景的全局特征图。基于经修改的全局特征图,神经网络操作器908还使用局部照明估计神经网络的第二组层为指定位置生成位置特定照明参数。在一些这样的实施例中,神经网络操作器908分别应用如图4B和图5B所示的局部照明估计神经网络918。在一些实施例中,神经网络操作器908还与存储管理器912通信,以应用和/或访问来自数字场景914的数字场景、来自虚拟对象916的虚拟对象、来自位置特定照明参数920的位置特定照明参数和/或局部照明估计神经网络918。
除了神经网络操作器908,在一些实施例中,照明估计***806还包括增强现实绘制器910。增强现实绘制器910绘制包括虚拟对象的经修改的数字场景。例如,在一些实施例中,基于在数字场景内指定位置绘制虚拟对象的请求,增强现实绘制器910绘制经修改的数字场景,该数字场景包括根据来自神经网络操作器908的位置特定照明参数照亮的在指定位置处的虚拟对象。
在一个或多个实施例中,照明估计***806的每个组件使用任何适当的通信技术彼此通信。附加地,照明估计***806的组件可以与包括上述一个或多个客户端设备的一个或多个其他设备通信。尽管在图9中示出照明估计***806的组件是分离的,但是任何子组件可以被组合成更少的组件,诸如被组合成单个组件,或者可以被划分成更多的组件,以用于特定的实现。此外,尽管结合照明估计***806描述了图9的组件,但是用于结合本文描述的照明估计***806执行操作的至少一些组件可以在环境800内的其他设备上实现。
照明估计***806的每个组件902-920可以包括软件、硬件或两者。例如,组件902-920可以包括存储在计算机可读存储介质上的一个或多个指令,并且该一个或多个指令由一个或多个计算设备(诸如客户端设备或服务器设备)的处理器可执行。当由一个或多个处理器执行时,照明估计***806的计算机可执行指令可以使(多个)计算设备执行本文所述的方法。备选地,组件902-920可以包括硬件,诸如执行特定功能或功能组的专用处理设备。备选地,照明估计***806的组件902-920可以包括计算机可执行指令和硬件的组合。
此外,照明估计***806的组件902-920可以例如被实现为一个或多个操作***、作为一个或多个独立应用、作为应用的一个或多个生成器、作为一个或多个插件、作为一个或多个库函数或其他应用可以调用的函数、和/或作为云计算模型。因此,组件902-920可以被实现为独立应用,诸如桌面或移动应用。此外,组件902-920可以被实现为托管在远程服务器上的一个或多个基于web的应用。组件902-920也可以在一组移动设备应用或“app”中实现。为了说明,组件902-920可以在软件应用中实现,包括但不限于ADOBE ILLUSTRATOR,ADOBE EXPERIENCE DESIGN,ADOBE CREATIVE CLOUD,ADOBE PHOTOSHOP,PROJECT AERO或ADOBE LIGHTROOM。“ADOBE”,“ILLUSTRATOR”,“EXPERIENCE DESIGN”,“CREATIVE CLOUD”,“PHOTOSHOP”,“PROJECT AERO”和“LIGHTROOM”是奥多比(Adobe)公司在美国和/或其他国家的注册商标或商标。
现在转到图10,该图图示了根据一个或多个实施例的训练局部照明估计神经网络以生成位置特定照明参数的一系列动作1000的流程图。尽管图10图示了根据一个实施例的动作,但是备选实施例可以省略、添加、重新排序和/或修改图10所示的任何动作。图10的动作可以作为方法的一部分被执行。备选地,非瞬态计算机可读存储介质可以包括指令,当由一个或多个处理器执行时,该指令使计算设备执行图10中描绘的动作。在其他实施例中,***可以执行图10的动作。
如图10所示,动作1000包括动作1010,动作1010利用局部照明估计神经网络从数字训练场景中提取全局特征训练图。特别地,在一些实施例中,动作1010包括利用局部照明估计神经网络的第一组网络层从数字训练场景的一个数字训练场景中提取全局特征训练图。在一些实施例中,数字训练场景包括现实场景的三维数字模型或数字视点图像。
如图10进一步所示,动作1000包括生成针对数字训练场景内的指定位置的局部位置训练指示符的动作1020。例如,在某些实施例中,生成局部位置训练指示符包括标识表示数字训练场景内的指定位置的局部位置训练坐标。相比之下,在一些实现中,生成局部位置训练指示符包括:从与局部照明估计神经网络的第一层相对应的第一特征训练图中选择与指定位置相对应的第一训练像素;以及从与局部照明估计神经网络的第二层相对应的第二特征训练图中选择与指定位置相对应的第二训练像素。
如图10进一步所示,动作1000包括动作1030,该动作1030基于局部位置训练指示符来修改数字训练场景的全局特征训练图。例如,在某些实现中,动作1030包括通过以下方式修改全局特征训练图以生成经修改的全局特征训练图:从局部位置训练坐标生成掩蔽特征训练图;将全局特征训练图和针对局部位置训练坐标的掩蔽特征训练图相乘,以生成掩蔽密集特征训练图;以及将全局特征训练图和掩蔽密集特征训练图拼接起来,以形成组合特征训练图。
如图10中进一步所示,动作1000包括动作1040,该动作1040基于经修改的全局特征训练图,利用局部照明估计神经网络来生成针对指定位置的位置特定照明训练参数。特别地,在某些实现中,动作1040包括基于经修改的全局特征训练图,利用局部照明估计神经网络的第二组网络层,来生成针对指定位置的位置特定照明训练参数。在一些实施例中,局部照明估计神经网络的第一组网络层包括密集连接的卷积网络的较低层,而局部照明估计神经网络的第二组网络层包括卷积层和完全连接层。
如上所述,在某些实现中,生成针对指定位置的位置特定照明训练参数包括生成指示特定位置处的照明条件的位置特定球谐训练系数。在一些这样的实施例中,生成位置特定球谐训练系数包括为每个颜色通道生成5次的位置特定球谐训练系数。
如图10进一步所示,动作1000包括动作1050,其基于位置特定训练参数与基础真实照明参数的比较来修改局部照明估计神经网络的网络参数。特别地,在一些实施例中,动作1050包括基于位置特定照明训练参数与数字训练场景内的指定位置的一组基础真实照明参数的比较,来修改局部照明估计神经网络的网络参数。
除了动作1010-1050,在一些情况下,动作1000还包括通过确定指示指定位置处的照明条件的一组基础真实位置特定球谐系数来确定针对指定位置的一组基础真实照明参数。附加地,在一个或多个实施例中,动作1000还包括通过将组合的特征训练图提供给第二组网络层来生成位置特定照明训练参数。
如上所述,在一些实施例中,动作1000还包括通过确定指示指定位置处的照明条件的一组基础真实位置特定球谐系数来确定针对指定位置的一组基础真实照明参数。在一些这样的实现中,确定该组基础真实位置特定球谐系数包括:标识数字训练场景内的位置;为数字训练场景中的每个位置生成立方图;以及将数字训练场景中每个位置的立方图投影到该组基础真实位置特定球谐系数。
现在转到图11,该图图示了根据一个或多个实施例的应用经训练的局部照明估计神经网络以生成位置特定照明参数的一系列动作1100的流程图。尽管图11图示了根据一个实施例的动作,但是备选实施例可以省略、添加、重新排序和/或修改图11所示的任何动作。图11的动作可以作为方法的一部分被执行。备选地,非瞬态计算机可读存储介质可以包括指令,当由一个或多个处理器执行时,这些指令使计算设备执行图11中描绘的动作。在其他实施例中,***可以执行图11的动作。
如图11所示,动作1100包括标识在数字场景内的指定位置绘制虚拟对象的请求的动作1110。例如,在一些实施例中,标识请求包括从移动设备接收在指定位置绘制虚拟对象的请求。
如图11进一步所示,动作1100包括利用局部照明估计神经网络从数字场景中提取全局特征图的动作1120。特别地,在一些实施例中,动作1120包括利用局部照明估计神经网络的第一组网络层从数字场景提取全局特征图。
如图11中进一步所示,动作1100包括为数字场景内的指定位置生成局部位置指示符的动作1130。特别地,在一些实施例中,动作1130包括通过标识表示数字场景内的指定位置的局部位置坐标来生成针对指定位置的局部位置指示符。
相比之下,在某些实现中,动作1130包括通过从与第一组网络层的第一层相对应的第一特征图中选择与指定位置相对应的第一像素来生成针对指定位置的局部位置指示符;以及从与第一组网络层的第二层相对应的第二特征图中选择与指定位置相对应的第二像素。
如图11进一步所示,动作1100包括动作1140,该动作1140基于针对指定位置的局部位置指示符来修改数字场景的全局特征图。特别地,在一些实施例中,动作1140包括通过以下步骤来修改全局特征图以生成经修改的全局特征图:组合与指定位置相对应的第一像素和第二像素的特征以生成超列图;以及拼接全局特征图和超列图,以形成组合特征图。
如图11中进一步所示,动作1100包括动作1150,该动作1150基于经修改的全局特征图,利用局部照明估计神经网络来生成针对指定位置的位置特定照明参数。特别地,在一些实施例中,动作1140包括:基于经修改的全局特征图,利用局部照明估计神经网络的第二组网络层来生成针对指定位置的位置特定照明参数。在一些实施例中,局部照明估计神经网络的第一组网络层包括紧密连接的卷积网络的较低层,并且局部照明估计神经网络的第二组网络层包括卷积层和完全连接层。
作为动作1150的示例,在一些实施例中,生成针对指定位置的位置特定照明参数包括生成指示位置特定处的对象的照明条件的位置特定球谐系数。作为另一示例,在某些实现中,生成位置特定照明参数包括将组合特征图提供给第二组网络层。
如图11进一步所示,动作1100包括动作1160,该动作1160绘制包括虚拟对象的经修改的数字场景,该虚拟对象在指定位置处根据位置特定照明参数被照亮。特别地,在一些实施例中,动作1160包括基于该请求,绘制包括虚拟对象的经修改的数字场景,该虚拟对象在指定位置处根据位置特定照明参数被照亮。例如,在一些情况下,绘制经修改的数字场景包括:基于接收到来自移动设备的请求、在移动设备的图形用户界面内绘制包括虚拟对象的经修改的数字场景,该虚拟对象在指定位置处根据位置特定照明参数被照亮。
除了动作1110-1160之外,在某些实现中,动作1100还包括标识位置调整请求,以将虚拟对象从数字场景内的指定位置移动到数字场景内的新指定位置;为数字场景内的新指定位置生成新局部位置指示符;基于针对新指定位置的新本地位置指示符来修改数字场景的全局特征图,以形成新经修改的全局特征图;基于新经修改的全局特征图,利用第二组网络层为新指定位置生成新位置特定照明参数;以及基于位置调整请求,绘制包括虚拟对象的经调整的数字场景,该虚拟对象在新指定位置处根据新位置特定照明参数被照亮。
如以上所建议的,在一个或多个实施例中,动作1100还包括:标识视角调整请求以从不同的视点绘制数字场景;以及基于视角调整请求,从不同的视点绘制经修改的数字场景,经修改的数字场景包括在指定位置根据位置特定照明参数被照亮的虚拟对象。
此外,在一些情况下,动作1100还包括从不同的视点标识视角调整请求以在数字场景内的指定位置处绘制虚拟对象;从不同的视点为数字场景内的指定位置生成新局部位置指示符;基于从不同视点针对指定位置的新局部位置指示符来修改数字场景的全局特征图,以形成新经修改的全局特征图;基于新经修改的全局特征图,利用第二组网络层从不同的视点生成针对指定位置的新位置特定照明参数;以及基于照明条件的调整,绘制经调整的数字场景,该场景包括根据新位置特定照明参数在指定位置被照亮的虚拟对象。
另外,在某些实现中,动作1100还包括:标识对于数字场景内的指定位置的照明条件的调整;利用局部照明估计神经网络的第一组网络层从数字场景中提取新全局特征图;基于指定位置的局部位置指示符修改数字场景的新全局特征图;基于新经修改的全局特征图,利用第二组网络层为指定位置生成新位置特定照明参数;以及基于照明条件的调整,绘制经调整的数字场景,该场景包括根据新位置特定照明参数在指定位置被照亮的虚拟对象。
除上述动作外(或作为备选),在一些实施例中,动作1000(或动作1100)包括用于利用针对数字训练场景的全局特征训练图和针对数字训练场景内的指定位置的局部位置训练指示符来训练局部照明估计神经网络的步骤。例如,参考图4A或图5A描述的算法和动作可以包括用于执行步骤的对应动作,该步骤用于利用针对数字训练场景的全局特征训练图和针对数字训练场景内的指定位置的局部位置训练指示符来训练局部照明估计神经网络。
附加地或备选地,在一些实施例中,动作1000(或动作1100)包括用于通过利用经训练的局部照明估计神经网络来生成针对指定位置的位置特定照明参数的步骤。例如,参考图4B或图5B描述的算法和动作可以包括对应的动作,该对应的动作用于执行以下步骤:通过利用经训练的局部照明估计神经网络来生成针对指定位置的位置特定照明参数。
本公开的实施例可以包括或利用包括计算机硬件的专用或通用计算机,诸如例如,一个或多个处理器和***存储器,如下面更详细地讨论的。本公开范围内的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。特别地,本文描述的一个或多个过程可以至少部分地被实现为在非瞬态计算机可读介质中体现的指令,并且该指令由一个或多个计算设备(例如,本文所述的任何媒体内容访问设备)可执行。通常,处理器(例如,微处理器)从非瞬态计算机可读介质(例如,存储器等)接收指令,并执行那些指令,从而执行一个或多个过程,包括一个或多个本文所述的过程。
计算机可读介质可以是可以由通用或专用计算机***访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非瞬态计算机可读存储介质(设备)。承载计算机可执行指令的计算机可读介质是传输介质。因此,通过示例而非限制,本公开的实施例可以包括至少两种截然不同类型的计算机可读介质:非瞬态计算机可读存储介质(设备)和传输介质。
非瞬态计算机可读存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(“SSD”)(例如,基于RAM)、闪存、相变存储器(“PCM”)、其他类型的存储器、其他光盘存储装置、磁盘存储装置或其他磁性存储设备、或可以用于存储计算机可执行指令或数据结构形式的期望程序代码部件的任何其他介质,该期望程序代码部件可以由通用或专用计算机访问。
“网络”被定义为使得能够在计算机***和/或生成器和/或其他电子设备之间运输电子数据的一个或多个数据链路。当信息通过网络或其他通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,计算机会将该连接正确地视为传输介质。传输介质可以包括网络和/或数据链路,该网络和/或数据链路可以被用来承载计算机可执行指令或数据结构形式的期望的程序代码部件,并且期望的程序代码部件可以由通用或专用计算机访问。上述的组合也应被包括在计算机可读介质的范围内。
此外,在达到各种计算机***组件时,可以将计算机可执行指令或数据结构形式的程序代码部件从传输介质自动传输到非瞬态计算机可读存储介质(设备)(反之亦然)。例如,可以将通过网络或数据链路接收的计算机可执行指令或数据结构缓冲在网络接口生成器(例如“NIC”)内的RAM中,然后最终传输到计算机***RAM和/或计算机***中易失性较小的计算机存储介质(设备)。因此,应当理解,非瞬态计算机可读存储介质(设备)可以被包括在也(或者甚至主要地)利用传输介质的计算机***组件中。
计算机可执行指令包括例如指令和数据,这些指令和数据在处理器上被执行时使通用计算机、专用计算机或专用处理设备执行特定功能或一组功能。在一个或多个实施例中,在通用计算机上执行计算机可执行指令,以将通用计算机转变成实现本公开的元件的专用计算机。计算机可执行指令可以是例如二进制文件、中间格式指令(诸如汇编语言)、或甚至源代码。尽管已经用特定于结构营销特征和/或方法动作的语言描述了主题内容,但是应当理解,所附权利要求中限定的主题内容不必限于上面描述的营销特征或动作。而是,所描述的营销特征和动作被公开为实现权利要求的示例形式。
本领域技术人员将理解,可以在具有许多类型的计算机***配置的网络计算环境中实践本公开,计算机***配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器***、基于微处理器的或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、平板电脑、寻呼机、路由器、交换机等。还可以在分布式***环境中实践本公开,在分布式***环境中,通过网络链接(通过硬连线数据链路、无线数据链路、或通过硬连线和无线数据链路的组合)的本地和远程计算机***均执行任务。在分布式***环境中,程序生成器可以位于本地和远程存储器设备中。
本公开的实施例还可以在云计算环境中实现。在本说明书中,“云计算”被定义为一种订阅模型,该订阅模型用于启用对可配置计算资源的共享池的按需网络访问。例如,云计算可以在市场中被采用,以提供对可配置计算资源共享池的普遍且方便的按需访问。可以经由虚拟化快速提供可配置计算资源的共享池,并以较少的管理工作量或服务提供者交互来释放它,然后进行相应的扩展。
云计算订阅模型可以由各种特性组成,诸如例如按需自助服务、广泛的网络访问、资源池化、快速弹性、测量服务等等。云计算订阅模型还可以公开各种服务订阅模型,诸如例如软件即服务(“SaaS”)、web服务、平台即服务(“PaaS”)和基础架构即服务(“IaaS”)。还可以使用不同的部署订阅模型(诸如私有云、社区云、公共云、混合云等)来部署云计算订阅模型。在本说明书和权利要求书中,“云计算环境”是其中采用云计算的环境。
图12图示了可以被配置为执行上述过程中的一个或多个的示例性计算设备1200的框图。如图12所示,计算设备1200可以包括处理器1202、存储器1204、存储设备1206、I/O接口1208和通信接口1210,它们可以通过通信基础设施1212通信地耦合。在某些实施例中,与图12所示的组件相比,计算设备1200可以包括更少或更多的组件。现在将更加详细地描述图12所示的计算设备1200的组件。
在一个或多个实施例中,处理器1202包括用于执行指令的硬件,诸如构成计算机程序的那些指令。作为示例而非限制,为了执行用于数字化现实世界对象的指令,处理器1202可以从内部寄存器、内部高速缓冲存储器,存储器1204或存储设备1206中取回(或获取)指令,并对其进行解码和执行。存储器1204可以是用于存储数据、元数据和用于由(多个)处理器执行的程序的易失性或非易失性存储器。存储设备1206包括诸如硬盘、闪存磁盘驱动器或其他数字存储设备之类的存储装置,该存储装置用于存储与对象数字化过程(例如,数字扫描、数字模型)有关的数据或指令。
I/O接口1208允许用户向计算设备1200提供输入,从计算设备1200接收输出,以及以其他方式将数据传输到计算设备1200以及从计算设备1200接收数据。I/O接口1208可以包括鼠标、小键盘或键盘、触摸屏幕、相机、光学扫描仪、网络接口、调制解调器、其他已知的I/O设备或此类I/O接口的组合。I/O接口1208可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示驱动器)、一个或多个音频扬声器和一个或多个音频驱动器。在某些实施例中,I/O接口1208被配置为将图形数据提供给显示器以用于呈现给用户。图形数据可以代表一个或多个图形用户界面和/或可以服务于特定实现的任何其他图形内容。
通信接口1210可以包括硬件、软件或两者。在任何情况下,通信接口1210可以提供一个或多个接口,以用于计算设备1200与一个或多个其他计算设备或网络之间的通信(诸如例如,基于分组的通信)。作为示例而非限制,通信接口1210可以包括用于与以太网或其他基于有线的网络通信的网络接口控制器(“NIC”)或网络适配器,或者用于与无线网络(诸如WI-FI)通信的无线NIC(“WNIC”)或无线适配器。
另外,通信接口1210可以促进与各种类型的有线或无线网络的通信。通信接口1210还可以促进使用各种通信协议的通信。通信基础设施1212还可以包括将计算设备1200的组件彼此耦合的硬件、软件或两者。例如,通信接口1210可以使用一个或多个网络和/或协议来使得由特定基础设施连接的多个计算设备能够彼此通信,以执行本文描述的数字化过程的一个或多个方面。为了说明,图像压缩过程可以允许多个设备(例如,用于执行大量图像的图像处理任务的服务器设备)使用各种通信网络和协议来交换信息,该通信网络和协议用于交换关于多个图像的所选工作流和图像数据的信息。
在前述说明书中,已经参考本公开的特定示例性实施例描述了本公开。参考这里讨论的细节描述了本公开的各种实施例和方面,并且附图图示了各种实施例。上面的描述和附图是本公开的说明,并且不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各种实施例的透彻理解。
在不脱离本发明的精神或本质特征的情况下,本发明可以以其他具体形式来体现。所描述的实施例在所有方面仅应被认为是说明性的而非限制性的。例如,本文描述的方法可以用更少或更多的步骤/动作来执行,或者可以以不同的顺序来执行步骤/动作。另外,本文描述的步骤/动作可以彼此并行或与相同或相似步骤/动作的不同实例并行地重复或执行。因此,本申请的范围由所附权利要求书而不是前述描述来指示。落在权利要求的等同含义和范围内的所有改变均应包含在其范围之内。
Claims (20)
1.一种在其上存储指令的非瞬态计算机可读介质,所述指令在由至少一个处理器执行时使计算机***:
标识在数字场景内的指定位置处绘制虚拟对象的请求;
利用局部照明估计神经网络的第一组网络层从所述数字场景中提取全局特征图;
针对所述数字场景内的所述指定位置生成局部位置指示符;
基于针对所述指定位置的所述局部位置指示符,修改针对所述数字场景的所述全局特征图;
基于经修改的所述全局特征图,利用所述局部照明估计神经网络的第二组网络层,针对所述指定位置生成位置特定照明参数;以及
基于所述请求,绘制经修改的数字场景,所述经修改的数字场景包括在所述指定位置处根据所述位置特定照明参数照亮的所述虚拟对象。
2.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算机***:通过生成指示针对所述指定位置处的对象的照明条件的位置特定球谐系数,来生成针对所述指定位置的所述位置特定照明参数。
3.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算机***:
标识将所述虚拟对象从所述数字场景内的所述指定位置移动到所述数字场景内的新指定位置的位置调整请求;
针对所述数字场景内的所述新指定位置生成新局部位置指示符;
基于针对所述新指定位置的所述新局部位置指示符修改针对所述数字场景的所述全局特征图,以形成新经修改的全局特征图;
基于所述新经修改的全局特征图,利用所述第二组网络层针对所述新指定位置生成新位置特定照明参数;以及
基于所述位置调整请求,绘制包括所述虚拟对象的经调整的数字场景,所述虚拟对象在所述新指定位置处根据所述新位置特定照明参数被照亮。
4.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算机***:
标识从不同视点绘制所述数字场景的视角调整请求;以及
基于所述视角调整请求,从所述不同视点绘制所述经修改的数字场景,所述数字场景包括在所述指定位置处根据所述位置特定照明参数被照亮的所述虚拟对象。
5.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算机***:通过标识表示所述数字场景内的所述指定位置的局部位置坐标,针对所述指定位置生成所述局部位置指示符。
6.根据权利要求5所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算机***:
修改所述全局特征图,以通过以下方式生成经修改的所述全局特征图:
从所述局部位置坐标生成掩蔽特征图;
将所述全局特征图和针对所述局部位置坐标的所述掩蔽特征图相乘,以生成掩蔽密集特征图;以及
拼接所述全局特征图和所述掩蔽密集特征图,以形成组合特征图;以及
通过将所述组合特征图提供给所述第二组网络层,生成所述位置特定照明参数。
7.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算机***:
标识针对所述数字场景内的所述指定位置的照明条件的调整;
利用所述局部照明估计神经网络的所述第一组网络层从所述数字场景中提取新全局特征图;
基于针对所述指定位置的所述局部位置指示符,针对所述数字场景修改所述新全局特征图;
基于新经修改的全局特征图,利用所述第二组网络层针对所述指定位置生成新位置特定照明参数;以及
基于所述照明条件的调整,绘制经调整的数字场景,所述经调整的数字场景包括在所述指定位置处根据所述新位置特定照明参数被照亮的所述虚拟对象。
8.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算机***:
标识从不同视点绘制所述数字场景内的所述指定位置处的所述虚拟对象的视角调整请求;
从所述不同视点针对所述数字场景内的所述指定位置生成新局部位置指示符;
基于从所述不同视点针对所述指定位置的所述新局部位置指示符,修改针对所述数字场景的所述全局特征图,以形成新经修改的全局特征图;
基于所述新经修改的全局特征图,利用所述第二组网络层从所述不同视点生成针对所述指定位置的新位置特定照明参数;以及
基于所述视角调整请求,绘制经调整的数字场景,所述经调整的数字场景包括在所述指定位置处根据所述新位置特定照明参数被照亮的所述虚拟对象。
9.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算机***:
通过以下方式生成针对所述指定位置的所述局部位置指示符:
从与所述第一组网络层的第一层相对应的第一特征图中选择与所述指定位置相对应的第一像素;以及
从与所述第一组网络层的第二层相对应的第二特征图中选择与所述指定位置相对应的第二像素;
修改所述全局特征图,以通过以下方式生成经修改的所述全局特征图:
组合针对与所述指定位置相对应的所述第一像素和所述第二像素的特征,以生成超列图;以及
拼接所述全局特征图和所述超列图以形成组合特征图;以及通过将所述组合特征图提供给所述第二组网络层,生成所述位置特定照明参数。
10.一种***,包括:
至少一个处理器;
至少一种非瞬态计算机可读介质,其包括各数字训练场景和针对所述各数字训练场景内的各位置的基础真实照明参数;
局部照明估计神经网络;以及
指令,所述指令在由至少一个处理器执行时使所述***通过以下方式训练所述局部照明估计神经网络:
利用所述局部照明估计神经网络的第一组网络层从所述各数字训练场景的数字训练场景中提取全局特征训练图;
针对所述数字训练场景内的指定位置生成局部位置训练指示符;
基于针对所述指定位置的所述局部位置训练指示符,修改针对所述数字训练场景的所述全局特征训练图;
基于经修改的所述全局特征训练图,利用所述局部照明估计神经网络的第二组网络层,针对所述指定位置生成位置特定照明训练参数;以及
基于针对所述数字训练场景内的所述指定位置的所述位置特定照明训练参数与一组基础真实照明参数的比较,修改所述局部照明估计神经网络的网络参数。
11.根据权利要求10所述的***,其中所述数字训练场景包括现实场景的三维数字模型或数字视点图像。
12.根据权利要求10所述的***,还包括指令,所述指令在由所述至少一个处理器执行时使所述***:
通过生成指示所述指定位置处的照明条件的位置特定球谐训练系数,来生成针对所述指定位置的所述位置特定照明训练参数;以及
通过确定指示所述指定位置处的照明条件的一组基础真实位置特定球谐系数,来确定针对所述指定位置的所述一组基础真实照明参数。
13.根据权利要求12所述的***,还包括指令,所述指令在由所述至少一个处理器执行时使所述***:针对每个颜色通道生成次数为5的所述位置特定球谐训练系数。
14.根据权利要求12所述的***,还包括指令,所述指令在由所述至少一个处理器执行时使所述***:通过以下方式确定所述一组基础真实位置特定球谐系数:
标识所述数字训练场景内的各位置;
针对所述数字训练场景内的每个位置生成立方图;以及
将针对所述数字训练场景内的每个位置的所述立方图投影到所述一组基础真实位置特定球谐系数。
15.根据权利要求10所述的***,还包括指令,所述指令在由所述至少一个处理器执行时使所述***:通过标识表示所述数字训练场景内的所述指定位置的局部位置训练坐标,来生成针对所述指定位置的所述局部位置训练指示符。
16.根据权利要求15所述的***,还包括指令,所述指令在由所述至少一个处理器执行时使所述***:
修改所述全局特征训练图,以通过以下方式生成经修改的所述全局特征训练图:
从所述局部位置训练坐标生成掩蔽特征训练图;
将所述全局特征训练图和针对所述局部位置训练坐标的所述掩蔽特征训练图相乘,以生成掩蔽密集特征训练图;以及
拼接所述全局特征训练图和所述掩蔽密集特征训练图,以形成组合特征训练图;以及
通过将所述组合特征训练图提供给所述第二组网络层,生成所述位置特定照明训练参数。
17.根据权利要求10所述的***,还包括指令,所述指令在由所述至少一个处理器执行时使所述***:通过以下方式生成针对所述指定位置的所述局部位置训练指示符:
从与所述局部照明估计神经网络的第一层相对应的第一特征训练图中选择与所述指定位置相对应的第一训练像素;以及
从与所述局部照明估计神经网络的第二层相对应的第二特征训练图中选择与所述指定位置相对应的第二训练像素。
18.根据权利要求10所述的***,其中所述局部照明估计神经网络的所述第一组网络层包括紧密连接的卷积网络的较低层,并且所述局部照明估计神经网络的所述第二组网络层包括卷积层和完全连接层。
19.一种在用于绘制增强现实场景的数字媒体环境中用于估计针对虚拟对象的照明条件的计算机实现的方法,包括:
访问各数字训练场景和针对所述各数字训练场景内的各位置的基础真实照明参数;
执行用于利用针对所述各数字训练场景的全局特征训练图和针对所述各数字训练场景内的各指定位置的局部位置训练指示符来训练局部照明估计神经网络的步骤;
标识在数字场景内的指定位置处绘制虚拟对象的请求;
执行用于通过利用经训练的所述局部照明估计神经网络来生成针对所述指定位置的位置特定照明参数的步骤;以及
基于所述请求,绘制经修改的数字场景,所述经修改的数字场景包括在所述指定位置处根据所述位置特定照明参数被照亮的所述虚拟对象。
20.根据权利要求19所述的计算机实现的方法,还包括:
从移动设备接收在所述指定位置处绘制所述虚拟对象的所述请求;以及
基于从所述移动设备接收到所述请求,在所述移动设备的图形用户界面中绘制包括在所述指定位置处根据所述位置特定照明参数被照亮的所述虚拟对象的所述经修改的数字场景。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/360,901 | 2019-03-21 | ||
US16/360,901 US10692277B1 (en) | 2019-03-21 | 2019-03-21 | Dynamically estimating lighting parameters for positions within augmented-reality scenes using a neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111723902A true CN111723902A (zh) | 2020-09-29 |
Family
ID=69171827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911159261.7A Pending CN111723902A (zh) | 2019-03-21 | 2019-11-22 | 使用神经网络动态估计增强现实场景中位置的照明参数 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10692277B1 (zh) |
CN (1) | CN111723902A (zh) |
AU (1) | AU2019279917B2 (zh) |
DE (1) | DE102019008168A1 (zh) |
GB (1) | GB2582407B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022100419A1 (zh) * | 2020-11-10 | 2022-05-19 | 华为技术有限公司 | 一种图像处理方法及相关设备 |
CN114979457A (zh) * | 2021-02-26 | 2022-08-30 | 华为技术有限公司 | 一种图像处理方法及相关装置 |
CN117750583A (zh) * | 2023-09-22 | 2024-03-22 | 中央美术学院 | 一种基于vr迷宫的数字控灯*** |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3671660A1 (en) * | 2018-12-20 | 2020-06-24 | Dassault Systèmes | Designing a 3d modeled object via user-interaction |
CN112183551A (zh) * | 2019-07-02 | 2021-01-05 | 佳能株式会社 | 光照颜色预测方法、图像处理方法、装置及存储介质 |
US11538216B2 (en) * | 2019-09-03 | 2022-12-27 | Adobe Inc. | Dynamically estimating light-source-specific parameters for digital images using a neural network |
US10957026B1 (en) * | 2019-09-09 | 2021-03-23 | Adobe Inc. | Learning from estimated high-dynamic range all weather lighting parameters |
CN111986106B (zh) * | 2020-07-30 | 2023-10-13 | 南京大学 | 一种基于神经网络的高动态图像重建方法 |
CN112040596B (zh) * | 2020-08-18 | 2022-11-08 | 张雪媛 | 虚拟空间灯光控制方法、计算机可读存储介质和*** |
CN112422945A (zh) * | 2020-09-01 | 2021-02-26 | 华为技术有限公司 | 图像处理方法、移动终端及存储介质 |
US11830129B2 (en) | 2020-09-30 | 2023-11-28 | Snap Inc. | Object relighting using neural networks |
WO2022189702A2 (en) * | 2021-03-10 | 2022-09-15 | Nokia Technologies Oy | Dynamic re-lighting of volumetric video |
GB2605169B (en) * | 2021-03-24 | 2023-08-02 | Sony Interactive Entertainment Inc | Image rendering method and apparatus |
GB2605156B (en) | 2021-03-24 | 2023-11-08 | Sony Interactive Entertainment Inc | Image rendering method and apparatus |
GB2605158B (en) | 2021-03-24 | 2023-05-17 | Sony Interactive Entertainment Inc | Image rendering method and apparatus |
US11900516B2 (en) * | 2021-04-02 | 2024-02-13 | Carnegie Mellon University | System and method for pose tolerant feature extraction using generated pose-altered images |
WO2023056559A1 (en) * | 2021-10-06 | 2023-04-13 | Depix Technologies Inc. | Systems and methods for compositing a virtual object in a digital image |
KR20230100205A (ko) * | 2021-12-28 | 2023-07-05 | 삼성전자주식회사 | 영상 처리 방법 및 장치 |
WO2023171293A1 (ja) * | 2022-03-10 | 2023-09-14 | 住友重機械工業株式会社 | 画像検査装置、機械学習装置、画像検査方法、画像検査プログラム |
CN114842121B (zh) * | 2022-06-30 | 2022-09-09 | 北京百度网讯科技有限公司 | 贴图生成模型训练和贴图生成方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015161307A1 (en) * | 2014-04-18 | 2015-10-22 | Magic Leap, Inc. | Systems and methods for augmented and virtual reality |
US20180260975A1 (en) * | 2017-03-13 | 2018-09-13 | Adobe Systems Incorporated | Illumination estimation from a single image |
US20180359416A1 (en) * | 2017-06-13 | 2018-12-13 | Adobe Systems Incorporated | Extrapolating lighting conditions from a single digital image |
CN109166170A (zh) * | 2018-08-21 | 2019-01-08 | 百度在线网络技术(北京)有限公司 | 用于渲染增强现实场景的方法和装置 |
CN109389667A (zh) * | 2018-08-23 | 2019-02-26 | 北京大学 | 一种基于深度学习的高效全局光照明绘制方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080221734A1 (en) * | 2005-01-24 | 2008-09-11 | National University Corporation Yokohama National University | Categorical Color Perception System |
US20140244558A1 (en) * | 2011-06-20 | 2014-08-28 | Axal Ta Coating Systems Ip Co., Llc | Method for matching sparkle appearance of coatings |
US20180012411A1 (en) * | 2016-07-11 | 2018-01-11 | Gravity Jack, Inc. | Augmented Reality Methods and Devices |
CN109427080A (zh) * | 2017-08-31 | 2019-03-05 | 爱唯秀股份有限公司 | 快速生成大量复杂光源人脸图像的方法 |
-
2019
- 2019-03-21 US US16/360,901 patent/US10692277B1/en active Active
- 2019-11-22 CN CN201911159261.7A patent/CN111723902A/zh active Pending
- 2019-11-25 DE DE102019008168.4A patent/DE102019008168A1/de active Pending
- 2019-12-09 AU AU2019279917A patent/AU2019279917B2/en active Active
- 2019-12-09 GB GB1917995.1A patent/GB2582407B/en active Active
-
2020
- 2020-05-18 US US16/877,227 patent/US11158117B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015161307A1 (en) * | 2014-04-18 | 2015-10-22 | Magic Leap, Inc. | Systems and methods for augmented and virtual reality |
US20180260975A1 (en) * | 2017-03-13 | 2018-09-13 | Adobe Systems Incorporated | Illumination estimation from a single image |
US20180359416A1 (en) * | 2017-06-13 | 2018-12-13 | Adobe Systems Incorporated | Extrapolating lighting conditions from a single digital image |
CN109166170A (zh) * | 2018-08-21 | 2019-01-08 | 百度在线网络技术(北京)有限公司 | 用于渲染增强现实场景的方法和装置 |
CN109389667A (zh) * | 2018-08-23 | 2019-02-26 | 北京大学 | 一种基于深度学习的高效全局光照明绘制方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022100419A1 (zh) * | 2020-11-10 | 2022-05-19 | 华为技术有限公司 | 一种图像处理方法及相关设备 |
CN114979457A (zh) * | 2021-02-26 | 2022-08-30 | 华为技术有限公司 | 一种图像处理方法及相关装置 |
CN114979457B (zh) * | 2021-02-26 | 2023-04-07 | 华为技术有限公司 | 一种图像处理方法及相关装置 |
CN117750583A (zh) * | 2023-09-22 | 2024-03-22 | 中央美术学院 | 一种基于vr迷宫的数字控灯*** |
Also Published As
Publication number | Publication date |
---|---|
US20200302684A1 (en) | 2020-09-24 |
GB201917995D0 (en) | 2020-01-22 |
AU2019279917B2 (en) | 2021-09-23 |
DE102019008168A1 (de) | 2020-09-24 |
GB2582407A (en) | 2020-09-23 |
US11158117B2 (en) | 2021-10-26 |
AU2019279917A1 (en) | 2020-10-08 |
US10692277B1 (en) | 2020-06-23 |
GB2582407B (en) | 2021-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11158117B2 (en) | Estimating lighting parameters for positions within augmented-reality scenes | |
US10665011B1 (en) | Dynamically estimating lighting parameters for positions within augmented-reality scenes based on global and local features | |
US11538216B2 (en) | Dynamically estimating light-source-specific parameters for digital images using a neural network | |
US11694392B2 (en) | Environment synthesis for lighting an object | |
EP3798801A1 (en) | Image processing method and apparatus, storage medium, and computer device | |
JP5531093B2 (ja) | コンピュータグラフィックスでオブジェクトにシャドウを付ける方法 | |
JP4945642B2 (ja) | 3d画像の色補正の方法及びそのシステム | |
US8217940B2 (en) | Directable lighting method and apparatus | |
US9619920B2 (en) | Method and system for efficient modeling of specular reflection | |
JP5299173B2 (ja) | 画像処理装置および画像処理方法、並びにプログラム | |
RU2427918C2 (ru) | Метафора двумерного редактирования для трехмерной графики | |
US11663775B2 (en) | Generating physically-based material maps | |
WO2023142607A1 (zh) | 图像渲染方法、装置、设备和介质 | |
CN109448098B (zh) | 一种基于建筑物单张夜景图像重建虚拟场景光源的方法 | |
JP2019527355A (ja) | デジタル画像における改善された光沢表現のためのコンピュータシステムおよび方法 | |
Sheng et al. | A spatially augmented reality sketching interface for architectural daylighting design | |
CA3199390A1 (en) | Systems and methods for rendering virtual objects using editable light-source parameter estimation | |
US11551409B2 (en) | Rendering portions of a three-dimensional environment with different sampling rates utilizing a user-defined focus frame | |
JP2003168130A (ja) | リアルタイムで合成シーンのフォトリアルなレンダリングをプレビューするための方法 | |
CN115526976A (zh) | 虚拟场景渲染方法、装置、存储介质和电子设备 | |
US20180005432A1 (en) | Shading Using Multiple Texture Maps | |
KR20220126063A (ko) | 재구성된 이미지를 생성하는 이미지 처리 방법 및 장치 | |
US11657552B2 (en) | Generating illuminated two-dimensional vector graphics using path tracing | |
US11972534B2 (en) | Modifying materials of three-dimensional digital scenes utilizing a visual neural network | |
CN117671125A (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 |