CN116391206A - 采用神经渲染的立体表演捕获 - Google Patents
采用神经渲染的立体表演捕获 Download PDFInfo
- Publication number
- CN116391206A CN116391206A CN202080106949.3A CN202080106949A CN116391206A CN 116391206 A CN116391206 A CN 116391206A CN 202080106949 A CN202080106949 A CN 202080106949A CN 116391206 A CN116391206 A CN 116391206A
- Authority
- CN
- China
- Prior art keywords
- features
- image
- neural
- output image
- renderer
- 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
- 230000001537 neural effect Effects 0.000 title claims abstract description 73
- 238000009877 rendering Methods 0.000 title abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 85
- 238000013528 artificial neural network Methods 0.000 claims abstract description 82
- 238000005286 illumination Methods 0.000 claims abstract description 54
- 238000013527 convolutional neural network Methods 0.000 claims description 27
- 238000013507 mapping Methods 0.000 claims description 16
- 238000011176 pooling Methods 0.000 claims description 12
- 239000000872 buffer Substances 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 43
- 238000012549 training Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 11
- 239000000047 product Substances 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 238000000605 extraction Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 239000002131 composite material Substances 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 210000005036 nerve Anatomy 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000005266 casting Methods 0.000 description 2
- 238000013329 compounding Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 206010012586 Device interaction Diseases 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 241000593989 Scardinius erythrophthalmus Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000029553 photosynthesis Effects 0.000 description 1
- 238000010672 photosynthesis Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
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
- G06T15/205—Image-based rendering
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- 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/10—Image acquisition modality
- G06T2207/10048—Infrared image
-
- 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/10—Image acquisition modality
- G06T2207/10141—Special mode during image acquisition
- G06T2207/10152—Varying illumination
-
- 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
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Image Analysis (AREA)
- Image Generation (AREA)
Abstract
示例实施例涉及用于采用神经渲染进行立体表演捕获的技术。该技术可以涉及初始地使用灯台获得从多个视点并且在各种光照条件下描绘对象的图像和使用红外相机获得与对象相对应的深度数据。神经网络可以基于深度数据从图像中提取对象的特征,并且将这些特征映射到纹理空间(例如,UV纹理空间)中。神经渲染器可以用于生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准。神经渲染器可以将对象的特征从纹理空间重新采样到图像空间,以生成输出图像。
Description
背景技术
包括移动电话、个人计算机和平板式设备的许多现代计算设备包括图像捕获设备,诸如静态和/或视频相机。图像捕获设备可以捕获人、动物、风景和/或其他物体的图像。
一些图像捕获设备和/或计算设备可以校正或以其他方式修改捕获的图像。例如,一些图像捕获设备可以提供“红眼”校正,该“红眼”校正去除了在使用诸如闪光灯的亮光所捕获的图像中可能存在的人和动物的看起来红色的眼睛。在捕获的图像被校正之后,校正的图像可以被保存、显示、传送、打印到纸上和/或以其他方式利用。在一些情况下,在图像捕获期间,物体的图像可能遭受弱光照的影响。
发明内容
本文公开的是可以用于开发深度可再光照纹理的技术,其能够对在一个或多个图像中捕获的三维(3D)对象(例如,人)进行数字再光照和自由视点渲染。
在一个方面,本申请描述了一种方法。该方法涉及:使用相机系统和具有多个灯的灯台(light stage)获得从多个视点并且在多个光照条件下描绘对象的多个图像。该方法还涉及:使用多个红外相机获得与对象相对应的深度数据。该方法还涉及:使用神经网络、基于与对象相对应的深度数据来从多个图像中提取对象的多个特征;以及使用神经网络将对象的多个特征映射到纹理空间中。该方法还涉及:使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准。神经渲染器被配置为将对象的特征从纹理空间重新采样到图像空间,以生成输出图像。
在另一方面,本申请描述了一种系统。该系统包括:具有多个红外相机的相机系统、具有多个灯的灯台以及计算设备。计算设备被配置为使用相机系统和具有多个灯的灯台获得从多个视点并且在多个光照条件下描绘对象的多个图像。计算设备还被配置为使用多个红外相机获得与对象相对应的深度数据。计算设备还被配置为基于与对象相对应的深度数据使用神经网络从多个图像中提取对象的多个特征。计算设备还被配置为使用神经网络将对象的多个特征映射到纹理空间中,以及使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准。神经渲染器被配置为将对象的特征从纹理空间重新采样到图像空间,以生成输出图像。
在又一示例中,本申请描述了一种被配置为存储指令的非暂时性计算机可读介质,该指令当由包括一个或多个处理器的计算系统执行时,使得计算系统执行操作。该操作涉及:使用相机系统和具有多个灯的灯台获得从多个视点并且在多个光照条件下描绘对象的多个图像。该操作还涉及:使用多个红外相机获得与对象相对应的深度数据,以及使用神经网络、基于与对象相对应的深度数据来从多个图像中提取对象的多个特征。该操作还涉及:使用神经网络将对象的多个特征映射到纹理空间中,以及使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准。神经渲染器被配置为将对象的特征从纹理空间重新采样到图像空间,以生成输出图像。
前面的发明内容仅是说明性的,并且不旨在以任何方式进行限制。除了上述说明性的方面、实施例和特征之外,通过参考附图和以下详细描述,进一步的方面、实施例和特征将变得明显。
附图说明
图1示出了根据示例实施例的计算设备的示意图。
图2示出了根据示例实施例的服务器设备集群的示意图。
图3A描绘了根据示例实施例的ANN架构。
图3B描绘了根据示例实施例来训练ANN。
图4A描绘了根据示例实施例的卷积神经网络(CNN)架构。
图4B描绘了根据示例实施例的卷积。
图5示出了根据一个或多个示例实施例的、根据一个或多个示例实施例的神经架构系统。
图6示出了根据一个或多个示例实施例的神经渲染管线。
图7示出了根据一个或多个示例实施例的神经渲染器模块。
图8是根据一个或多个示例实施例的采用神经渲染的立体表演捕获的方法的流程图。
图9是示出根据一个或多个示例实施例布置的用于在计算系统上执行计算机处理的计算机程序的概念性部分视图的示意图。
具体实施方式
本文描述了示例方法、设备和系统。应当理解,本文使用的词语“示例”和“示例性的”意味着“用作示例、实例或示意”。本文被描述为“示例”或“示例性的”任何实施例或特征不一定被解释为比其他实施例或特征更优选或更有利。在不脱离本文呈现的主题的范围的情况下,可以利用其他实施例,并且可以进行其他改变。
各种应用涉及采用不同的光照、从多个视点来渲染物体。在一些情况下,人可能是系统旨在从不同视点渲染和显示的对象。例如,增强和虚拟现实、电影制作和游戏开发是一些示例应用,其经常使用计算机图形和计算机视觉来尝试采用适当的光照从可控制的视点来渲染人。
在照片般真实的位置中渲染人可以依赖于人的三维(3D)数据的获取。具体地,动态表演者(例如,运动中的人)的准确3D立体模型的生成可以使得计算设备能够随后从任何任意视点渲染表演者。例如,计算设备的用户可以使用针对表演者开发的3D立体模型、在显示器界面上从一个或多个目标视点来渲染该表演者,诸如从人前面的视角、从人上面的视角、和/或从人后面的视角以及其他可能的视角。
为了真实地渲染人,以不同视角应用于对象的照明应当是准确的。为了使渲染系统可信地将人的模型复合到新的环境中(例如,针对电影场景的特定布景),该系统应当能够适当地将环境的局部光照应用于该模型,以使得该模型看起来实际地存在于该环境内。一些现有的系统尝试使用具有受限制分辨率的参数化网格和具有固定光照条件的细节来在照片般真实的位置中渲染人。然而,这种技术可能使得光照调整困难,并且降低人在渲染中实际看起来的真实性。其他现有系统使用可重新光照的3D视频的基于模板的重建,其由于参数反射模型和网格模板的使用而类似地遭受准确渲染可靠性。
基于图像的重新光照系统可以用于捕获额外的数据,该额外的数据可以用于避免以上描述的渲染问题中的一些。基于图像的重新光照系统可以具有一个或多个相机,该一个或多个相机可以用于在不同的照明下捕获对象的2D图像,这可以使得能够进行对象的完整反射场的构建。然而,基于图像的重新光照系统通常不获取对象的完整3D形状,并且通常需要相当多的后处理和手动润色。因此,基于图像的重新光照系统通常仅用于专门的应用。
本文所呈现的示例实施例涉及用于采用神经渲染的立体表演捕获的技术,该技术可以克服以上关于现有系统所讨论的缺点。具体地,本文描述的技术可以使得系统能够采用场景适当的光照、以不同姿势并且从任何视点来渲染穿着任意服装的人。通过结合传统的反射和几何捕获管线来使用灯台,技术可以使用神经网络学习以及随后从任何视点并且在任何期望的照明条件下产生表演者的近乎照片般真实的渲染。
为了进一步说明示例技术,系统可以通过从多视图影像(诸如从不同视点并且在不同光照条件下描绘对象的图像)中提取特征,来初始地、近似实时地构建神经纹理。系统可被配置为基于粗略几何估计将提取的特征池化到公共纹理空间参数化(UV参数化)中。例如,系统可以使用卷积神经网络来提取特征,并且随后将特征池化在公共纹理空间中。池化的特征可以编码局部和全局几何属性两者以及四维(4D)反射。然后,系统可以基于期望的视点(例如,用户选择的目标视点)将特征重新投影到图像空间,其随后可以由神经渲染器进行评估和细化,连同期望的光照方向的应用以校正可能由于粗略几何而引起的任何缺陷。通过执行该技术,系统可以随后在不同的环境内采用适当的光照来合成该人的图像(例如,视频),而不需要任何人工干预来校正潜在的错误或提高准确性。
各种类型的设备可以执行本文描述的技术来开发对象的立体捕获框架,该立体捕获框架可以被神经渲染器用来在期望的照明条件下从任意视点合成该对象的照片般真实的视图。例如,计算设备、移动设备、可穿戴设备和/或其他类型的处理单元可以执行与本文描述的技术相关的操作。在一些示例中,计算设备可以基于多视图图像(例如,来自各种视点的多个图像)来构建神经纹理,并且使用这些神经纹理来渲染包括遮挡阴影和阿尔法复合掩码(mask)的人的看不见的动态表演的全反射场。
这样,用于渲染对象的照片般真实显示的示例技术可以涉及将几何管线与神经渲染相结合的框架,这可以使得能够进行外观、视点和光照的同时解耦。该技术可以使得计算设备能够以可以缩放并且不需要人工干预的方式、以任何期望的照明条件、从任意视点产生并且显示动态表演者的近乎照片般真实的渲染。这与现有系统不同,现有系统通常需要针对每个新的UV参数化重新训练。
I.示例计算设备和基于云的计算环境
以下实施例描述了可以采用所公开的ANN实施方式的示例计算设备和系统的架构和操作方面,以及其特征和优点。
图1是例示计算系统100的简化框图,示出了在被布置为根据本文的实施例操作的计算设备中可以包括的组件中的一些。计算系统100可以是客户端设备(例如,由用户主动地操作的设备)、服务器设备(例如,向客户端设备提供计算服务的设备)、或一些其他类型的计算平台。为了执行特定的操作,一些服务器设备有时可以作为客户端设备来操作,并且一些客户端设备可以并入服务器特征。
在该示例中,计算系统100包括处理器102、存储器104、网络接口106和输入/输出单元108,所有这些都可以通过系统总线110或类似机制耦合。在一些实施例中,计算系统100可以包括其他组件和/或外围设备(例如,可拆卸存储装置、打印机等)。
处理器102可以是任何类型的计算机处理元件中的一个或多个,诸如中央处理单元(CPU)、协处理器(例如,数学、图形或加密协处理器)、数字信号处理器(DSP)、网络处理器和/或执行处理器操作的集成电路或控制器的形式。在一些情况下,处理器102可以是一个或多个单核处理器。在其他情况下,处理器102可以是具有多个独立处理单元的一个或多个多核处理器。处理器102还可以包括用于临时地存储正在执行的指令和相关数据的寄存器存储器,以及用于临时地存储最近使用的指令和数据的高速缓存存储器。
存储器104可以是任何形式的计算机可用存储器,包括但不限于随机存取存储器(RAM)、只读存储器(ROM)和非易失性存储器。这可以包括闪速存储器、硬盘驱动器、固态驱动器、可重写压缩盘(CD)、可重写数字视频盘(DVD)和/或磁带存储装置,仅作为几个示例。
计算系统100可以包括固定存储器以及一个或多个可移动存储器单元,后者包括但不限于各种类型的安全数字(SD)卡。因此,存储器104代表主存储器单元和长期存储装置两者。其他类型的存储器可以包括生物存储器。
存储器104可以存储程序指令和/或程序指令可以在其上操作的数据。举例来说,存储器104可以将这些程序指令存储在非暂时性的计算机可读介质上,使得这些指令可由处理器102执行,以实施本说明书或附图中公开的任何方法、处理或操作。
如图1所示,存储器104可以包括固件104A、内核104B和/或应用104C。固件104A可以是用于引导或以其他方式启动计算系统100的一些或全部的程序代码。内核104B可以是操作系统,包括用于存储器管理、进程调度和管理、输入/输出以及通信的模块。内核104B还可以包括允许操作系统与计算系统100的硬件模块(例如,存储器单元、网络接口、端口和总线)通信的设备驱动程序。应用104C可以是一个或多个用户空间软件程序,诸如网络浏览器或电子邮件客户端,以及这些程序使用的任何软件库。在一些示例中,应用104C可以包括一个或多个神经网络应用。存储器104还可以存储由这些和其他程序和应用使用的数据。
网络接口106可以采取一个或多个有线接口的形式,诸如以太网(例如,快速以太网、千兆以太网等)。网络接口106还可以支持在一个或多个非以太网介质上的通信,诸如同轴电缆或电力线;或者在广域介质上的通信,诸如同步光网络(SONET)或数字订户线路(DSL)技术。网络接口106可以额外地采取一个或多个无线接口的形式,诸如IEEE 802.11(Wifi)、全球定位系统(GPS)或广域无线接口。然而,可以在网络接口106上使用其他形式的物理层接口和其他类型的标准或专有通信协议。此外,网络接口106可以包括多个物理接口。例如,计算系统100的一些实施例可以包括以太网、/>和Wifi接口。
输入/输出单元108可以促进用户和外围设备与计算系统100和/或其他计算系统的交互。输入/输出单元108可以包括一个或多个类型的输入设备,诸如键盘、鼠标、一个或多个触摸屏、传感器、生物传感器等等。类似地,输入/输出单元108可以包括一个或多个类型的输出设备,诸如屏幕、监视器、打印机和/或一个或多个发光二极管(LED)。额外地或替代地,计算系统100可以使用例如通用串行总线(USB)或高清多媒体接口(HDMI)端口接口与其他设备通信。
在一些实施例中,可以部署计算系统100的一个或多个实例来支持集群架构。这些计算设备的确切物理位置、连接性和配置对于客户端设备来说可能是未知的和/或不重要的。因此,计算设备可以被称为“基于云”的设备,其可以被容纳在各种远程数据中心位置。另外,计算系统100可以实现在本文描述的实施例的性能,包括使用神经网络和实现采用神经渲染的立体表演捕获的技术。
图2描绘了根据示例实施例的基于云的服务器集群200。在图2中,计算设备(例如,计算系统100)的一个或多个操作可以分布在服务器设备202、数据存储装置204和路由器206之间,所有这些都可以通过本地集群网络208连接。服务器集群200中的服务器设备202、数据存储装置204和路由器206的数量可以依赖于分配给服务器集群200的(多个)计算任务和/或应用。在一些示例中,服务器集群200可以执行本文描述的一个或多个操作,包括使用神经网络和采用神经渲染技术实现立体表演捕获。
服务器设备202可以被配置为执行计算系统100的各种计算任务。例如,一个或多个计算任务可以分布在服务器设备202中的一个或多个中。在可以并行执行这些计算任务的程度内,这种任务分布可以减少完成这些任务并且返回结果的总时间。为了简单起见,服务器集群200和单独的服务器设备202两者可以被称为“服务器设备”。该术语应当被理解为暗示在服务器设备操作中可能涉及一个或多个不同的服务器设备、数据存储设备和集群路由器。
数据存储装置204可以是包括驱动器阵列控制器的数据存储阵列,驱动器阵列控制器被配置为管理对硬盘驱动器和/或固态驱动器组的读取和写入访问。驱动器阵列控制器,单独或与服务器设备202结合,也可以被配置为管理在数据存储装置204中所存储的数据的备份或冗余拷贝,以防止驱动器故障或阻止服务器设备202中的一个或多个访问集群数据存储装置204的单元的其他类型的故障。可以使用除驱动器之外的其他类型的存储器。
路由器206可以包括被配置为向服务器集群200提供内部和外部通信的网络装备。例如,路由器206可以包括一个或多个分组交换和/或路由设备(包括交换机和/或网关),其被配置为提供(i)经由集群网络208在服务器设备202和数据存储装置204之间的网络通信,和/或(ii)经由到网络212的通信链路210在服务器集群200和其他设备之间的网络通信。
额外地,集群路由器206的配置可以至少部分地基于:服务器设备202和数据存储装置204的数据通信要求、本地集群网络208的延迟和吞吐量、通信链路210的延迟、吞吐量和成本、和/或可能有助于系统架构的成本、速度、容错、弹性、效率和/或其他设计目标的其他因素。
作为可能的示例,数据存储装置204可以包括任何形式的数据库,诸如结构化查询语言(SQL)数据库。各种类型的数据结构可以在这样的数据库中存储信息,包括但不限于表格、数组、列表、树和元组。此外,数据存储装置204中的任何数据库可以是单片的或者跨多个物理设备分布。
服务器设备202可以被配置为向集群数据存储装置204传送数据和从集群数据存储装置204接收数据。这种传输和检索(retrieval)可以分别地采取下述形式:SQL查询或其他类型的数据库查询以及这种查询的输出。也可以包括额外的文本、图像、视频和/或音频。此外,服务器设备202可以将接收到的数据组织成网页表示。这种表示可以采取标记语言的形式,诸如超文本标记语言(HTML)、可扩展标记语言(XML)或一些其他标准化或专有格式。此外,服务器设备202可以具有执行各种类型的计算机化脚本语言的能力,计算机化脚本语言诸如但不限于Perl、Python、PHP超文本预处理器(PHP)、动态服务器页面(ASP)、JavaScript等。以这些语言编写的计算机程序代码可以促进向客户端设备提供网页,以及与网页的客户端设备交互。
II.人工神经网络
A.示例ANN
人工神经网络(ANN)是一种计算模型,其中,独立并行地工作并且没有中央控制的许多简单的单元可以组合以解决复杂的问题。ANN表示为布置为许多层的许多节点,相邻层的节点之间具有连接。
图3A中示出了示例ANN 300。具体地,ANN 300表示前馈多层神经网络,但是类似的结构和原理用于例如卷积神经网络(CNN)、循环(recurrent)神经网络和递归神经网络。ANN300可以表示被训练来执行特定任务的ANN,特定任务诸如为图像处理技术(例如,分割、语义分割、图像增强)或采用本文描述的神经渲染函数学习立体表演捕获。在进一步的示例中,ANN 300可以学习执行其他任务,诸如计算机视觉、风险评估等。
如图3A所示,ANN 300由四层组成:输入层304、隐藏层306、隐藏层308和输出层310。输入层304的三个节点分别接收X1,X2和X3作为初始输入值302。输出层310的两个节点分别产生Y1和Y2作为最终输出值312。这样,ANN 300是全连接的网络,因为除了输入层304之外的每层的节点接收来自前一层中所有节点的输入。
节点对之间的实线箭头表示中间值流经的连接,并且各自与应用于相应中间值的相应权重相关联。每个节点对其输入值及其相关联权重(例如,0和1之间的值,包括0和1)执行操作以产生输出值。在一些情况下,该操作可能涉及每个输入值和相关联权重的乘积的点积和。可以将激活函数应用于点积和的结果以产生输出值。其他操作是可能的。
例如,如果节点接收在具有相应权重{w1,w2,…,wn}的n个连接上的输入值{x1,x2,…,xn},则点积和d可以被确定为:
其中,b是节点特定或层特定的偏差。
值得注意的是,ANN 300的全连接性质可以用于通过给与一个或多个权重为0的值来有效地表示部分连接的ANN。类似地,偏差也可以被设置为0,以消除b项。
诸如逻辑函数的激活函数可以用于将d映射到为0与1之间(包括0和1)的输出值y:
可以替代地使用逻辑函数之外的函数,例如sigmoid或tanh函数。
然后,y可以被用在节点的输出连接中的每个上,并且将通过其相应的权重来修改。具体地,在ANN 300中,输入值和权重从左到右应用于每层的节点,直到产生最终输出值312。如果ANN 300已经被完全训练,最终输出值312是对于ANN 300已经被训练来解决的问题的建议的解。为了获得有意义的、有用的和合理准确的解,ANN 300至少需要某种程度的训练。
B.训练
训练ANN可以涉及向ANN提供某种形式的监督训练数据,即输入值和期望的或基准真实(ground truth)输出值的集合。例如,使ANN能够执行图像处理任务的监督训练可以涉及提供包括训练图像和表示该训练图像的期望输出(例如,期望分割)的相对应的基准真实掩码的图像对。对于ANN 300,该训练数据可以包括与输出值配对的输入值的m个集合。更正式地,训练数据可以表示为:
训练处理涉及将来自这样的集合的输入值应用到ANN 300,并且产生相关联的输出值。损失函数可以用于评估产生的输出值与基准真实输出值之间的误差。在一些情况下,该损失函数可以是差的和、均方误差或一些其他度量。在一些情况下,针对所有m个集合确定误差值,并且误差函数涉及计算这些值的合计(例如,平均值)。
一旦确定了误差,就更新连接上的权重以尝试减小误差。简单地说,该更新处理应当奖励“好”的权重并且惩罚“坏”的权重。因此,更新应当以导致训练数据的未来迭代的较低误差的方式通过ANN 300分配误差的“责任”。例如,更新处理可以涉及修改ANN 300的至少一个权重,使得对训练图像的ANN 300的后续应用生成新的输出,该新的输出更加紧密地匹配与训练图像相对应的基准真实掩码。
训练处理继续将训练数据应用于ANN 300,直到权重收敛。当误差小于阈值或者在训练的连续迭代之间误差的改变足够小时,收敛发生。在这点上,ANN 300被称为“经训练”并且可以应用于新的输入值集合,以便预测未知的输出值。当被训练以执行图像处理技术时,ANN 300可以产生输入图像的输出,该输出非常类似于针对输入图像创建的基准真实(即,期望的结果)。
用于ANN的许多训练技术利用了某种形式的反向传播。在反向传播期间,输入信号通过网络朝向输出向前传播,然后网络误差相对于目标变量被计算,并且被朝向输入向后反向传播。具体地,反向传播通过ANN 300从右到左一次一层地分布误差。因此,首先更新隐藏层308和输出层310之间的连接的权重,其次更新隐藏层306和隐藏层308之间的连接的权重,等等。这种更新基于激活函数的导数。
为了进一步解释误差确定和反向传播,查看行动中处理的示例是有帮助的。然而,对于表示,反向传播可能变得非常复杂,除非是在最简单的ANN上。因此,图3B介绍了非常简单的ANN 330,以便提供反向传播的说明性示例。
权重 | 节点 | 权重 | 节点 |
w1 | I1,H1 | w5 | H1,O1 |
w2 | I2,H1 | w6 | H2,O1 |
w3 | I1,H2 | w7 | H1,O2 |
w4 | I2,H2 | w8 | H2,O2 |
表1
ANN 330由三层组成,输入层334、隐藏层336和输出层338,每层具有两个节点。初始输入值332被提供给输入层334,并且输出层338产生最终输出值340。在一些示例中,权重已经被分配给每个连接,并且偏差(例如,如图3B所示的b1,b2)也可以应用于隐藏层336中的每个节点的净输入。为了清楚起见,表1将权重映射到具有这些权重所应用到的连接的节点对。例如,w2应用于节点I2和H1之间的连接,w7应用于节点H1和O2之间的连接,等等。
训练ANN 330的目的是通过一些数量的前馈和反向传播迭代来更新权重,直到最终输出值340足够接近指定的期望输出。注意,使用单个训练数据集合仅为该集合来有效地训练ANN 330。如果使用多个训练数据集合,也将根据这些集合来训练ANN 330。
1.示例前馈传递
为了启动前馈传递,计算隐藏层336中每个节点的净输入。通过应用激活函数,可以根据净输入找到这些节点的输出。对于节点H1,净输入netH1为:
netH1=w1X1+w2X2+b1 (4)
将激活函数(这里是逻辑函数)应用于该输入确定了节点H1的输出outH1为:
对于节点H2,遵循相同过程,也可以确定输出outH2。前馈迭代中的下一步是针对输出层338的节点执行相同的计算。例如,对于节点O1的净输入neto1为:
netO1=w5outH1+w6outH2+b2 (6)
因此,针对节点O1的输出outO1为:
对于节点O2,遵循相同过程,可以确定输出outO2。此时,可以基于损失函数确定总误差Δ。例如,损失函数可以是输出层508中节点的误差平方和。换句话说:
2.反向传播
如上所述,反向传播的目标是使用Δ(即,基于损失函数确定的总误差)来更新权重,使得其在未来的前馈迭代中贡献较少的误差。作为示例,考虑权重w5。目标涉及确定w5的改变的多大程度影响Δ。这可以表示为偏导使用链式法则,该项可以扩展为:
因此,w5的改变对Δ的影响等效于下述的乘积:(i)outO1的改变对Δ的影响,(ii)netO1的改变对outO1的影响,以及(iii)w5的改变对netO1的影响。这些乘法项中的每个可以独立地确定。直观地,该处理可以被认为是对下述进行隔离:w5对neto1的影响、netO1对outO1的影响和outO1对Δ的影响。
对于馈送到输出层338中的其他权重,可以重复该处理。注意,直到在反向传播结束时确定了对所有权重的更新,才更新权重。然后,在下一次前馈迭代之前更新所有权重。
在计算了对剩余权重w1,w2,w3和w4的更新之后,反向传播传递继续到隐藏层336。对于馈送到输出层338中的其他权重,可以重复该处理。此时,反向传播迭代结束,并且所有权重已经更新。ANN 330可以通过后续的前馈和反向传播迭代继续被训练。在一些情况下,在经过若干前馈和反向传播迭代(例如,数千次迭代)之后,误差可以被减小以产生接近原始期望结果的结果。此时,Y1和Y2的值将接近目标值。如所示出的,通过使用可微分损失函数,可以确定由ANN 330输出的预测与期望结果相比的总误差,并且该总误差可以被用于相应地修改ANN 330的权重。
在一些情况下,如果系统的超参数(例如,偏差b1和b2以及学习率α)被调整,等量的训练可以通过较少的迭代来完成。例如,将学习率设置得更接近特定值可以导致误差率更快地降低。额外地,可以以与如何更新权重类似的方式,作为学习处理的一部分来更新偏差。
无论如何,ANN 330仅是简化的示例。可以开发任意复杂的ANN,其中,调整输入和输出层中的每个中的节点数,以解决特定的问题或目标。此外,可以使用多于一个隐藏层,并且每个隐藏层可以有任何数量的节点。
III.卷积神经网络
卷积神经网络(CNN)与ANN在以下方面类似:CNN可以由若干层的节点组成,其中,节点之间具有加权连接并且可能存在每层偏差。权重和偏差可以通过上面讨论的前馈和反向传播过程来更新。损失函数可以用于将前馈处理的输出值与期望的输出值进行比较。
另一方面,CNN通常采用下述明确的假设来设计:初始输入值从一个或多个图像导出。在一些实施例中,图像片(patch)中每个像素的每个颜色通道是单独的初始输入值。假设每像素三个颜色通道(例如,红色、绿色和蓝色),即使小的32×32像素片也将导致第一隐藏层中每个节点的3072个传入权重。显然,使用朴素的ANN用于图像处理可能导致非常庞大和复杂的模型,其将花费很长时间来训练。
相反,CNN被设计为利用几乎在所有图像中发现的固有结构。具体地,CNN中的节点仅连接到前一层中的少量节点。这种CNN架构可以被认为是三维的,其中,节点被布置在具有宽度、高度和深度的块中。例如,上述具有3个颜色通道的32×32像素片可以被布置为具有32个节点的宽度、32个节点的高度和3个节点的深度的输入层。
在图4A中示出了示例CNN 400。表示为像素X1…Xm的初始输入值402被提供给输入层404。如上所讨论的,输入层404可以具有基于像素X1…Xm的宽度、高度和颜色通道的数量的三个维度。输入层404向一组或多组特征提取层提供值,每组包含卷积层406、RELU层408和池化层410的实例。池化层410的输出被提供给一个或多个分类层412。最终输出值414可以被布置为表示初始输入值402的简明表征的特征矢量。
卷积层406可以通过在这些输入值的三维空间布置周围滑动一个或多个滤波器来变换其输入值。滤波器由应用于结点的偏差和结点间连接的权重表示,并且通常具有小于输入值的宽度和高度的宽度和高度。每个滤波器的结果可以是输出值的二维块(称为特征图),其中,宽度和高度可以具有与输入值的宽度和高度相同的大小,或者这些维度中的一个或多个可以具有不同的大小。每个滤波器的输出的组合导致深度维度中的特征图的层,其中,每层表示滤波器中的一个的输出。
应用滤波器可以涉及计算滤波器中的条目与输入值的二维深度切片之间的点积和。图4B示出了其示例。矩阵420表示对于卷积层的输入,并且因此,例如可以是图像数据。卷积操作将滤波器422覆盖在矩阵420上,以确定输出424。例如,当滤波器422位于矩阵420的左上角并且计算针对每个条目的点积和时,结果是4。这被放置在输出424的左上角。
回到图4A,CNN在训练期间学习滤波器,使得这些滤波器可以最终标识输入值中特定位置处的某些类型的特征。作为示例,卷积层406可以包括滤波器,该滤波器最终能够检测从其导出初始输入值402的图像片中的边缘和/或颜色。被称为感受域(receptivefield)的超参数确定卷积层406和输入层404中每个节点之间的连接的数量。这允许每个节点关注输入值的子集。
RELU层408对由卷积层406提供的输出应用激活函数。在实践中,已经确定的是,修正线性单元(RELU)函数或其变体看起来在CNN中提供了强的结果。RELU函数是定义为f(x)=max(0,x)的简单阈值函数。因此,当x为负时,输出为0;而当x为非负时,输出为x。对RELU函数的平滑的、可微分的近似是softplus函数。其被定义为f(x)=log(1+ex)。尽管如此,在该层中也可以使用其他函数。
池化层410通过对来自RELU层408的输出的每个二维深度切片进行下采样来减小数据的空间大小。一种可能的方法是对深度切片的每个2×2块应用步幅为2的2×2滤波器。这将使每个深度切片的宽度和高度减少1/2,从而使数据的总体大小减少75%。
分类层412计算特征矢量形式的最终输出值414。例如,在被训练为图像分类器的CNN中,特征矢量中的每个条目可以对图像片包含特定类别的项目(例如,人脸、猫、海滩、树等)的概率进行编码。
在一些实施例中,存在多组特征提取层。因此,池化层410的实例可以向卷积层406的实例提供输出。此外,对于池化层410的每个实例,可以存在卷积层406和RELU层408的多个实例。
CNN 400表示可以在图像处理中使用的一般结构。卷积层406和分类层412与ANN300中的层类似地应用权重和偏差,并且这些权重和偏差可以在反向传播期间更新,以便CNN 400可以学习。另一方面,RELU层408和池化层410通常应用固定操作因此可能不进行学习。
与ANN不同,CNN可以包括与本文示例中所示不同数量的层,并且这些层中的每个可以包括不同数量的节点。因此,CNN 400仅仅是为了说明的目的,并且不应当被认为是限制CNN的结构。
IV.示例系统
增强和虚拟现实中针对3D内容增长的需求推动了立体表演捕获系统的开发。最近的进展正在推动动态人类表演的自由视点可重新光照视频更接近照片般真实的质量。然而,尽管付出了巨大努力,现有的复杂系统仍受到重建和渲染算法的限制,其不能完全地建模复杂的3D结构和高阶传输效应,诸如全局照明和次表面散射。
因为传统的几何管线通常依赖于不适当的几何模型,所以任何合理密度的网格或3D体素可能没有足够的表现力来捕获精细粒度的细节,诸如头发。此外,传统的几何管线可能具有3D获取误差。结果,即使网格可以用于准确地建模几何,由于在重建管线的许多阶段中的错误校准或近似,重建也可能是不准确的。另外,典型的模型可能没有足够的表现力来考虑将导致人类的照片般真实的渲染的复杂的图像形成处理。相反,传统的几何管线通常依赖于许多忽略高阶光传输效应(例如,次表面散射和全局照明)的假设和近似,这可能导致不真实的渲染。
为了克服上述困难,本文描述的技术可用于以能够解决通常与传统几何管线相关联的不同实质缺点的方式来利用深度学习。具体地,图5示出了根据一个或多个示例实施例的神经架构系统。系统500包括多个球形梯度影像502、学习的表示504、合成的影像506和输出508。在其他实施例中,系统500可以包括其他组件。
系统500表示几何管线与神经渲染方案的组合,以生成动态表演的一个或多个照片般真实的渲染,这些渲染可以从不同的视点观看,其中,在每个视点处应用了适当的光照。这样,系统500可以使用可以对经典渲染处理进行建模的一个或多个神经网络,以学习独立于几何布局来表示对象的依赖于视图的外观的隐含特征,这可以实现对看不见的对象姿势以及甚至新的对象身份的一般化。这样,系统500可以生成高质量的结果,其显著优于现有的最先进的解决方案。
多个球形梯度影像502可以包括使用采用两个球形梯度照明条件和3D参数化几何的知识所获取的表演者的多视图影像。例如,计算系统可以使用采用两个球形梯度照明条件、3D参数化几何的知识以及在特定照明条件和阿尔法掩码下的基准真实图像所获取的表演者的多视图影像。为了获得训练所需的数据,一些示例可能涉及使用灯台。例如,灯台可以包括具有331个完全可编程LED的定制球形圆顶。该灯台可以用于以不同姿势并且在各种光照条件下捕获对象的图像。
在示例实施例中,计算设备可以使用多个高分辨率红色、绿色、蓝色(RGB)相机来获得多视图影像,这些相机可以以1240万像素的分辨率在60赫兹下记录视频。这样,系统可以用于基于球形梯度照明来交织两种不同的可见光照条件。球形梯度图像可以通过对LED编程以发射相对于其在灯台中的位置而改变的颜色来获得。具体地,给定LED相对于台的中心的光照方向矢量θ,由该LED针对第一梯度发射的光被编程为具有如下的RGB颜色:
并且第二梯度可以被编程为具有如下的RGB颜色:
为了获取预计算变形场(warp field)所需的基础几何,可以使用红外(IR)相机,其与16个定制的结构光投影仪耦合,使得它们可以用于有源立体深度估计。多视图立体算法,跟随着泊松重建步骤和参数化阶段,可以用于检索最终几何。给定基础几何,可以计算光可见性图和反射图并且将其提供给神经渲染器。
训练系统500还可以涉及通过收集全反射场来获取目标图像。例如,可以捕获一次一光(OLAT)图像的序列,其中,每个OLAT图像仅使LED中的一个开启,该一个开启的LED具有从灯台的中心指向LED位置的已知的光方向。单个序列可以由用于58个高分辨率RGB相机和32个有源IR传感器的331个OLAT组成。由于大量数据,可以使用60Hz的帧率。这导致每个序列获取大约6秒,在此期间,对象(例如,人)可能稍微移动,从而导致训练数据中的失准。
为了补偿失准,可以包括所有LED都开启的额外的跟踪帧。具体地,全光照图像可以在每10个OLAT之后被获取,并且随后被用于相对于所选择的关键帧、针对每个视图在图像空间中执行光流对准。然后可以对光流进行插值,以对准两个跟踪帧之间的OLAT图像。也可以捕获用作对于系统的输入的球形梯度照明条件。因为所有的2D影像都与给定的参考帧对准,所以系统500可能不需要计算所有OLAT的几何。相反,系统可以依赖于针对所选择的关键帧计算的参数化网格。训练期间使用的阿尔法掩码可以使用灯台数据来训练。
在一些示例中,使用多个损失的组合来训练管线的特征提取器、神经纹理和神经渲染组件。示例损失函数可以由特征空间中的光度损失、阿尔法损失、反射显著性损失和纹理损失来定义。
学习的表示504表示可以用于执行本文的操作的一个或多个表示。例如,在一些示例中,学习的表示504可以对应于一个或多个神经网络。训练学习的表示504可以涉及使用一个或多个损失函数。例如,对于特征空间中的光度损失系统可以使用利用在图像数据分类任务上预先训练的VGG网络从目标图像I和预测图像/>提取的特征之间的平方l2距离。与图像空间中的传统l1距离相比,这种损失可以导致更加锐化的结果。对于阿尔法损失/>为了推断阿尔法掩码,可以计算基准真相掩码M和推断掩码/>之间的l1范数(norm)。对于反射显著性损失/>网络可以通过额外的反射损失来学习镜面高光和依赖于视图的效果。具体地,可以定义S=R⊙I,其中,R是反射图而/>指示逐元素地乘法。类似地,可以针对预测图像/>定义/>可以使用VGG网络将反射损失计算为特征空间中的S和/>之间的l2距离。这种损失有助于恢复依赖于视图的效果。对于纹理损失LVGG(I,N),可以使用目标图像I和重新采样的神经纹理N的前3个通道之间的损失。这种损失可能导致网络将其纹理空间的一部分表示为实际的RGB图像。
总损失可定义如下:
其中,权重wi可以用于控制各个损失函数对总损失的贡献。在示例实施例中,总损失函数可以使用下述:w1=1.0,w2=0.25,w3=0.5和w4=1.0。
在图5所示的实施例中,学习的表示504包括视点510、光照512和外观514。学习的表示504可以包括被配置为调整参数(诸如视点510、光照512和外观514)的一个或多个神经网络。
合成的影像506表示从不同视角、应用了不同修改的对象的不同图像。在图5所示的实施例中,合成的影像包括视点合成516、光合成518和表演合成520。视点合成516涉及根据特定视点或多个视点来展开一个或多个图像。光合成518涉及调整应用于由合成的影像506表示的图像内的对象的光照。表演合成520涉及以不同的姿势显示对象,这些姿势类似于人可能表演的真实姿势。
输出508表示从不同视角示出对象的不同图像。另外,输出508可以包括描绘不同模拟环境中的对象的图像。在图5所示的实施例中,输出508涉及高动态范围(HDR)重新光照522和复合524。例如,神经渲染器可以执行与HDR重新光照522和复合524相关的技术。
图6示出了根据一个或多个示例实施例的神经渲染管线(NRP)。NRP 600表示可以用于以任何期望的视点和光照来渲染对象(即,人)的示例管线。具体地,NRP 600的操作包括图像捕获602、特征提取604、特征映射606、神经纹理生成608和神经渲染610。在其他示例中,NRP 600可以涉及其他操作。
如图6所示,NRP 600可以初始地涉及图像捕获602,以获得描绘对象的一个或多个视图的图像。在示例实施例中,对象是穿着任意服装的人。NRP 600可以用于渲染进行各种动作并且穿着任何类型的服装的对象。这样,在其他实施例中,对象可以不同。
NRP 600还涉及从图像捕获602期间获得的图像的特征提取604。例如,可以从梯度和反梯度图像的每个对中的一个或两个图像中提取特征。
NRP 600可以进一步涉及将经由特征提取604提取的特征一起池化到纹理空间(例如,UV空间)中。具体地,NRP 600可以使用预先获取的粗略几何估计来将特征一起池化并且映射到纹理空间以用于特征映射606。然后,可以使用卷积(例如,1×1卷积)对池化的特征进行变换,以提取与对象相对应的隐式反射和局部几何信息,其然后可以被重新投影到的新的期望视点的图像空间中,以用于神经纹理生成608。
可以结合经典图形缓冲区(例如,光可见性映射和反射映射)来提供重新投影的特征,作为对于在神经纹理生成608处的神经渲染器的输入。神经渲染器可以使用该输入来生成并且在显示界面上显示在期望的光照方向下光照的对象的最终输出图像。通过在单位球面上对光照方向进行采样,神经纹理生成608可以涉及生成一组图像,该组图像形成该帧的全反射基础。具体地,全反射基础可以被用于在任意光照环境下重新光照图像。这样,NRP600可以使用神经纹理生成608来代替显式双向反射分布函数(BRDF)的使用,并且还能够直接根据训练数据对更高阶的光传输效应进行建模。另外,神经纹理生成608可以通过补偿潜在的不准确性(例如,针对人填充缺失的头发)来规避对准确几何的严格依赖。
与学习固定神经纹理的模型不同,NRP 600最初可以从图像中提取特征,并且然后使用预先计算的、将图像重新映射到UV空间的变形场,来将特征池化到纹理空间中。结果,可以从输入图像中回归神经纹理,这不同于通常通过经由反向传播优化神经纹理来限制一般化的其他现有技术。
由于特征提取网络的感受域,提取的特征可以具有一定的空间范围。这暗示在纹理空间中,NRP 600可以采取简单的1×1卷积,这不依赖于UV布置。几何捕获系统可以证明1×1卷积的使用是合理的,其可以在RGB空间中通过简单的每像素操作获得反射图。对特征矢量的学习的1×1操作符可以优于在RGB空间中手工制作的每像素操作,并且进一步增强解耦外观。在一些情况下,可以从一组多视图图像和近似参数化的几何(即,从图像空间到UV参数化的预先计算的变形)构建新的神经纹理。作为副产品,计算设备可以使用NRP 600来一般化看不见的表演,即使UV参数化改变,也不需要重新训练网络。这样,计算设备可以执行NRP 600来实现动态表演的外观、视点和光照的同时合成。
在一些示例中,NRP 600可以被配置为针对表演的每一帧假设对象的近似几何的可用性。例如,几何估计可用于生成表面的UV图以及将多视图图像映射到纹理空间(反之亦然)的变形场。因为对于动态表演的非刚性变形的几何,通常难以实现时间相干的UV参数化,所以NRP 600可以涉及这样的假设:在一些情况下,即使针对连续的帧也没有这样的时间对应性。例如,这些示例技术可以被设计为对任意纹理空间改变是鲁棒的,并且可以提供跨对象姿势和身份的外观合成的一般化。
为了捕获输入的2D图像,一些示例技术使用灯台,其表示包含球形圆顶内的捕获体积的工作室设备,该球形圆顶装配有校准的红绿蓝(RGB)灯和多视角相机。通过使用灯台,球形梯度照明条件可以被确定,并且随后用于提取关于表面法线、反照率和粗糙度的信息。例如,深度学习可以应用于这些输入,以在图像空间中获得令人信服的重新光照结果。这样,示例系统可以使用在球形梯度照明条件下从各种相机视点捕获的图像,并且使用2D光流处理对准从图像提取的互补光照条件。
系统可以将观看方向(view direction)矢量级联到每个像素。观看方向矢量可以是在世界空间中从光学中心到像素中心的光线,这导致可以在两个通道中编码的3D单位矢量。观看方向可以为网络提供关于给定图像上的依赖于视图的效应的一些指导。在一些示例中,U-Net架构用于从每个视点提取特征。例如,U-Net架构可以采用多个输入,诸如8个通道,其中,6个通道用于两个梯度图像而2个通道用于观看方向。
系统使用的特定网络可以包括5个编码器/解码器层,其具有16、32、64、128、256个滤波器,通过3×3卷积提取,然后是编码器中的模糊池化和解码器中的模糊解池化。另外,该系统还可以包括最终输出层,其以2000×1500的分辨率推断16个通道的张量。
系统可以使用U-Net架构来提取具有有合理空间范围(例如,478×478)的感受域的特征。最终输出可以具有与输入图像相同的分辨率,这可以保留所有高频细节。可以针对每个视图执行特征提取,这可以导致生成具有多个通道(例如,16个通道)的多个特征张量。
NRP 600可以被配置为能够学习以对纹理空间进行回归。例如,在这个阶段,NRP600可以包括针对每个相机视图具有16个通道和2000×1500的分辨率的一个张量F。假设具有参数化的3D几何是可用的,NRP 600可以被配置为计算将每个像素从图像空间映射到UV纹理空间的变形场。可以使用3D几何来预先计算变形场,以在纹理UV坐标和相机图像坐标之间进行映射,其中,经由光线投射进行显式遮挡处理。例如,作为从相机k的每个像素到参数化的UV坐标的双通道映射的2000×1500变形场Wk(x,y)=(u,v),其可以被实现为相机k的几何上的原始UV坐标的光栅化。对于逆映射可以构建1000×100变形场匹配来匹配UV纹理维度,其中,每个UV纹理元素处的双通道值是从参数化的几何到相机k的图像坐标的可见性测试的投影。这些变形场可以以完全可微分方式被用于端到端框架中。
变形的特征张量可以一起池化为单个张量,这可以消除对输入图像的顺序的依赖性。为了这样做,NRP 600可以执行特征的加权求和,其中,使用相机观看方向和表面法线之间的点积来计算权重。这受到下述传统的立体捕获管线的启发:它可以利用类似的加权方案将UV空间中的多个视图缝合在一起。这可以生成1000x 1000x 16的纹理空间张量。由于这种高维度特征矢量,NRP 600可以涉及依赖于一些1×1卷积,随后是纹理空间中的非线性,这可以允许不同参数化的一般化。具体地,计算设备可以执行三个1×1卷积,随后是ReLU激活,以获得具有16个通道的最终纹理空间张量。
图7示出了根据一个或多个示例实施例的神经渲染器模块。模块700可以输入可以用于生成变形Wk的目标相机视图,该变形Wk可以用于将特征从纹理空间重新采样到图像空间。如图7所示的实施例中所示出的,模块700可以包括神经着色(shading)子系统702和阿尔法遮片子系统704。来自这些子系统702-704的输出可以通过最终的U-Net,其可以生成实际的渲染图像。
重新采样的特征可以对表面和材料属性进行编码,并且可能不包含关于期望的视点或光照条件的信息。为了使神经着色子系统702能够学习着色函数,光可见性图和反射图(或多个图)可以被使用,并且被投射在神经网络框架中。具体地,可以经由表面法线n和目标光照方向L之间的点积来计算每个像素的光可见性图。可以经由光线投射显式处理遮挡,这会导致光可见性图中的黑色像素。反射图可以被定义为(r·v)α,其中,v是目标相机的观看方向,并且r=2(1·n)n-1。反射图可以用于朝向现世性和依赖于视图的效果引导神经网络。这样,反射图可以被输入到NRP 600以帮助镜面反射合成。
重新采样的神经特征、反射图和观看方向(在2个通道中每像素地编码)可以级联成张量S。例如,张量S可以具有2000×1500的维度,具有19个通道,包括用于特征的16个通道、用于反射图的1个通道和用于观看方向的2个通道。NRP 600可以将张量S与光可见性图逐元素地相乘,以模拟神经漫射(diffuse)渲染。
模块700还可以包括神经网络(例如,具有跳连接的小型U-Net),其被配置为输入重新采样的特征(例如,大小2000×1500)并且理解针对一个或多个编码器和/或解码器的卷积层,诸如具有3×3滤波器的编码器和解码器,具有输出8、16、32、64、128、256。神经网络可以输出阿尔法掩码,其可以用于虚拟环境中的复合的应用。
模块700可以级联来自神经着色子系统702和阿尔法遮片子系统704的输出,并且将级联的输出传递给最终的神经网络(例如,U-Net)来执行最终渲染。例如,模块700可以输入大小2000×1500的20个通道(例如,19个通道用于神经着色器,1个通道用于阿尔法掩码)的张量,并且将该张量传递通过编码器的5个级别(level)和解码器的5个级别。这样,模块700可以使用具有输出64、128、256、512、1024的3×3卷积。额外地,在一些示例中,除了生成最终RGB图像的最后一层之外,可以在编码器和解码器之间采用跳连接。给定表演者的多视图图像,可以仅采用模块700构建一次神经纹理,模块700被配置为从任何期望的视点合成任何新的照明条件。
V.示例方法
图8是采用神经渲染进行立体表演捕获的方法的流程图。方法800可以包括如框802、804、806、808和810中的一个或多个所示的一个或多个操作、功能或动作。尽管这些框是以顺序的次序示出,但是在一些情况下,这些框可以并行执行,和/或以与本文描述的次序不同的次序执行。另外,基于期望的实施方式,各种块可以被组合成更少的块、被划分成额外的块和/或被移除。
另外,对于方法800以及本文公开的其他处理和方法,流程图示出了当前实施例的一种可能实施方式的功能和操作。在这点上,每个框可以表示程序代码的模块、片段或一部分,其包括可由处理器执行的一个或多个指令以用于实现处理中的特定逻辑功能或步骤。例如,程序代码可以存储在任何类型的计算机可读介质或存储器上,诸如包括磁盘或硬盘驱动器的存储设备。
例如,计算机可读介质可以包括非暂时性的计算机可读介质,诸如像寄存器存储器、处理器高速缓存和随机存取存储器(RAM)那样短期存储数据的计算机可读介质。例如,计算机可读介质还可以包括非暂时性介质或存储器,诸如二级或永久性长期存储装置,如只读存储器(ROM)、光盘或磁盘、压缩盘只读存储器(CD-ROM)。
计算机可读介质也可以是任何其他易失性或非易失性存储系统。例如,计算机可读介质可以被认为是计算机可读存储介质、有形存储设备或其他制品。此外,对于方法800和本文公开的其他处理和方法,图8中的每个框可以表示被连线以执行处理中的特定逻辑功能的电路。
在框802,方法800涉及获得从多个视点并且在多个光照条件下描绘对象的图像。例如,系统可以使用相机系统和具有多个灯的灯台来捕获作为对象的、摆出姿势的人的图像。对象可以穿着任意的服装,并且在图像捕获期间可以处于一个或多个姿势。
在一些示例中,相机系统和灯台可以用于在球形梯度照明条件下捕获描绘对象的一组图像对,使得每个图像对包括梯度图像和逆梯度图像。相机系统和灯台也可以用于在一次一光的条件下捕获描绘对象的一系列图像,使得来自该系列图像的每个图像描绘在来自灯台的灯的单个灯的照明下的对象。
在框804,方法800涉及获得与对象相对应的深度数据。例如,该系统可以包括被定位成捕获对象的深度数据的多个红外相机。例如,红外相机可以相对于灯台的固定位置策略被定位,以使得能够捕获表示对象表面的3D测量。
在一些示例中,系统可以基于深度数据来估计对象的粗略几何。粗略几何可以指示人的表面结构。结果,人可以穿着任何类型的服装,而不会限制系统的功能。
在框806,方法800涉及从图像中提取对象的特征。神经网络可以基于与对象相对应的深度数据从多个图像中提取对象的特征。
在一些示例中,特征提取可以涉及基于为对象估计的粗略几何从每个图像中提取特征。例如,卷积神经网络可以从每个图像中提取特征。
在框808,方法800涉及将对象的特征映射到纹理空间中。具体地,神经网络可以将对象的特征映射到UV纹理空间中。可以执行特征到纹理空间中的映射,使得特征对局部和全局几何属性两者以及四维(4D)反射进行编码。映射还可以涉及确定一个或多个变形场,该变形场被配置为将像素从图像空间映射到纹理空间。可以使用与对象相对应的深度数据来确定每个变形场。
使用神经网络将对象的特征映射到纹理空间中可以涉及对从图像中提取的对象的特征进行池化,并且使用卷积神经网络对这些特征进行变换以提取隐式反射和局部几何信息。池化的特征可以被重新投影到与目标视点相对应的图像空间中。可以为重新投影到与目标视点相对应的图像空间中的特征提供一个或多个图形缓冲区,作为对于神经渲染器的输入。图形缓冲区可以包括基于隐式反射和局部几何信息确定的光照图和/或反射图。
在框810,方法800涉及使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准。在一些示例中,神经渲染器被配置为将对象的特征从纹理空间重新采样到图像空间以生成输出图像。
在一些示例中,系统可以使神经渲染器使用重新投影到与目标视点相对应的图像空间中的特征和一个或多个图形缓冲区,来生成从目标视图描绘对象的输出图像。神经渲染器可以在任意环境中描绘对象。例如,神经渲染器可以从数据库访问环境,并且使用一个或多个环境来描绘不同环境中的对象。
在一些示例中,神经渲染器可以生成从多个视图描绘对象的一系列图像,使得每个图像中对象的照明与和该图像相关联的特定视图对准。神经渲染器可以调整该系列图像内的对象的姿势。该系列图像可以对应于视频。
方法800还可以涉及接收指定第二目标视图的输入。例如,计算设备可以接收指定第二目标视图的用户输入。方法800还可以涉及,响应于该输入,生成从第二目标视图描绘对象的第二输出图像,使得第二输出图像中对象的照明与第二目标视图对准。
图9是示出根据本文呈现的至少一些实施例布置的用于在计算系统上执行计算机处理的计算机程序的概念性部分视图的示意图。在一些实施例中,所公开的方法可以被实现为以机器可读格式编码在非暂时性计算机可读存储介质上的计算机程序指令,或者编码在其他非暂时性介质或制品上的计算机程序指令。
在一个实施例中,使用信号承载介质902来提供示例计算机程序产品900,信号承载介质902可以包括一个或多个编程指令904,当由一个或多个处理器执行时,一个或多个编程指令904可以提供以上参考图1至图8描述的功能或功能的部分。在一些示例中,信号承载介质902可以包含非暂时性计算机可读介质906,诸如但不限于硬盘驱动器、压缩盘(CD)、数字视频盘(DVD)、数字磁带、存储器等。在一些实施方式中,信号承载介质902可以包含计算机可记录介质908,诸如但不限于存储器、读/写(R/W)CD、R/W DVD等。在一些实施方式中,信号承载介质902可以包含通信介质910,诸如但不限于数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。因此,例如,信号承载介质902可以通过无线形式的通信介质910来传送。
一个或多个编程指令904可以是例如计算机可执行和/或逻辑实现的指令。在一些示例中,诸如图1的计算机系统100的计算设备可以被配置为响应于由计算机可读介质906、计算机可记录介质908和/或通信介质910中的一个或多个传送到计算机系统100的编程指令904来提供各种操作、功能或动作。
非暂时性计算机可读介质也可以分布在多个数据存储元件当中,这些数据存储元件可以彼此远离定位。可替代地,执行存储的指令中的一些或所有的计算设备可以是另一计算设备,诸如服务器。
以上详细描述参考附图描述了所公开的系统、设备和方法的各种特征和功能。虽然本文已经公开了各种方面和实施例,但是其他方面和实施例将是明显的。本文公开的各种方面和实施例是为了说明的目的,而不旨在进行限制,真正的范围由所附权利要求指示。
应当理解,本文描述的布置仅仅是为了示例的目的。这样,本领域技术人员将理解,根据期望的结果,可以替代地使用其他布置和其他元件(例如,机器、装置、接口、功能、次序和功能分组等),并且可以完全省略一些元件。此外,所描述的许多元件是功能实体,其可以以任何合适的组合和位置被实现为离散的或分布的组件或者与其他组件结合。
Claims (20)
1.一种方法,包括:
使用相机系统和具有多个灯的灯台,获得从多个视点并且在多个光照条件下描绘对象的多个图像;
使用多个红外相机获得与对象相对应的深度数据;
基于与对象相对应的深度数据,使用神经网络从多个图像中提取对象的多个特征;
使用神经网络将对象的多个特征映射到纹理空间中;以及
使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准,其中,神经渲染器被配置为将对象的特征从纹理空间重新采样到图像空间,以生成输出图像。
2.根据权利要求1所述的方法,其中,获得描绘对象的多个图像包括:
使用相机系统和灯台,在球形梯度照明条件下捕获描绘对象的多个图像对,使得每个图像对包括梯度图像和逆梯度图像。
3.根据权利要求2所述的方法,其中,获得描绘对象的多个图像进一步包括:
使用相机系统和灯台捕获一系列图像,所述一系列图像在一次一光的条件下描绘对象,使得来自所述一系列图像的每个图像描绘在来自多个灯中的单个灯的照明下的对象。
4.根据权利要求1所述的方法,进一步包括:
基于深度数据估计对象的粗略几何;和
其中,从多个图像中提取对象的多个特征包括:
基于针对对象估计的粗略几何从每个图像中提取特征。
5.根据权利要求4所述的方法,其中,基于针对对象估计的粗略几何从每个图像中提取特征包括:
使用卷积神经网络从每个图像中提取特征。
6.根据权利要求1所述的方法,其中,使用神经网络将对象的多个特征映射到纹理空间中包括:
对从多个图像中提取的对象的多个特征进行池化;和
使用卷积神经网络变换所述多个特征,以提取隐式反射和局部几何信息。
7.根据权利要求6所述的方法,进一步包括:
将多个特征重新投影到与目标视点相对应的图像空间中;和
提供重新投影到与目标视点相对应的图像空间中的多个特征和一个或多个图形缓冲区作为对于神经渲染器的输入,其中,所述一个或多个图形缓冲区包括基于隐式反射和局部几何信息确定的光照图和反射图中的至少一个。
8.根据权利要求7所述的方法,其中,使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准,包括:
使得神经渲染器使用重新投影到与目标视点相对应的图像空间中的多个特征和所述一个或多个图形缓冲区来生成从目标视图描绘对象的输出图像。
9.根据权利要求8所述的方法,其中,使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准,包括:
生成描绘任意环境中的对象的输出图像。
10.根据权利要求1所述的方法,其中,使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准,还包括:
从多个视图生成描绘对象的一系列图像,使得每个图像中对象的照明与和所述图像相关联的特定视图对准。
11.根据权利要求1所述的方法,其中,将与对象相对应的特征映射到纹理空间中包括:
确定被配置为将像素从图像空间映射到纹理空间的多个变形场,其中,每个变形场是使用与对象相对应的深度数据来确定的。
12.根据权利要求1所述的方法,其中,将对象的特征映射到纹理空间中包括:
将对象的特征映射到纹理空间中,使得特征对局部几何属性和全局几何属性两者以及四维(4D)反射进行编码。
13.一种系统,包括:
相机系统,具有多个红外相机;
灯台,具有多个灯;以及
计算设备,被配置为:
使用相机系统和具有多个灯的灯台,获得从多个视点并且在多个光照条件下描绘对象的多个图像;
使用多个红外相机获得与对象相对应的深度数据;
基于与对象相对应的深度数据,使用神经网络从多个图像中提取对象的多个特征;
使用神经网络将对象的多个特征映射到纹理空间中;以及
使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准,其中,神经渲染器被配置为将对象的特征从纹理空间重新采样到图像空间,以生成输出图像。
14.根据权利要求13所述的系统,其中,所述计算设备还被配置为:
对从多个图像中提取的对象的多个特征进行池化;和
使用卷积神经网络变换所述多个特征,以提取隐式反射和局部几何信息。
15.根据权利要求14所述的系统,其中,所述计算设备还被配置为:
将所述多个特征重新投影到与目标视点相对应的图像空间中;和
提供重新投影到与目标视点相对应的图像空间中的多个特征和一个或多个图形缓冲区作为对于神经渲染器的输入,其中,所述一个或多个图形缓冲区包括基于与对象相对应的深度数据确定的光照图和反射图中的至少一个。
16.根据权利要求15所述的系统,其中,所述计算设备还被配置为:
使得神经渲染器使用重新投影到与目标视点相对应的图像空间中的多个特征和一个或多个图形缓冲区来生成从目标视图描绘对象的输出图像。
17.根据权利要求13所述的系统,其中,神经网络是卷积神经网络。
18.根据权利要求13所述的系统,其中,所述计算设备还被配置为:
在显示界面上显示输出图像。
19.根据权利要求18所述的系统,其中,所述计算设备还被配置为:
接收指定第二目标视图的输入;和
响应于该输入,生成从第二目标视图描绘对象的第二输出图像,使得第二输出图像中对象的照明与第二目标视图对准。
20.一种非暂时性计算机可读介质,被配置为存储指令,所述指令当由包括一个或多个处理器的计算系统执行时,使得所述计算系统执行操作,所述操作包括:
使用相机系统和具有多个灯的灯台,获得从多个视点并且在多个光照条件下描绘对象的多个图像;
使用多个红外相机获得与对象相对应的深度数据;
基于与对象相对应的深度数据,使用神经网络从多个图像中提取对象的多个特征;
使用神经网络将对象的多个特征映射到纹理空间中;以及
使用神经渲染器生成从目标视图描绘对象的输出图像,使得输出图像中对象的照明与目标视图对准,其中,神经渲染器被配置为将对象的特征从纹理空间重新采样到图像空间,以生成输出图像。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/059067 WO2022098358A1 (en) | 2020-11-05 | 2020-11-05 | Volumetric performance capture with neural rendering |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116391206A true CN116391206A (zh) | 2023-07-04 |
Family
ID=74068659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080106949.3A Pending CN116391206A (zh) | 2020-11-05 | 2020-11-05 | 采用神经渲染的立体表演捕获 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230419600A1 (zh) |
EP (1) | EP4205083A1 (zh) |
CN (1) | CN116391206A (zh) |
WO (1) | WO2022098358A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220335636A1 (en) * | 2021-04-15 | 2022-10-20 | Adobe Inc. | Scene reconstruction using geometry and reflectance volume representation of scene |
WO2023244488A1 (en) * | 2022-06-14 | 2023-12-21 | Innopeak Technology, Inc. | Methods and systems for view synthesis with image relighting |
CN115131409B (zh) * | 2022-08-26 | 2023-01-24 | 深圳深知未来智能有限公司 | 一种基于深度学习的亲密矩阵视点合成方法、应用及系统 |
-
2020
- 2020-11-05 WO PCT/US2020/059067 patent/WO2022098358A1/en active Application Filing
- 2020-11-05 CN CN202080106949.3A patent/CN116391206A/zh active Pending
- 2020-11-05 US US18/251,743 patent/US20230419600A1/en active Pending
- 2020-11-05 EP EP20829727.5A patent/EP4205083A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20230419600A1 (en) | 2023-12-28 |
WO2022098358A1 (en) | 2022-05-12 |
EP4205083A1 (en) | 2023-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
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 | |
CN110084874B (zh) | 对于三维模型的图像风格迁移 | |
KR102662201B1 (ko) | 콘볼루셔널 이미지 변환을 사용하여 동시 로컬화 및 맵핑을 수행하기 위한 방법 및 시스템 | |
US11288857B2 (en) | Neural rerendering from 3D models | |
CN108921926B (zh) | 一种基于单张图像的端到端三维人脸重建方法 | |
CN111542861A (zh) | 利用深度外观模型渲染化身的系统和方法 | |
US20230419600A1 (en) | Volumetric performance capture with neural rendering | |
US20220327769A1 (en) | Neural light transport | |
US11734890B2 (en) | Three-dimensional model recovery from two-dimensional images | |
US11615602B2 (en) | Appearance-driven automatic three-dimensional modeling | |
US20220343525A1 (en) | Joint depth prediction from dual-cameras and dual-pixels | |
WO2018080533A1 (en) | Real-time generation of synthetic data from structured light sensors for 3d object pose estimation | |
CN110633628A (zh) | 基于人工神经网络的rgb图像场景三维模型重建方法 | |
CN113850900A (zh) | 三维重建中基于图像和几何线索恢复深度图的方法及系统 | |
US11967024B2 (en) | Extracting triangular 3-D models, materials, and lighting from images | |
DE102022113244A1 (de) | Gemeinsame Form- und Erscheinungsbildoptimierung durch Topologieabtastung | |
Lu et al. | 3d real-time human reconstruction with a single rgbd camera | |
CN114998507A (zh) | 一种基于自监督学习的光度立体三维重建方法 | |
US20230245382A1 (en) | Method and system for dynamically estimating light-source parameters from multiple images | |
US20230298243A1 (en) | 3d digital avatar generation from a single or few portrait images | |
JP2022136963A (ja) | 再構成されたイメージを生成するイメージ処理方法及び装置 | |
US20240112308A1 (en) | Joint neural denoising of surfaces and volumes | |
US20240104842A1 (en) | Encoder-based approach for inferring a three-dimensional representation from an image | |
US20240062425A1 (en) | Automatic Colorization of Grayscale Stereo Images |
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 |