来自3d模型的神经重新渲染
1.相关申请的交叉引用
2.本技术是2020年4月1日提交的标题为“neural rerendering from 3d models(来自3d模型的神经重新渲染)”的美国非临时专利申请no.16/837,612的继续申请,并要求该美国非临时专利申请的优先权,该美国非临时专利申请要求2019年4月4日提交的标题为“neural rerendering in the wild(自然神经重新渲染)”的美国临时专利申请no.62/829,478的优先权,其公开内容通过引用整体并入本文。
3.本技术还要求2019年4月4日提交的美国临时专利申请no.62/829,478的优先权,其公开内容通过引用整体并入本文。
技术领域
4.该描述一般涉及来自三维(3d)模型的神经重新渲染。
背景技术:
5.3d重构的最新进展可以从照片合集生成3d模型,但是从3d模型生成的渲染可能缺乏真实世界图像的真实性和多样性。此外,一些传统技术恢复场景的单一外观或恢复平均外观,这导致渲染看起来不一致或模糊,并且一些传统技术可能对瞬态对象的位置产生幻觉。另外,从室外场景中的3d模型生成图像尤其具有挑战性,因为外部世界在不同的天气或一天中的不同时间看起来截然不同,并且利用模型(例如,单个模型)表征这些变化是相对困难的。
技术实现要素:
6.根据一个方面,一种用于神经重新渲染的方法包括获得表示物理空间场景的三维(3d)模型,其中该3d模型从输入图像的合集被构建;根据视点渲染来自3d模型的图像数据缓存,其中该图像数据缓存表示从3d模型重构的图像;由神经重新渲染网络接收图像数据缓存;由神经重新渲染网络接收表示外观条件的外观代码;以及由神经重新渲染网络将图像数据缓存变换为具有图像数据缓存的视点和外观代码指定的外观条件的重新渲染的图像。非暂时性计算机可读介质和神经重新渲染系统也被提供这些操作。
7.该方法(或非暂时性计算机可读介质或神经重新渲染系统)可以包括以下特征中的任何一个(或其任何组合)。在一些示例中,重新渲染的图像的外观条件不同于具有与重新渲染的图像的视点相同的视点的输入图像的外观条件。在一些示例中,重新渲染的图像的外观条件与具有与重新渲染的图像的视点相同的视点的输入图像的外观条件相同。该方法可以包括由神经重新渲染网络接收指示瞬态对象在场景中的位置的语义标记映射,其中变换包括使用语义标记映射作为指导生成重新渲染的图像,使得瞬态对象从重新渲染的图像被删除。图像数据缓存可以包括语义标记映射。该方法可以包括由图像到图像转换网络接收图像数据缓存,以及由图像到图像转换网络基于图像数据缓存的一个或多个部分生成语义标记映射。图像数据缓存包括多个层。该多个层包括颜色层和深度层。变换包括基于颜
色层和深度层生成重新渲染的图像。该方法可以包括使用3d模型生成校准数据集,该校准数据集包括多个图像对,其中每对包括输入图像和从3d模型渲染的图像数据缓存,输入图像和图像数据缓存来自相同的观点,并且图像数据缓存与输入图像像素校准,基于校准数据集的部分生成一个或多个语义标记映射,其中语义标记映射指示瞬态对象和非瞬态对象的位置,以及使用校准数据集和语义标记映射训练神经重新渲染网络。该方法可以包括使用具有三元组损失的校准数据集来训练外观编码器以学习场景的外观代码。
8.根据一个方面,一种存储可执行指令的非暂时性计算机可读介质,当由至少一个处理器执行时,该指令被配置成使至少一个处理器获得表示物理空间场景的三维(3d)模型,其中3d模型由输入图像的合集被构建,根据视点从3d模型渲染图像数据缓存,其中图像数据缓存表示从3d模型重构的图像,通过神经重新渲染网络接收图像数据缓存,由神经重新渲染网络接收表示外观条件的外观代码,并且由神经重新渲染网络将图像数据缓存变换为重新渲染的图像,使得重新渲染的图像具有由外观代码指定的外观条件和图像数据缓存的视点。系统和方法还被提供这些特征。
9.根据一些方面,非暂时性计算机可读介质(或系统或方法)可以包括以上/以下特征中的一个或多个(或其任何组合)。可执行指令包括使至少一个处理器通过神经重新渲染网络接收指示瞬态对象在场景中的位置的语义标记映射,并且由神经重新渲染网络使用语义标记映射作为指导生成重新渲染的图像,使得从重新渲染的图像中删除瞬态对象。图像数据缓存包括语义标记映射。可执行指令包括使至少一个处理器通过图像到图像转换网络接收图像数据缓存并由图像到图像转换网络基于图像数据缓存生成语义标记映射的指令。可执行指令包括使至少一个处理器通过语义分割网络接收与图像数据缓存相关的地面真值图像,并由语义分割网络基于地面真值图像生成语义标记映射的指令。图像数据缓存包括多个层,其中多个层包括彩色层和深度层,并且要变换的指令包括基于彩色层和深度层生成重新渲染的图像的指令。
10.根据一个方面,一种神经重新渲染系统包括3d(3d)生成器,该3d(3d)生成器被配置成基于输入图像的合集生成表示物理空间场景的3d模型;神经重新渲染网络,该神经重新渲染网络被配置成转变从3d模型渲染到重新渲染的图像的图像数据缓存;外观编码器,该外观编码器被配置成将场景的多个外观条件编码为外观代码,其中神经重新渲染网络被配置成接收外观代码,使得外观代码的修改使渲染图像根据不同的外观条件被生成;以及神经网络训练器,该神经网络训练器被配置成使用训练数据训练神经重新渲染网络和外观编码器。方法和非暂时性计算机可读介质还被提供这些特征。
11.根据一些方面,神经重新渲染系统(或方法或非暂时性计算机可读介质)可以包括以上/以下特征中的一个或多个(或其任何组合)。神经网络训练器根据多个训练阶段被配置成神经重新渲染网络和外观编码器,其中多个训练阶段包括其中外观编码器被训练的外观训练阶段、其中神经重新渲染网络被训练的重新渲染训练阶段、以及其中联合训练外观编码器和神经重新渲染网络的调整训练阶段。3d模型是由运动恢复结构(sfm)和多视图立体(mvs)技术生成的点云。图像数据缓存包括多个层,其中多个层包括颜色层、深度层和指示瞬态对象位置的语义标记映射层。神经重新渲染网络是第一神经网络,并且外观编码器是第二神经网络。
12.在附图和以下描述中阐述了一种或多种实施方式的细节。从描述和附图以及从权
利要求中,其他特征将是显而易见的。
附图说明
13.图1图示根据一方面的神经重新渲染系统。
14.图2图示根据一方面的被配置成生成3d模型的3d模型生成器。
15.图3图示根据一方面的图像数据缓存的示例。
16.图4图示根据一方面的具有被配置成生成语义标记映射的语义分割网络的瞬态对象检测器。
17.图5图示根据一方面的具有被配置成生成语义标记映射的图像到图像转换网络的瞬态对象检测器。
18.图6图示根据一方面的被配置成使用校准数据集来训练外观编码器和神经重新渲染网络的神经网络训练器。
19.图7图示根据一方面的被配置成生成要用作训练数据的校准数据集的校准数据集生成器。
20.图8图示根据一方面的3d模型和校准数据集的示例。
21.图9图示根据一方面的用于神经重新渲染系统的训练架构的示例。
22.图10图示根据一方面的被配置成执行多个训练阶段的神经网络训练器的示例。
23.图11图示根据一方面的根据外观训练阶段的神经重新渲染系统的训练架构的示例。
24.图12图示根据一方面的计算用于外观编码器的训练的三元组损失的示例。
25.图13图示根据一方面的计算用于训练外观编码器的三元组损失的示例。
26.图14图示根据一方面的根据重新渲染训练阶段的神经重新渲染系统的训练架构的示例。
27.图15图示根据一方面的生成语义标记映射的示例。
28.图16图示根据另一方面的生成语义标记映射的示例。
29.图17图示根据一方面的根据调整训练阶段的神经重新渲染系统的训练架构。
30.图18图示根据一方面的神经重新渲染系统的示例。
31.图19图示描绘根据一方面的神经重新渲染系统的示例操作的流程图。
32.图20图示根据一方面的神经重新渲染系统的示例计算设备。
具体实施方式
33.本公开涉及一种神经重新渲染系统,其在诸如季节和一天中的时间的不断变化的外观条件下记录、建模和重新渲染场景,在一些示例中,其指总场景捕获。神经重新渲染系统可以解决上述困难中的一个或多个。神经重新渲染系统可以获得场景(例如,户外场景、旅游地标)的照片(例如,互联网照片)的合集,并应用三维(3d)重构来注册照片并将场景近似为3d模型(例如,点云、纹理网格)。对于每张照片,神经重新渲染系统将场景点(如果使用点云)渲染到图像数据缓存(例如,帧缓存、深度缓存、g缓存)中,并且然后使用神经重新渲染网络(例如,神经网络)将图像数据缓存重新渲染为更逼真的图像。神经重新渲染网络可以被认为是将图像数据缓存转变成重新渲染的图像的图像转换网络,其中重新渲染的图像
是具有高度细节和分辨率的相对逼真的图像。神经重新渲染系统可以训练神经重新渲染网络来学习这些初始渲染(例如,图像数据缓存)到实际照片(例如,原始输入图像)的映射。该模型是在跨越广泛照明条件的多个公开可用图像数据集上被评估的。
34.神经重新渲染网络也接收指示诸如行人的瞬态对象的位置的外观代码(例如,潜在外观向量)和语义标记映射(例如,语义掩码),其中神经重新渲染网络可以使用图像数据缓存作为输入(例如,单个输入)生成具有不同外观条件的图像的多个输出。在一些示例中,外观条件不需要与从同一有利地位(具有固定外观)拍摄的真实照片相同。例如,重新渲染的图像的外观条件可以不同于具有与重新渲染的图像的视点相同的视点的输入图像(例如,对应的原始图像)的外观条件。例如,原始图像可以是晴天,但重新渲染的图像可以是多云的(或外观代码指定的任何外观条件)。在一些示例中,外观代码是两个输入图像的外观代码的插值。注意,可以根据任何类型的外观条件来生成重新渲染的图像。此外,神经重新渲染网络在语义标记映射上的调节可以减少或消除瞬态对象位置的幻觉,并提供从重新渲染的图像中删除瞬态对象(例如,人)的能力。
35.图1到18图示神经重新渲染系统100的各个方面。图1图示根据一个方面的神经重新渲染系统100的示例。神经重新渲染系统100可以被训练为在多个(或所有)可能的光照和天气条件下以相对高的真实度渲染场景(例如,室外场景)的图像。在一些示例中,神经重新渲染系统100用在虚拟现实应用和/或增强现实应用中。在一些示例中,神经重新渲染系统100可以被用在视频游戏应用中。在一些示例中,神经重新渲染系统100可以被用于图像映射服务(例如,web映射服务)。使用特定场景的输入图像102的照片合集101,神经重新渲染系统100可以通过在其中场景可以被观察的多个外观条件下对场景建模来捕获场景的外观空间(例如,完整的外观空间)。外观条件可以包括光照条件、天气条件和瞬时状态(例如,下雨、下雪、日出、多云、人群拥挤等)。然后,神经重新渲染系统100可以在任何外观条件下从场景的任何任意视点渲染图像。换句话说,神经重新渲染系统100可以接收输入图像102的照片合集101并且在由外观代码142表示的多个外观条件下生成照片般逼真的新颖视点。
36.由于外观的十足的多样性,例如,在夜间照明下、在特殊事件期间或在极端天气下,场景能够看起来显着不同,本文中讨论的技术可以单独地或组合地克服若干技术挑战。另外,本文中讨论的技术可以单独或组合克服若干技术挑战,用于使用公开可用的照片(例如,互联网照片)作为输入图像102渲染在多个外观条件下的照片般逼真的新颖视点。在一些示例中,照片合集101的输入图像102包括来自不同相机的图像、来自一天中不同时间的图像、具有不同光照条件的图像、包括瞬态对象(例如,人遮挡物等)的图像和/或具有校准不完善的图像。在一些示例中,输入图像102包括无控制的互联网图像的合集(例如,与仔细捕捉的连续镜头相反)。在一些示例中,输入图像102是特定场景的社区照片合集。为此,本文中讨论的各种技术可以单独地或组合地被应用。
37.神经重新渲染系统100可以使用输入图像102生成或构建三维(3d)模型104。3d模型104可以是场景的显式几何近似。在一些示例中,3d模型104被认为是显式中间3d表示,其被用作“脚手架”来预测图像。将参考图2进一步解释3d模型104的细节。然后,神经重新渲染系统100可以从3d模型104渲染图像数据缓存106。图像数据缓存106可以根据任何视点(包括未被输入图像102捕获的新视点)从3d模型104被渲染。神经重新渲染系统100可以根据第一视点将3d模型104渲染为图像数据缓存106或根据第二视点将3d模型104渲染为图像数据
缓存106,其中第二视点与第一视点不同。此外,第一视点和/或第二视点可以是新的(例如,未在输入图像102中表示)。在一些示例中,图像数据缓存106可以被认为是输入图像102的因素化表示,其将视点、外观条件和瞬态对象分离。逼真的图像(例如,重新渲染的图像110)从这些因素化表示被渲染。
38.在一些示例中,图像数据缓存106是一个或一系列缓存,其在像素级(例如,在每个像素)存储关于场景几何的信息。在一些示例中,图像数据缓存106是存储光照相关数据的物理存储器存储区域。在一些示例中,图像数据缓存106是3d重构图像(例如,从3d模型104渲染)。在一些示例中,图像数据缓存106被认为是帧缓存(或深帧缓存)。在一些示例中,图像数据缓存106被认为是粗略的初始图像。在一些示例中,图像数据缓存106是延迟着色缓存。在一些示例中,图像数据缓存106是几何缓存(g
‑
缓存)。参考图3进一步解释图像数据缓存106的细节。
39.然后,神经重新渲染系统100使用神经重新渲染网络108以从图像数据缓存106生成重新渲染的图像110。神经重新渲染网络108可以将近似初始场景渲染(例如,图像数据缓存106)变换成逼真的图像(例如,重新渲染的图像110)。换句话说,神经重新渲染网络108可以从初始粗略图像(例如,图像数据缓存106)生成逼真的图像(例如,重新渲染的图像110)。重新渲染的图像110可以是图像数据缓存106的逼真的重新渲染。
40.对神经重新渲染网络108的输入是图像数据缓存106(例如,g缓存、延迟着色帧缓存,其中每个渲染像素存储反射率(颜色)、深度和其他属性),并且神经重新渲染网络108的输出是不同外观条件下的逼真视图(例如,重新渲染的图像110)。如本公开稍后所讨论的,神经重新渲染网络108被训练以学习使用训练数据(其由神经重新渲染系统100作为校准(align)输入
‑
输出对)进行从初始渲染器(例如,图像数据缓存106)到照片般逼真图像(例如,重新渲染的图像110)的变换。在一些示例中,重新渲染的图像110可以具有比图像数据缓存106的质量更高的质量(例如,分辨率、细节)。
41.神经重新渲染网络108可以接收指定要被包括在重新渲染的图像110中的一个或多个外观条件的外观代码142(例如,具有值的外观向量)。在一些示例中,神经重新渲染网络108在神经重新渲染网络108的瓶颈层处接收外观代码142。如本公开后面所解释的,外观编码器138(例如,神经网络)被训练为对场景的任何外观条件进行编码,其生成外观代码142。在一些示例中,在神经重新渲染系统100的训练期间从输入图像102学习外观代码142。外观代码142可以概括或表示天气和光照条件以及可能影响场景外观的任何因素。换句话说,外观代码142的值可以决定重新渲染的图像110的外观条件,并且外观代码142的值的调整能够改变场景的一个或多个外观条件。
42.如果外观代码142指示一个或多个第一外观条件(例如,下雪、多云),则神经重新渲染网络108将图像数据缓存106变换为重新渲染的图像110,使得重新渲染的图像110包括一个或多个第一外观条件(例如,下雪、多云)。然后,外观代码142可以被修改为指示一个或多个第二外观条件(例如,晴),并且神经重新渲染网络108将图像数据缓存106变换成重新渲染的图像110,使得重新渲染的图像110包括一个或多个第二外观条件(例如,晴)。由于外观代码142被训练为捕捉场景的多个外观条件(例如,任何或所有外观条件),所以可以通过调节外观代码142的值根据任何外观条件(或者任何视点)来生成重新渲染的图像110。本文中讨论的外观建模可以避免(或减少)产生具有场景的单一(或平均)外观的重新渲染,从而
使重新渲染的图像110更加逼真和一致。进一步地,通过使用外观代码142作为神经重新渲染网络108的输入(在瓶颈层处),神经重新渲染网络108可以对于给定的输入产生不同的输出(例如,在多个不同外观条件下的某个视点的场景)。
43.在一些示例中,语义标记映射124被用作对神经重新渲染网络108的另一输入,以允许神经重新渲染网络108预测瞬态对象125的位置。例如,语义标记映射124可以标识一个或更多类别的信息(例如,在逐个像素的基础上)。在一些示例中,语义标记映射124指示不同类别(例如,汽车和两个行人)的多个瞬态对象125。语义标记映射124可以包括标识一个或多个瞬态对象125的位置的数据。为了防止(或减少)神经重新渲染网络108对原始照片(例如,输入图像102)上的瞬态对象125的位置出现幻觉,神经重新渲染系统100被构建使得语义标记映射124被用作神经重新渲染网络108的另一输入。在一些示例中,语义标记映射124是从输入图像102被导出的。在一些示例中,语义标记映射124从图像数据缓存106的部分被导出。在一些示例中,语义标记映射124被包括作为图像数据缓存106的一部分。
44.神经重新渲染网络108是神经网络(例如,深度神经网络)。在一些示例中,神经重新渲染网络108是定义神经网络的图像转换网络,其中图像转换网络被修改为在神经重新渲染网络108的瓶颈层处接收外观代码142并接收语义标记映射124作为对神经重新渲染网络108的另一个输入。在一些示例中,外观代码142(由神经重新渲染网络108接收)对应于具有相同视点的原始照片(例如,输入图像102)的外观代码142。例如,如果原始照片是晴,则重新渲染的图像110是晴。在一些示例中,外观代码142(由神经重新渲染网络108接收)对应于与具有与重新渲染的图像110的视点相同的视点的输入图像102的外观条件不同的外观条件。例如,原始照片可以是晴,但是外观代码142(由神经重新渲染网络108接收)将外观条件指定为多云。
45.神经重新渲染网络108可以是互连的节点组,每个节点表示人工神经元。节点以层被相互连接,一层的输出成为下一层的输入。神经网络变换输入层接收到的输入(例如,图像数据缓存106),通过一系列隐藏层将其变换,并经由输出层产生输出(例如,重新渲染的图像110)。每层由节点集的子集组成。隐藏层中的节点与上一层中的所有节点完全连接,并将其输出提供给下一层中的所有节点。单层中的节点彼此独立运行(即,不共享连接)。输出中的节点向请求处理提供变换后的输入。
46.在一些示例中,神经网络是卷积神经网络,其是不完全被连接的神经网络。因此,卷积神经网络的复杂度低于完全连接的神经网络。此外,与2d卷积运算一样,能够将相同的学习权重参数集应用于网络层的2d网格中的节点邻域。卷积神经网络还能够利用池化或最大池化来减少流过神经网络的数据的维数(并且因此复杂性),并且因此其能够减少所需的计算水平。这使得卷积神经网络中的输出计算比神经网络中的更快。在一些示例中,神经重新渲染网络108包括具有跳跃连接的对称编码器
‑
解码器。在一些示例中,神经重新渲染网络108包括具有三个尺度的多尺度补丁gan鉴别器并采用lsgan损失。作为重构损失,神经重新渲染网络108使用在vgg的i∈[1,5]的conv
i,2
处评估的感知损失。
[0047]
图2图示使用输入图像102生成3d模型104的3d模型生成器112。在一些示例中,3d模型生成器基于运动恢复结构(sfm)103和/或多视图立体(mvs)105生成3d模型104。sfm 103可以是用于从可以与局部运动信号耦合的2d图像序列估计3d结构的摄影测量范围成像技术。在一些示例中,sfm 103被用于构成图像,例如,估计照片位置、其定向和相机参数。在
一些示例中,mvs 105从sfm 103获得位置和定向信息并且创建3d模型104(例如,3d密集点云)。在一些示例中,3d模型104是点云104a(例如,3d密集点云)。点云104a可以是空间中表示场景的3d结构的数据点集。这些点表示底层采样表面上单个点的x、y和z几何坐标。在一些示例中,3d模型104是文本网格104b。文本网格104b是包括多边形的3d网格,其使用x、y和z轴中的参考点来定义具有高度、宽度和深度的形状。
[0048]
图3图示图像数据缓存106的示例。图像数据缓存106可以包括多个层114。每个层114可以包括关于特定视点的不同类别的图像数据。层114可以包括颜色(例如,红绿蓝(rgb))116、深度118、法线120、语义标记映射124和/或其他图像相关数据126。颜色116(或称为颜色层)可以是rgb漫散颜色向量,也称为反射率。深度118(或称为深度层)是具有对象深度值的深度图。法线120(或称为法线层)是用于确定表面的定向(例如,其在图像数据缓存106的2d域中的深度的梯度)的3d法线向量。其他图像相关数据126可以包括镜面反射强度浮动、光源位置和颜色向量以及相机的位置向量。
[0049]
在一些示例中,语义标记映射124可以包括标识一个或多个瞬态对象125的位置的数据。然而,语义标记映射124可以被用于标识任何类型的数据的类型(或分类)(例如,地面、天空、建筑物等)。尽管本文中讨论的描述将语义标记映射124称为标识瞬态对象125(或不同类别的瞬态对象125),语义标记映射124可以对其他类型的信息进行分类,其中神经重新渲染网络108能够被指示删除任何类型的对象(除了瞬态对象125之外或除了瞬态对象125)。瞬态对象125可以是被确定为可能移动的图像数据或图像片段(例如,人、汽车、通常不在场景中的对象等)。
[0050]
如本公开稍后所解释的,在一些示例中,语义标记映射124可以被用于生成不包括瞬态对象125或如人的瞬态对象125的某些类别的重新渲染的图像110。此外,在训练期间在语义标记映射124上调节神经重新渲染网络108可以帮助减少对瞬态对象125位置的幻觉。通常,语义标记映射124可以指示将数字图像分割为多个片段,其被用于定位对象和边界。在一些示例中,语义标记映射124可以为像素指定标签(例如,每个标签对应于不同的类别),其中语义标记映射124的生成可以涉及对图像中的每个像素指配标签,使得具有相同的标签的像素共享某些特性。在一些示例中,语义标记映射124是指示瞬态对象125的位置的语义掩码。在一些示例中,语义标记映射124是标识瞬态对象125的位置的分段或语义分段。在一些示例中,语义标记映射124是标识瞬态对象125的位置的分段映射。在一些示例中,语义标记映射124被包括为图像数据缓存106的一部分。在一些示例中,语义标记映射124与图像数据缓存106分离。在一些示例中,使用语义分割网络130(如参考图4所讨论的)从输入图像102(或地面真值图像102a)生成语义标记映射124。在一些示例中,使用图像到图像转换网络132(如参考图5所讨论的)从图像数据缓存106生成语义标记映射124。
[0051]
图4图示根据一个方面的包括瞬态对象检测器128的神经重新渲染系统100的示例。在一些示例中,在神经重新渲染网络108的训练期间,瞬态对象检测器128被配置成从对应的输入图像102(或地面真值图像102a)生成语义标记映射124。在一些示例中,瞬态对象检测器128包括语义分段网络130(例如,神经网络)。在神经重新渲染网络108的训练期间,语义分段网络130被配置成接收输入图像102(或地面真值图像102a)并生成语义标记映射124。在一些示例中,语义标记映射124被包括为对应于输入图像102的图像数据缓存106的一部分。然后,当从该图像数据缓存106生成重新渲染的图像110时,语义标记映射124能够
被用于删除瞬态对象125。
[0052]
图5图示根据另一方面的具有瞬态对象检测器128的神经重新渲染系统100的示例。在一些示例中,在训练神经重新渲染网络108之后(例如,在测试或运行期间),新的视点可以被生成,其中(如上所讨论的)从3d模型104生成具有该新颖的视点的图像数据缓存106。然而,在该点,图像数据缓存106可以不包括语义标记映射124。在一些示例中,瞬态对象检测器128被配置成从图像数据缓存106的部分生成语义标记映射124。在一些示例中,瞬态对象检测器128使用图像数据缓存106的颜色层116和深度118来生成语义标记映射124。瞬态对象检测器128包括图像到图像转换网络层132(例如,神经网络)。图像到图像转换网络132被配置成接收图像数据缓存106的颜色116和深度118并生成语义标记映射124。在一些示例中,语义标记映射124然后被包括为图像数据缓存106的一部分。然后,当从该图像数据缓存106生成重新渲染的图像110时,语义标记映射124能够被用于删除瞬态对象125。
[0053]
图6图示根据一个方面的具有神经网络训练器148的神经重新渲染系统100的示例。神经网络训练器148被配置成使用每个输入图像102的恢复的视点参数通过生成校准数据集146来训练网络,以渲染来自相同视图的场景的图像数据缓存106,例如,以像素程度校准。校准数据集146被认为是用于神经重新渲染系统100的训练数据。如本公开后面进一步解释的,校准数据集146包括多个图像对,其中每对包括输入图像102和图像数据缓存106,其从3d模型104渲染。对于特定对,输入图像102和图像数据缓存106来自同一视点,并且输入图像102与图像数据缓存106像素校准。神经网络训练器148被配置成使用校准数据集146训练外观编码器138和神经重新渲染网络108,其中校准数据集146是外观编码器138和神经重新渲染网络108的训练数据。
[0054]
图7图示具有校准数据集生成器160的神经重新渲染系统100的示例,该校准数据集生成器160被配置成使用3d模型104生成校准数据集146。图8图示3d模型104和校准数据集146的立体图。校准数据集146包括通过从每个输入图像102(i
i
)的视点v
i
渲染3d模型104的渲染图像和真实图像,其中v
i
包括经由sfm 103恢复的相机内部和外部。校准数据集生成器160可以为每个图像生成图像数据缓存106(b
i
),其可以包含颜色116(例如,反射率)、法线120、深度118和任何其他图像相关数据126。在一些示例中,图像数据缓存106仅使用颜色116和深度118,并且通过使用具有一个像素半径的z缓存的点抛雪球法(splatting)来渲染3d模型104。
[0055]
参考图7和8,校准数据集146包括具有输入图像102的第一组和具有图像数据缓存106的第二组。输入图像102被用于构建3d模型104。对于照片合集101中的每个输入图像102,校准数据集生成器160从该图像的估计视点渲染3d模型104以获得校准数据集146。
[0056]
在图7
‑
图8的示例中,输入图像102包括图像102
‑
1、图像102
‑
2和图像103
‑
3,并且图像数据缓存106包括图像数据缓存106
‑
1、图像数据缓存106
‑
2、以及图像数据缓存106
‑
3。图像102
‑
1和图像数据缓存106
‑
1被认为是第一对,其中图像数据缓存106
‑
1来自与图像102
‑
1相同的视点,并且图像数据缓存106
‑
1与图像102
‑
1像素校准。例如,校准数据集生成器160被配置成接收图像102
‑
1(具有特定视点)并且从具有与图像102
‑
1相同的视点的3d模型104生成图像数据缓存106
‑
1。图像102
‑
2和图像数据缓存106
‑
2被认为是第二对,其中图像数据缓存106
‑
2来自与图像102
‑
2相同的视点,并且图像数据缓存106
‑
2与图像102
‑
2像素校准。例如,校准数据集生成器160被配置成接收图像102
‑
2(具有特定视点)并且从具有与
图像102
‑
2相同的视点的3d模型104生成图像数据缓存106
‑
2。图像102
‑
3和图像数据缓存106
‑
3被认为是第三对,其中图像数据缓存106
‑
3来自与图像102
‑
3相同的视点,并且图像数据缓存106
‑
3与图像102
‑
3像素校准。例如,校准数据集生成器160被配置成接收图像102
‑
3(具有特定视点)并且从具有与图像102
‑
3相同的视点的3d模型104生成图像数据缓存106
‑
3。
[0057]
图9图示根据一个方面的总体训练架构的示例。神经网络训练器148被配置成基于校准数据集146来训练外观编码器138(使用三元组损失164)和神经重新渲染网络108(使用损失166),其包括输入图像102和图像数据缓存106的对。该对可以包括具有输入图像102
‑
1和图像数据缓存106
‑
1的第一对。第一对用作示例,其中对的数量可能是数百或数千。
[0058]
根据神经网络训练的一个方面,神经网络训练器148向神经重新渲染网络108提供图像数据缓存106
‑
1,并且从与图像数据缓存106
‑
1相同的视点将图像数据缓存106
‑
1变换为重新渲染的图像110
‑
1。在一些示例中,神经重新渲染网络108接收图像数据缓存106
‑
1的颜色116和深度118并且将颜色116和深度118变换为重新渲染的图像110
‑
1。在一些示例中,神经重新渲染网络108被配置成执行图像到图像的转换。然后,神经网络训练器148被配置成使用重新渲染的图像110
‑
1和输入图像102
‑
1来计算损失166。在一些示例中,损失166包括感知损失和/或对抗性损失。在一些示例中,损失166包括生成对抗网络(gan)损失和vgg(感知)损失。在一些示例中,输入图像102
‑
1是原始照片,并且将原始照片与神经重新渲染网络108生成的照片进行比较,并且两者之间的差异可以通过损失166来反映。换句话说,图像数据缓存106
‑
1被馈送到神经重新渲染网络108并且输入图像102
‑
1被用于训练神经重新渲染网络108(例如,教导神经重新渲染网络108重新渲染的图像110
‑
1应该看起来像输入图像102
‑
1)。
[0059]
如上所指示,相同的视点能够出现在不同的天气条件、不同的光照和/或一天中的不同时间等。在一些示例中,如果神经重新渲染系统100不包括外观编码器138,神经重新渲染网络108可以学习场景的平均外观和/或训练数据中每个视点的外观。然而,为了克服这个技术挑战,神经重新渲染系统100将神经重新渲染实现为多模型图像合成任务,其中神经重新渲染网络108以期望的外观为条件。
[0060]
例如,神经网络训练器148训练外观编码器138以学习将输入图像102的外观编码为外观代码142,其中外观代码142作为分离的输入提供(例如,在瓶颈层处)进入神经重新渲染网络108。此外,使用三元组损失164训练外观编码器138,这将在本公开后面进一步解释。外观编码器138可以是神经网络。在一些示例中,外观编码器138的层的数量小于神经重新渲染网络108中包括的层的数量(例如,外观编码器138是小于神经重新渲染网络108的神经网络)。
[0061]
神经网络训练器148可以训练外观代码142以使得具有相似外观的图像具有相似代码。在一些示例中,外观代码142包括潜在外观代码(或定义值或系数的潜在外观向量)。外观编码器138接收输入图像102和图像数据缓存106作为输入并计算外观代码142,其捕获输入图像102(例如,输出域i
i
)中的变化,其可以从图像数据缓存106(例如,输入域b
i
)被推导。通过让外观编码器138观察图像数据缓存106,外观编码器138可以通过将输入图像102中的光照与图像数据缓存106中的场景几何相关来学习相对复杂的外观模型。外观代码142可以概括或表示天气和光照条件以及可能影响场景外观的任何因素。外观代码142通常包
括关于外观的信息,诸如一天中的时间、是否为晴或者多云等。然后,神经重新渲染网络108以对应图像数据缓存106的视点和外观代码142为条件生成重新渲染的图像110。
[0062]
图10图示根据一个方面的被配置成执行分阶段训练操作的神经网络训练器148的示例。在一些示例中,神经网络训练器148根据多个训练阶段150使用校准数据集146来训练外观编码器138和神经重新渲染网络108。在一些示例中,训练阶段150由神经网络训练器148顺序地执行。
[0063]
在一些示例中,训练阶段150包括训练外观编码器138以估计场景的外观条件的嵌入空间的外观训练阶段152、训练神经重新渲染网络108以向逼真图像(例如,重新渲染的图像110)传输初始渲染(例如,图像数据缓存106)的重新渲染训练阶段154、以及(共同地)训练外观编码器138和神经重新渲染网络108的调整训练阶段158。在一些示例中,代替联合训练外观编码器138和神经重新渲染网络108,神经网络训练器148可以执行分阶段训练处理,该处理在外观训练阶段152期间最初使用基于代理风格的损失技术(其捕获图像的风格)来训练外观编码器138。
[0064]
然后,在重新渲染训练阶段154期间,神经网络训练器148使用来自已经训练的外观编码器138的固定外观嵌入来训练神经重新渲染网络108。在一些示例中,在重新渲染训练阶段154期间,神经网络训练器148对神经重新渲染网络108执行语义调节156,使得神经重新渲染网络108能够学会忽略瞬态对象125而不是试图对它们的位置产生幻觉。语义调节156可以指在语义标记映射124上调节神经重新渲染网络108。例如,通过在输出图像的预期语义标记映射124上调节神经重新渲染网络108来处理瞬态对象125(例如,行人和汽车),使得神经重新渲染网络108能够学会忽略这些瞬态对象125,而不是试图对它们的位置产生幻觉。语义标记映射124的生成和包括也可以有效地丢弃几何不能被稳健地重构但使用图像分割方法容易标识的小的或薄的场景特征(例如,灯柱)。如果期望,在语义标记映射124上调节神经重新渲染网络108还能够渲染没有人的场景。这可以阻止神经重新渲染网络108对由外观代码142中的瞬态对象125的位置(例如,外观向量)引起的变化进行编码,或者将这样的瞬态对象125与特定视点相关联。
[0065]
语义映射的一个单独的好处是它允许神经重新渲染网络108推断出场景中没有在3d重构中捕获的静态对象,诸如圣马可广场中的灯柱。这防止神经重新渲染网络108随意引入这种对象,而是让它们出现在语义标记映射124中它们被检测到的地方,这可能是显著地更简单的任务(例如,在处理能力和内存方面)。另外,通过将语义标记映射124添加到图像数据缓存106,可以许可外观编码器138以在计算外观代码142时推断出如天空或地面的语义类别。接下来,在调整训练阶段158期间,神经网络训练器148联合训练(例如,联合微调)外观编码器138和神经重新渲染网络108。分阶段训练可以改善场景外观的捕获和场景建模。
[0066]
图11图示根据一个方面的神经网络训练器148的外观训练阶段152。在外观训练阶段152中,神经重新渲染网络108被停用,其中仅外观编码器138使用输入图像102和图像数据缓存106的校准数据集146被训练。换句话说,在外观训练阶段152期间,外观编码器138与重新渲染网络108隔离。外观编码器138的训练为外观编码器138生成权重151。
[0067]
在外观训练阶段152期间,外观编码器138被配置成接收输入图像102和图像数据缓存的对并且计算外观代码142。在一些示例中,外观代码142是潜在外观向量其捕获不
能够从输入域b
i
(例如,图像数据缓存106)推断的输出域ii(例如,输入图像102)中的变化。外观编码器138被配置成将潜在外观向量(例如,外观代码142)计算为其中e
a
是将输入图像102(ii)和图像数据缓存(b
i
)两者作为输入的外观编码器138。在一些示例中,外观编码器138被配置成通过将输入图像102(i
i
)中的光照与图像数据缓存(b
i
)中的场景几何相关来学习外观模型。例如,为了计算潜在外观向量(例如,外观代码142),神经网络训练器148训练外观编码器138以产生尺寸为(w/2k、h/2k、z)的外观图像,其中k是外观编码器138中的子采样操作的数量,并且z是外观潜在向量的维数。该外观图像在空间维度上被平均,以产生z个维度的最终潜在外观向量。在一些示例中,z是8。然后潜在外观代码被附加到神经重新渲染网络108的瓶颈层上的特征维度中。
[0068]
为了训练外观编码器138,神经网络训练器148被配置成计算三元组损失164。图12和图13图示在外观训练阶段152期间计算三元组损失164的示例。例如,对于每个输入图像102,神经网络训练器148使用样式损失作为距离度量对近邻图像170和远邻图像172进行采样,神经网络训练器148训练外观编码器138以优化它们之间的三元组损失164。例如,输入图像102与近邻图像170之间的距离度量是小样式距离171(例如,相对小的样式损失),并且输入图像102和远邻图像172之间的距离度量是大样式距离173(例如,相对大的样式损失)。
[0069]
例如,参考图13,神经网络训练器148执行代理任务,其使用输入图像102之间的距离度量(例如,样式损失)将输入图像102的外观嵌入175优化到外观嵌入空间174中。如果两个图像在距离度量上靠近(例如,输入图像102和近邻图像170),则它们的外观嵌入175也应该在外观嵌入空间174中靠近。在一些示例中,距离度量可以忽略输入图像102的内容或视点和图像数据缓存106,其中外观编码器138可以编码独立于视点的外观嵌入175。
[0070]
为了训练外观嵌入175,神经网络训练器148使用三元组损失164,其中对于每个输入图像102,神经网络训练器148找到由样式损失给出的k个最近和最远邻居图像的集合,从其中神经网络训练器148可以分别采样正样本i
p
(例如,近邻图像170)和负样本i
n
(例如,远邻图像172)。神经网络训练器148计算三元组损失164如下:
[0071]
等式(1):
[0072]
其中是图像ii的vgg网络的第j层激活的gram矩阵并且α是分离裕量。
[0073]
图14图示被配置成执行重新渲染训练阶段154的神经网络训练器148的示例。在外观训练阶段152之后,神经网络训练器148被配置成执行重新渲染训练阶段154,其中外观编码器138的权重151被保持固定。在重新渲染训练阶段154期间,神经网络训练器148被配置成使用损失166(例如,gan和vgg损失)来训练神经重新渲染网络108。
[0074]
在重新渲染训练阶段154期间,神经网络训练器148向神经重新渲染网络108提供图像数据缓存106并且从与图像数据缓存106相同的视点将图像数据缓存106变换成重新渲染的图像110。在一些示例中,神经重新渲染网络108接收图像数据缓存106的颜色116和深度118并且将颜色116和深度118变换为重新渲染的图像110。在一些示例中,神经重新渲染网络108被配置成执行图像到图像的转换。然后,神经网络训练器148被配置成使用重新渲染的图像110和输入图像102来计算损失166。在一些示例中,损失166包括感知损失和/或对抗性损失。在一些示例中,损失166包括生成对抗网络(gan)损失和vgg(感知)损失。在一些示例中,输入图像102是原始照片,并且将原始照片与神经重新渲染网络108生成的照片进
行比较,并且两者之间的差异可以由损失166反映。
[0075]
图15图示被配置成在神经网络训练器148的训练期间生成语义标记映射124的神经网络训练器148的示例。另外,作为重新渲染训练阶段154的一部分,神经网络训练器148被配置成执行语义调节156以学习并检测瞬态对象125。在一些示例中,在重新渲染训练阶段154期间,语义标记映射124是从输入图像102被生成的。在一些示例中,输入图像102是地面真值图像102a,其中从地面真值图像102a生成语义标记映射124。在重新渲染训练阶段154期间,语义分割网络130被配置成接收输入图像102(或地面真值图像102a)并生成语义标记映射124。然后,语义标记映射124、颜色116和深度118(其形成图像数据缓存106的一部分)被提供给神经重新渲染网络108。
[0076]
在一些示例中,在训练神经重新渲染网络108之后(例如,在系统的测试或运行时期间),新颖视点可以被生成,其中(如在上面所讨论的)从3d模型104生成具有该新颖视点的图像数据缓存106。然而,此时,图像数据缓存106可能不包括语义标记映射124。
[0077]
图16图示根据一个方面的从图像数据缓存106的一部分生成语义标记映射124的示例。例如,图像到图像转换网络132被配置成从图像数据缓存106的颜色116和深度118的层生成语义标记映射124以生成语义标记映射124。瞬态对象检测器128包括图像到图像转换网络132。然后,当从该图像数据缓存106生成重新渲染的图像110时,语义标记映射124能够被用于删除瞬态对象125。
[0078]
在一些示例中,为了重新渲染虚拟相机路径,虚拟相机路径中每个帧的语义标记映射124被合成。为此,图像到图像转换网络132被训练,其将图像数据缓存106(b
i
)作为输入,并且在给定渲染图像数据缓存106(b
i
)的情况下估计该视点的“合理”语义标记在一些示例中,图像到图像转换网络132利用与神经重新渲染网络108相同的架构(减去注入的外观代码142)对来自校准数据集146的样本和地面真值图像s
i
(例如,地面真值图像102a)的语义标记映射124进行训练并且遮掩标记为由瞬态对象类别的精选列表定义的瞬态的像素上的损失。
[0079]
在重新渲染训练阶段154之后,神经网络训练器148被配置成执行调整训练阶段158。图17图示根据一个方面的被配置成执行调整训练阶段158的神经网络训练器148的示例。在调整训练阶段158期间,神经网络训练器148被配置成使用如上所解释的三元组损失164和损失166来训练外观编码器138和神经重新渲染网络108。这种分阶段方法简化并稳定外观编码器138的训练,从而能够训练具有较少正则化项的更简单的网络。特别地,循环和跨循环一致性损失、潜在向量重构损失和kl散度损失可以被去除。
[0080]
图18图示根据任何外观条件和/或具有(或不具有)瞬态对象125来生成重新渲染的图像110的神经重新渲染系统100的示例。在图18的示例中,假设已经训练神经重新渲染网络108和外观编码器138。缓存渲染器136可以接收指定视点的视点请求并且可以根据视点从3d模型104渲染图像数据缓存106。神经重新渲染网络108还可以接收图像数据缓存106和外观代码142并生成具有所请求外观条件的重新渲染的图像110。在一些示例中,外观条件不需要与从同一有利地位(具有固定外观)拍摄的真实照片相同。例如,重新渲染的图像110的外观条件可以不同于具有与重新渲染的图像110的视点相同的视点的输入图像102(例如,对应的原始图像)的外观条件。例如,原始图像可以是晴,但重新渲染的图像110可以是多云的(或由外观代码142指定的任何外观条件)。在一些示例中,外观代码142是两个输
入图像的外观代码的插值。在一些示例中,外观条件与原始图像相同(例如,因此具有相同的外观代码142)。
[0081]
在一些示例中,神经重新渲染网络108还可以接收指示从重新渲染的图像110中删除瞬时对象125的瞬时数据删除请求。如果神经重新渲染网络108接收到瞬时数据删除请求,则神经重新渲染网络108可以使用语义标记映射124作为标识瞬态对象125的指导,并且然后从重新渲染的图像110中删除它们。
[0082]
图19图示描绘根据一个方面的神经重新渲染系统100的示例操作的流程图1900。
[0083]
操作1902包括获得表示物理空间场景的三维(3d)模型104,其中从输入图像102的合集101构建3d模型104。操作1904包括从根据视点从3d模型104渲染图像数据缓存106,其中该图像数据缓存106表示从3d模型104重构的图像。操作1906包括通过神经重新渲染网络108接收图像数据缓存106。操作1908包括通过神经表示网络108接收指定外观条件的外观代码142。操作1910包括通过神经重新渲染网络108将图像数据缓存106变换成具有图像数据缓存106的视点和外观代码142指定的外观条件的重新渲染的图像110。在一些示例中,重新渲染的图像110的分辨率高于由图像数据缓存106表示的重构图像的分辨率。在一些示例中,与由图像数据缓存106表示的重构图像相比,重新渲染的图像110具有更高的细节水平。在一些示例中,与由图像数据缓存106表示的重构的图像相比,重新渲染的图像110是对物理空间的更准确(或忠实)的描述。
[0084]
图20示出可以与本文描述的技术一起使用的示例计算机设备2000和示例移动计算机设备2050的示例。计算设备2000包括处理器2002、存储器2004、存储设备2006、连接到存储器2004和高速扩展端口2010的高速接口2008,以及连接到低速总线2014和存储设备2006的低速接口2012。组件2002、2004、2006、2008、2010和2012中的每一个都使用各种总线互连,并且可以被安装在通用主板上或以其他方式适当地被安装。处理器2002能够处理用于在计算设备2000内执行的指令,包括存储在存储器2004或存储设备2006中的指令以在外部输入/输出设备(诸如耦合到高速接口2008的显示器2016)上显示用于gui的图形信息。在其他实施方式中,多个处理器和/或多个总线可以适当地使用,与多个存储器和存储器类型一起。另外,多个计算设备2000可以被连接,每个设备提供部分必要的操作(例如,作为服务器库、一组刀片式服务器或多处理器系统)。
[0085]
存储器2004存储在计算设备2000内的信息。在一个实施方式中,存储器2004是一个或多个易失性存储单元。在另一个实施方式中,存储器2004是一个或多个非易失性存储单元。存储器2004也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
[0086]
存储设备2006能够为计算设备2000提供大容量存储。在一个实施方式中,存储设备2006可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态存储设备、或设备的阵列,包括存储区域网络或其他配置中的设备。计算机程序产品能够有形地被体现在信息载体中。计算机程序产品还可以包含在被执行时执行一种或多种如上所述的方法的指令。信息载体是计算机可读介质或机器可读介质,诸如存储器2004、存储设备2006或处理器2002上的存储器。
[0087]
高速控制器2008管理计算设备2000的带宽密集型操作,而低速控制器2012管理较低带宽密集型操作。这种功能分配仅是示例性的。在一个实施方式中,高速控制器2008被耦合到存储器2004、显示器2016(例如,通过图形处理器或加速器),并且被耦合到可以接受各
种扩展卡(未示出)的高速扩展端口2010。在实施方式中,低速控制器2012被耦合到存储设备2006和低速扩展端口2014。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器被耦合到一个或多个输入/输出设备,诸如键盘、指向设备、扫描仪或诸如交换机或路由器的联网设备。
[0088]
如图所示,计算设备2000可以以多种不同的形式被实现。例如,它可以被实现为标准服务器2020,或者被多次实现在这种服务器的组中。它也可以被实现为机架服务器系统2024的一部分。此外,它还可以在诸如膝上型计算机2022的个人计算机中被实现。可替代地,来自计算设备2000的组件可以与移动设备(未示出)中的其他组件进行组合,诸如设备2050。每个这种设备可以包含一个或多个计算设备2000、2050,并且整个系统可以由彼此通信的多个计算设备2000、2050组成。
[0089]
在其他组件中,计算设备2050包括处理器2052、存储器2064、诸如显示器2054的输入/输出设备、通信接口2066和收发器2068。还可以向设备2050提供存储设备,诸如微驱动器或其他设备,以提供附加的存储。部件2050、2052、2064、2054、2066和2068中的每个部件均使用各种总线被互连,并且多个组件可以被安装在通用主板上或视以其他方式适当地被安装。
[0090]
处理器2052能够执行计算设备2050内的指令,包括存储在存储器2064中的指令。处理器可以被实现为包括单独的以及多个模拟和数字处理器的芯片的芯片组。例如,处理器可以提供设备2050的其他部件的协作,诸如用户界面的控制、由设备2050运行的应用程序以及由设备2050的无线通信。
[0091]
处理器2052可以通过控制接口2058和耦合到显示器2054的显示器接口2056与用户通信。例如,显示器2054可以是tft lcd(薄膜晶体管液晶显示器)或者oled(有机发光二极管)显示器,或其他适当的显示技术。显示器接口2056可以包括用于驱动显示器2054向用户呈现图形和其他信息的适当电路。控制接口2058可以从用户接收命令并且将其转换以提交给处理器2052。另外,与处理器2052通信的外部接口2062可以被提供,以使设备2050能够与其他设备的近区通信。例如,外部接口2062可以在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且还可以使用多个接口。
[0092]
存储器2064存储在计算设备2050内的信息。存储器2064能够被实现为一个或多个计算机可读介质、一个或多个易失性存储单元或者一个或多个非易失性存储单元中的一种或多种。扩展存储器2074还可以被提供并且通过扩展接口2072将其连接到设备2050,例如,扩展接口2072可以包括simm(单列直插存储器模块)卡接口。这种扩展存储器2074可以为设备2050提供额外的存储空间,或者也可以为设备2050存储应用程序或其他信息。具体地,扩展存储器2074可以包括用于执行或补充上述处理的指令,并且还可以包括安全信息。因此,例如,扩展存储器2074可以被提供为用于设备2050的安全模块,并且可以利用许可安全使用设备2050的指令进行编程。另外,安全应用与附加信息一起可以经由simm卡,诸如以不可入侵的方式将识别信息放置在simm卡上而被提供。
[0093]
例如,存储器可以包括闪存和/或nvram存储器,如下所述。在一个实施方式中,计算机程序产品有形地被体现在信息载体中。计算机程序产品包含在被执行时执行一种或多种如上所述的方法的指令。信息载体是诸如存储器2064、扩展存储器2074或处理器2052上的存储器的计算机可读介质或机器可读介质,例如,其可以通过收发器2068或外部接口
2062被接收。
[0094]
设备2050可以通过在必要时可以包括数字信号处理电路的通信接口2066进行无线通信。通信接口2066可以提供各种模式或协议下的通信,诸如gsm语音呼叫、sms、ems或mms消息传递、cdma、tdma、pdc、wcdma、cdma2000或gprs等等。例如,这种通信可以通过射频收发器2068而发生。另外,短程通信可以发生,诸如使用蓝牙、wi
‑
fi或其他这种收发器(未示出)。另外,gps(全球定位系统)接收器模块2070可以向设备2050提供附加的导航和与位置有关的无线数据,其可以由设备2050上运行的应用程序适当地使用。
[0095]
设备2050还可以使用可以从用户接收语音信息并将其转换为可用的数字信息的音频编解码器2060可听地通信。音频编解码器2060可以同样地为用户生成可听声音,诸如通过扬声器,例如在设备2050的听筒中。这种声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括由在设备2050上运行的应用程序生成的声音。
[0096]
如图所示,计算设备2050可以以多种不同的形式被实现。例如,它可以被实现为蜂窝电话2080。它也可以被实现为智能电话2082、个人数字助理或另一类似的移动设备的一部分。
[0097]
本文描述的系统和技术的各个实施方式可以在数字电子电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合中被实现。这些各个实施方式可以包括在一个或多个计算机程序中的实施方式,该程序可以在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用的或通用的,其被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且被耦合以向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。另外,术语“模块”可以包括软件和/或硬件。
[0098]
这些计算机程序(也被称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够以高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文中所使用的,术语“机器可读介质”、“计算机可读介质”指用于向可编程处理器提供机器指令和/或数据的任意计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指用于向可编程处理器提供机器指令和/或数据的任意信号。
[0099]
为了提供与用户的互动,本文描述的系统和技术能够在具有显示器设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)以向用户显示信息和用户可以通过其向计算机提供输入的键盘和指向设备(例如鼠标或轨迹球)的计算机上被实现。其他种类的设备也能够被用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
[0100]
本文描述的系统和技术能够被实现在包括后端部件(例如,作为数据服务器),或包括中间件部件(例如,应用服务器)或包括前端部件(例如,具有用户可以通过其与本文描述的系统和技术的实施方式进行交互的图形用户界面或web浏览器的客户端计算机),或这种后端、中间件或前端部件的任意组合的计算系统。系统的组件能够通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“lan”)、广域网
(“wan”)和互联网。
[0101]
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端与服务器之间的关系是通过在各自计算机上运行并且彼此具有客户端
‑
服务器关系的计算机程序产生。
[0102]
在一些实施方式中,图20中描绘的计算设备可以包括与虚拟现实(vr头戴式耳机2090)连接的传感器。例如,包括在图20中描绘的计算设备2050或其他计算设备上的一个或多个传感器,可以向vr头戴式耳机2090提供输入,或者通常,可以向vr空间提供输入。传感器能够包括但不限于触摸屏、加速度计、陀螺仪、压力传感器、生物特征传感器、温度传感器、湿度传感器和环境光传感器。计算设备2050能够使用传感器确定vr空间中计算设备的绝对位置和/或检测到的旋转,然后能够将其用作vr空间的输入。例如,计算设备2050可以作为诸如控制器、激光指示器、键盘、武器等的虚拟对象被并入vr空间。当用户将计算设备/虚拟对象并入vr空间时其位置能够允许用户定位计算设备以某种方式在vr空间中观看虚拟对象。例如,如果虚拟对象表示激光指示器,用户能够像实际的激光指示器一样操纵计算设备。用户能够左和右、上和下、画圈等方式移动计算设备并且以与使用激光指示器类似的方式使用设备。
[0103]
在一些实施方式中,包括在或连接到计算设备2050上的一个或多个输入设能够被用作vr空间的输入。输入设备可以包括但不限于触摸屏、键盘、一个或多个按钮、轨迹板、触摸板、指向设备、鼠标、轨迹球、操纵杆、相机、麦克风、耳机或具有输入功能的耳塞、游戏控制器或其他可连接的输入设备。当计算设备被并入vr空间中时,与计算设备2050上包括的输入设备进行交互的用户能够使特定动作在vr空间中发生。
[0104]
在一些实施方式中,计算设备2050的触摸屏能够被渲染为vr空间中的触摸板。用户能够与计算设备2050的触摸屏进行交互。例如,在vr头戴式耳机2090中,将交互渲染为在vr空间中渲染的触摸板上的移动。渲染的移动能够控制vr空间中的对象。
[0105]
在一些实施方式中,计算设备2050上包括的一个或多个输出设备能够向vr空间中的vr头戴式耳机2090的用户提供输出和/或反馈。输出和反馈能够是视觉的、触觉的或音频的。输出和/或反馈能够包括但不限于振动、一个或多个灯或频闪灯的打开及关闭或闪烁和/或闪光、发出警报、播放铃声、播放歌曲以及播放音频文件。输出设备能够包括但不限于振动马达、振动线圈、压电设备、静电设备、发光二极管(led)、频闪灯和扬声器。
[0106]
在一些实施方式中,计算设备2050可以表现为在计算机生成的3d环境中的另一个对象。用户与计算设备2050的交互(例如,旋转、摇动、触摸触摸屏、在触摸屏上滑动手指)能够被解释为与vr空间中的对象的交互。在vr空间中的激光指示器的示例中,计算设备2050表现为在计算机生成的3d环境中的虚拟激光指示器。当用户操纵计算设备2050时,vr空间中的用户看到激光指示器的移动。用户在计算设备2050或vr头戴式耳机2090上的vr空间中从与计算设备2050的交互中接收反馈。
[0107]
在一些实施方式中,除了计算设备之外,还能够在计算机生成的3d环境中渲染一个或多个输入设备(例如,鼠标,键盘)。渲染的输入设备(例如,渲染的鼠标、渲染的键盘)能够在vr空间中渲染时被使用,以控制vr空间中的对象。
[0108]
计算设备2000旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。计算设备2050旨
在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。本文所示的组件,它们的连接和关系以及它们的功能仅是示例性的,并不意味着限制本文中描述和/或要求保护的发明的实施方式。
[0109]
已经描述了多个实施例。然而,将理解的是在不脱离本说明书的精神和范围的情况下可以进行各种修改。
[0110]
另外,附图中描绘的逻辑流程不需要所示的特定顺序、或连续顺序来实现期望的结果。另外,其他步骤可以被提供,或者步骤可以从所描述的流程中被去除,并且可以向所描述的系统中添加其他组件或从其中移除其他组件。因此,其他实施例在所附权利要求的范围内。
[0111]
虽然所公开的发明构思包括在所附权利要求中定义的那些,但是应当理解,还可以根据以下实施例来定义本发明构思:
[0112]
实施例1是一种神经重新渲染的方法,该方法包括获得表示物理空间场景的三维(3d)模型,根据视点从3d模型渲染图像数据缓存,通过神经重新渲染网络接收图像数据缓存,通过神经重新渲染网络接收表示外观条件的外观代码,以及通过神经重新渲染网络将图像数据缓存变换为具有图像数据缓存的视点和由外观代码指定的外观条件的重新渲染的图像。
[0113]
实施例2是实施例1的方法,其中图像数据缓存表示来自3d模型的重构图像。
[0114]
实施例3是实施例1至2中的任一项的方法,其中从3d模型输入图像的合集被构建。
[0115]
实施例4是实施例1至3中的任一项的方法,其中重新渲染的图像的外观条件不同于具有与重新渲染的图像的视点相同的视点的输入图像的外观条件。
[0116]
实施例5是实施例1至4中的任一项的方法,其中重新渲染的图像的分辨率高于重构的图像(或图像数据缓存)的分辨率。
[0117]
实施例6是实施例1至5中的任一项的方法,其中该方法进一步包括修改外观代码以表示场景的第二外观条件,其中变换包括根据修改后的外观代码生成重新渲染的图像使得重新渲染的图像包括第二外观条件。
[0118]
实施例7是实施例1至6中的任一项的方法,其中重新渲染的图像的外观条件与具有与重新渲染的图像的视点相同的视点的输入图像的外观条件相同。
[0119]
实施例8是实施例1至7中的任一项的方法,其中该方法进一步包括由神经重新渲染网络接收指示瞬态对象在场景中的位置的语义标记映射。
[0120]
实施例9是实施例1至8中的任一项的方法,其中变换包括使用语义标记映射作为指导生成重新渲染的图像,使得瞬态对象从重新渲染的图像中被删除。
[0121]
实施例10是实施例1至9中的任一项的方法,其中图像数据缓存包括语义标记映射。
[0122]
实施例11是实施例1至10中的任一项的方法,其中该方法包括通过图像到图像转换网络接收图像数据缓存。
[0123]
实施例12是实施例1至11中的任一项的方法,其中该方法包括由图像到图像转换网络基于图像数据缓存生成语义标记映射。
[0124]
实施例13是实施例1至12中的任一项的方法,其中图像数据缓存包括多个层。
[0125]
实施例14是实施例1至13中的任一项的方法,其中所述多个层包括颜色层和深度
层。
[0126]
实施例15是实施例1至14中的任一项的方法,其中变换包括基于颜色层和深度层生成重新渲染的图像。
[0127]
实施例16是实施例1至15中的任一项的方法,其中该方法包括使用3d模型生成校准数据集。
[0128]
实施例17是实施例1至16中的任一项的方法,其中校准数据集包括多个图像对。
[0129]
实施例18是实施例1至17中的任一项的方法,其中每一对包括输入图像和从3d模型渲染的图像数据缓存。
[0130]
实施例19是实施例1至18中的任一项的方法,其中输入图像和图像数据缓存来自相同的观点。
[0131]
实施例20是实施例1至19中的任一项的方法,其中图像数据缓存与输入图像像素校准。
[0132]
实施例21是实施例1至20中的任一项的方法,其中该方法包括基于校准数据集的部分生成一个或多个语义标记映射。
[0133]
实施例22是实施例1至21中的任一项的方法,其中语义标记映射指示瞬态对象和非瞬态对象的位置。
[0134]
实施例23是实施例1至22中的任一项的方法,其中该方法包括使用校准数据集和语义标记映射来训练神经重新渲染网络。
[0135]
实施例24是实施例1至23中的任一项的方法,其中该方法包括训练外观编码器以使用校准数据集学习场景的外观代码。
[0136]
实施例25是实施例1至24中的任一项的方法,其中该方法包括使用具有三元组损失的校准数据集来训练外观编码器以学习场景的外观代码。
[0137]
实施例26是一种系统,包括一个或多个计算机和一个或多个存储指令的存储设备,这些指令在由一个或多个计算机执行时,使一个或多个计算机执行实施例1至25中的任一项的方法。
[0138]
实施例27是一种利用计算机程序编码的计算机存储介质,该程序包括可操作的指令,当被数据处理装置执行时,使数据处理装置执行实施例1至25中的任一项的方法。
[0139]
实施例28是一种存储可执行指令的非暂时性计算机可读介质,当由至少一个处理器执行时,这些可执行指令被配置成使至少一个处理器获得表示物理空间场景的三维(3d)模型,根据视点从3d模型渲染图像数据缓存,由神经重新渲染网络接收图像数据缓存,由神经重新渲染网络接收表示外观条件的外观代码,并且通过神经重新渲染网络将图像数据缓存变换为重新渲染的图像,使得重新渲染的图像具有外观代码指定的外观条件和图像数据缓存的视点。
[0140]
实施例29是实施例28的非暂时性计算机可读介质,其中图像数据缓存表示来自3d模型的重构图像。
[0141]
实施例30是实施例28至29中的任一项的非暂时性计算机可读介质,其中3d模型从输入图像的合集被构建。
[0142]
实施例31是实施例28至30中的任一项的非暂时性计算机可读介质,其中可执行指令包括使至少一个处理器通过神经重新渲染网络接收语义标记映射的指令,该语义标记映
射指示场景中瞬态对象的位置。
[0143]
实施例32是实施例28至31中的任一项的非暂时性计算机可读介质,其中可执行指令包括使至少一个处理器通过神经重新渲染网络使用语义标记映射作为指导生成重新渲染的图像的指令,使得瞬态对象从重新渲染的图像中被删除。
[0144]
实施例33是实施例28至32中的任一项的非暂时性计算机可读介质,其中图像数据缓存包括语义标记映射。
[0145]
实施例34是实施例28至33中的任一项的非暂时性计算机可读介质,其中可执行指令包括使至少一个处理器通过图像到图像转换网络接收图像数据缓存,以及由图像到图像转换网络基于图像数据缓存生成语义标记映射的指令。
[0146]
实施例35是实施例28至34中的任一项的非暂时性计算机可读介质,其中该可执行指令包括使所述至少一个处理器通过语义分割网络接收与图像数据缓存相关的地面真值图像的指令。
[0147]
实施例36是实施例28至35中的任一项的非暂时性计算机可读介质,其中该可执行指令使至少一个处理器通过语义分割网络基于地面真值图像生成语义标记映射。
[0148]
实施例37是实施例28至36中的任一项的非暂时性计算机可读介质,其中图像数据缓存包括多个层。
[0149]
实施例38是实施例28至37中的任一项的非暂时性计算机可读介质,其中该多个层包括颜色层和深度层。
[0150]
实施例39是实施例28至38中的任一项的非暂时性计算机可读介质,其中要变换的指令包括基于颜色层和深度层生成重新渲染的图像的指令。
[0151]
实施例40是根据实施例28至39中的任一项所述的方法。
[0152]
实施例41是一种系统,包括一个或多个计算机和存储可操作的指令的一个或多个存储设备,当由一个或多个计算机执行时,使一个或多个计算机执行实施例28至39中的任一项的操作。
[0153]
实施例42是一种神经重新渲染系统,其包括三维(3d)生成器,该3d生成器被配置成基于输入图像的合集生成表示物理空间场景的3d模型;以及神经重新渲染网络,该神经重新渲染网络被配置成变换从3d模型渲染到重新渲染的图像的图像数据缓存。
[0154]
实施例43是实施例42的神经重新渲染系统,进一步包括外观编码器,该外观编码器被配置成将场景的多个外观条件编码为外观代码。
[0155]
实施例44是实施例42至43中的任一项的神经重新渲染系统,其中该神经重新渲染网络被配置成接收外观代码,使得外观代码的修改使渲染的图像根据不同外观条件被生成。
[0156]
实施例45是实施例42至44中的任一项的神经重新渲染系统,进一步包括神经网络训练器,神经网络训练器被配置成使用训练数据训练神经重新渲染网络和外观编码器。
[0157]
实施例46是实施例42至45中的任一项的神经重新渲染系统,其中神经网络训练器根据多个训练阶段被配置成神经重新渲染网络和外观编码器。
[0158]
实施例47是实施例42至46中的任一项的神经重新渲染系统,其中多个训练阶段包括外观训练阶段,其中外观编码器被训练。
[0159]
实施例48是实施例42至47中的任一项的神经重新渲染系统,其中多个训练阶段包
括其中神经重新渲染网络被训练的重新渲染训练阶段。
[0160]
实施例49是根据实施例42至48中的任一项所述的神经重新渲染系统,其中所述多个训练包括联合训练外观编码器和神经重新渲染网络的调整训练阶段。
[0161]
实施例50是实施例42至49中的任一项的神经重新渲染系统,其中3d模型是运动恢复结构(sfm)和多视图立体(mvs)技术生成的点云。
[0162]
实施例51是实施例42至50中的任一项的神经重新渲染系统,其中图像数据缓存包括多个层,所述多个层包括颜色层、深度层和指示瞬态对象的位置的语义标记映射层。
[0163]
实施例52是根据实施例42至51中的任一项的神经重新渲染系统,其中神经重新渲染网络是第一神经网络,并且外观编码器是第二神经网络。
[0164]
实施例53是一种方法,其包括实施例42至52中的任一个的神经重新渲染系统的操作。
[0165]
实施例54是一种利用计算机程序编码的计算机存储介质,该程序包括可操作的指令,当被数据处理设备执行时,使数据处理设备执行实施例42至52中的任一项的神经重新渲染系统的操作。
再多了解一些
本文用于企业家、创业者技术爱好者查询,结果仅供参考。