使用隐式辐射函数的色彩和红外三维重构
文献发布时间:2024-01-17 01:26:37
技术领域
实施例涉及捕获和渲染三维(3D)视频。实施例进一步涉及训练用于重新渲染图像以供使用神经辐射场(NeRF)显示的神经网络模型。
背景技术
增强现实(AR)和虚拟现实(VR)的兴起已经产生对使用表现捕获(performancecapture)装备(例如,相机和视频装备)的高质量3D内容显示(例如,人类、角色、演员和/或动物等)的需求。最近,实时表现捕获系统已经实现遥现(telepresence)、增强视频和现场表现广播的新用例(除了离线多视表现捕获系统之外),其中许多系统根据观看者的位置和视点自适应地提供计算机生成的场景视图。
配置成渲染计算机图形对象的一些计算机能够在给定多个现有视图的情况下以指定视图渲染对象。例如,给定从相机捕获的关于包括这些计算机图形对象的场景的若干深度图像和彩色图像,目标可以是从不同的视点合成场景的新视图。场景能够是真实的或合成的,在场景是真实的情况下使用物理色彩和深度传感器捕获视图,在场景是合成的情况下使用诸如光栅化的渲染算法捕获视图。对于真实场景,存在许多深度感测技术,诸如飞行时间传感器、基于结构光的传感器以及立体或多视立体算法。这些技术可以涉及具有被动式或主动式照明模式的可见或红外传感器,其中模式可以随时间变化。
现有表现捕获系统可能会遇到一个或多个技术问题,包括扭曲的几何形状、不良的纹理和不准确的光照、不良解析的边缘、不准确色彩的某一组合,因此能够难以达到AR和VR应用所需的质量水平。这些技术问题能够导致达不到期望的最终用户体验。
发明内容
在至少一个方面中,一种方法包括接收基于场景的神经辐射场(NeRF)体表示(volumetric representation)渲染的图像,其中场景的NeRF表示基于视频数据的所捕获的帧,每个所捕获的帧包括场景的彩色图像、当场景由宽场IR光源照明时捕获的场景的宽场IR图像以及场景的多个深度IR图像。当场景由IR光点的不同图案照明时,捕获深度IR图像中的每一个,并且在不同时间发生由IR光点的不同图案进行的照明。NeRF表示提供位置和观看方向与场景中的每个位置处的色彩和光学密度之间的映射,其中场景中的每个位置处的色彩和光学密度使得能够从新的视角观看场景,并且NeRF表示从新的视角提供位置和观看方向与IR光点的不同图案中的每一个的IR值之间的映射。定义合成函数以从接收到的图像生成增强图像,并且使用基于最小化由神经网络生成的预测图像与由真实值(groundtruth)相机在训练期间捕获的真实值图像之间的损失函数而训练的神经网络来计算合成函数。
实施方案能够单独或以彼此任意组合包括以下特征中的一个或多个。
所述方法能够进一步包括在接收图像之前:使用体捕获(volumetric capture)系统捕获场景的3D模型并且基于NeRF体表示渲染图像。
真实值相机和体捕获系统二者在训练期间都能够指向一视图,并且真实值相机能够比体捕获系统产生更高质量的图像。
场景的NeRF表示能够被配置成针对相对于场景的多个观看位置和观看方向,生成场景的位置特定和视点特定的色彩、IR和密度图像数据。
位置特定和视点特定的IR图像数据能够包括宽场IR图像数据和针对IR光点的不同图案中的每一个的图案化IR图像数据。
损失函数能够包括基于映射到神经网络中的层的激活的分割真实值图像与映射到神经网络中的层的激活的分割预测图像之间的重构差的重构损失,分割真实值图像由真实值分割掩模分割以去除背景像素并且分割预测图像由预测分割掩模分割以去除背景像素,其中基于针对帧捕获的可见光信息和针对帧捕获的IR光两者的组合来预测该预测分割掩模。
对于高于最大误差或低于最小误差的像素,对重构差能够进行显著性重新加权以对重构差进行向下加权。
损失函数可以包括基于真实值分割掩模与预测分割掩模之间的掩模差的掩模损失,其中基于针对帧捕获的可见光信息和针对帧捕获的IR光两者的组合来预测该预测分割掩模。
预测图像能够是预测的立体图像对中的一个,并且损失函数能够包括基于预测的立体图像对之间的立体差的立体损失。
神经网络能够基于全卷积模型。
使用神经网络计算合成函数能够包括计算左眼视点的合成函数以及计算右眼视点的合成函数。
使用神经网络计算合成函数能够被实时执行。
帧的场景的色彩图像能够包括去马赛克色彩通道。
帧的场景的色彩图像能够包括三个独立的非去马赛克的色彩通道,并且其中场景的NeRF表示所基于的视频数据的所捕获的帧包括三个独立的非去马赛克的色彩通道。
在另一总体方面,表现捕获系统包括:体捕获系统,该体捕获系统被配置成渲染从所捕获的3D模型的至少一个视点重构的至少一个图像,该至少一个图像包括缺陷;以及渲染系统,该渲染系统被配置成接收来自体捕获系统的至少一个图像并且实时生成至少一个增强图像,其中减少至少一个接收到的图像的缺陷。该渲染系统包括神经网络,该神经网络被配置成通过在使用之前的训练生成至少一个增强图像,该训练包括最小化由神经网络在训练期间生成的预测图像与由与所述体捕获系统协调的至少一个真实值相机在训练期间捕获的对应真实值图像之间的损失函数,其中该损失函数的最小化基于视频数据的所捕获的帧,每个所捕获的帧包括场景的彩色图像、当场景由宽场IR光源照明时捕获的场景的宽场IR图像以及场景的多个深度IR图像,其中当场景由IR光点的不同图案照明时捕获深度IR图像中的每一个。
附图说明
根据本文中给出的详细描述和附图,示例实施例将更充分地得到理解,其中相同的元件由相同的附图标记表示,这些附图标记仅通过说明的方式给出,因此不限制示例实施例。
图1图示根据至少一个示例实施例的表现捕获系统的框图。
图2A图示根据至少一个示例实施例的渲染系统的框图。
图2B图示根据至少一个示例实施例的3D内容系统的示例的框图。
图3A和3B图示根据至少一个示例实施例的用于渲染3D视频的帧的方法。
图4图示根据至少一个示例实施例的学习模块系统的框图。
图5图示根据至少一个示例实施例的神经重新渲染模块的框图。
图6A图示没有稀疏性约束的卷积神经网络中的层。
图6B图示具有稀疏性约束的卷积神经网络中的层。
图7A和7B用图片图示根据至少一个示例实施例的从低质量图像生成视觉增强的重新渲染图像的深度学习技术。
图8用图片图示低质量图像的示例。
图9用图片图示根据至少一个示例实施例的用于卷积神经网络模型的示例训练数据。
图10A用图片图示根据至少一个示例实施例的重构损失。
图10B用图片图示根据至少一个示例实施例的掩模损失。
图10C用图片图示根据至少一个示例实施例的头部损失。
图10D用图片图示根据至少一个示例实施例的立体损失。
图10E用图片图示根据至少一个示例实施例的时间损失。
图10F用图片图示根据至少一个示例实施例的显著性损失。
图11示出根据至少一个示例实施例的计算机装置和移动计算机装置的示例。
图12图示根据至少一个示例实施例的在立体显示器中提供内容的示例输出图像的框图。
图13是实现本文中所描述的技术的过程1300的示意性流程图。
应注意,这些图旨在图示在某些示例实施例中利用的方法、结构和/或材料的一般特征并且补充以下提供的书面描述。然而,这些图并非按比例绘制,并且可能并非准确地反映任何给定实施例的精确结构或性能特性,并且不应被解释为定义或限制示例实施例所涵盖的值或属性的范围。例如,为了清楚起见,可以减小或夸大层、区域和/或结构元件的相对厚度和定位。在各种附图中使用类似或相同附图标记旨在指示类似或相同元件或特征的存在。
具体实施方式
尽管示例实施例可以包括各种修改和替代形式,但是其实施例以示例示出并且在本文中详细地描述。然而,应理解,并不意图将示例实施例限于所公开的特定形式,而是相反,示例实施例将涵盖落入权利要求书的范围内的所有修改、等效物和替代方案。在整个图的描述中,相同的附图标记指代相同元件。
从现有视图合成场景的新视图的传统方法采用神经辐射场(NeRF)。在这种方法中,静态场景能够被表示为连续的五维函数,该函数输出在空间中的每个点(x,y,z)处在每个方向
为了渲染该五维函数或NeRF,能够:1)使相机光线穿过场景以生成采样的3D点集,2)使用这些点以及其对应2D观看方向作为神经网络的输入,以产生色彩和密度的输出集,以及3)使用经典的体渲染技术将这些色彩和密度累积到2D图像中。因为这个过程是自然可微分的,所以能够使用梯度下降以通过最小化每个观察到的图像与根据我们的表示渲染的对应视图之间的误差来优化NeRF。跨多个视图来将这种误差最小化鼓励网络通过将高体密度和准确色彩指派给包含真实底层场景内容的位置来预测场景的相干模型。
NeRF是连续的体表示。正是函数F:(x,d)→(c,σ)将3D位置x=(x,y,z)和观看方向d=(φ,θ)映射到RGB色彩c=(r,g,b)和密度σ。结合体渲染技术,NeRF能够表示具有照片级真实感(photo-realistic)质量的场景。出于这个原因,NeRF被建立在解决照片级真实感人类捕获问题的基础上。
尽管NeRF非常成功,但当试图用逼真的图像质量表示具有人类的场景时,NeRF能够遇到一些缺陷。例如,场景的特征能够使用扭曲的几何形状、不良纹理、不准确的光照、不良解析的边缘、不准确的色彩等进行渲染。
为了解决这些限制,能够使用机器学习技术和模型来增强NeRF的性能。例如,能够生成高质量训练数据,并将该高质量训练数据用于训练机器学习模型,该机器学习模型用于改进根据基于NeRF的低质量图像的高质量图像的渲染。在一些实施方案中,除了场景的彩色(例如,RGB)图像之外,训练数据能够包括场景的宽场红外图像和基于叠加在场景中的对象上的多个不同红外图案的纹理数据。红外宽场图像和红外纹理数据能够被使用在生成场景的NeRF的机器学习模型中。
表现捕获装备(即,表现捕获系统)可以被用于捕获主体(例如人)以及其三维(3D)运动。表现捕获装备能够包括体捕获系统,该体捕获系统被配置成捕获生成3D模型(例如,NeRF)必需的数据,并且(在一些情况下)使用视图的体重构(volumetric reconstruction)渲染3D体重构(即,图像)。能够实现各种体捕获系统,包括(但不限于)主动式立体相机、飞行时间(TOF)系统、激光雷达系统、被动式立体相机等。在一些实施方案中,能够使用单个体捕获系统,而在其它实施方案中,(例如,在协调捕获中)可以使用多个体捕获系统。
体重构可以渲染图像的视频流(例如,实时),并且可以渲染对应于左眼视点和右眼视点的单独图像。左眼视点和右眼视点2D图像可以被显示在立体显示器上。立体显示器可以是头部跟踪立体显示器。可以实现各种立体显示器,包括(但不限于)增强现实(AR)眼镜显示器、虚拟现实(VR)头戴设备显示器、自由立体显示器(例如,头部跟踪自由立体显示器)。在一些实施方案中,立体显示器可以被用于遥现系统中,其中能够向在第二位置的人呈现在第一位置的人的高度真实感渲染。
缺陷(即伪影)可能存在于渲染的2D图像和/或其在立体显示器上的呈现中。伪影可以包括图形伪影,诸如强度噪声、低解析度纹理和色彩差异(off colors)。伪影可以进一步包括诸如不一致的左/右视图的立体伪影。伪影可能是由于与表现捕获装备相关联的限制/问题。例如,由于复杂性或成本约束,表现捕获设备在收集的数据中可能受到限制。而且,伪影可能是由于与收集和传输深度信息使得能够渲染3D图像相关联的限制/问题。另外,伪影可能是由于与通过网络(例如,带宽)传递数据相关联的限制。本公开描述减少或消除伪影的系统和方法,而不管伪影的来源。因此,所公开的系统和方法不限于任何特定表现捕获系统或立体显示器。
在一个可能实施方案中,与现有表现捕获系统相关联的技术问题能够导致3D体重构图像包含孔洞、噪声、低解析度纹理和色彩伪影。这些技术问题能够导致VR和AR应用中达不到期望的最终用户体验。
上述技术问题的技术解决方案实现机器学习,以实时增强体视频。几何非刚性重构管线(pipeline)能够与深度学习组合,以产生更高质量图像。所公开的系统能够专注于视觉上显著的区域(例如,人脸),丢弃非相关信息,诸如背景,其中背景被精确地定义,并且能够使用多光谱信息,包括从场景收集的可见光(彩色)信息和红外(IR)光信息来生成高质量图像。所描述的解决方案能够产生用于在VR和AR应用中实现的时间稳定的渲染,其中左视图和右视图应该一致以获得最佳用户体验。
技术解决方案能够包括实时表现捕获(即,图像和/或视频捕获),以实时获得近似的几何形状和纹理。由于几何伪影、不良纹理和不准确的光照,这些系统的最终2D渲染输出能够是低质量的。因此,示例实施方案能够使用深度学习来增强最终渲染,以实时获得更高质量的结果。例如,能够使用深度学习架构,该深度学习架构将延迟着色深度缓冲区和/或来自多视点表现捕获系统的最终2D渲染图像作为输入,并且学习实时增强这些图像,从而产生最终的高质量重新渲染(见图7A和7B)。这种方法能够被称为神经重新渲染。
本文中描述了一种神经重新渲染技术。使用神经重新渲染技术的技术优势包括学习实时增强来自表现捕获系统的低质量输出,其中图像包含孔洞、噪声、低解析度纹理和色彩伪影。在图8中示出低质量图像的一些示例。另外,能够预测将用户与背景的其余部分隔离的二元分割掩模。使用神经重新渲染技术的技术优势还包括一种用于通过以下操作来减少这种深度架构所需的总体带宽和计算量的方法:在学习阶段迫使网络学习从低解析度输入图像到高解析度输出渲染的映射,然后使用来自现场表现捕获系统的低解析度图像(例如,增强的)。
使用神经重新渲染技术的技术优势还包括专门的损失函数,该损失函数能够使用语义信息产生面部上的高质量的结果。为了减少异常值(outliers)的影响,可以使用将损失集中在最相关区域的显著性重新加权(saliency reweighing)方案。损失函数是用于VR和AR头戴设备的设计,其中目标是预测同一对象的两个一致视图。使用神经重渲染技术的技术优势还包括通过施行连续重构帧之间的一致性来实现时间稳定的重新渲染。
图1图示根据至少一个示例实施例的表现捕获系统(即,捕获系统)的框图。如图1中所示,捕获系统100包括具有目击(witness)相机的3D相机装备110、编码器120、解码器130、渲染模块140和学习模块150。具有目击相机110的相机装备包括用于捕获3D视频作为视频数据5的第一组相机,以及用于从至少一个视点捕获高质量(例如,与第一组相机比较)图像作为真实值图像数据30的至少一个目击相机。相机装备还能够包括用于捕获红外(IR)的红外传感器,该红外传感器可以被用于例如确定深度和/或纹理信息和/或用于区分场景中的对象或主体与背景。真实值图像数据30能够是包括更多细节(例如,更高清晰度、更高解析度、更高像素数、更多/更佳深度信息的添加等)的图像和/或包括捕获后处理的图像,以与关联于3D视频的帧或图像相比改进图像质量。真实值图像数据30能够包括(一组)真实值图像、图像的标签、图像分割信息、图像和/或片段分类信息、位置信息等。由学习模块150使用真实值图像数据30来训练神经网络模型。真实值图像数据30的每个图像能够具有视频数据5的对应帧。
编码器120能够被配置成压缩由第一组相机捕获的3D视频。编码器120能够被配置成接收视频数据5并且使用标准压缩技术来生成压缩视频数据10。解码器130能够被配置成接收压缩视频数据10并且使用标准压缩技术的逆来生成重构视频数据15。图1中所示的虚线/点线指示,在替代实施方案中,能够绕过编码器120和解码器130,并且能够将视频数据5直接输入到渲染模块140。这能够减少捕获系统100所使用的处理资源。然而,学习模块150可以不包括由训练过程中的压缩和解压缩引入的误差。
渲染模块140被配置成基于重构视频数据15(或视频数据5)生成左眼视图20和右眼视图25。左眼视图20能够是用于在头戴式显示器(HMD)的左眼显示器上显示的图像。右眼视图25能够是用于在HMD的右眼显示器上显示的图像。渲染能够包括处理与重构视频数据15(或视频数据5)相关联的场景(例如,场景的NeRF)的3D模型以生成数字图像。3D模型能够包括例如着色信息、照明信息、纹理信息、几何信息等。渲染能够包括通过图形处理单元(GPU)实现渲染算法。因此,渲染能够包括将3D模型传递到GPU。
学习模块150能够被配置成训练神经网络或模型,以基于一个或多个低质量图像生成高质量图像,该低质量图像可以包括在不同波长范围内捕获的图像,不同波长范围可以包括可见和IR波长范围。在示例实施方案中,使用神经网络或模型基于左眼视图20(或右眼视图25)迭代地预测图像。然后,使用损失函数将预测图像的每次迭代与从真实值图像数据30中选择的对应图像进行比较,直到损失函数被最小化(或低于阈值)。下文更详细地描述学习模块150。
图2A图示根据至少一个示例实施例的渲染系统的框图。如图2A中所示,渲染系统200包括解码器130、渲染模块140和神经重新渲染模块210。如图2A中所示,压缩视频数据10由解码器130解压缩以生成重构视频数据15。渲染模块140然后基于该重构视频数据15生成左眼视图20和右眼视图25。
神经重新渲染模块210被配置成基于左眼视图20生成重新渲染的左眼视图35,并且基于右眼视图25生成重新渲染的右眼视图40。神经重新渲染模块210被配置成使用由学习模块150训练的神经网络或模型来生成重新渲染的左眼视图35,作为左眼视图20的更高质量表示。神经重新渲染模块210被配置成使用由学习模块150训练的神经网络或模型来生成重新渲染的右眼视图40,作为右眼视图25的更高质量表示。下文更详细地描述神经重新渲染模块210。
图1中所示的捕获系统100能够是增强视频渲染技术的第一阶段(或阶段1),并且图2A中所示的渲染系统200能够是增强视频渲染技术的第二阶段(或阶段2)。图3A(阶段1)和3B(阶段2)图示根据至少一个示例实施例的用于渲染3D视频的帧的方法。关于图3A和3B描述的步骤可以由于存储在与设备和/或服务(例如,云计算服务)相关联的存储器中的软件代码的执行而被执行,并且由与设备和/或服务相关联的至少一个处理器执行。然而,预期替代实施例,诸如体现为专用处理器的系统。尽管下文描述的步骤被描述为由处理器执行,但是步骤不一定由同一处理器执行。换句话说,至少一个处理器可以执行下文关于图3A和3B描述的步骤。
图2B图示根据至少一个示例实施例的3D内容系统的示例的框图。3D内容系统201能够由多个人使用。此处,3D内容系统201由第一人202和第二人204使用。例如,第一人202和第二人204正在使用3D内容系统201来参与3D遥现会话。在该示例中,3D内容系统201能够允许每个人202、204看到另一人的高度真实感并且视觉上相容(visually congruent)的表示,从而促进他们彼此交互,类似于他们彼此实际存在。
每个人202、204能够具有对应3D舱(pod)。此处,第一人202具有舱206,并且第二人204具有舱208。舱206和208能够提供与3D内容相关的功能,包括但不限于:捕获用于3D显示的图像、处理和呈现图像信息、以及处理和呈现音频信息。舱206和/或208能够包括处理器和集成为一个单元的感测装置的集合。
3D内容系统201能够包括一个或多个3D显示器。此处,3D显示器210被提供用于舱206,并且3D显示器212被提供用于舱208。3D显示器210和/或212能够使用多种类型的3D显示器技术中的任何一种为相应观看者(此处例如,人202或204)提供立体视图。在一些实施方案中,3D显示器210和/或212能够包括独立式(standalone)单元(例如,自支撑或悬挂在壁上)。在一些实施方案中,3D显示器210和/或212能够包括可穿戴技术(例如,头戴式显示器)。在一些实施方案中,3D显示器210和/或212能够包括自由立体显示组件。
3D内容系统201能够被连接到一个或多个网络。此处,网络214被连接到舱206和舱208。仅举两个示例,网络214能够是公共可用网络(例如,互联网)或专用网络。网络214能够是有线的,或无线的,或两者的组合。网络214能够包括或利用一个或多个其它装置或系统,包括但不限于一个或多个服务器(未示出)。
舱206和/或208能够包括与3D信息的捕获、处理、传输或接收和/或3D内容的呈现相关的多个部件。舱206和208能够包括用于用可见光和/或IR光照明场景的主体(例如,第一人202和第二人204)的一个或多个照明源,以及用于捕获图像内容以生成将包括在3D呈现中的图像的相机。在一些实施方案中,照明源能够包括IR激光器,该IR激光器照射通过衍射光学元件(DOE)以生成照明要成像场景的IR激光的点的图案。能够利用与捕获场景的可见图像的帧速率同步的周期性来周期性地生成IR激光的点的图案,从而能够在获得场景的彩色图像的1/20秒内获得IR激光的点图案的IR图像。IR激光的点能够被用于根据所捕获的图像确定和指派场景中的深度信息。在一些实施方案中,能够生成多个不同(例如,非退化)图案的激光点,并且这些激光点被用于照明场景,其中利用与捕获场景的可见图像的帧速率同步的周期性来周期性地生成不同图案中的每一个,使得能够在获得场景的彩色图像的1/20秒内获得不同图案的IR激光点中的每一个的IR图像。通过使用多个图案,能够使用来自多个图案的更丰富信息为场景中的对象生成更好的深度数据。
还能够利用来自一个或多个IR照明源的宽场、非图案IR光照明场景,这些IR照明源在宽角度上提供大致均匀的IR光强度,并且能够捕获场景的IR图像。能够利用与捕获场景的可见图像的帧速率同步的周期性来周期性地生成来自一个或多个照明源的宽场非图案IR光,并且能够在利用宽场非图案IR光照明场景时捕获场景的IR图像(即,“引导”图像),使得能够获得场景的彩色图像的1/20秒内获得场景的宽场IR图像。主体202、204的图像被捕获的环境能够包括具有对IR光的高反射率的背景240、242,使得能够使用主体202、204的IR图像将所捕获的图像中的主体的边缘与背景区分开。背景240、242能够包括织物材料,该织物材料包括对IR光高度反射的材料。例如,织物能够包括编织到织物中的金属材料(例如,金属纤维)。在另一示例中,织物材料的纤维可以被涂覆有IR反射颜料(IRP),该IRP可以包括例如金属氧化物、陶瓷材料或无机材料。
此处,舱206包括相机216和218,每个相机都能够检测在一个或多个波长范围的光,包括可见色彩和IR波长。例如,相机216和/或218能够基本上设置在舱206的外壳内,使得相应相机216和/或218的物镜或透镜通过外壳中的一个或多个开口捕获图像内容。在一些实施方案中,相机216和/或218能够例如以独立式装置的形式(例如,具有到舱206的有线和/或无线连接)与外壳分离。相机216和218能够被定位和/或定向成捕获(此处)人202的足够有代表性的视图。虽然相机216和218优选地不应遮挡人202的3D显示器210的视图,但是通常能够任意地选择相机216和218的放置。例如,相机216和218中的一个能够被定位于人202的脸部上方的某个地方,另一个能够被定位于脸部下方的某个地方。例如,相机216和218中的一个能够被定位于人202的脸部右侧的某个地方,另一个能够被定位于脸部左侧的某个地方。例如,舱208能够以类似方式包括相机220和222。
检测可见光的相机220和222能够包括光电传感器阵列和色彩滤波器,以允许传感器的各个像素检测不同波长的光。例如,每个像素包括用于检测光的红色(R)、绿色(G)和蓝色(B)波长的子像素。能够通过去马赛克过程处理由像素的子像素检测到的光信号,以将色彩指派给像素。在一些实施方案中,在通过管道神经(pipe neural)重新渲染模块210将独立的R、G和B通道数据从一个舱206发送到另一舱208之前,不通过去马赛克过程处理由子像素检测到的光信号。相反,独立的R、G和B通道数据由接收舱处的神经重新渲染模块210处理以生成要观看的图像。
舱206和/或208能够包括一个或多个深度传感器,以捕获要在3D呈现中使用的深度数据。这种深度传感器(例如,IR敏感相机)能够被视为3D内容系统201中的深度捕获部件的一部分,以用于表征由舱206和/或208捕获的场景以便在3D显示器上正确地表示这些场景。而且,系统能够跟踪观看者头部的位置和定向,使得能够以与观看者的当前视点相对应的外观来渲染3D呈现。此处,舱206包括深度传感器224。类似地,舱208能够包括深度传感器224。多种类型的深度感测或深度捕获中的任一个能够被用于生成深度数据。在一些实施方案中,执行辅助立体深度捕获。能够使用IR光点的图案照明场景,该图案能够由包括在深度传感器224中的激光器和DOE生成,并且能够在两个相应相机之间执行立体匹配。此处,通过图示的方式,深度传感器224使用IR光束228A和228进行操作,其中光束228A与228表示生成点图案的多个光束。根据情况,光束228A和228B能够从舱206朝向正在进行3D捕获的场景中的结构或其它对象(例如,人202)行进,和/或从这些结构/对象行进到舱206中的对应检测器。能够处理检测到的信号以生成对应于一些或整个场景的深度数据。因此,光束228A-B能够被视为与3D内容系统201所依赖的信号有关,以为了3D表示的目的表征场景。例如,光束228A-B能够包括IR信号。类似地,通过图示的方式,舱208能够使用光束230A-B进行操作。
深度数据能够包括或基于关于场景的信息,该信息反映深度传感器(例如,深度传感器224)与场景中的对象之间的距离。对于与场景中的对象相对应的图像中的内容,深度数据反映到对象的距离(或深度)。例如,相机与深度传感器之间的空间关系能够是已知的,并且能够被用于将来自相机的图像与来自深度传感器的信号相关联以生成图像的深度数据。
在一些实施方案中,深度捕获能够包括基于结构化光或编码光的手段。例如,IR光的图案(例如,点图案或条纹图案)能够以相对高的帧速率分布到场景上。例如,当光信号在时间上彼此足够接近,使得即使人或对象在运动,场景也不被预期在连续信号之间发生显著变化时,能够认为帧速率很高。投影到场景中的对象上的所得图案能够由深度传感器中的IR敏感相机检测,并且能够处理检测到的图案(例如,使用三角测量或其它技术)以确定场景在一个或多个方面的几何形状。
在一些实施方案中,当捕获场景的视频数据包括例如由舱206、208的相机捕获的场景视频数据的每个彩色图像帧的人202、204时,能够捕获场景的至少一个对应宽场IR图像并且能够捕获多个深度IR图像,其中多个深度IR图像中的每一个捕获场景上的不同图案的IR点的IR图像。然后,能够使用所捕获的视频数据并且针对视频数据的每个帧训练机器学习模型。然后,训练后的模型能够被用于基于针对低质量视频数据的每个帧捕获的场景的彩色图像、宽场IR图像和多个深度IR图像,从低质量的视频数据帧生成增强质量的视频数据帧。
由3D内容系统201捕获的图像能够进行处理,然后被显示为3D呈现。此处,3D图像204'被呈现在3D显示器210上。因此,人202能够将3D图像204'感知为人204的3D表示,人204可以位于远离人202的位置。3D图像202'被呈现在3D显示器212上。因此,人204能够将3D图像202'感知为人202的3D表示。下文描述3D信息处理的示例。
3D内容系统201能够允许参与者(例如,人202和204)与彼此和/或与其他人进行音频通信。在一些实施方案中,舱206包括扬声器和麦克风(未示出)。例如,舱208能够类似地包括扬声器和麦克风。因此,3D内容系统201能够允许人202和204彼此和/或与其他人进行3D遥现会话。
图3A是用于训练机器学习模型以生成视频图像的过程的示意性流程图。如图3A中所示,在步骤S305中,使用包括至少一个目击相机的相机装备捕获第一三维(3D)视频的多个帧。3D视频数据帧的捕获包括:场景的至少一个彩色图像的捕获;当场景由宽场IR光源照明时场景的至少一个IR图像的捕获;以及场景的多个IR图像的捕获,其中在场景由IR光点的不同图案照明时捕获每个IR图像。在一些实施方案中,场景的所捕获的彩色图像能够是经去马赛克的图像。在一些实施方案中,场景的所捕获的彩色图像能够包括图像的每个像素的至少三个独立色彩通道(例如,红色、绿色和蓝色)(即,非经去马赛克的)的原始数据。例如,相机装备(例如,具有目击相机110的3D相机装备)能够包括用于捕获3D视频(例如,可见和IR图像数据)的第一组相机,以及用于捕获高质量(例如,与第一组相机相比较)图像(例如,真实值图像数据30)的至少一个目击相机。第一3D视频的多个帧能够是由第一组相机捕获的视频数据。
在步骤S310中,使用至少一个目击相机针对第一3D视频的多个帧中的每一帧捕获至少一个二维(2D)真实值图像。例如,至少一个2D真实值图像能够是由至少一个目击相机捕获的高质量图像。至少一个2D真实值图像能够在与第一3D视频的多个帧中的对应帧基本上相同的时刻捕获。
在步骤S315中,压缩第一3D视频的多个帧中的至少一个。例如,使用标准压缩技术来压缩第一3D视频的多个帧中的至少一个。在步骤S320中,解压缩第一3D视频的多个帧中的至少一个帧。例如,使用对应于标准压缩技术的标准解压缩技术来解压缩第一3D视频的多个帧中的至少一个。
在步骤S325中,基于解压缩的帧渲染至少一个第一2D左眼视图图像,并且基于解压缩帧渲染至少一个第一2D右眼视图图像。例如,将与解压缩第一3D视频(例如,重构视频数据15)的帧相对应的场景的3D模型传送到GPU。GPU能够基于场景的3D模型生成数字图像(例如,左眼视图20和右眼视图25),并返回数字图像作为第一2D左眼视图和第一2D右眼视图。
在步骤S330中,基于渲染的第一2D左眼视图图像和对应的2D真实值图像来训练用于头戴式显示器(HMD)的左眼视图的模型,并且基于渲染的第一2D右眼视图图像和对应的2D真实值图像来训练用于HMD的右眼视图的模型。模型基于IR通道中的信息(例如,基于在宽场和图案化IR照明下捕获的场景的图像)以及可见通道中的信息。例如,使用神经网络或模型基于第一2D左眼视图迭代地预测图像。然后,使用损失函数将预测图像的每次迭代与对应的2D真实值图像相比较,直到损失函数被最小化(或低于阈值)。另外,使用神经网络或模型基于第一2D右眼视图迭代地预测图像。然后,使用损失函数将预测图像的每次迭代与对应的2D真实值图像相比较,直到损失函数被最小化(或低于阈值)。
图3B是用于基于压缩图像数据和训练后的机器学习模型生成和渲染图像的过程的示意性流程图。压缩图像数据和模型基于IR通道中的信息(例如,基于在宽场和图案化IR照明下捕获的场景的图像)以及可见通道中的信息。如图3B中所示,在步骤S335中,接收对应于第二3D视频的压缩视频数据。例如,使用3D相机装备捕获的视频数据在远程装置处作为第二3D视频捕获、压缩和传送(例如,通过远程位置处的计算装置)。该压缩第二3D视频由本地装置接收。第二3D视频能够不同于第一3D视频。
在步骤S340中,解压缩对应于第二3D视频的视频数据。例如,使用与由远程装置使用的标准压缩技术相对应的标准解压缩技术来解压缩第二3D视频(例如,压缩视频数据10)。
在步骤S345中,选择第二3D视频的帧。例如,能够选择解压缩第二3D视频的下一帧,以供显示在播放第二3D视频的HMD上。替代地或另外,播放第二3D视频能够利用视频帧的缓冲区或队列。因此,选择第二3D视频的帧能够包括基于缓冲或排队技术(例如,FIFO、LIFO等)从队列中选择帧。
在步骤S350中,基于所选择的帧来渲染第二2D左眼视图图像,并且基于所选择的帧来渲染第二2D右眼视图图像。例如,将与解压缩的第二3D视频(例如,重构视频数据15)的帧相对应的场景的3D模型传送到GPU。GP能够基于场景的3D模型生成数字图像(例如,左眼视图20和右眼视图25),并返回数字图像作为第二2D左眼视图和第二2D右眼视图。
在步骤S355中,使用用于HMD的左眼视图的训练后的模型和卷积神经网络架构重新渲染第二2D左眼视图图像,并且使用用于HMD的右眼视图的训练后的模型和卷积神经网络架构重新渲染第二2D右眼视图图像。例如,在阶段1中训练的神经网络或模型能够被用于生成重新渲染的第二2D左眼视图(例如,重新渲染的左眼视图35)作为第二2D左眼视图(例如,左眼视图20)的更高质量表示。在阶段1中训练的神经网络或模型能够被用于生成重新渲染的第二2D右眼视图(例如,重新渲染的右眼视图35)作为第二2D右眼视图(例如,右眼视图25)的更高质量表示。然后,在步骤S360中,将重新渲染的第二2D左眼视图图像和重新渲染的第二2D右眼视图图像显示在HMD的至少一个显示器上。
图4图示根据至少一个示例实施例的学习模块系统的框图。学习模块150可以是或包括至少一个计算装置,并且能够表示被配置成执行本文中所描述的方法的几乎任何计算装置。因此,学习模块150能够包括可以被用于实现本文所描述的技术,或其不同或未来版本的各种部件。举例来说,学习模块150被图示为包括至少一个处理器405以及至少一个存储器410(例如,非暂时性计算机可读介质)。
如图4中所示,学习模块150包括至少一个处理器405和至少一个存储器410。至少一个处理器405和至少一个存储器410经由总线415通信地耦合。至少一个处理器405可以被用于执行存储在至少一个存储器410上的指令,由此实现本文中所描述的各种特征和功能,或附加或替代特征和功能。至少一个处理器405和至少一个存储器410可以被用于各种其它目的。具体地,至少一个存储器410能够表示各种类型的存储器和相关硬件和软件的示例,它们可以被用于实现本文中所描述的模块中的任一个。
至少一个存储器410可以被配置成存储与学习模块系统150相关联的数据和/或信息。例如,至少一个存储器410可以被配置成存储模型420、多个系数425和多个损失函数430。至少一个存储器410进一步包括量度模块435和列举模块450。量度模块435包括多个误差定义440和误差计算器445。
在示例实施方案中,至少一个存储器410可以被配置成存储代码段,该代码段在由至少一个处理器405执行时使至少一个处理器405选择并传送多个系数425中的一个或多个。此外,至少一个存储器410可以被配置成存储代码段,该代码段在由至少一个处理器405执行时使至少一个处理器405接收由学习模块150系统使用的信息,以生成新系数425和/或更新现有系数425。至少一个存储器410可以被配置成存储代码段,该代码段在由至少一个处理器405执行时使至少一个处理器405接收由学习模块150使用的信息,以生成新模型420和/或更新现有模型420。
模型420表示至少一个神经网络模型。神经网络模型能够定义神经网络的操作、操作的流程和/或操作之间的互连。例如,操作能够包括归一化、填充、卷积、舍入等。模型还能够定义操作。例如,卷积能够由多个滤波器C、空间范围(或滤波器大小)KxK和步幅S定义。卷积不一定是正方的。例如,空间范围能够是KxL。在卷积神经网络场境(context)(参见图6A和6B)中,卷积神经网络中的每个神经元能够表示滤波器。因此,每层具有8个神经元的卷积神经网络能够具有使用一(1)个层的8个滤波器、使用两(2)个层的16个滤波器、使用三(3)个层的24个滤波器……使用8个层的64个滤波器……使用16个层的128个滤波器等。在卷积神经网络中,层能够具有任何数目的神经元。
卷积神经网络能够具有带有不同数目的神经元的层。KxK空间范围(或滤波器大小)能够包括K个列和K(或L)个行。KxK空间范围能够是2x2、3x3、4x4、5x5、(KxL)2x4等等。卷积包括将KxK空间范围中心定在一个像素上,并对空间范围中的所有像素进行卷积,并且基于空间范围中的所有像素的所有卷积(例如,总和)生成像素的新值。然后,基于步幅将空间范围移动到新像素,并且对新像素重复卷积。步幅能够是例如一(1)或二(2),其中步幅一移动到下一像素并且步幅二跳过一像素。
系数425表示变量值,该变量值能够被用于模型420和/或损失函数430中的一个或多个中以使用和/或训练神经网络。模型420、系数425和损失函数的唯一组合能够定义神经网络以及如何训练该唯一神经网络。例如,模型420中的模型能够被定义为包括两个卷积运算和两者之间的互连。系数425能够包括定义每个卷积的空间范围(例如,2x4、2x2等)和步幅(例如,1、2等)的对应条目。另外,损失函数430能够包括定义用于训练模型的损失函数和损失的阈值(例如,最小值、最大值、最小变化、最大变化等)的对应条目。
量度模块435包括多个误差定义440和误差计算器445。误差定义能够包括例如用于计算误差和误差的阈值(例如,最小值、最大值、最小变化、最大变化等)的函数或算法。误差计算器445能够被配置成使用该算法基于两个图像之间的逐像素差来计算两个图像间的误差。误差的类型能够包括光度误差、峰值信噪比(PSNR)、结构相似性(SSIM)、多尺度SSIM(MS-SSIM)、均方误差、感知误差等。列举模块450能够被配置成迭代系数425中的一个或多个。
在示例实施方案中,列举模块450针对模型420中的一个改变系数中的一个,同时保持系数的其余部分不变。在每次迭代(例如,训练左眼视图的迭代)期间,处理器405使用具有视图(例如,左眼视图20)作为输入的模型来预测图像,并计算损失(可能使用真实值图像数据30),直到损失函数被最小化和/或损失的变化被最小化。然后,误差计算器445计算预测图像与真实值图像数据30的对应图像之间的误差。如果误差是不可接受的(例如,与先前迭代相比,大于阈值或大于阈值变化),则由列举模块450改变系数中的另一个。在示例实施方案中,能够优化两个或更多个损失函数。在该实施方案中,列举模块450能够被配置成在两个或更多个损失函数之间选择。
根据示例实施方案,根据从体重构(例如,重构视频数据15)渲染的图像I(例如,左眼视图20和右眼视图25),能够生成或计算I的增强版本(表示为I
在训练时,身体部位语义分割算法能够被用于生成I
计算F(I)的神经网络的训练能够包括训练神经网络以优化损失函数。
其中经验地选择权重w
代替使用图像域中的标准l
其中M
掩模损失
其中||·||
头部损失
图10C中示出头部损失的示例。
时间损失
图10E中示出计算的时间损失的示例。
当神经网络被应用于左眼和右眼视图时,能够为VR和AR应用设计立体损失
图10D中示出立体损失的示例。
训练模型时计算上述损失能够基于场景的所捕获的彩色图像数据、场景的所捕获的宽场IR图像数据以及基于场景中对象上的IR光图案的所捕获的图像的深度数据。使用所有这些通道来训练模型增强模型的性能和由模型生成的图像的准确性。例如,如果两个相邻像素具有不同的色彩和/或反射率值以及不同的深度值,则可以对像素施加很少惩罚或不施加惩罚,因为它们被认为代表不同的特征。然而,如果两个相邻像素具有非常相似的色彩和反射率值,但具有不同的深度值,则可以将不同深度值的平均值指派给两个像素。因此,在训练和应用模型时,考虑场景的所有所捕获的色彩图像数据、场景的所捕获的宽场IR图像数据以及基于场景中对象上的IR光图案的所捕获的图像的深度数据能够增强区分和渲染图像中的边缘和光滑表面的能力。
上述损失从图像中的每个像素(掩蔽的像素除外)接收贡献。然而,分割掩模中的缺陷可能会使网络偏向不重要的区域。具有最高损失的像素能够是异常值(例如,在分割掩模的边界附近)。这些异常值像素能够支配整体损失(见图10F)。因此,向下加权这些异常值像素以将它们从损失中丢弃,同时也向下加权易于重构的像素(例如,平滑和无纹理区域)能够是期望的。为此,给定大小W×H×C的残余图像x,y能够被设置为沿着x通道的每像素l
其中Γ(i,y)跨y中的值集来提取第i个百分位数,并且p
作为针对
‖y‖
其中⊙是元素级乘积。
也能够使用由sigmoid和倒sigmoid的乘积定义的γ
图5图示根据至少一个示例实施例的神经重新渲染模块的框图。神经重新渲染模块210可以是或包括至少一个计算装置,并且能够表示被配置成执行本文中所描述的方法的几乎任何计算装置。因此,神经重新渲染模块210能够包括可以被用于实现本文中所描述的技术,或其不同或未来版本的各种部件。举例来说,神经重新渲染模块210被图示为包括至少一个处理器505以及至少一个存储器510(例如,非暂时性计算机可读介质)。
如图5中所示,神经重新渲染模块包括至少一个处理器505和至少一个存储器410。至少一个处理器505和至少一个存储器510经由总线515通信地耦合。至少一个处理器505可以被用于执行存储在至少一个存储器510上的指令,由此实现本文中所描述的各种特征和功能,或附加或替代特征和功能。至少一个处理器505和至少一个存储器510可以用于各种其它目的。具体地,至少一个存储器510能够表示各种类型的存储器和相关硬件和软件的示例,它们可以被用于实现本文中所描述的模块中的任一个。
至少一个存储器510可以被配置成存储与神经重新渲染模块210相关联的数据和/或信息。例如,至少一个存储器510可以被配置成存储模型420、多个系数425和神经网络520。在示例实施方案中,至少一个存储器510可以被配置成存储代码段,该代码段在由至少一个处理器505执行时使至少一个处理器505选择模型420中的一个和/或多个系数425中的一个或多个。
神经网络520能够包括多个操作(例如,卷积530-1至530-9)。多个操作、互连和多个操作之间的数据流能够是从模型420中选择的模型。神经网络中图示的模型(作为操作、互连和数据流)是示例实施方案。因此,如本文中所描述的,其它模型能够被用于增强图像。
在图5中所示的示例实施方案中,神经网络520操作包括卷积530-1、530-2、530-3、530-4、530-5、530-6、530-7、530-8和530-9、卷积535以及卷积540-1、540-2、540-3、540-4、540-5、540-6、540-7、540-8和540-9。可选地(如通过虚线图示),神经网络520操作能够包括填充525、截断545和超分辨550。如果需要使输入图像更大,则填充525能够被配置成在图像的边界处将像素填充或添加到输入图像。填充能够包括使用与图像的边界相邻的像素(例如,镜像填充)。填充能够包括添加具有R=0、G=0、B=0的值的多个像素(例如,零填充)。截断545能够被配置成截断R、G、B在255到255以上的任何值以及在0到0以下的任何值。截断545能够被配置成基于色彩系统的最大值/最小值而截断其它色彩系统(例如,YUV)。
超分辨550能够包括放大所得图像(例如,x2、x4、x6等),并且将神经网络作为滤波器应用于放大图像,以从质量相对较低的放大图像生成高质量图像。在示例实施方案中,将滤波器选择性地应用于来自多个训练后的滤波器的每个像素。
在图5中所示的示例实施方案中,神经网络520使用类似U-NET的架构。该模型能够在GPU架构上实时实现2D图像的视点合成。示例实施方案使用全卷积模型(例如,没有最大池化运算符)。此外,实施方案能够使用双线性上采样和卷积来最小化或消除棋盘格伪影。
如图所示,神经网络520架构包括18个层。九(9)个层用于编码/压缩/收缩/下采样,并且九(9)个层用于解码/解压缩/扩展/上采样。例如,卷积530-1、530-2、530-3、530-4、530-5、530-6、530-7、530-8和530-9用于编码,并且卷积540-1、540-2、540-3、540-4、540-5、540-6、540-7、540-8和540-9用于解码。卷积535能够被用作瓶颈。瓶颈可以是配置成减少KxK滤波器的输入通道数目的1x1卷积层。神经网络520架构能够包括编码器块与解码器块之间的跳跃连接。例如,在卷积530-1和卷积540-9、卷积530-3和卷积540-7、卷积530-5和卷积540-5以及卷积530-7和卷积540-3之间示出跳跃连接。
在示例实施方案中,编码器以卷积530-1开始,该卷积配置有具有N
解码器包括上采样块540-3、540-4、540-5、540-6、540-7、540-8和540-9,它们与下采样块镜像,但方向相反。每个这种块i∈{4,3,2,1}由两个卷积层组成。第一层540-3、540-5和540-7对其输入进行双线性上采样、执行与N
返回到图4,能够如上所述训练与神经网络520架构相关联的模型。神经网络能够使用Adam和权重衰减算法进行训练,直到收敛(例如,直到损失不再持续下降的点)。
使用图像的随机裁剪进行训练,范围从512×512到960×896。这些图像能够根据输入和输出对的原始解析度进行裁剪。具体地,随机裁剪能够在75%的样本中包含头部像素,并且计算样本的头部损失。否则,可能停用头部损失,因为网络可能无法在输入图块中完全看到它。这能够导致脸部的高质量结果,同时不忽略身体的其它部位。对网络的权重使用随机裁剪连同标准l-2正则化可以足以防止过度拟合。当采用高解析度目击相机时,输出能够是输入大小的两倍。
可以经验地设置显著性重新加权的百分位数范围,以去除不完美掩模边界和其它异常值的贡献,而不会另外影响结果。当p
图6A图示没有稀疏性约束的卷积神经网络中的层。图6B图示具有稀疏性约束的卷积神经网络中的层。分层神经网络的示例实施方案在图6A中示为具有三个层605、610、615。每个层605、610、615能够由多个神经元620形成。没有稀疏性约束已经应用于图6A中所图示的实施方案,因此每个层605、610、615中的所有神经元620被联网到任何相邻层605、610、615的所有神经元620。图6A中所示的神经网络在计算上并不复杂,因为神经元620和层605、610、615的数目较少。然而,图6A中所示的神经网络的布置可能不容易扩展到更大的网络大小(例如,神经元/层之间的连接),因为由于连接的密度,随着网络的大小以非线性方式缩放,计算复杂性变大。
在神经网络将被扩展以处理具有相对高维数的输入的情况下,因此每一层605、610、615中的所有神经元620要联网到一个或多个相邻层605、610、615中的所有神经元620时,能够变得计算上复杂。初始稀疏性条件能够被用于通过限制神经元和/或层之间的连接的数量来降低神经网络的计算复杂性,例如当神经网络作为优化过程运行时,从而使神经网络方法能够处理诸如图像的高维数据。
根据至少一个实施例,图6B中示出具有稀疏性约束的神经网络的示例。布置图6B中所示的神经网络,使得每个神经元620仅连接到相邻层625、630、635中的少量神经元620,从而创建神经网络,该神经网络没有全连接并且能够缩放以利用更高维数据例如作为图像的增强过程运行。与完全联网的神经网络相比,较小数量的连接允许神经元之间的连接的数量以基本上线性的方式缩放。
替代地,在一些实施例中,能够使用全连接或非全连接的神经网络,但该神经网络的特定配置与图6B中描述的配置不同。
此外,在一些实施例中,使用卷积神经网络,该卷积神经网络是非全连接的并且因此具有低于全连接神经网络的复杂性的神经网络。卷积神经网络还能够利用池化或最大池化来降低流过神经网络的数据的维度(从而降低复杂性),并且因此这能够降低所需的计算水平。
图11示出可以利用本文中所描述的技术使用的计算机装置1100和移动计算机装置1150的示例。计算装置1100旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它合适的计算机。计算装置1150旨在表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能手机,以及其它类似的计算装置。此处所示的部件、部件的连接和关系,以及部件的功能意味着仅仅是示例性的,并且不意味着限制本文档中描述和/或要求保护的发明的实施方案。
计算装置1100包括处理器1102、存储器1104、存储装置1106、连接到存储器1104和高速扩展端口1110的高速接口1108,以及连接到低速总线1114和存储装置1106的低速接口1112。部件1102、1104、1106、1108、1110和1112中的每一个使用各种总线互连,并且部件可以被安装在通用母板上或视情况以其它方式安装。处理器1102能够处理用于在计算装置1100内执行的指令,包括存储在存储器1104中或存储装置1106上以将GUI的图形信息显示在外部输入/输出装置,诸如耦合到高速接口1108的显示器1116上的指令。在其它实施方案中,多个处理器和/或多个总线可以视情况与多个存储器以及多种类型的存储器一起使用。而且,可以连接多个计算装置1100,其中每个装置提供必要操作的部分(例如,作为服务器组、刀片服务器群组,或多处理器系统)。
存储器1104将信息存储在计算装置1100内。在一个实施方案中,存储器1104是一个或多个易失性存储器单元。在另一实施方案中,存储器1104是一个或多个非易失性存储器单元。存储器1104还可以是另一形式的计算机可读介质,诸如,磁盘或光盘。
存储装置1106能够为计算装置1100提供大容量存储。在一个实施方案中,存储装置1106可以是或可以包含计算机可读介质,诸如,软盘装置、硬盘装置、光盘装置,或磁带装置、闪存存储器或其它类似的固态存储器装置,或装置的阵列,包括存储区域网络或其它配置中的装置。计算机程序产品能够有形地体现在信息载体中。计算机程序产品还可以包含指令,该指令在执行时执行一个或多个方法,诸如上述那些方法。信息载体是计算机或机器可读介质,诸如,存储器1104、存储装置1106,或处理器1102上的存储器。
高速控制器1108管理计算装置1100的超带宽密集操作,而低速控制器1112管理较低超带宽密集操作。这种功能的分配仅仅是示例性的。在一个实施方案中,高速控制器1108耦合到存储器1104、显示器1116(例如,通过图形处理器或加速计),以及可以接受各种扩展卡(未示出)的高速扩展端口1110。在实施方案中,低速控制器1112耦合到存储装置1106和低速扩展端口1114。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出装置,诸如,键盘、指向装置、扫描仪,或诸如交换机或路由器的联网装置。
如图所示,计算装置1100可以通过多种不同形式实现。例如,计算装置可以被实现为标准服务器1120,或多次实施于这种服务器的群组中。计算装置还可以被实现为机架式服务器系统1124的一部分。另外,算装置可以在诸如膝上型计算机1122的个人计算机中实现。替代地,来自计算装置1100的部件可以与诸如装置1150的移动装置(未示出)中的其它部件组合。这种装置中的每一个可以包含计算装置1100、1150中的一个或多个,并且整个系统可以由彼此通信的多个计算装置1100、1150组成。
计算装置1150包括处理器1152、存储器1164、诸如显示器1154的输入/输出装置、通信接口1166和收发器1168,以及其它部件。装置1150还可以被设置有诸如微驱动器或其它装置的存储装置,以提供另外的存储。部件1150、1152、1164、1154、1166和1168中的每一个使用各种总线互连,并且若干部件可以被安装在通用母板上或视情况以其它方式安装。
处理器1152能够执行计算装置1150内的指令,包括存储于存储器1164中的指令。处理器可以被实现为包括分离处理器以及多个模拟和数字处理器的芯片的芯片组。例如,处理器可以提供用于装置1150的其它部件的协调,诸如对用户接口、由装置1150运行的应用程序、以及由装置1150进行的无线通信的控制。
处理器1152可以通过耦合到显示器1154的控制接口1158和显示接口1156与用户通信。例如,显示器1154可以是TFT LCD(薄膜晶体管液晶显示器),或OLED(有机发光二极管)显示器,或其它合适的显示器技术。显示接口1156可以包括用于驱动显示器1154以向用户呈现图形和其它信息的合适电路。控制接口1158可以从用户接收命令并且转换该命令以提交给处理器1152。另外,可以提供与处理器1152通信的外部接口1162,以实现装置1150与其它装置进行近区域通信。例如,外部接口1162可以在一些实施方案中提供用于有线通信,或在其它实施方案中提供用于无线通信,并且还可以使用多个接口。
存储器1164将信息存储在计算装置1150内。存储器1164能够被实现为一个或多个计算机可读介质、一个或多个易失性存储器单元,或一个或多个非易失性存储器单元中的一个或多个。还可以提供扩展存储器1174,并且该扩展存储器通过扩展接口1172连接到装置1150,该扩展接口可以包括例如SIMM(单列直插式存储器模块)卡接口。这种扩展存储器1174可以为装置1150提供额外的存储空间,或者还可以为装置1150存储应用程序或其它信息。具体地,扩展存储器1174可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器1174可以被提供为装置1150的安全模块,并且可以用许可安全地使用装置1150的指令来编程。另外,可以经由SIMM卡提供安全应用程序以及附加信息,从而诸如以不可侵入的方式将标识信息置于SIMM卡上。
如下所述,存储器可以例如包括闪存存储器和/或NVRAM存储器。在一个实施方案中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,该指令在执行时执行一个或多个方法,诸如,上述那些方法。信息载体是可以例如通过收发器1168或外部接口1162接收的计算机或机器可读介质,诸如,存储器1164、扩展存储器1174,或处理器1152上的存储器。
装置1150可以通过通信接口1166无线地通信,该通信接口在必要时可以包括数字信号处理电路。通信接口1166可以提供用于各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS消息、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。例如,这种通信可以通过射频收发器1168进行。另外,短程通信可以例如使用蓝牙、Wi-Fi,或其它这种收发器(未示出)发生。另外,GPS(全球定位系统)接收器模块1170可以向装置1150提供与导航和位置相关的附加无线数据,该无线数据可以由装置1150上运行的应用程序视情况使用。
装置1150还可以使用音频编解码器1160以听觉方式通信,该音频编解码器可以从用户接收口头信息并且将该口头信息转换成可用的数字信息。音频编解码器1160同样可以诸如通过例如在装置1150的头戴设备中的扬声器为用户生成可听声音。这种声音可以包括来自语音电话的声音、可以包括录音(例如,语音消息、音乐文件等)、并且还可以包括由在装置1150上操作的应用程序生成的声音。
如图所示,计算装置1150可以以多种不同形式实现。例如,该计算装置可以被实现为蜂窝电话1180。该计算装置还可以被实现为智能手机1182、个人数字助理,或其它类似移动装置的一部分。
尽管以上描述描述了体验传统的三维(3D)内容,包括接入头戴式显示器(HMD)装置以恰当地观看这种内容并与这种内容交互,但是所描述技术也能够被用于渲染到2D显示器(例如,显示在一个或多个2D显示器上的左视图和/或右视图)、移动AR和3D TV。此外,HMD装置的使用对于用户持续佩戴来说可能是麻烦的。因此,用户可以利用自由立体显示器来接入具有3D感知的用户体验,而不需要使用HMD装置(例如,眼镜或头盔)。自由立体显示器采用光学部件来实现同一平面上各种不同图像的3D效果,并且从多个视点提供这种图像以产生3D空间的错觉。
自由立体显示器能够提供近似真实世界中的物理对象的三维(3D)光学特性的图像,而无需使用头戴式显示器(HMD)装置。一般来说,自由立体显示器包括平板显示器、柱状透镜(例如,微透镜阵列)和/或视差屏障,以将图像重新定向到与显示器相关联的多个不同观看区域。
在一些示例自由立体显示器中,可能存在提供由这种显示器提供的图像内容的3D视图的单个位置。用户可以坐落在单个位置以体验适当的视差、小失真和有真实感的3D图像。如果用户移动到不同的物理位置(或改变头部位置或眼睛注视位置),则图像内容可能开始显得不太有真实感、2D和/或失真。本文中所描述的系统和方法可以重新配置从显示器投影的图像内容,以确保用户能够四处移动,但仍然实时体验适当的视差、低失真率和有真实感的3D图像。因此,本文中所描述的系统和方法提供维持3D图像内容并向用户提供3D图像内容而不管在用户观看显示器时发生的用户移动如何的优点。
图12图示根据至少一个示例实施例的在立体显示器中提供内容的示例输出图像的框图。在示例实施方案中,可以通过将左图像1204A与右图像1204B交错来显示内容以获得输出图像1205。图12中所示的自由立体显示组件1202表示组装的显示器,该显示器至少包括耦合到(例如,结合到)透镜1206的柱状透镜阵列的高解析度显示面板1207。另外,组件1202可以包括坐落在透镜的柱状透镜阵列与高解析度显示面板1207之间的一个或多个玻璃间隔件1208。在显示组件1202的操作中,透镜1206的阵列(例如,微透镜阵列)和玻璃间隔件1208可以被设计为使得在特定的观看条件下,用户的左眼观看与图像相关联的第一像素子集,如观看光线1210所示,而用户的右眼观看相互排斥的第二像素子集,如观看光线1212所示。
可以针对左眼和右眼中的每一个计算和生成掩模。掩模1200对于每只眼睛可以不同。例如,可以为左眼计算掩模1200A,而可以为右眼计算掩模1200B。在一些实施方案中,掩模1200A可以是掩模1200B的移位版本。根据本文中所描述的实施方案,自由立体显示组件1202可以是包括多个微透镜的无眼镜柱状透镜三维显示器。在一些实施方案中,阵列1206可以包括微透镜阵列中的微透镜。在一些实施方案中,能够通过在第一方向上通过至少一个微透镜投影第一图像的一部分(例如,第一像素集)(例如,到用户的左眼)并且在第二方向上通过至少一个其它微透镜投影第二图像的一部分(例如,第二像素集)(例如,到用户的右眼)来产生3D图像。第二图像可以与第一图像相似,但是第二图像可以从第一图像移位以模拟视差,从而为观看自由立体显示组件1202的用户模拟3D立体图像。
图13是实现本文中所描述的技术的过程1300的示意性流程图。如图13A中所示,在步骤1302中,接收基于场景的神经辐射场(NeRF)体表示来渲染的图像,其中场景的NeRF表示基于视频数据的所捕获的帧,每个所捕获的帧包括场景的彩色图像、当场景由宽场IR光源照明时捕获的场景的宽场IR图像,以及场景的多个深度IR图像。当场景由IR光点的不同图案照明时,捕获深度IR图像中的每一个,并且在不同时间发生由IR光点的不同图案进行的照明。NeRF表示提供位置和观看方向与场景中的每个位置处的色彩和光学密度之间的映射,其中场景中的每个位置处的色彩和光学密度使得能够从新的视角观看场景,并且NeRF表示从新的视角提供位置和观看方向与IR光点的不同图案中的每一个的IR值之间的映射。在步骤1304中,定义合成函数以根据接收到的图像生成增强图像。在步骤1306中,合成函数是使用基于最小化由神经网络生成的预测图像与由真实值相机在训练期间捕获的真实值图像之间的损失函数而训练的神经网络来计算的。
本文中描述的系统和技术的各种实施方案能够在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件,和/或它们的组合中实现。这些各种实施方案能够包括在一个或多个计算机程序中的实施方案,该计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以用于专用或通用目的,并且耦合以从存储系统、至少一个输入装置和至少一个输出装置接收数据和指令,并将数据和指令传输到存储系统、至少一个输入装置和至少一个输出装置。此处描述的系统和技术的各种实施方案能够被实现为和/或在本文中通常称为可以组合软件和硬件方面的电路、模块、块或系统。例如,模块可以包括在处理器(例如,在硅衬底、GaAs衬底等上形成的处理器)或一些其它可编程数据处理设备上执行的功能/动作/计算机程序指令。
以上示例实施例中的一些被描述为如流程图所示的过程或方法。尽管流程图将操作描述为顺序过程,但许多操作可以并行、并发或同时执行。另外,可以重新布置操作顺序。过程可能在其操作完成后终止,但也可能具有图中未包括的另外步骤。过程可以对应于方法、功能、过程、子例程、子程序等。
上面讨论的方法可以通过硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合实现,其中一些方法由流程图图示。当以软件、固件、中间件或微码实现时,用于执行必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(诸如存储介质)中。处理器可以执行必要的任务。
出于描述示例实施例的目的,本文中所公开的特定结构和功能细节仅为代表性的。然而,示例实施例可以用多种替代形式体现并且不应被解释为限于本文中所阐述的实施例。
应理解,尽管术语第一、第二等在本文中可以被用于描述各种元件,但是这些元件不应由这些术语限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不偏离示例实施例的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文中所使用的,术语和/或包括相关联所列项中的一个或多个的任一个和全部组合。
应理解,当元件称为连接或耦合到另一元件时,该元件能够直接连接或耦合到另一元件,或可以存在中介元件。相反,当元件称为直接连接到或直接耦合到另一元件时,不存在中介元件。用于描述元件之间关系的其它词语应以类似的方式进行解释(例如,在……之间与直接在……之间、相邻与直接相邻等)。
本文中使用的术语仅出于描述具体实施例的目的并且不意图限制示例实施例。如本文中所使用的,单数形式一、一个和该旨在也包括复数形式,除非上下文另外明确指示。还应理解,当本文中使用时,术语包括、包括有、包含、包含有指定所陈述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、部件和/或其群组的存在或添加。
还应注意,在一些替代实施方案中,所指出的功能/动作可能不按图中所示的顺序发生。例如,取决于所涉及的功能/动作,连续显示的两个图实际上可能同时执行,或者有时可能以相反的顺序执行。
除非另外定义,否则本文中使用的所有术语(包括技术和科学术语)具有与示例实施例所属领域的普通技术人员通常理解的含义相同的含义。还应理解,术语(例如,在常用词典中定义的术语)应被解释为具有与其在相关领域的上下文中的含义一致的含义,并且除非在本文中明确定义,否则不会以理想化或过于正式的意义来解释。
在软件或算法以及计算机存储器内的数据位上的操作的符号表示方面,呈现上述示例实施例的部分和对应详细描述。这些描述和表示是本领域普通技术人员有效地将其工作的实质传送给本领域其他普通技术人员的描述和表示。如此处使用术语且如通常使用的,算法被认为是导致期望结果的自洽步骤序列。这些步骤是需要对物理量进行物理操纵的步骤。尽管不是必需的,但是这些量通常采用能够存储、传送、组合、比较以及以其它方式操纵的光信号、电信号或磁信号的形式。原则上,出于通常使用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等被证明有时是方便的。
在以上说明性实施例中,对可以被实现为程序模块或功能过程的操作的动作和符号表示(例如,以流程图形式)的引用包括例程、程序、对象、部件、数据结构等,它们执行特定任务或实现特定抽象数据类型,并且可以使用现有结构元件处的现有硬件描述和/或实现。这种现有硬件可以包括一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路、现场可编程门阵列(FPGA)计算机等。
然而,应当记住,所有这些和类似术语与适当物理量相关联,并且仅仅是应用于这些量的方便标记。除非另外特别说明,或从讨论中显而易见,否则诸如处理或计算或运算或确定显示等术语是指计算机系统或类似电子计算装置的动作和过程,该计算机系统或类似电子计算装置操纵在计算机系统的寄存器和存储器内表示为物理、电子量的数据并将该数据转换成在计算机系统存储器或寄存器或其它这种信息存储、传输或显示装置内类似地表示为物理量的其它数据。
还注意,示例实施例的软件实施例的各方面通常在某种形式的非暂时性程序存储介质上编码,或在某种类型的传输介质上实现。程序存储介质可以是磁性的(例如,软盘或硬盘驱动器)或光学的(例如,压缩光盘只读存储器,或CD ROM),并且可以是只读的或随机接入的。类似地,传输介质可以是双绞线、同轴电缆、光纤,或本领域已知的一些其它合适的传输介质。示例实施例不受任何给定实施方案的这些方面限制。
最后,还应注意,虽然所附权利要求阐述本文中所描述的特征的特定组合,但本公开的范围不限于下文所要求保护的特定组合,而是扩展到涵盖本文中公开的特征或实施例的任何组合,而不管此时所附权利要求书中是否具体列举该特定组合。
- 用于对HDR图像和使用色彩映射函数的SDR图像两者进行编码的方法和设备
- 用于对HDR图像和使用色彩映射函数从所述HDR图像获得的SDR图像两者进行编码的方法和设备