CN111656407B - 对动态三维模型的视图进行融合、纹理化和绘制 - Google Patents
对动态三维模型的视图进行融合、纹理化和绘制 Download PDFInfo
- Publication number
- CN111656407B CN111656407B CN201880085491.0A CN201880085491A CN111656407B CN 111656407 B CN111656407 B CN 111656407B CN 201880085491 A CN201880085491 A CN 201880085491A CN 111656407 B CN111656407 B CN 111656407B
- Authority
- CN
- China
- Prior art keywords
- texture
- model
- dynamic
- current frame
- weights
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
Abstract
当融合深度图来生成动态三维(“3D”)模型、将纹理细节应用于动态3D模型或绘制经纹理化的动态3D模型的视图时,本文所述的各种方法可以改进结果的质量。例如,当融合深度图来生成动态3D模型时,融合组件还可以并入动态3D模型各点的固有颜色值,从而有可能使得尤其是对于深度值不可靠或不可用的区域,动态3D模型更加准确。作为另一示例,当应用纹理细节时,绘制组件可以将平滑的视点相关的纹理权重应用于来自不同纹理图的纹理值,这可以减少模糊并避免引入明显的接缝。作为另一示例,绘制组件可以将元数据指示的特殊效果应用于所绘制的视图,从而允许内容提供方断言对呈现的艺术控制。
Description
背景技术
虚拟现实(“VR”)技术在合成的计算机生成的环境中模拟用户的物理存在。通常,VR设备包括具有显示屏和耳机的VR头戴式耳机,用以为计算机生成的环境呈现逼真的图像和声音。利用VR技术,用户可以环顾计算机生成的环境,并且在许多情况下,可以浏览环境的特征并与之交互。在一些VR系统中,用户可以与环境中虚拟存在的一个或多个其他远程用户进行通信。类似地,增强现实(“AR”)技术在相机输入和/或音频输入上叠加了人工的、计算生成的内容,从而将用户在其真实环境中看到和听到的内容与人工生成的内容相混合。
尽管一些VR系统从头开始生成合成环境,但是许多VR系统和AR系统使用捕获物理环境的细节的设备来创建实际物理环境的三维(“3D”)模型。例如,对象在物理环境中的位置使用深度相机从物理环境周围的不同视点(视角)来估计。在针对帧的“深度图”(例如,与时间戳或时间片相关联)中,深度相机捕获深度值,深度值指示对象距相应的深度相机有多远。根据针对帧的深度图中的这些深度值,VR/AR系统创建物理环境和在其中的对象的3D模型。3D模型可以将对象的表面表示为3D空间中的顶点,这些顶点被连接以形成大约覆盖对象表面的三角形。VR/AR系统可以逐帧跟踪3D模型随时间变化的情况,从而生成动态3D模型,动态3D模型提供对象的可变形的体积表示。动态3D模型(将时间维度添加到3D空间重建中)可以为各种应用中的4D重建技术奠定基础(诸如,用于商务会议或个人通信的3D远程呈现、直播音乐会或其他活动的广播以及远程教育)。通常,VR/AR系统还使用视频相机从不同的视点来记录物理环境中对象表面的纹理细节(例如,颜色值)。在产生(“绘制”)3D模型的视图以进行输出时,这样的纹理细节可以被应用(“纹理化”或“缝合”)到动态3D模型的表面。
近年来,VR技术和AR技术变得越来越普遍。VR技术和AR技术的商品化,再加上廉价的深度相机技术的可用性,已增加了人们对生成具有时空性能捕获的物理环境的准确、动态3D模型的兴趣。特别地,一些最新的系统能够将多个深度图实时融合到动态3D模型中,动态3D模型提供在物理环境中的对象的可变形的体积表示。尽管这样的系统可以在许多场景中产生高保真动态3D模型,但是当深度值不可靠或不可用时,所产生的动态3D模型可能不准确或不完整。同样,在一些情况下,将纹理细节从不同视点缝合到动态3D模型上的先前方法可能产生模糊的细节或明显的接缝,尤其是对于诸如面部的感兴趣区域而言,这可能会降低整体质量。最后,就艺术效果如何可以被应用于经绘制的视图而言,尤其是对于实时应用,绘制动态3D模型的视图的先前方法受到限制。
发明内容
提供本发明内容以简化形式来介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
当融合深度图来生成计算机表示的环境的动态三维(“3D”)模型时,当将纹理细节应用于动态3D模型时或当绘制经纹理化的动态3D模型的视图时,本文所述的各种方法可改进结果的质量。例如,当融合深度图来生成动态3D模型时,计算机系统的融合组件还并入了动态3D模型的各点的固有纹理值(例如,颜色值)。这可以使得尤其是对于深度值不可靠或不可用的区域,动态3D模型更加准确。作为另一示例,当将纹理细节应用于动态3D模型时,计算机系统的绘制组件将平滑的视点相关的纹理权重应用于来自不同纹理图的纹理值。尤其是对于诸如面部的感兴趣区域,这样可以减少模糊,并避免在所绘制的视图中引入明显的接缝。作为另一示例,当绘制经纹理化的动态3D模型的视图时,计算机系统的绘制组件可以应用由元数据指示的特殊效果。这可以允许广播方或内容提供方对经纹理化的动态3D模型的呈现断言艺术控制。
在本文所描述的许多示例中,计算机系统的组件使用针对当前帧的纹理图,针对当前帧的深度图和/或用于动态3D模型的模型数据。针对当前帧的每个纹理图可以包括在计算机表示的环境中从不同的输入视点捕获的纹理值(例如,颜色值)。针对当前帧的每个深度图可以包括从不同输入视点之一捕获的深度值。模型数据可以包括计算机表示的环境的动态3D模型的各点(例如,网格的三角形的顶点)。
根据本文所描述的第一技术和工具集合,计算机系统的绘制组件执行操作来将计算机表示的环境的动态3D模型纹理化。绘制组件接收针对当前帧的纹理图和模型数据。对于动态3D模型的点中的至少一些点,绘制组件确定针对当前帧的纹理权重。在这样做时,绘制组件在空间上围绕动态3D模型中的接缝和/或在时间上相对于先前的纹理权重来对针对当前帧的纹理权重中的至少一些纹理权重进行平滑。对于动态3D模型的点中的至少一些点,绘制组件根据针对当前帧的经平滑的纹理权重来应用对应的纹理值。最后,绘制组件从输出视点绘制经纹理化(利用所应用的纹理值)的、动态3D模型的视图。在许多情况下,纹理权重的平滑可以减轻可感知的伪像(诸如,所绘制的视图中的模糊和接缝)。
根据本文所描述的第二技术和工具集合,计算机系统的绘制组件执行操作来将计算机表示的环境的动态3D模型纹理化。绘制组件接收针对当前帧的纹理图和模型数据。对于动态3D模型的点中的至少一些点,绘制组件确定针对当前帧的视点相关的纹理权重。在这样做时,对于动态3D模型的至少一些点之中的给定点,针对不同输入视点之中的给定输入视点,绘制组件至少部分地基于给定输入视点和输出视点来确定基本权重。对于动态3D模型的点中的至少一些点,绘制组件根据针对当前帧的视点相关纹理权重来应用对应的纹理值。最后,绘制组件从输出视点来绘制经纹理化(利用所应用的纹理值)的、动态3D模型的视图。使用视点相关的纹理权重(具有基于输出视点的基本权重)可以避免由基于法线的混合导致的模糊。
根据本文所描述的第三技术和工具集合,服务器计算机系统为计算机表示的环境的经纹理化的、动态3D模型的绘制视图指定特殊效果。服务器计算机系统设置元数据,元数据指示当针对动态3D模型的至少一些点应用纹理值并从输出视点绘制3D模型的视图时将被并入的一个或多个特殊效果。服务器计算机系统将指示(多个)特殊效果的元数据发送到一个或多个客户端计算机系统。另外,服务器计算机系统将针对当前帧的纹理图和深度图(或模型数据)发送到(多个)客户端计算机系统。以这种方式,服务器计算机系统可以紧凑地指示将被应用于经纹理化的动态3D模型的绘制视图的特殊效果。
根据本文所描述的第四技术和工具集合,客户端计算机系统的绘制组件将特殊效果应用于计算机表示的环境的经纹理化的动态3D模型的绘制视图。绘制组件接收针对当前帧的纹理图和模型数据。绘制组件接收指示一个或多个特殊效果的元数据。对于动态3D模型的至少一些点,绘制组件应用对应的纹理值。最后,绘制组件从输出视点绘制经纹理化的动态3D模型的视图。经绘制的视图并入用元数据指示的(多个)特殊效果。通过这种方式,绘制组件可以应用由内容作者或其他源指定的各种特殊效果。
根据本文所描述的第五技术和工具集合,计算机系统的融合组件生成计算机表示的环境的动态3D模型。融合组件接收针对当前帧的纹理图和深度图。融合组件基于针对当前帧的纹理图和针对当前帧的深度图来选择性地更新参考3D模型。特别地,融合组件选择性地更新参考3D模型的点并且选择性地更新参考3D模型的点的固有纹理值。融合组件还可以从针对当前帧的深度图来确定当前3D模型的点,并至少部分地基于参考3D模型的点的经更新的固有纹理值和针对当前帧的纹理图来确定翘曲参数,以将参考3D模型翘曲到当前帧。最后,融合组件可以根据翘曲参数对参考3D模型进行翘曲,并选择性地组合当前3D模型和经翘曲的参考3D模型。通过在选择性地更新参考3D模型和/或确定翘曲参数时并入固有纹理值,模型生成工具可以使得尤其是对于深度值不可靠或不可用的区域,动态3D模型更加准确。
本文所描述的创新可以被实现为方法的一部分、被配置为执行方法的计算机系统的一部分或存储有用于在通过其被编程时使计算机系统执行方法的计算机可执行指令的有形计算机可读介质的一部分。各种创新可以组合使用、也可以单独使用。通过以下参考附图进行的详细描述,本发明的前述和其他目的、特征和优点将变得更加明显。
附图说明
专利或申请文件包含至少一个彩色绘图。专利局将根据要求和必要的费用支付,提供带有彩色附图的本专利或专利申请公开的副本。
图1是图示了其中可以实现本文描述的一个或多个方法的示例计算机系统的示意图。
图2a和图2b是图示了用于捕获、融合、纹理化和绘制经纹理化的动态3D模型的视图的示例环境的示意图。
图3a和图3b是图示了所捕获的图像中在生成动态3D模型时可能引起错误的缺陷示例的图像,并且图3c是图示了深度图中的缺陷示例的图像。
图4是图示了在生成动态3D模型时,用于应用固有纹理值的通用技术的流程图,并且图5是图示了用于至少部分地基于固有纹理值来确定翘曲参数的示例技术的流程图。
图6a和图6b是图示了使用平滑的、视点相关的纹理权重将纹理图的纹理值应用于动态3D模型的示例的示意图。
图7a-图7e是图示了接缝的示例的图像。
图8a至图8c是图示了测地距离值的计算特征的示意图。
图9是图示了针对接缝附近的点的测地距离值的迭代更新的图像集合。
图10是图示了用于使用平滑的纹理权重将纹理图的纹理值应用于动态3D模型的通用技术的流程图。
图11是图示了用于纹理权重的空间平滑的示例技术的流程图,并且图12是图示了用于纹理权重的时间平滑的示例技术的流程图。
图13是图示了用于使用视点相关的纹理权重将纹理图的纹理值应用于动态3D模型的通用技术的流程图。
图14a-图14m是图示了使用平滑的、视点相关的纹理权重将纹理图的纹理值应用于动态3D模型的各个方面的图像。
图15a和图15b是图示了用于向经纹理化的动态3D模型的绘制视图提供并应用特殊效果的示例架构的示意图。
图16是图示了用于指定元数据的通用技术的流程图,元数据指示经纹理化的动态3D模型的绘制视图的特殊效果,并且图17是图示了用于将由元数据指示的特殊效果应用于经纹理化的动态3D模型的绘制视图的通用技术的流程图。
图18a-图18m是图示了应用于经纹理化的动态3D模型的绘制视图的特殊效果的示例的图像。
具体实施方式
当融合深度图来生成计算机表示的环境的动态三维(“3D”)模型时、当将纹理细节应用于动态3D模型时或当对经纹理化的动态3D模型的视图进行绘制时,本文所述的各种方法可以改进结果的质量。例如,当融合深度图来生成动态3D模型时,计算机系统的融合组件还并入动态3D模型的点的固有纹理值(例如,颜色值)。这可以使得尤其是对于深度值不可靠或不可用的区域,动态3D模型更加准确。作为另一示例,当将纹理细节应用于动态3D模型时,计算机系统的绘制组件将平滑的视点相关的纹理权重应用于来自不同纹理图的纹理值。尤其是对于诸如面部的感兴趣区域,这样可以减少模糊,并避免在绘制视图中引入明显的接缝。作为另一示例,计算机系统的绘制组件可以将由元数据指示的特殊效果应用于经纹理化的动态3D模型的绘制视图。这可以允许广播方或内容提供方对经纹理化的动态3D模型的呈现断言艺术控制。这些方法中的任一个都可以在多种应用(诸如,用于商务会议或个人通信的3D远程呈现、现场音乐会或其他事件的广播以及远程教育)中改进4D重建技术的质量。
如本文中所使用的,术语“动态3D模型”涵盖在3D计算机图形环境或其他计算机表示的环境中的顶点的三角形网格和其他可变形的体积表示。计算机表示的环境可以表示真实世界的场景(例如,通过对真实世界场景的成像/扫描来构造)、表示合成的虚拟场景(例如,完全通过图形处理工具来构造或为虚拟现实应用创建)或表示将真实世界场景的成像/扫描的结果与计算机生成的内容(例如,为增强现实应用而构造)混合的混合场景。
如本文中所使用的,术语“纹理值”涵盖可以与动态3D模型的点或与纹理图(例如,图像)的位置相关联的颜色值或其他值。该其他值可以是例如限定与点/位置相关联的不透明度的不透明度值、或限定与点/位置相关联的镜面反射系数的镜面反射值。备选地,纹理值可以限定另一属性。在二维的纹理图中,位置处的纹理值可以表示从输入视点捕获的动态3D模型的点的属性。
如本文所使用的,术语“帧”涵盖与给定时间戳或时间片相关联的数据。例如,在处理的不同阶段,针对给定帧的数据可以包括在时间戳/时间片处来自不同视频相机的的输入视频图像(诸如,输入彩色图像(用于纹理图)或单色图像)、时间戳/时间片处的深度图、时间戳/时间片处的分段纹理图和/或时间戳/时间片处的动态3D模型的模型数据。
点可以被可视化为在3D空间中占据体积、与3D空间中的其他子块(针对其他点)相邻的小的子块或体素(voxel)。备选地,点可以被视为在3D空间中不占据任何体积、但在绘制操作期间连接到其他点的无限小的点。为了解释本文中的操作,术语“顶点”、“体素”和“点”可互换使用。
尽管在本文中描述的操作被描述为由用于台式计算机系统、头戴式显示器、游戏控制台等的图形卡的GPU架构来执行,但是在许多情况下,这些操作可以通过另一类型的架构(例如,多核CPU架构)和/或其他类型的计算机系统(例如,智能手机、平板电脑)来执行。更一般地,本文描述的示例的各种备选方案是可能的。例如,参考流程图描述的某些技术可以通过改变流程图中所示的阶段的顺序、通过分割、重复或省略某些阶段等来更改。所公开技术的各个方面可以组合使用或单独使用。不同的实施例使用所描述的创新中的一项或多项。本文所述的一些创新解决了背景技术中提到的一个或多个问题。通常,给定的技术/工具不能解决所有这些问题。
I.示例计算机系统
图1图示了其中可以实现所描述的一些创新的合适的计算机系统(100)的整体示例。由于这些创新可以在各种计算机系统(包括适用于对复杂环境的图形处理或建模的专用计算机系统)中被实现,因此计算机系统(100)并不旨在对使用范围或功能性提出任何限制。
参考图1,计算机系统(100)包括中央处理单元(“CPU”)的处理单元(110…11x)和本地存储器(118)。处理单元(110…11x)例如是单个芯片上的处理核心,并执行计算机可执行指令。CPU的处理单元(110…11x)的数量与实现相关,并且该数量例如可以是4或8。本地存储器(118)可以是由相应的(多个)处理单元(110…11x)可访问的易失性存储器(例如,寄存器、缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合。
计算机系统(100)还包括GPU的处理单元(130…13x)和本地存储器(138)。GPU的处理单元(130…13x)的数量与实现相关。处理单元(130…13x)例如是GPU的单指令多数据(“SIMD”)单元。GPU的着色器单元或其他处理块可以包括一个或多个SIMD单元。与实现相关的SIMD宽度n指示SIMD单元的元素(有时称为巷道)的数量。例如,对于超宽SIMD架构,SIMD单元的元素(巷道)数量可以是16、32、64或128。SIMD单元的每个元素可以视为SIMD单元的单独线程。SIMD单元的n个线程的组也可以称为波或翘曲。给定SIMD单元的线程在(可能)不同的数据上锁步执行相同的代码。在一些GPU架构中,SIMD单元可以针对跨SIMD单元的所有线程均相同的数据具有额外的巷道,这导致n个线程的组加上该SIMD单元的一个标量线程(标量线程不执行例如SIMD单元的n个线程的代码)。本地存储器(138)可以是由相应的(多个)处理单元(130…13x)可访问的易失性存储器(例如,寄存器、缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合。本地存储器(138)以计算机可执行指令的形式,存储了实现一个或多个创新的软件(180),该一个或多个创新用于对动态3D模型的视图进行融合、纹理化和/或绘制,以用于由在相应处理单元(130…13x)上执行的线程所执行的操作。
计算机系统(100)包括共享存储器(120),共享存储器可以是由CPU的(多个)处理单元(110…11x)和GPU的处理单元(130…13x)可访问的易失性存储器(例如,寄存器、缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或者两者的某种组合。存储器(120)以计算机可执行指令的形式,存储了实现一个或多个创新的软件(180),该一个或多个创新用于对动态3D模型的视图进行融合、纹理化和/或绘制,以至少用于处理单元(130…13x)的线程所执行的操作的高级控制。在GPU中,线程(也称为执行线程或执行的线程)通常执行计算机可执行指令序列,并且在本地存储器(138)和/或共享存储器(120)中可以具有与其相关联的数据(例如,限定状态)。线程也在CPU的处理单元(110…11x)上执行,其中这样的线程通常包括计算机可执行指令序列,并且在本地存储器(118)和/或共享存储器(120)中可以具有与其相关联的数据(例如,限定状态)。
备选地,处理单元可以是专用集成电路(“ASIC”)中的处理器或任何其他类型的处理器。(多个)处理单元(110…11x、130…13x)可以是片上系统(“SoC”)的一部分。
计算机系统(100)包括一个或多个网络接口设备(140)。(多个)网络接口设备(140)使得能够通过网络与另一计算实体(例如,服务器、其他计算机系统)进行通信。(多个)网络接口设备(140)可以支持用于广域网、局域网、个域网或其他网络的有线连接和/或无线连接。例如,(多个)网络接口设备可以包括一个或多个Wi-Fi收发器、以太网端口、蜂窝收发器和/或另一类型的网络接口设备以及相关联的驱动程序、软件等。(多个)网络接口设备(140)通过(多个)网络连接在经调制的数据信号中传达诸如计算机可执行指令、音频或视频输入或输出或其他数据的信息。经调制的数据信号是其一个或多个特性以将对信号中的信息进行编码的方式进行设置或改变的信号。通过示例而非限制,网络连接可以使用电、光、RF或其他载体。
相机输入(150)可以从捕获自然视频以获取纹理图的视频相机接受模拟或数字形式的视频输入。纹理图包括针对给定帧(例如,与时间戳或时间片相关联),从输入视点(视角)捕获的纹理值。相机输入(150)还可以从一个或多个单色视频相机接受模拟或数字形式的输入,一个或多个单色视频相机的输入用于确定针对给定帧的输入视点的深度值。例如,立体配置的两个单色视频相机可以向深度生成器提供输入,深度生成器从输入视点确定针对给定帧的深度值。相机的配置示例在下一部分中进行描述。尽管图1示出了单个相机输入(150),但是计算机系统(100)可以包括来自不同输入视点和/或在那些输入视点处的不同相机的多个相机输入(150)。音频输入从捕获音频的一个或多个麦克风(150)接受模拟或数字形式的音频输入。
计算机系统(100)可选地包括用于运动传感器/跟踪器的运动传感器/跟踪器输入(152),运动传感器/跟踪器可以跟踪用户和用户周围的对象的移动。例如,运动传感器/跟踪器允许用户(例如,游戏玩家)使用姿势和语音命令,借助自然用户接口与计算机系统(100)交互。运动传感器/跟踪器可以并入姿势识别、面部识别和/或语音识别。在一些示例实现中,运动传感器/跟踪器输入(152)可以作为深度相机/深度生成器来提供深度值和/或作为视频相机来提供纹理值,而不是(多个)相机输入(150)。
游戏控制器输入(154)通过有线连接或无线连接从一个或多个游戏控制器接受控制信号。控制信号可以指示来自游戏控制器的一个或多个定向垫、按钮、触发器和/或一个或多个操纵杆的用户输入。控制信号还可以指示来自触摸板或触摸屏、陀螺仪、加速度计、角速率传感器、磁力计和/或游戏控制器的其他控件或仪表的用户输入。
计算机系统(100)可选地包括媒体播放器(156)和视频输入(158)。媒体播放器(156)可以播放DVD、蓝光盘、其他磁盘媒体和/或其他格式的媒体。视频输入(158)可以接受模拟或数字形式的输入视频(例如,从电缆输入、HDMI输入或其他输入)。
视频输出(160)将视频输出提供给显示设备。视频输出(160)可以是HDMI输出或其他类型的输出。音频输出(160)向一个或多个扬声器提供音频输出。
存储装置(170)可以是可移除或不可移除的,并且包括磁介质(例如,磁盘、磁带或盒式磁带)、光盘介质和/或可以用于存储信息并且可以在计算机系统(100)内访问的任何其他介质。存储装置(170)存储用于实现对动态3D模型的视图进行融合、纹理化和/或绘制的一个或多个创新的软件(180)的指令。
计算机系统(100)可以具有附加特征。例如,计算机系统(100)包括一个或多个其他输入设备和/或一个或多个其他输出设备。(多个)其他输入设备可以是诸如键盘、鼠标、笔或轨迹球的触摸输入设备、扫描设备或向计算机系统(100)提供输入的另一设备。(多个)其他输出设备可以是打印机、CD刻录机或提供来自计算机系统(100)的输出的其他设备。
诸如总线、控制器或网络的互连机制(未示出)使得计算机系统(100)的组件互连。通常,操作系统软件(未示出)为在计算机系统(100)中执行的其他软件提供操作环境,并协调计算机系统(100)的组件的活动。
本发明可以在计算机可读介质的整体上下文中被描述。计算机可读介质是可以在计算环境内访问的任何可用的有形介质。通过示例而非限制,在计算机系统(100)中,计算机可读介质包括存储器(118、120、138)、存储装置(170)及其组合。术语计算机可读介质不包括瞬态传播信号或载波。
创新可以在目标真实或虚拟处理器上的计算机系统中被执行的计算机可执行指令(诸如,程序模块中所包括的计算机可执行指令)的整体上下文中被描述。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种实施例中,程序模块的功能性可以在程序模块之间被组合或分割。用于程序模块的计算机可执行指令可以在本地或分布式计算系统内被执行。
术语“系统”和“设备”在本文可互换使用。除非上下文另外明确指出,否则两个术语都不暗示对计算机系统或设备的类型的任何限制。通常,计算机系统或设备可以是本地的或分布式的并且可以包括专用硬件和/或实现本文所述功能性的硬件与软件的任意组合。
为了呈现,具体实施方式使用诸如“确定”、“接收”和“提供”的术语来描述计算系统中的计算机操作。这些术语表示计算机执行的操作,且不应与人类的行为相混淆。与这些术语相对应的实际计算机操作根据实现而变化。
Ⅱ.用于3D捕获、融合、纹理化和/或绘制的示例环境
图2a和图2b图示了具有用于对动态3D模型进行捕获、融合、纹理化和/或绘制的系统的示例环境(201、202)。本节中描述的系统可以用于捕获被用以生成动态3D模型的真实视频输入、将一些捕获的视频生成的深度值融合到动态3D模型中、将纹理细节应用于动态3D模型并对经纹理化的动态3D模型的视图进行绘制,以输出到诸如VR头戴式耳机或AR头戴式耳机等的显示设备。根据实现,示例环境(201、202)中的不同组件可以在同一本地计算机系统中被实现或在通过一个或多个网络连接的不同计算机系统中被实现。因此,例如,示例环境(201、202)中所示的每个组件可以在单独的计算机系统上运行,根据组件,计算机系统可以是台式或膝上型计算机、物理或虚拟服务器、游戏控制台、头戴式耳机等。或者,示例环境(201、202)中所示的组件的不同子集可以在同一计算机系统上运行。所有组件或组件的子集可以位于同一物理位置(例如,经由局域网连接的同一房间或同一建筑物)处或不同物理位置(例如,经由一个或多个广域网(例如,互联网)连接)处。
在图2a的示例环境(201)中,系统包括控制面板(250),控制面板(250)也被称为控制器或控制面板组件。控制面板(250)可以被实现为与示例环境(201)的其他组件分离的软件和/或硬件。例如,控制面板(250)可以作为软件在单独的计算机系统或虚拟服务器上运行,从而为整个环境(201)提供中央控制点。控制面板(250)控制捕获真实世界视频输入并生成动态3D模型的整个过程。控制面板(250)还可以控制将纹理值应用于动态3D模型并对经纹理化的动态3D模型的视图进行绘制的过程。为了提供该控制,控制面板(250)经由网络连接或其他连接而被连接到系统的各个组件。
为了提供真实世界的视频输入,视频相机被用来捕获真实世界的对象(例如,人或物)的图像。一些视频相机捕获用于生成动态3D模型的深度值的图像。其他视频相机捕获用于将纹理值(例如,RGB格式的颜色值)应用于动态3D模型的图像(纹理图)。示例环境(201)包括多个相机吊舱(210)(也称为相机组)。例如,每个相机吊舱(210)可以包括两个单色视频相机和一个彩色视频相机。单色视频相机可以使用红外(“IR”)带通过滤器和IR散斑图案来改进立体对应匹配。图2a示出了被组织为八个相机吊舱(210)的24个相机,但是更多或更少的相机吊舱可以被利用。每个相机吊舱(210)包括从不同的输入视点捕获图像的单色视频相机对和彩色视频相机。在一些示例实现中,最少两个相机吊舱用于提供足够的深度信息来生成动态3D模型;在一些情况下,使用更多的相机吊舱可以改进所生成的动态3D模型的质量。
图像的空间分辨率可以是720p(1280个样本值x 720个样本值)、1080p(1920个样本值x 1080个样本值)、UHD(3840个样本值x 2160个样本值)或每个图像其他一些数量的样本值。通常,像素是针对图像中某个位置的一个或多个并置样本值的集合,样本值可以针对不同的色度采样格式以不同的方式来布置。在进行一些操作(例如,典型的编码操作、如第III节中所描述的在生成动态3D模型时使用固有颜色值的操作或第V节中所述的一些特殊效果操作)之前,图像的样本值可以被转换为颜色空间(诸如,YUV),其中亮度(Y)分量的样本值表示明亮度或强度值,色度(U、V)分量的样本值表示色度值。色度值的精确定义(以及YUV类型的颜色空间和另一颜色空间(诸如,RGB类型的颜色空间)之间的转换操作)与实现相关。通常,如本文所使用的,术语YUV类型的颜色空间指示具有亮度(或辉度)分量和一个或多个色度(或彩度)分量的任何颜色空间(包括Y'UV、YIQ、Y'IQ和YDbDr以及诸如YCbCr和YCoCg等变型)。为了降低色度样本值的空间分辨率,色度样本值可以被二次采样为较低的色度采样率(例如,对于YUV 4:2:0格式),或者色度样本值可以具有与亮度样本值相同的分辨率(例如,对于YUV 4:4:4格式)。术语RGB类型的颜色空间指示以任何顺序包括R、G和B分量的颜色空间,该颜色空间可以是用于视频相机或显示设备的颜色空间。
相机吊舱(210)的视频输出(例如,用于纹理值的流图像和用于生成深度值的单色图像流)可以逐帧地被传递到对视频输出进行处理的其他组件。这样的传递可以在本地计算机系统内或跨一个或多个计算机网络的不同计算机系统之间被执行。
在图2a中,例如,针对给定帧(例如,与时间戳或时间片相关联)的相机吊舱(210)的视频输出被提供给深度生成器(270-273)。通常,深度生成器(270-273)可以被实现为接收和处理从相机输出的视频的软件和/或硬件。深度生成器(270-273)可以执行以下一些或全部操作:从相机吊舱(210)中的视频相机接收针对给定帧的视频输出(例如,包括单色图像和/或彩色图像);从一些所接收的视频输出中(例如,从单色图像中)针对给定帧生成来自不同输入视点的深度图;以及将深度图和/或纹理图(例如,彩色图像)传输到融合组件或其他组件。在图2a中,每个深度生成器(270-273)从两个相机吊舱接收(例如,经由诸如USB电缆的有线连接、经由无线连接或经由网络连接)视频图像。例如,第一深度生成器(270)从具有两个不同输入视点的顶部两个相机吊舱中接收针对给定帧的视频图像。在该布置中,第一深度生成器(270)从顶部两个相机吊舱的两个不同的输入视点生成针对给定帧的两个深度图。其余的深度生成器(271-273)各自从其相应相机吊舱对接收针对给定帧的视频图像,并从那些相机吊舱的不同输入视点生成针对给定帧的两个深度图。深度生成器(270-273)可以逐帧重复这样的操作,从而针对相应输入视点生成深度图系列。在一些示例实现中,每个深度生成器(270-273)是在不同计算机系统上运行的软件应用。例如,每个深度生成器(270-273)可以在其自己的计算机系统上运行,其中每个计算机系统具有两个图形卡,并且每个图形卡处理来自一个相机吊舱的视频图像系列。备选地,深度生成器可以在更多或更少的计算机系统上或在虚拟机上运行(例如,使用云计算资源)。
在图2a的示例环境(201)中,由深度生成器(270-273)产生的深度图被提供(例如,通过网络)到融合组件(280)。融合组件(280)可以被实现为软件和/或硬件。通常,融合组件(280)执行以下一些或全部操作:从深度生成器接收深度图;从深度生成器(例如,传递通过深度生成器)、相机吊舱或另一组件接收纹理图;生成动态3D模型;以及将针对动态3D模型的模型数据和纹理图传输到绘制组件。具体地,对于给定帧(例如,与时间戳或时间片相关联),融合组件(280)将针对给定帧来自不同输入视点的深度图进行组合,以生成针对给定帧的3D模型,这可以包括更新参考3D模型(基于针对一个或多个先前帧的3D模型数据)并估计当前3D模型(基于针对给定帧的深度图)。例如,3D模型是三角形或其他体积表示的顶点网格。在一些示例实现中,融合组件(280)作为软件在单独的计算机系统或单独的虚拟机上运行。由融合组件生成的用于动态3D模型的模型数据被(例如,通过网络)传输到一个或多个绘制组件(290),一个或多个绘制组件(290)也可以称为绘制器或绘制引擎。
绘制组件(290)可以被实现为软件和/或硬件。通常,绘制组件(290)接收针对给定帧的动态3D模型的模型数据以及针对给定帧的纹理图、将来自针对给定帧的一个或多个纹理图的纹理值(例如,颜色值)应用于针对给定帧的动态3D模型、并从输出视点(也称为用户视点或用户相机视角)生成经纹理化的动态3D模型的二维(“2D”)视图。经绘制的视图可以被输出到诸如全息显示设备的输出设备(295)以进行显示。例如,绘制组件(290)可以生成左和右1080p图像,以在VR或AR头戴式耳机中显示为3D全息视频输出。可以被用作输出设备(295)的全息显示设备的一些示例包括 和HTC VIVETM。绘制组件(290)还可以将经绘制的视图(例如,同一对左/右绘制的2D视图或单个绘制的2D视图)输出到另一显示设备(例如,计算机监视器)或组件(例如,用于游戏广播的编码器)。在一些示例实现中,一个或多个绘制组件(290)中的每一个作为软件在不同于融合组件(280)并且不同于任何其他绘制组件(290)的计算机系统上运行。(多个)绘制组件(290)中的每一个为不同的输出设备(295)(例如,不同的全息显示设备)产生输出。
图2b示出了具有用于对经纹理化的动态3D模型进行捕获、融合、纹理化和绘制的系统的另一示例环境(202)。示例环境(202)包含图2a中所示的组件(例如,示例环境(201)),但是具有不同的配置并且具有一些附加组件。具体地,示例环境(202)包括编码器(220)和分发器(260)。在图2b所示的系统中,深度生成器(270-273)、融合组件(280)和绘制组件(290)执行如上参考图2a所述的操作。
可以利用软件和/或硬件实现的编码器(220)从相机吊舱(210)的相机接收针对给定帧的视频图像、对针对给定帧的视频图像进行编码(例如,使用一个或多个视频编码器)并将经编码的视频图像传输到分发器(260)。对于给定帧,编码器(220)可以将来自相机的视频图像(例如,1080p分辨率或某个其他分辨率的视频图像)包装为较大的图像(例如,4K分辨率的图像),并对较大的图像进行编码(例如,使用单个视频编码器)。编码器(220)可以将其所接收的单独视频图像组合为较大的视频图像(例如,逐帧)。例如,从八个相机吊舱(210)中的每一个,编码器(220)可以接收针对给定帧的两个单色图像(用于生成深度值)和一个彩色图像;针对给定帧,根据预定义的平铺布置来将图像组合为较大的图像;对较大的图像进行编码并将经编码的图像传输到分发器(260)。在一些示例实现中,编码器(220)(例如,作为软件应用、硬件加速的编码器或硬件编码器)在与环境(202)的其他组件分离的计算机系统或虚拟机上运行。
可以利用软件和/或硬件实现的分发器(260)从编码器(220)接收针对给定帧的编码图像、对图像进行解码并将经重构的图像划分为与来自相机的针对给定帧的输入视频图像相对应的图像。分发器(260)将至少一些单独的视频图像发送到深度生成器(270-273)以进行处理。例如,分发器(260)将用于相机吊舱(210)中的相机对的单色视频图像发送到深度生成器(270-273)中的对应一个,以用于生成针对给定帧的深度图。在一些示例实现中,分发器(260)(例如,作为软件应用、硬件加速的解码器或硬件解码器,利用用于对经重构的图像进行分区的附加逻辑)在与环境(202)的其他组件分离的计算机系统或虚拟机上运行。
在图2b中,相机吊舱(210)和编码器(220)在本地环境(230)中操作,而其他组件(包括分发器(260)、深度生成器(270-273)、融合组件(280)、(多个)绘制组件(290)和控制面板(250))在远程环境(240)中操作。本地环境(230)的组件经由一个或多个网络连接(例如,有线网络连接、无线网络连接或组合)与远程环境(240)的组件通信。例如,本地环境(230)的组件可以位于特定地理位置(例如,建筑物中的房间)中,而远程环境(240)中的组件可以位于不同的地理位置(或多个不同的地理位置)中。例如,远程环境(240)的一些组件可以被托管在位于远程数据中心中的服务器计算机或虚拟服务器中。在一些示例实现中,本地环境(230)是相机吊舱(210)和编码器(220)在其中进行操作并使用无线网络连接(例如,蜂窝数据连接)与远程环境(240)的组件(分发器(260)和/或控制面板(250))进行通信的移动环境(例如,汽车)。在该配置中,编码器(220)可以对视频图像进行编码,使得经编码的视频图像可以通过相对低带宽的网络连接来传输,这可以允许系统在移动环境中有效地操作。
特别地,无论是在移动环境中实现还是以其他方式实现,图2b的环境(202)中示出的组件的配置都可以提供对对象(例如,人、物)的高质量动态3D模型的捕获和构建,该高质量动态3D模型将针对虚拟存在或会议应用被实时地传输到远程查看器。这可以允许用户查看3D中的远程参与者并与之交互,就好像远程参与者实际存在于用户的物理空间中一样。
在图2a至图2b的环境(201、202)中,深度生成器(270-273)从针对给定帧的视频图像生成针对给定帧的深度图。备选地,组件可以将深度生成器与相机吊舱组合。例如,组件可以是深度相机(例如,并入了两个单色视频相机和深度生成器,或者以其他方式提供深度图)。具有深度相机的一个示例组件是可以提供针对给定帧的深度图和纹理图的相机。在该配置中,深度相机可以直接连接到融合组件(280)(例如,在图2a所示的布置中)或编码器(220)(例如,在图2b所示的布置中),融合组件(280)或编码器(220)可以对纹理图和/或深度图进行编码。
Ⅲ.使用固有纹理值来生成动态3D模型
该部分描述了生成使用固有纹理值以及深度值的动态3D模型的方法。这些方法可以被实现为融合组件(诸如,图2a和图2b所示的融合组件(280))的一部分,融合组件接收从不同输入视点捕获的深度图和纹理图,并生成动态3D模型。在一些示例实现中,该部分中描述的方法扩展了Dou等人在“Fusion4D:Real-time Performance Capture of ChallengingScenes(Fusion4D:具有挑战性的场景的实时性能捕获)”ACM图形学报,2016年(“Fusion4Dreference(Fusion4D参考)”)中呈现的方法。备选地,该部分中描述的方法可以以其他方式来实现。
A.简介
Fusion4D reference提出了用于实时多视图性能捕获的处理流水线。总之,作为流水线的一部分,Fusion4D系统使用针对当前帧的深度图中的深度值来增量地且选择性地更新参考体积V(也称为关键体积),参考体积与动态3D模型的顶点网格相关联。随着时间的流逝,这可以帮助保持动态3D模型的一致性。具体地,Fusion4D系统获取针对当前帧的N个深度图和N个RGB图像。在数据融合阶段,Fusion4D系统使用N个深度图来选择性地更新参考体积V。新的参考体积可以周期性地或在动态3D模型发生根本变化时被启动。否则,基于针对当前帧的深度图,当前参考体积V(在数据融合阶段)被选择性地更新。
然后,在非刚性运动场估计阶段,Fusion4D系统估计使得当前参考体积V翘曲(变形)的翘曲参数G,以使其与针对当前帧的深度图对准。具体地,Fusion4D系统对参考体积V内的K个嵌入变形节点Sm集合进行采样。网格中针对参考体积V的每个顶点vm被“蒙皮(skinned)”到节点Sm中最接近的节点。每个节点k(k等于1到K)周围的局部变形使用针对节点的仿射变换Ak和平移tk来限定。而且,全局旋转R和全局平移T被定义。翘曲参数G包括全局旋转R、全局平移T以及对于每个节点k,针对该节点的仿射变换Ak和局部平移tk。为了计算翘曲参数G,Fusion4D系统使用能量函数E(G)来惩罚经翘曲的参考体积V和所观察的针对当前帧的N个深度图之间的失准。能量函数E(G)还将所允许的变形类型规范化,并且并入各种约束条件和有关先前结果的信息。具体地,Fusion4D reference中的能量函数为:
E(G)=λdataEdata(G)+λhullEhull(G)+λcorrEcorr(G)+λrotErot(G)+λsmoothEsmooth(G)(1),
其中,Edata(G)是惩罚经扭曲的参考体积V与所观察的针对当前帧的N个深度图之间的失准的数据项,Ehull(G)是对经翘曲的参考体积V与视觉外壳的边界之间的偏差进行量化的视觉外壳项,Ecorr(G)是对纹理值对应关系中的差异进行量化的对应关系项;Erot(G)是用于对参考体积V的节点的局部仿射变换与刚性变换之间的偏差进行量化的旋转项;并且Esmooth(G)是用于对参考体积V的相邻节点的局部仿射变换中的可变性进行量化的平滑化项。λdata,λhull,λcorr,λrot和λsmooth是相应项的实现相关加权因子。加权因子可以具有相等的值,以便对各项进行平均加权。或者,作为性能调整的结果,加权因子可以具有不同的值,以便对不同的项赋予不同程度的重要性。Fusion4D reference详细介绍了如何计算能量函数E(G)的各项,并且还描述了优化能量函数E(G)计算的各种方法。
在翘曲参数G被确定之后,Fusion4D系统将翘曲参数G应用于参考体积V的顶点。参考体积V中的任何顶点vm可以根据以下等式进行翘曲:
其中是蒙皮权重,gk是针对节点k的采样位置。参考体积V中各点的任何对应法线nm可以根据以下等式进行变换:
并在以后应用归一化。
最后,在另一数据融合阶段,经翘曲的参考体积V可以与针对当前帧的深度图中的深度值选择性地组合,以确定针对当前帧的数据体积,数据体积与动态3D模型的顶点网格相关联。特别地,由于遮挡或相机故障,经翘曲的参考体积V可以用于填充针对当前帧的数据体积中的孔,或用于累加数据体积区域中的细节。
有关Fusion4D系统的附加详细信息,请参见Fusion4D reference。
Fusion4D reference中描述的方法将针对各帧的深度图中的深度值用于生成动态3D模型。在这样的仅深度方法中,动态3D模型的质量在一些情况下可能会受到影响。例如,在一些情况下,深度图中的深度值通过匹配来自结构化IR光的图案而被生成(例如,在使用具有IR带通过滤器和IR斑纹图案的单色视频相机捕获的图像中)。IR照明模式可能会错过环境中的薄结构。图3a示出了这种现象的示例(301)。作为另一示例,用于生成深度值的图像可以记录由于相机缺陷、噪声或其他因素而引起的意外闪光。图3b示出了该现象的示例(302)。作为另一示例,在许多情况下,仅深度方法不会在深度图中生成环境中对象的平滑剪影。图3c示出了该现象的示例(303)。
B.生成动态3D模型时使用固有纹理值
融合组件可以在生成动态3D模型时将来自纹理图的“固有”纹理值指派给各点(例如,网格的顶点、体积表示的体素)。例如,融合组件可以使用固有颜色值以及深度值来更新参考体积的各点。或者,作为另一示例,当比较经翘曲的参考体积与观察值(在纹理图和深度图中)时,融合组件可以通过使用固有纹理值以及深度值来更准确、更可靠地确定参考体积的翘曲参数。在生成动态3D模型时,通过为各点指派固有纹理值,融合组件可以在一些情况下填充深度图或用于生成深度图的深度值的图像中缺少或不可靠的信息。
图4示出了用于在生成计算机表示的环境的动态3D模型时将固有纹理值应用于各点的通用技术(400)。纹理值通常是图像的颜色值(例如,RGB值),但是备选地可以是某种其他类型的纹理值(例如,不透明度值、镜面反射系数)。动态3D模型的各点例如是三角形网格的顶点或体积表示的体素。融合组件(诸如,图2a和图2b中所示的融合组件(280))可以执行技术(400)。使用技术(400),融合组件可以使用从多个相机在不同输入视点处捕获的纹理值和深度值来实时生成动态3D模型。
参考图4,融合组件接收(410)针对当前帧的纹理图。纹理图中的每一个包括在计算机表示的环境中从不同的输入视点捕获的纹理值。例如,如图2a或图2b所示,纹理图中的每一个由不同相机吊舱的视频相机捕获,并且每个纹理值是RGB类型颜色空间中的颜色值。当纹理值是颜色值时,融合组件可以将至少一些颜色值从第一颜色空间(例如,RGB类型颜色空间)转换到第二颜色空间(例如,YUV类型颜色空间)。
融合组件接收(420)针对当前帧的深度图。每个深度图包括来自不同输入视点之一的深度值。例如,每个深度图从如图2a或图2b所示的不同相机吊舱的单色视频相机对所捕获的图像中被生成。深度图的空间分辨率可以与对应纹理图的空间分辨率相同或不同。每个深度值可以包括距离值、权重和/或另一参数。
融合组件基于针对当前帧的纹理图和针对当前帧的深度图来选择性地更新(430)参考3D模型(也称为参考体积或关键体积)。在这样做时,融合组件使用深度图来选择性地更新参考3D模型的各点。例如,对于参考3D模型的至少一些点之中的每个点,融合组件将点投影回到至少一些深度图中的位置并更新参考3D模型中的点的参数(例如,带符号的距离值和/或权重)。融合组件可以在深度图的至少一个中而不是在参考3D模型中标识一个或多个新点,并将(多个)新点添加到参考3D模型。融合组件还可以标识一个或多个未对准点,并从参考3D模型中移除(多个)未对准点。
当其选择性地更新(430)参考3D模型时,融合组件还选择性地更新参考3D模型的各点的固有纹理值。例如,对于参考3D模型中至少一些点之中的每个点,融合组件将点投影回到至少一些纹理图中的位置,并在参考3D模型中指派该点的固有纹理值。对于固有纹理值,融合组件可以在纹理图的反投影位置处将来自纹理图的对应纹理值进行组合(例如,对对应纹理值进行平均、使用多数表决方法或其他方法,移除由遮挡或失配(mis-registration)引起的异常纹理值和/或确定对应纹理值和该点的先前固有纹理值的加权组合)。
参考图4,融合组件还从针对当前帧的深度图来确定(440)当前3D模型(也称为数据体积)的各点。
至少部分地基于参考3D模型的各点的经更新的固有纹理值和针对当前帧的纹理图,融合组件确定(450)将参考3D模型翘曲到当前帧的翘曲参数。当确定(450)翘曲参数时,融合组件还可以考虑针对当前帧的深度图。翘曲参数可以包括:(a)指定参考3D模型的全局平移的(多个)参数,(b)指定参考3D模型的全局旋转的(多个)参数,以及(c)对于参考3D模型的多个节点中的每一个,指定局部仿射平移的(多个)参数和指定节点的局部平移的(多个)参数。图5示出了用于至少部分地基于固有纹理值来确定翘曲参数的示例技术(500)。利用示例技术(500),融合组件根据非刚性匹配算法来确定(450)翘曲参数,这可以帮助动态3D模型的平滑生成。备选地,融合组件可以使用另一方法来确定(450)翘曲参数。
融合组件根据翘曲参数来将参考3D模型翘曲(460),并选择性地组合(470)当前3D模型和经翘曲的参考3D模型。融合组件检查(480)是否继续下一帧,如果是,则通过接收(410)纹理图和接收(420)针对下一帧(作为当前帧)的深度图来继续。以这种方式,当使用参考3D模型(参考体积、关键体积)和当前3D模型(针对当前帧的数据体积)生成动态3D模型时,融合组件可以逐帧并入纹理图和深度图。周期性地或响应于急剧变化,融合组件可以启动新的参考3D模型。
C.确定翘曲参数时使用固有纹理值
参考图5,为了至少部分地基于固有纹理值来确定参考3D模型的翘曲参数,融合组件限定(510)参考3D模型的节点,并且将参考3D模型的各点指派(520)给节点。然后,融合组件针对指派给节点的各点,对经更新的固有纹理值进行采样(530)。融合组件将误差函数最小化(540),误差函数对经翘曲的参考3D模型(经翘曲的参考体积)与针对当前帧的观测值之间的不匹配进行惩罚,从而找到误差函数的实际或近似最小值。特别地,误差函数包括纹理误差项,纹理误差项对参考3D模型的反投影点的经更新的固有纹理值与当前帧的纹理图的对应纹理值之间的误差进行量化。即,参考3D模型的各点被反向投影到纹理图,并且反向投影点的经更新的固有纹理值与当前帧的纹理图的对应纹理值进行比较。误差(参考3D模型的反投影点的经更新的固有纹理值与针对当前帧的纹理图的对应纹理值之间的误差)可以被量化为平方差的总和或其他失真度量。该误差可以仅针对在相应纹理图中可见的各点来选择性地计算,或者可以不论可见性如何,误差针对各点被计算。
除了纹理误差项之外,误差函数还可以包括一个或多个其他项。例如,其他项可以是:(a)对参考3D模型的反投影点与当前帧的深度图的对应深度值之间的误差进行量化的深度误差项,(b)对经翘曲的参考3D模型与视觉外壳边界的偏差进行量化的视觉外壳误差项,(c)对参考3D模型的节点的局部仿射变换与刚性变换的偏差进行量化的旋转项,(d)对参考3D模型的相邻节点的局部仿射变换进行量化的平滑项,(e)对纹理值对应关系中的差异进行量化的对应关系项,和/或(f)另一项。使用这些项可以改进动态3D模型的实时重建的质量。
例如,根据实现,将被最小化的误差函数可以是:
E(G)=λdepthEdepth(G)+λcolorEcolor(G) (4),或者
E(G)=λdepthEdepth(G)+λcolorEcolor(G)+λcorrEcorr(G)+λrotErot(G)+λsmoothEsmooth(G)(5),或者
E(G)=λdepthEdepth(G)+λcolorEcolor(G)+λhullEhull(G)+λcorrEcorr(G)+λrotErot(G)+λsmoothEsmooth(G) (6),
其中Ecolor(G)是以下定义的纹理误差项,并且λcolor是颜色误差项的加权因子。项Ehull(G)、Ecorr(G)、Erot(G)和Esmooth(G)以及加权因子λhull、λcorr、λrot、和λsmooth被定义为如在Fusion4D reference中所定义的。项Edepth(G)是与Fusion4D reference中的项Edata(G)相对应的深度误差项,它用于惩罚经翘曲的3D模型与针对当前帧的所观察的N个深度图之间的失准。λdepth是深度误差项的加权因子。深度误差项Edepth(G)可以被定义为:
其中M是参考3D模型的顶点数,G表示对于k=1到K的翘曲参数{R,T}∪{Ak,tk},K指示节点计数。P(Dn)是从深度图Dn中提取的点云(point cloud),x表示该点云中一个点的深度值。点云将3D空间中的一个或多个对象表示为点集。点云中的点与3D空间中的位置(通常是具有x、y和z坐标的位置)相关联。在一些示例实现中,点云数据被“体素化”,使得点与3D网格中具有规则间隔的位置对准。
函数Depth(vm;G)将翘曲参数G应用于点vm,并确定投影点的深度值。因此,对于N个深度图中的每一个,对于M个顶点中的每一个,融合组件计算翘曲点(顶点)的深度值与深度图Dn中的对应深度值之间的平方差之和。如Fusion4D reference中所解释的,深度误差项的计算可以限于在深度图Dn中视为可见的那些点:
其中Vn(G)指示参考3D模型中当由翘曲参数G投影时,在深度图Dn中可见的各点。如Fusion4D reference中所述,深度误差项也可以使用点对平面项来近似。
纹理误差项Ecolor(G)可以被定义为:
其中N是纹理图的数量,M是参考3D模型的顶点数量,G表示对于k=1到K的翘曲参数{R,T}∪{Ak,tk},且K指示节点计数。P(In)是从纹理图In中提取的点云,而cYUV表示YUV类型颜色空间中该点云中某个点的颜色值。函数Color(vm;G)YUV将翘曲参数G应用于点vm,并确定YUV类型颜色空间中投影点的颜色值。因此,对于N个纹理图中的每一个,对于M个顶点中的每一个,融合组件计算翘曲点的固有颜色值与纹理图In中对应颜色值之间的平方差之和。纹理误差项的计算可以被限制为在纹理图In中视为可见的那些点:
其中,Vn(G)表示参考3D模型中当通过翘曲参数G投影时,在纹理图In中可见的点。使用与Fusion4D reference中描述的用于使用点对平面项来近似深度误差项的方法类似的方法,纹理误差项也可以使用点对平面项来近似。
IV.将纹理值应用于具有较少伪像的动态3D模型
该部分描述了将纹理值应用于动态3D模型的方法,在许多情况下,该方法避免了在经纹理化的动态3D模型中引入模糊和明显的接缝。该方法可以被实现为绘制组件(诸如,图2a和图2b所示的绘制组件(290))的一部分。绘制组件接收帧的动态3D模型的模型数据和帧的纹理图,并针对帧生成经纹理化的动态3D模型。在一些示例实现中,该部分中描述的方法扩展了Orts-Escolano等人在“Holoportation:Virtual 3D Teleportation in Real-time(Holoportation:实时虚拟三维远距离传送),”第29届用户界面软件与技术年会会议论文集2016年(“Holoportation reference(全息传送参考)”)中提出的方法。备选地,该部分中描述的方法可以以其他方式实现。方法可以用于多种应用,诸如,用于沉浸式商务会议或个人通信的3D远程呈现、现场音乐会的广播或其他事件以及远程教育。
A.简介
Holoportation reference提出了将来自不同视点的纹理细节缝合到动态3D模型上的方法。在许多情况下,Holoportation系统可以在无需事先了解成像对象的情况下,提供实时的高保真4D重建。
Holoportation系统针对当前帧生成动态3D模型的模型数据。例如,遵循Fusion4Dreference中介绍的方法,Holoportation系统使用快速、非刚性的对准估计过程来将多个深度图融合为体积表示。Holoportation系统将纹理值缝合到动态3D模型。对于帧,给定三角形网格和从一个或多个Fusion4D服务器流传输的N个纹理图M1,M2,...,MN,Holoportation系统为每个网格顶点v指派标量纹理权重的向量纹理权重字段W表示这些向量在三角形网格上的分段线性插值。对于每个未遮挡顶点v,Holoportation系统使用反投影来计算每个纹理图中对应位置的坐标对(x,y)。将被应用于点(顶点v)的所产生的颜色cv通过以下方式来确定:使用顶点v的归一化纹理权重字段/>来混合纹理图Mi中对应位置处的颜色值/>
其中函数texture2D()表示纹理图Mi中反投影位置(x,y)处的颜色值对于每个顶点v,第i输入视点/相机的纹理权重字段/>被定义为:
其中Tv是使用扩张(dilated)深度图和从粗到精(coarse-to-fine)的多级多数投票策略进行的可见度测试。项是顶点v处的平滑法线向量,并且项diri是第i输入视点/相机的方向。因子/>提供了基于法线(法线加权)的纹理值混合。项α决定了视点方向上过渡的平滑度,有利于正面视图。α的值与实现相关。例如,α为2。
对于第i输入视点/相机,可见性测试Tv标识了动态网格的哪些点可见。如果某个点从第i输入视点/相机不可见,则该点v和视点/相机i的对应权重被设置为零。
对于可见性测试Tv,如果某个点被同一对象或不同对象的一个或多个其他点遮挡,则该点可以标记为不可见。Holoportation系统使用扩张深度图来检测区域的遮挡点,这可以减轻重影(ghosting)效果并移除由于几何形状不精确而造成的其他伪影。具体而言,在表面上的每个点v处并且对于每个输入视点/相机,Holoportation系统在输入视点/相机的栅格化深度图内搜索该点v的投影2D邻域中的任何深度不连续性。2D邻域包括点v的投影的ε像素半径内的位置。例如,ε=4。如果在深度值中发现这样的不连续性,则对于点v,
对于可见性测试Tv,如果不同纹理图中的对应位置的颜色值不足够均匀,则点v也可以被标记为不可见。对于测试的这一部分,Holoportation系统使用多级多数投票策略。对于给定顶点v和纹理图Mi,Holoportation系统从粗略级别搜索到精细级别。如果来自点v的至少一半可见视图的纹理图的颜色值在Lab颜色空间中的相似度阈值之内,则纹理图Mi中的采样颜色是可信的。具体地,针对点v的多数投票测试是:
其中X指示可见视图的数量,并且δ指示相似性的阈值。例如,δ=0.15。
当将纹理值缝合到动态3D模型时,使用具有扩张深度图和多级多数投票策略的可见性测试可以减轻重影效果。即使这样,在缝合纹理值之后,一些明显的伪像仍可能保留,特别是在诸如人脸的感兴趣区域中出现模糊的细节和明显的接缝。细节模糊可能由多种因素引起。基于法线的混合在设置纹理权重时会考虑几何数据,但是网格可能会包括缺失或挤压的三角形。同样,不同纹理图的纹理值(来自不同视点)的基于法线的混合可以不适当地混合具有不同属性的纹理值。例如,由于光源,发散的颜色值可以归因于一个视点(而非其他视点)的镜面反射高光,或者发散的颜色值可以归因于不同相机中的不同校准设置。从不同视点将纹理图投影到动态3D模型的几何图形时,模糊也可以由接缝周围的配准(registration)错误引起。一些接缝(失配接缝)可能由不精确重建的几何形状引起,不精确重建的几何形状具有缺失的三角形、挤压的三角形或网格几何数据本身的其他问题。相邻顶点的纹理权重可能支持完全不同的视点,从而导致可见的接缝。其他接缝(遮挡接缝)可能由于不同相机在不同视场之间的纹理值之间的不连续过渡引起,也可能由于从给定视点动态3D模型的一部分自动遮挡了动态3D模型的另一部分而引起。
该部分描述了在动态3D模型上缝合多视图视频纹理的示例方法。在许多情况下,这些方法可以解决不精确或丢失的网格几何信息的问题,并可以减轻接缝周围的模糊,同时满足实时和交互性能的关键时间约束。在一些示例实现中,方法如在Holoportation系统中那样在绘制时进行了改进,以减少混合纹理值时的重影效果。例如,代替基于法线的混合,一些方法使用视点相关的绘制来确定动态3D模型顶点的适当纹理值,这可以避免基于法线的混合导致的模糊性。作为另一示例,一些方法在接缝周围使用纹理权重的空间平滑(例如,使用离散微分几何指导的测地权重来在空间上扩散纹理场),以减轻动态3D模型的接缝的可见性。作为又一示例,一些方法使用纹理权重的时间平滑(例如,时间纹理场)来维持应用于动态3D模型的纹理的时间一致性,这可以在即使输出视点发生巨大变化的情况下,也平滑地更新纹理权重并帮助防止纹理权重快速变化。
在一些示例实现中,最终的绘制操作与在Holoportation系统中的绘制操作相同,但是纹理权重以不同的方式被确定。针对帧,给定三角形网格和N个纹理图M1,M2,…,MN,绘制组件为每个网格顶点v指派标量纹理权重的向量对于每个非遮挡顶点v,绘制组件使用反投影为每个纹理图计算对应坐标对(x,y)。最后,将被应用于点(顶点v)的所产生的颜色cv通过以下方式来确定:使用顶点v的归一化纹理权重字段/>来将纹理图Mi中对应位置处的颜色值/>混合:
其中函数texture2D()表示纹理图Mi中反投影位置(x,y)处的颜色值
对于每个顶点v,第i输入视点/相机的纹理权重字段可以按照以下各部分中描述的进行定义。当确定纹理权重/>时,绘制组件可以考虑纹理权重的空间平滑度、纹理权重的时间一致性和/或绘制视图的清晰度。关于空间平滑度,相邻顶点的纹理字段之间的过渡应是平滑的,因为人类的感知对纹理的不连续性特别敏感。关于时间一致性,随着动态3D模型改变和/或输出视点改变,纹理字段应随时间平滑变化。最后,即使由于不精确地重建的几何形状,将所有纹理值应用于动态3D模型将导致模糊或重影伪影,绘制视图仍应保留输入纹理图的精细尺度细节。
B.示例工作流程
图6a和图6b示出了其中纹理图的纹理值使用平滑的、视点相关的纹理权重而被应用于动态3D模型的示例工作流程(600)。图6a和图6b所示的操作可以例如由如参考图2a和图2b所述的在客户端计算机系统上运行的绘制组件来执行。
绘制组件接收用于动态3D模型的模型数据流(601),其中模型数据(601)逐帧被更新。例如,模型数据(601)是用于三角形网格的顶点数据、用于多边形网格的顶点数据、动态体素或定义针对动态3D模型的可变形的体积表示的其他数据。模型数据(601)可以由如参考图2a和图2b所述的在服务器计算机系统上运行的融合组件产生。
绘制组件还逐帧接收针对各帧的N个纹理图(602)。对于给定帧,N个纹理图从N个不同的输入视点被捕获。例如,纹理图(602)包括由视频相机从相应输入视点捕获的纹理值(例如,颜色值)。备选地,纹理图(602)包括一些其他类型的纹理值(例如,反照率值、不透明度值、用于动态纹理图集的值、用于动态凹凸图的值)。
绘制组件还可以接收指示相应N个输入视点(即,N个相机的姿势、方向、视角、配置等)的定向数据(607)。定向数据(607)可以指定用于从(相机的)N个输入视点到模型空间的投影映射的参数。定向数据(607)可以针对第一帧被指定,其中相同的输入视点被用于针对所有帧的视频相机。备选地,绘制组件可以周期性地(例如,每帧)或间歇地接收所更新的定向数据(607),这允许输入视点改变。
绘制组件从该帧的纹理图(602)和该帧的动态3D模型的模型数据(601)计算出给定帧的N个栅格化深度图(603)。根据相应纹理图(602)的相机的N个输入视点之中的每个视点,绘制组件确定对应的栅格化深度图(603)。绘制组件可以与GPU的处理单元并行地为N个不同的输入视点确定栅格化深度图(603)。备选地,绘制组件可以从另一组件接收N个深度图(603)。
绘制组件从帧的N个栅格化深度图(603)和N个纹理图(602)中计算出N个分段图。使用分段图,绘制组件从纹理图减去背景细节,从而为帧生成N个分段纹理图(604)。例如,绘制组件使用用于执行均值场推断的有效实时过程,利用背景减法模块来处理纹理图(602)。备选地,绘制组件可以从另一组件接收N个分段纹理图(604)。
绘制组件标识动态3D模型中的接缝(605)。例如,接缝(605)包括遮挡接缝和/或失配接缝。为了标识遮挡接缝,如上文针对在Holoportation系统中的可见性测试所述,绘制组件可以根据栅格化深度图(603)来估计扩张深度不连续性,以从不同的输入视点标识遮挡区域的边界位置。标识遮挡边界可以减轻当缺少几何数据或自遮挡导致纹理值在动态3D模型上的不正确投影时可能出现的重影伪影。因此,对于输入视点,绘制组件可以使用经栅格化的深度图(603)中的一个,基于深度图中来自输入视点的深度值中的边缘/悬崖附近的位置,标识该输入视点的遮挡区域的边界。为了标识失配接缝,如上文针对Holoportation系统中的可见性测试所述,绘制组件可以使用多级多数投票策略来标识在分段纹理图(604)中的对应位置处的纹理值不足够相似的各点。因此,对于在不同分段纹理图(604)中的其投影位置具有不足够相似的颜色值的顶点,绘制组件可以将该顶点标识为失配接缝的一部分。绘制组件还可以使用分段纹理图(604)来确定由于每个相机的有限视场而造成的接缝。第IV.C节描述了接缝(605)的示例以及用于标识接缝(605)的过程。
如图6b所示,在标识接缝(605)之后,绘制组件针对顶点来计算测地距离值(606)(或“测地线”)。对于给定顶点,测地距离字段可以包括N个输入视点中每个视点的值,该值指示该输入视点到接缝的最直测地距离。例如,该值指示到任何接缝(605)的最短测地距离-即,对于输入视点和顶点,到最接近接缝(605)的测地距离。测地距离字段还可以包括到其他接缝的距离值。第IV.D节描述了计算测地距离值(606)的方法的示例。
绘制组件然后基于测地距离值(606)、栅格化深度图(603)、分段纹理图(604)、定向数据(607)和视图数据(608)来生成视点相关的纹理权重(“VDTW”),从而生成平滑的VDTW(609)。例如,对于给定顶点,针对N个输入视点中的每一个,绘制组件根据由视图数据(608)指示的输出视点和由定向数据(607)指示的输入视点中的一个来计算基本权重。特别地,基本权重与输出视点相关,输出视点对应于绘制视图的虚拟(或用户)相机的视角。
绘制组件可以使用基于测地距离值(606)的权重而将纹理权重在空间上平滑(扩散),绘制组件根据测地距离值(606)以非线性方式有效地过滤纹理权重。这可以减轻甚至消除静态帧的可见接缝。实际上,对于输入视点,绘制组件可以使用测地距离值(606)来将零权重指派给被遮挡的或者在输入视点的接缝之一(605)上的顶点、向远离针对输入视点的任何接缝(605)的顶点指派整体权重(1),以及将部分权重(0到1之间,与距离有关)指派给与针对输入视点的动态3D模型的接缝(605)的任何顶点靠近的顶点。因此,关于从输入视点来看的纹理图的纹理值的贡献,绘制组件可以减小接近接缝的顶点的权重并增加远离接缝的顶点的权重。
绘制组件还可以在时间上对纹理权重进行平滑,以增加纹理权重的时间一致性,从而改进帧与帧之间的绘制视图的一致性。给定由视图数据(608)指示的输出视点,绘制组件为N个输入视点/纹理图的每一个确定视点相关的纹理权重。如果输出视点中发生突然变化,则视点相关的纹理权重可以快速变化,从而导致绘制视图中各点的颜色值出现明显的突然变化。为了减轻输出视点改变时的这种影响,绘制组件可以将视点相关的纹理权重在时间上进行平滑,使得它们随着时间的推移朝向纹理权重的目标值平滑地调整。
第IV.E节描述了对视点相关的纹理权重(609)进行确定和平滑的方法的示例。
绘制组件根据经平滑的、视点相关的纹理权重(609)将分段纹理图(604)应用于动态3D模型(由模型数据(601)指定),并对来自由视图数据(608)指示的输出视点的经纹理化的动态3D模型的视图进行绘制。例如,绘制组件在动态3D模型上叠加来自分段纹理图的采样纹理值(604)(由经平滑的、视点相关而纹理权重(609)进行加权),并对来自输出视点的经纹理化的动态3D模型的视图进行绘制。在实践中,叠加纹理值和绘制的操作可以被组合,使得叠加操作仅对从输出视点来看包含在绘制视图中的点来执行。例如,绘制组件将通过经平滑的、视点相关的纹理权重(609)进行加权的、来自分段纹理图的采样纹理值(604)应用于绘制视图中每个位置的动态3D模型。绘制组件还可以对屏幕空间环境遮挡执行后处理。
C.接缝标识示例
当将纹理值投影并应用到动态3D模型上时,遮挡接缝和失配接缝可能导致不期望的背景像素、重影伪影和/或模糊区域出现在绘制视图中。为了减轻这种伪影,绘制组件可以从不同输入视点来标识动态3D模型中的接缝,并在为接缝周围的点应用纹理值时执行附加操作。该部分介绍了从不同输入视点标识动态3D模型中接缝的方法示例。
在一些示例实现中,绘制组件标识由相机之间的自遮挡、照明条件和/或视场过渡引起的接缝。备选地,绘制组件可以标识其他类型的接缝。当动态3D模型是三角形网格时,绘制组件可以通过查看网格的相应三角形来标识动态3D模型中的接缝三角形。备选地,绘制组件可以以某种其他方式来表示动态3D模型中的接缝点。
由于另一对象或同一对象的一部分对区域的遮挡,遮挡接缝可以对应于来自输入视点的纹理图/深度图中的缺失数据区域的边界、或者对应于背景区域的边界。如果在来自输入视点的深度图(或扩张的深度图)中,三角形的一个或两个顶点被遮挡,但从该输入视点,未遮挡三角形的其他一个/多个顶点,则三角形在遮挡边界处可以被标识为接缝三角形。因此,如果三角形的至少一个顶点从输入视点可见,但是三角形的至少另一顶点从输入视点不可见,则认为三角形是遮挡接缝的一部分。同样,如果针对输入视点,三角形的至少一个顶点而不是每个顶点被投影到纹理图的减去的背景区域中,则三角形可以被标识为遮挡接缝的一部分。
遮挡接缝还可以对应于从输入视点来看的视场的边界。如果从输入视点来看三角形的一个或两个顶点在视场之外,但从该输入视点来看,三角形的其他一个或多个顶点在视场之内,则三角形在遮挡边界处也可以被标识为接缝三角形。因此,例如,如果针对输入视点,三角形的至少一个顶点(但不是每个顶点)被投影到纹理图的视场之外,则三角形可以被标识为遮挡接缝的一部分。
失配接缝由于来自不同输入视点的纹理图的纹理值的配准在重叠处不匹配而导致。如果根据多数投票测试,三角形的顶点具有不同的结果(这可能由于失配或自遮挡引起),则三角形在失配边界处可以被标识为接缝三角形。在该上下文中,如果纹理图中针对该顶点的对应位置的阈值数量具有足够相似的纹理值,则顶点“通过”多数投票测试,否则“未通过”多数投票测试。(第IV.A节描述了示例多数投票测试。)在一些示例实现中,如果三角形的至少一个顶点“通过”多数投票测试,但三角形的至少一个顶点“未通过”多数投票测试,则三角形被视为失配接缝的一部分。在其他示例实现中,如果三角形的顶点具有足够相似的纹理值的对应位置的不同计数,则三角形被视为失配接缝的一部分。
图7a的图像(701)示出了将输入纹理图(从图形下方的输入视点并面向上捕获)投影映射到图片的动态3D模型的原始结果。对于输出视点,图像(701)呈现重影伪影(填充玩具的幻影细节出现在图片的格子衬衫上),因为从输入视点来看,具有重影伪影的区域被填充玩具遮挡。图7b的图像(702)示出了在利用扩张的深度图检测到遮挡边界之后,覆盖在图7a的投影映射上的接缝和遮挡区域。图7c的图像(703)示出了在应用多数投票测试之后,覆盖在图7a的投影映射上的接缝和遮挡区域。利用扩张的深度图检测遮挡不能移除一些重影伪影(在图7b中用箭头标记),但是多数投票测试移除了大部分的重影伪影。
图7d的图像(704)示出了将输入纹理图(从图形上方的输入视点并面向下捕获)投影映射到图片的动态3D模型的原始结果。图7e的图像(705)示出了在应用视场测试之后,覆盖在图7d的投影映射上的接缝和遮挡区域。
D.测地距离值在接缝周围的扩散的示例
在许多场景中,动态3D模型的三角形中相对较小的百分比(例如,1%)被标识为接缝三角形。对于受接缝影响的那些输入视点,接缝处或接缝附近的点的纹理权重可以被衰减。该部分介绍了对针对接缝处或接缝附近的各点,多少纹理权重应当被衰减进行量化的方法。特别地,在一些示例实现中,从点到接缝的测地距离值使用该部分中描述的扩散过程来计算。如第IV.E节中所述,在计算出测地距离值之后,它们可以被用于调整纹理权重。
如Surazhsky等人在“Fast Exact and Approximate Geodesics on Meshes(网格上的快速精确和近似的测地线)”美国计算机学会图形学汇刊(2005)(“Surazhskyreference”)中所述,测地距离值可以计算。通常,假设S是由三角形网格限定的分段平面。测地距离函数为接缝三角形的顶点Vs∈S是用于计算测地距离值的源顶点。对于任何点p∈S,测地距离值是从p返回到最接近的接缝顶点v∈Vs的测地路径(p)的长度。对于每个边缘e,维持少量的窗口win(e)。图8a的示图(801)示出了来自单个源顶点v的测地窗口win。图8b的示图(802)示出了窗口内的分量。窗口由坐标对(cdl,cdr)(逆时针)组成。到最接近的伪源pv的对应测地距离(distl,distr)、测地路径τ的方向以及测地长度σ=(pv)也得以保持。pv的位置可以通过使两个圆相交来计算。如果方向τ0和τ1彼此一致,并且所估计的测地长度在所界定的误差内:/>则当在同一边缘上传播窗口win1(e)与另一个窗口win0(e)时,两个窗口可以合并win'(e)=win0(e)∪win1(e)。图8c的示图(803)示出了两个重叠窗口(具有伪源pv0和pv1)的合并过程,以用于近似为具有伪源pv'和坐标cd'l和cd'r的新窗口win'。
测地距离值可以从接缝三角形开始并且移动朝向未遮挡三角形被迭代地扩散。在一些示例实现中,为了允许交互的绘制速率,扩散在M次迭代中从接缝三角形最多扩展m个三角形。m和M的值与实现相关。例如,m为15,M为20。在传播过程中,每个边缘维护两个窗口-其余窗口被丢弃。设置m<M允许每个顶点的最小测地距离字段将从M-m边缘远的顶点被更新。图9示出了针对接缝附近的点的测地距离值的迭代更新的示例(900),示例(900)示出了测地距离值远离其的传播。使用测地距离值对接缝附近的纹理权重在空间上进行后续过滤,可以减轻接缝周围可感知的伪影。
有关测地距离值的计算的附件详细信息,请参见Surazhskyreference。备选地,测地距离值可以以其他方式计算。或者,可以根据与接缝的接近程度,通过其他方式对各点的纹理权重的调整进行量化。
E.确定纹理权重和对纹理权重进行平滑的示例
本部分描述了用于计算在将纹理图的纹理值混合以应用于动态3D模型的各点时使用的确定权重的各种方法。纹理权重可以使用基于法线的混合或视点相关的方式来确定。纹理权重可以根据各点的可见性或输入视点的显著性,通过各种因子来调整。纹理权重可以在接缝周围在空间上进行平滑和/或在时间上进行平滑,或者根本不进行平滑。
如在IV.A节中所解释的,在现有方法中,针对第i输入视点/相机和顶点v的纹理权重利用基于法线的混合来计算:
其中,因子指示顶点v处的平滑法线向量/>与第i输入视点/相机的方向diri之间的点积。Tv是使用扩张深度图和多级多数投票策略在顶点v处进行的可见性测试,而项α确定了视点方向上过渡的平滑度,有利于正面视图。基于法线的混合可能导致绘制视图中的模糊或不清楚。
为了减轻这样的伪像,绘制组件可以计算视点相关的纹理权重。例如,针对第i输入视点/相机和顶点v的纹理权重计算如下:/>
其中,因子diro·diri指示两个向量(输出视点的方向diro(针对用户的虚拟相机)和第i输入视点/相机的方向diri)之间的点积。当输出视点的方向diro与第i输入视点/相机的方向diri完美对准时,该因子产生最高权重,在这种情况下,第i输入视点/相机应理解为提供“最佳”信息。另一方面,当输出视点的方向diro与第i输入视点/相机的方向diri正交时,该因子将产生零权重,在这种情况下,第i输入视点/相机不提供来自输出视点的方向的视图信息(由于max(0,x)函数,第i输入视点/相机也不提供来自与第i输入视点/相机相对的输出视点的视图信息。)
针对给定视点/相机的纹理权重可以使用针对给定视点/相机的全局可见性得分来调整。例如,针对第i输入视点/相机和顶点v的纹理权重可以计算为:
其中gi是第i输入视点/相机的归一化全局可见性得分。归一化全局可见性得分gi可以被计算为从第i输入视点/相机的可见顶点数量。使用全局可见性得分可以减少不太显著的视图的纹理权重。备选地,全局可见性得分可以用于利用基于法线的混合计算的纹理权重(例如,作为等式(15)中的附加项gi)。
纹理权重可以在空间上进行平滑,以减少来自接缝附近的点的贡献并增加来自远离接缝的点的贡献。例如,针对第i输入视点/相机和顶点v的纹理权重可以计算为:
其中指示针对顶点v的扩散权重。对于顶点v,每个纹理图Mi均具有扩散权重。对于纹理图Mi,扩散权重可以是针对顶点v,从第i输入视点/相机到接缝的等距测地线的最小长度。备选地,扩散权重可以量化点与接缝之间距离的其他度量。例如,如果顶点v从第i输入视点/相机的视角来看在远离接缝的“内部”区域中,则纹理图Mi的扩散权重为1;如果顶点v从第i输入视点/相机的视角来看在接缝上或遮挡区域上,则纹理图Mi的扩散权重为0,并且当从第i输入视点/相机的视角来看,顶点v更加远离任何接缝时,纹理图Mi的扩散权重从0增加到1。备选地,可以在没有全局可见性得分gi的情况下,对所计算的纹理权重使用空间平滑。对于高度遮挡的区域,如果/>则绘制组件可以利用基于法线的混合,将等式(15)中的纹理值应用于填充缺失的纹理值。
如果从第i输入视点/相机来看,对顶点v的纹理值贡献急剧变化(例如,在单个帧或其他短时段内从0.1到0.9),则可能会出现可感知的伪影。纹理权重可以在时间上进行平滑,以提高帧与帧之间的时间一致性。这样可以防止在突然的视图过渡期间纹理权重变化太快。相反,从第i输入视点/相机来看,对顶点v的纹理值贡献逐渐变化(例如,在15或20帧的时段内从0.1变为0.9)。例如,假设对于当前帧t,针对第i输入视点/相机和顶点v的初始目标纹理权重如等式(15)、(16)、(17)或(18)定义。对于第i输入视点/相机和顶点v,针对当前帧的最终纹理权重使用针对前一帧的纹理权重/>计算,如下所示:
/>
其中λ是控制纹理权重可以多快地过渡到目标值的速率因子,并且表示对于当前帧t,朝向针对第i输入视点/相机和顶点v的初始目标纹理权重的平滑梯度。该梯度量化了从前一帧的纹理权重/>到初始目标纹理权重的变化。速率因子λ与实现相关。例如,λ=0.05。
备选地,纹理权重可以以某种其他方式在时间上进行平滑。例如,针对当前帧t的纹理权重被计算为初始目标纹理权重和来自一个或多个先前帧的纹理权重的线性组合。
在计算了纹理权重之后,绘制组件可以对纹理权重进行归一化,并如等式(11)所示将经采样的纹理值应用于动态3D模型的点。
F.在应用纹理值时使用平滑纹理权重的示例技术
图10示出了用于使用平滑纹理权重来将纹理图的纹理值应用于计算机表示的环境的动态3D模型的通用技术(1000)。绘制组件(如图2a和图2b中所示的绘制组件(290))可以执行技术(1000)。
绘制组件例如在缓冲器中接收(1010)针对当前帧的纹理图。每个纹理图包括在计算机表示的环境中从不同的输入视点捕获的纹理值。纹理值通常是图像的颜色值(例如,RGB值),但是备选地可以是某个其他类型的纹理值(例如,不透明度值、镜面反射系数)。为了在以后的操作中使用,绘制组件可以确定相应纹理图的分段图,并从纹理图中分别减去背景细节,以隔离相应纹理图中的动态3D模型的一个或多个对象的纹理值。
绘制组件还例如在缓冲器中接收(1020)针对当前帧的模型数据。模型数据包括动态3D模型的点。例如,动态3D模型的点是三角形网格的顶点或体积表示的体素。
绘制组件为动态3D模型的至少一些点确定(1030)针对当前帧的纹理权重。在这样做时,绘制组件在空间上围绕动态3D模型中的接缝和/或在时间上相对于先前的纹理权重来对当前帧的至少一些纹理权重进行平滑。例如,如参考图11所描述的或使用其他方法,纹理权重可以在空间上围绕动态3D模型中的接缝进行平滑。或者,作为另一示例,如参考图12所描述的或使用其他方法,纹理权重可以相对于先前的纹理权重在时间上进行平滑。或者,作为另一示例,纹理权重可以在空间上围绕动态3D模型中的接缝进行平滑,并在时间上相对于先前的纹理权重进行平滑。
针对当前帧的纹理权重可以针对动态3D模型的至少一些点之中的每个点包括每个不同输入视点的标量权重。纹理权重可以是视点相关的纹理权重。在这种情况下,确定(1020)针对当前帧的纹理权重包括:针对动态3D模型的至少一些点之中的给定点,针对不同输入视点之中的给定输入视点,基于至少部分地给定输入视点和输出视点来确定基本权重。
在确定(1030)纹理权重之后,对于动态3D模型的至少一些点,绘制组件根据针对当前帧的平滑纹理权重来应用(1040)来自纹理图的对应纹理值。例如,对于动态3D模型的点之中的给定点,针对每个纹理图,绘制组件将给定点投影到纹理图中的位置,并通过纹理图的不同输入视点的纹理权重之一来对纹理图中该位置处的纹理值进行缩放。绘制组件组合了针对给定点的缩放纹理值。最后,绘制组件从输出视点对经纹理化的动态3D模型的视图(利用所应用的纹理值)进行绘制(1050)。对于同一帧,绘制组件可以从相同的输出视点或一个或多个不同的输出视点来对经纹理化的动态3D模型的一个或多个附加视图进行绘制。
绘制组件检查(1060)是否继续下一帧。如果是,则绘制组件接收(1010)纹理图并接收(1020)针对下一帧(作为当前帧)的模型数据。
图11示出了用于纹理权重的空间平滑的示例技术(1100)。示例技术(1100)可以被执行作为确定(1030)纹理权重的一部分。
首先,绘制组件在动态3D模型中标识(1110)接缝。例如,绘制组件标识动态3D模型之中,从不同输入视点之中的给定输入视点被遮挡、但与未从给定输入视点被遮挡的动态3D模型的点相邻的点。以这种方式,绘制组件可以从不同输入视点标识动态3D模型的点之间的自遮挡实例。或者,绘制组件标识动态3D模型中来自不同纹理图的其对应纹理值不能满足相似性阈值(例如,根据多数投票测试)的的点。以此方式,绘制组件可以标识不同输入视点之间的照明差异或相机校准差异的实例。或者,绘制组件标识动态3D模型之中,其投影在给定输入视点的视场内、但与动态3D模型中其投影在给定输入视点的视场之外的的点相邻的点。以这种方式,绘制组件可以在相应输入视点的视场边界处标识动态3D模型的点的实例。第IV.C节描述了标识(1110)接缝的方法示例。
在计算基本权重(例如,视点相关的权重或基于法线的权重)之后,绘制组件将至少一些纹理权重衰减(1120),其中衰减随着到最接近接缝之一的距离减小而增加。例如,绘制组件计算从动态3D模型中的接缝到动态3D模型中的至少一些点的测地距离,并且至少一些纹理权重使用测地距离进行衰减。第IV.D节介绍了计算测地距离值的方法示例。
对于不同输入视点之中的给定输入视点,绘制组件可选地为给定输入视点应用(1130)全局可见性得分。第IV.E节介绍了全局可见性得分的示例。
绘制组件还至少部分地基于模型数据和分别从不同输入视点针对当前帧的栅格化深度图,将阈值测试(1140)应用于从输出视点的动态3D模型的至少一些点。针对当前帧的栅格化深度图可以至少部分地基于模型数据和指示相应纹理图的不同输入视点的定向数据来确定。例如,为了对动态3D模型的至少一些点之中的给定点应用(1140)阈值测试,如果(a)给定点从给定输入视点不可见,(b)给定点在动态3D模型的边缘到给定输入视点的阈值距离内,边缘的特征在于栅格化深度图中从输入视点的深度不连续性,和/或(c)来自不同纹理图的对应纹理值不能满足相似性阈值,则绘制组件将不同输入视点中给定输入视点的标量权重设置为零。第IV.A和IV.E节描述了使用扩张深度图和多数投票策略进行阈值测试的示例。
图12示出了用于纹理权重的时间平滑的示例技术(1200)。示例技术(1200)可以被执行作为确定(1030)纹理权重的一部分。
绘制组件确定(1210)针对当前帧的纹理权重的梯度。接下来,绘制组件以速率因子对梯度进行缩放(1220)。最后,绘制组件将经缩放的梯度添加(1230)到前一帧的纹理权重。备选地,绘制组件可以以某种其他方式对纹理权重在时间上进行平滑,例如,缩放针对当前帧的初始纹理权重、缩放先前纹理权重以及将针对当前帧的经缩放的初始纹理权重与经缩放的先前纹理权重进行组合。第IV.E节描述了执行纹理权重的时间平滑的方法示例。
G.在应用纹理值时使用视点相关的纹理权重的示例技术
图13示出了用于使用视点相关的纹理权重将纹理图的纹理值应用于计算机表示的环境的动态3D模型的通用技术(1300)。绘制组件(例如,图2a和图2b中所示的绘制组件(290))可以执行技术(1300)。
绘制组件例如在缓冲器中接收(1310)针对当前帧的纹理图。每个纹理图包括在计算机表示的环境中从不同的输入视点捕获的纹理值。纹理值通常是图像的颜色值(例如,RGB值),但是备选地可以是某个其他类型的纹理值(例如,不透明度值、镜面反射系数)。
绘制组件还例如在缓冲器中接收(1320)针对当前帧的模型数据。模型数据包括动态3D模型的点。动态3D模型的点例如是三角形网格的顶点或体积表示的体素。
绘制组件为动态3D模型的至少一些点确定(1330)针对当前帧的视点相关的纹理权重。在这样做时,对于动态3D模型的至少一些点之中的给定点,针对不同输入视点之中的给定输入视点,绘制组件至少部分地基于给定输入视点和输出视点来确定基本权重。针对当前帧的视点相关的纹理权重可以针对动态3D模型的至少一些点之中的每个点包括每个不同输入视点的标量权重。如参考图10-图12和第IV.E节所述,绘制组件可以在空间上围绕动态3D模型中的接缝和/或在时间上相对于先前的纹理权重来对当前帧的至少一些视点相关的纹理权重进行平滑。
然后,对于动态3D模型的至少一些点,绘制组件根据针对当前帧的视点相关的纹理权重来应用(1340)对应的纹理值。例如,对于动态3D模型的点之中的给定点,针对每个纹理图,绘制组件将给定点投影到纹理图中的位置,并通过纹理图的不同输入视点的视点相关纹理权重之一来对纹理图中该位置的纹理值进行缩放。绘制组件将针对给定点的经缩放的纹理值进行组合。最后,绘制组件从输出视点对经纹理化的动态3D模型的视图进行绘制(1350)。对于同一帧,绘制组件可以从相同的输出视点或一个或多个不同的输出视点来绘制经纹理化的动态3D模型的一个或多个附加视图。
绘制组件检查(1360)是否继续下一帧。如果是,则绘制组件接收(1310)纹理图并接收(1320)针对下一帧(作为当前帧)的模型数据。
H.结果
在一些示例实现中,当将视频纹理混合到动态3D网格上时,绘制组件使用接缝标识、基于测地距离场的纹理权重的空间平滑、纹理场之间的过渡的时间平滑以及视点相关的纹理权重。这样的绘制组件可以以交互式、实时的方式将视频纹理混合到动态3D网格上,并且具有几乎不可识别的视图过渡。与先前方法(例如,在Holoportation系统中使用的方法)相比,经绘制的视图更加清晰,从而允许用户识别面部表情以及沉浸式远程呈现和通信应用的其他精细细节。在一些示例实现中,交互式实时绘制使用商品硬件以每秒100帧或更高的帧速率来提供。
图14a至图14f示出了使用平滑的、视点相关的纹理权重字段可以如何改进绘制质量的示例。图14a的图像(1401)示出了将输入纹理图(从图形下方的输入视点并朝上被捕获)投影映射到图片的动态3D模型的原始结果。图14b的图像(1402)示出了在应用简单的可见性测试来移除遮挡点之后被剔除的像素。从输入视点来看,遮挡点在前臂和手后面。图14c的图像(1403)示出了在利用扩张深度图和多数投票策略应用可见性测试之后被剔除的像素。与图14b的图像(1402)相比,附加像素在边缘周围被剔除。为了比较,图14d的图像(1404)示出了动态3D模型。图14f的图像(1406)示出了使用平滑的、视点相关的纹理权重进行绘制的结果以及纹理权重(叠加)。图14e的图像(1405)示出了使用Holoportation系统进行绘制的结果以及纹理权重(叠加)。重影伪影(诸如图14a的图像(1401)的前臂和手)在图14e的图像(1405)中被减轻,但是一些细节变得模糊并且引入了一些可见接缝。相比之下,图14f的图像(1406)缺少这样的模糊细节和可见接缝,并且仍减轻了重影伪影。
图14g-图14l示出了使用平滑的、视点相关的纹理权重场可以如何改进绘制质量的另一示例。图14g的图像(1407)示出了将输入纹理图投影映射到图形的动态3D模型的结果,其中像素在应用简单可见性测试之后被剔除。(输入纹理图从图片的下方和右侧的输入视点并面朝上和向左被捕获。从输入视点来看,遮挡点在填充玩具的后面。)图14f的图像(1408)示出了动态3D模型和由遮挡或视场过渡引起的接缝(突出显示)。图14i至图14j的图像(1409、1410)图示了针对输入纹理图的纹理权重的空间扩散的结果,其中权重在接缝附近被衰减。图14l的图像(1412)示出了使用平滑的、视点相关的纹理权重进行绘制的结果。图14k的图像(1411)示出了用Holoportation系统进行绘制的结果。重影伪影(例如,来自填充玩具的“幻像”细节)在图14k的图像(1411)中被减轻,但一些细节模糊,并引入了一些可见接缝。相比之下,图14l的图像(1412)缺乏这样的模糊细节和可见接缝,并且仍然减轻了重影伪影。
最后,对于针对给定帧捕获并跨越40个输出视图绘制的八个不同的输入视点,图14m的图像(1413)将利用Holoportation系统进行绘制的结果(顶部行)与使用了平滑的、视点相关的纹理权重字段的绘制结果(第二行)并置。图14m的图像(1413)还示出了由Holoportation系统使用的纹理权重(第三行)和新方法使用的纹理权重(第四行)。通过使用平滑的、视点相关的纹理权重,新方法在很大程度上避免了细节的模糊和可见接缝的引入,同时还提供了空间和时间上的平滑过渡。
I.备选方案和变化
当几何数据包括挤压的三角形时(例如,由于在非常快的运动中进行重构),利用平滑的、视点相关的纹理权重进行绘制的结果仍然可以包括可见伪像。在这种情况下,几何数据的重新网格化可以消除挤压的三角形消除或对其进行平滑。
在一些情况下,输入纹理图的纹理值不够可靠。对于离线应用,间隙可以使用用户指导的图像修补和无缝克隆技术来填充。对于实时交互式应用,间隙可以在无需用户干预的情况下通过插值来填充。
V.经纹理化的动态3D模型的绘制视图的特殊效果
该部分描述了针对经纹理化的动态3D模型的绘制视图指定和应用特殊效果的方法。一些特殊效果可以更改动态3D模型中对象的轮廓或对象的纹理细节。其他特殊效果可以添加或更改背景细节或前景细节。其他特殊效果可以调整光源、添加对象或引起其他变化。利用这样的效果,即使动态3D模型的纹理值和模型数据被实时、交互式地提供给最终用户时,广播方、编辑者、内容作者或其他贡献者也可以断言对经纹理化的动态3D模型的呈现进行艺术控制。
A.用于提供特殊效果的示例架构
图15a和图15b示出了用于向经纹理化的动态3D模型的绘制视图提供和应用特殊效果的示例架构(1501、1502)。示例架构(1501、1502)中的每一个包括内容提供方的服务器计算机系统和最终用户的客户端计算机系统。虽然图15a和图15b示出了单个客户端计算机系统,但是对于广播场景,示例架构(1501、1502)可以包括不同最终用户的多个客户端计算机系统。
广播方、编辑者、内容作者或其他贡献者可以定义一个或多个特殊效果,以将其并入经纹理化的动态3D模型的绘制视图中。在服务器计算机系统上,指示(多个)特殊效果的元数据可以被设置,然后被发送到客户端计算机系统。客户端计算机系统然后可以执行操作来并入由元数据指示的(多个)特殊效果。以这种方式,示例架构(1501、1502)可以支持动态3D模型的风格化视图的流传输和自由视点绘制,以用于实时、交互式观看体验。
在图15a的示例架构(1501)中,服务器计算机系统(1511)包括融合组件(1515)、元数据生成器(1517)和多路复用器(1519)。融合组件(1515)从深度生成器接收深度图,并生成动态3D模型,从而生成用于动态3D模型的模型数据(1521)。融合组件(1515)可以如Fusion4D reference中所描述的(如第III节中所述)或以其他方式来实现。服务器计算机系统(1511)还接收(例如,从相机吊舱、从分发器)用于动态3D模型的纹理图(1522)。
在服务器计算机系统(1511)中,元数据生成器(1517)对元数据(1523)进行设置,元数据为绘制视图指定一个或多个特殊效果。以下各节中描述了元数据(1523)和特殊效果的示例。元数据(1523)可以逐帧相同。或者,元数据(1523)可以逐帧变化。以这种方式,经纹理化的动态3D模型的绘制视图的风格可以实时地改变,以获得交互式4D风格化效果。
在逐帧的基础上,多路复用器(1519)将动态3D模型针对帧的模型数据(1521)、针对帧的纹理图(1522)和元数据(1523)进行多路复用。(如果元数据(1523)不变,则其可以被省略。)在逐帧的基础上,服务器计算机系统(1511)通过网络(1520)将经多路复用的数据发送至客户端计算机系统(1541)。备选地,数据被多路复用并且以某种其他方式被发送到客户端计算机系统(1541)。
客户端计算机系统(1541)接收经多路复用的数据。在客户端计算机系统(1541)中,在逐帧的基础上,解多路复用器(1549)对动态3D模型针对帧的模型数据(1521)、针对帧的纹理图(1522)和(如果存在)元数据(1523)进行解复用。备选地,数据从服务器计算机系统(1511)被接收并且以某种其他方式被解复用。
元数据解析器(1547)对元数据(1523)进行解析,并确定如何应用由元数据指示的(多个)特殊效果。绘制组件(1545)接收模型数据(1521)和纹理图(1522)、将来自纹理图(1522)的纹理值应用于动态3D模型并对经纹理化的动态3D模型的视图进行绘制,以输出至移动电话、平板计算机、头戴式显示器或其他显示设备。绘制组件(1545)可以如Holoportation reference中所描述的(如第IV节所述)或以某种其他方式被实现。在将纹理值混合并对视图进行绘制之后的一个或多个过程中,绘制组件(1545)执行由元数据(1523)指示的操作,以获得(多个)特殊效果。以下各节描述了针对特殊效果而被执行的操作示例。
在图15b的示例架构(1502)中,服务器计算机系统(1512)包括一个或多个深度生成器(1513)。(多个)深度生成器(1513)从相机吊舱中的视频相机接收视频(例如,包括单色图像),并针对来自所接收的视频的各帧,从不同输入视点生成深度图(1524)。服务器计算机系统(1512)包括元数据生成器(1517)和多路复用器(1519),它们通常如参考图15a的示例架构(1501)所描述地进行操作。服务器计算机系统(1512)通过网络(1520)将经多路复用的数据发送到客户端计算机系统(1542)。
客户端计算机系统(1542)接收经多路复用的数据。客户端计算机系统(1542)包括通常如参考图15a的示例架构(1501)所述进行操作的解多路复用器(1549)、元数据解析器(1547)和呈现组件(1545)。融合组件(1543)是客户端计算机系统(1542)的一部分,而不是服务器计算机系统的一部分,但是以其他方式如参考图15a的示例架构(1501)所描述地进行操作。
备选地,图15a至图15b的计算机系统中所示的组件可以以其他方式来组织。例如,单个计算机系统(例如,单个服务器计算机系统或单个客户端计算机系统)中所示的组件可以在本地被连接或通过网络(1520)被连接的多个计算机系统之间划分。
最终用户可以潜在地重写特殊效果如何在客户端计算机系统处被应用。例如,最终用户可以选择过滤器、背景细节、前景细节、光源或特殊效果的其他特征。或者,作为另一示例,最终用户可以启用/禁用不同特殊效果的应用。备选地,客户端计算机系统可以将指示最终用户的偏好或关于特殊效果的设置的信息发送到服务器计算机系统,服务器计算机系统在指定特殊效果和设置元数据时可以将特殊效果并入。以这种方式,最终用户可以至少在某种程度上将经纹理化的动态3D模型的绘制视图的风格个性化。
B.指定特殊效果的示例技术
图16示出了用于指定元数据的通用技术(1600),元数据指示针对计算机表示的环境的经纹理化的动态3D模型的绘制视图的特殊效果。如参考图15a至图15b所描述的服务器计算机系统(1510、1511)或其他服务器计算机系统可以执行技术(1600)。
服务器计算机系统发送(1610)针对当前帧的纹理图。每个纹理图包括在计算机表示的环境中从不同输入视点捕获的纹理值。纹理值可以是颜色值或某种其他类型的纹理值。
服务器计算机系统还发送(1620)针对当前帧的深度图或模型数据。如果深度图被发送,则深度图可以被用来更新计算机表示的环境的动态3D模型。如果模型数据被发送,则模型数据包括动态3D模型的点。动态3D模型的点可以是网格的三角形的顶点、网格的其他多边形的顶点或可变形的体积表示的其他点。
服务器计算机系统对指示一个或多个特殊效果的元数据进行设置(1630),并发送(1640)指示(多个)特殊效果的元数据。通常,当对于动态3D模型的至少一些点,客户端计算机系统应用纹理值并对来自输出视点的经纹理化的动态3D模型的视图进行绘制时,(多个)特殊效果将由接收到元数据的客户端计算机系统并入。例如,元数据可以包括指定以下内容的参数:(a)在绘制期间要应用的过滤器,(b)在绘制期间要应用的颜色空间转换操作,(c)在绘制期间要添加的背景细节,(d)在绘制期间要添加的前景细节,(e)在应用期间要应用的光源,和/或(f)在绘制之前要将一个或多个对象添加到动态3D模型的效果模型。备选地,元数据可以包括其他参数和/或附加参数。
当指定(多个)特殊效果时,服务器计算机系统可以与客户端计算机系统交互。例如,服务器计算机系统接收指示对(多个)特殊效果的设置和/或偏好的用户输入的指示。服务器计算机系统对元数据进行调整来考虑用户输入。
服务器计算机系统可以在逐帧或某些其他基础上重复技术(1600)。
C.应用特殊效果的示例技术
图17示出了用于将由元数据指示的特殊效果应用于计算机表示的环境的经纹理化的动态3D模型的绘制视图的通用技术(1700)。如参考图15a至图15b所描述的客户端计算机系统(1540、1541)或其他客户端计算机系统可以执行技术(1700)。
客户端计算机系统接收(1710)针对当前帧的纹理图。每个纹理图包括在计算机表示的环境中从不同输入视点捕获的纹理值。纹理值可以是颜色值或某种其他类型的纹理值。
客户端计算机系统还接收(1720)针对当前帧的模型数据。模型数据包括动态3D模型的点。动态3D模型的点可以是网格的三角形的顶点、网格的其他多边形的顶点或可变形的体积表示的其他点。
客户端计算机系统接收(1730)指示一个或多个特殊效果的元数据。例如,元数据可以包括指定以下内容的参数:(a)在绘制期间要应用的过滤器,(b)在绘制期间要应用的颜色空间转换操作,(c)在绘制期间要添加的背景细节,(d)在绘制期间要添加的前景细节,(e)在应用期间要应用的光源,和/或(f)在绘制之前要将一个或多个对象添加到动态3D模型的效果模型。备选地,元数据可以包括其他参数和/或附加参数。
对于动态3D模型的至少一些点,客户端计算机系统应用(1740)纹理值。客户端计算机系统从输出视点来绘制(1750)经纹理化的动态3D模型的视图。经绘制的视图并入元数据指示的(多个)特殊效果。第V.D节描述了当应用(1740)纹理值和/或绘制(1750)视图时,客户端计算机系统可以执行的操作的示例。根据特殊效果,实现特殊效果的操作可以通过绘制组件和/或融合组件来执行。对于同一帧,绘制组件可以从相同的输出视点或一个或多个不同的输出视点来绘制经纹理化的动态3D模型(包含特殊效果)的一个或多个附加视图。
客户端计算机系统可以与指定(多个)特殊效果的服务器计算机系统交互。例如,客户端计算机系统接收指示对(多个)特殊效果的设置和/或偏好的用户输入。客户端计算机将用户输入的指示发送到服务器计算机系统处的元数据生成器,服务器计算机系统通过调整元数据以考虑用户输入来做出反应。
客户端计算机系统还可以响应于用户输入而直接调整(多个)特殊效果。例如,客户端计算机系统接收指示对(多个)特殊效果的设置和/或偏好的用户输入。然后,客户端计算机系统根据用户输入来修改(多个)特殊效果如何被并入绘制视图中。
客户端计算机系统可以在逐帧的基础上或在某些其他基础上重复技术(1700)。
D.特殊效果示例
该部分描述了可以被应用于经纹理化的动态3D模型的绘制视图的若干特殊效果的示例。为了比较,图18a示出了没有特殊效果的经纹理化的动态3D模型的绘制视图的图像(1801)。
1.修改纹理值的示例
绘制组件可以修改被应用于动态3D模型的纹理图的纹理值或修改绘制视图的纹理值。通常,作为绘制的一部分,绘制组件从输出视点的视角将动态3D模型的至少一些点投影到视图中的位置。绘制组件将对应的纹理值(应用于3D模型的点)指派给视图中的位置。为了并入特殊效果,绘制组件可以执行各种操作(诸如,将颜色值转换到不同的颜色空间、调整所选择的颜色值和/或过滤)来检测边缘。
视图的纹理值可以是第一颜色空间(诸如,RGB类型颜色空间)中的颜色值。为了并入利用元数据指示的特殊效果,绘制组件可以将视图的纹理值转换为第二颜色空间(诸如,YUV类型的颜色空间)中的亮度值和色差值。然后,绘制组件可以执行其他操作来实现特殊效果。
例如,绘制组件可以对亮度值进行量化,然后将经量化的亮度值和色差值转换回到第一颜色空间。图18b示出了图像(1802),其中图18a的图像(1801)的颜色值被修改以具有“海报”效果。为了产生图18b中的图像(1802),在纹理混合之后,绘制组件将RGB颜色值转换为YUV值。色差(U,V)值不变,但是绘制组件将亮度(Y)值均匀地分为Q组。Q例如是4、8或16。实际上,这将亮度(Y)值量化为Q个不同的亮度值之一。然后,绘制组件将YUV值转换回RGB值。
或者,作为另一示例,绘制组件可以选择性地增加比亮度的阈值水平更亮的亮度值的亮度、将色差值调整为零并将色相选择性地添加到至少一些色差值。然后,绘制组件可以应用过滤器来检测视图中的边缘,并选择性地降低所检测的边缘的亮度。图18c示出了图像(1803),其中图像的颜色值被修改为“淡蓝色”效果。为了产生图18c中的图像(1803),在纹理混合之后,绘制组件将RGB颜色值转换为YUV值。绘制组件调整高于阈值量(例如,中点灰度值)的亮度(Y)值的亮度,从而将这些值的亮度增加到最亮的值。绘制组件将色差(U,V)值清零,然后将蓝色添加到至少一些色差(U,V)值。绘制组件使用卷积过滤器或Sobel过滤器来检测边缘,然后通过降低沿边缘的亮度值来突出显示边缘。
2.添加背景细节的示例
绘制组件可以将背景细节添加到经纹理化的动态3D模型的绘制视图。从输出视点的视角将动态3D模型的至少一些点投影到视图中的位置,并将对应纹理值(应用于3D模型的点)指派给视图中的位置之后,绘制组件可以将背景图像添加到视图的纹理值。例如,绘制组件可以将背景图像存储在深度缓冲区中,并通过背景图像,对视图的纹理值在屏幕缓冲区中进行分层。绘制组件可以从背景图像库中选择背景图像,背景图像库可以包括绘画、布景或其他图像。或者,绘制组件可以从视频序列(例如,动画序列或影片的一部分)中选择背景图像。
绘制组件可以对视图和背景图像的纹理值执行各种其他操作。例如,绘制组件可以选择性地增加纹理值的对比度,并选择性地混合相邻位置的纹理值。图18d示出了图像(1804),其中深度缓冲区中的背景细节已被梵高的绘画细节替换。为了产生图18d中的图像(1804),绘制组件增加了屏幕缓冲区中纹理值的对比度。然后,绘制组件迭代地(例如,8次、16次、24次)计算颜色值之间的梯度,并使用具有随机向量的梯度从相邻位置对颜色值进行采样。然后,绘制组件针对视图的位置来计算经采样的颜色值的平均值。
3.添加前景细节的示例
绘制组件可以将前景细节添加到经纹理化的动态3D模型的绘制视图中。在从输出视点的视角将动态3D模型的至少一些点投影到视图中的位置、并将对应纹理值(应用于3D模型的点)指派给视图中的位置之后,绘制组件可以将前景图像添加到视图的纹理值。例如,绘制组件可以将前景图像存储在缓冲区中,并通过视图的纹理值对前景图像进行分层。绘制组件可以从前景图像库中选择前景图像,前景图像库可以包括天气效果或其他图像。或者,绘制组件可以从视频序列(例如,动画序列或电影的一部分)中选择前景图像。图18e示出了缓冲器中的前景细节已经在其中被添加来提供“雪”效果的图像(1805)。
绘制组件可以对视图和前景图像的纹理值执行各种其他操作。
4.添加风格化边缘和/或表面的示例
绘制组件可以将风格化边缘和/或表面添加到经纹理化的动态3D模型的绘制视图中。例如,所应用的纹理值可以是与动态3D模型的至少一些点的法向向量值相关的颜色值和/或α(不透明度/透明度)值。作为绘制的一部分,绘制组件可以将动态3D模型的至少一些点投影到视图中的位置,并将对应应用的纹理值指派给视图中的位置。然后,绘制组件可以应用过滤器来强调视图中的边缘并取消强调非边缘。图18f示出了图像(1806),其中在图18a的图像(1801)中边缘被强调并且非边缘被取消强调,以获得“玻璃状”效果。为了产生图18f中的图像(1806),在纹理混合之后,绘制组件使用法向向量值对动态3D模型进行着色,然后使用Sobel过滤器对经着色的图像进行卷积,以强调边缘并取消强调非边缘。
或者,作为另一示例,图18g示出了图像(1807),其中相同的颜色值被指派给动态3D模型中的每个点(顶点),但是α值在各点之间变化,以用于“烟熏”或“幻影”效果。为了产生图像(1807),颜色值(例如,灰色、蓝色或绿色)被指派给动态3D模型的点。对于动态3D模型中被投影到视图中位置的至少一些点,绘制组件将每个点处的法向向量值与输出视点进行比较。针对点,绘制组件根据法向向量值和输出视点垂直的接近程度来指派α值。例如,如果法向向量和输出视点(几乎)平行,则α值使得点(几乎)透明。另一方面,如果法向向量和输出视点(几乎)垂直,则α值使得点(几乎)不透明。
5.添加照明效果的示例
绘制组件可以将照明效果添加到经纹理化的动态3D模型的绘制视图中。照明效果可以被添加为前景图像(如图18h的图像(1808)所示)或更早地被添加在处理流水线中。例如,照明效果可能影响应用于动态3D模型以对从光源发出的光进行建模的纹理值的亮度。
6.调整动态3D模型的点的示例
融合组件和/或绘制组件可以调整动态3D模型的点(顶点),然后其被包括作为经纹理化的动态3D模型的绘制视图的一部分。动态3D模型的点可以被分组/聚类、利用其他点替换和/或移动。
例如,对于“体素化”效果,动态3D模型的点被分组/聚类为所定义的增量(例如,2厘米、5厘米)的仓(bin)。所定义的增量对体素的尺寸进行设置,而较大的增量会导致“块状”视图的体素更大。针对每个仓生成箱(box)。例如,几何着色器从仓的顶点生成箱的六个面。使用在仓中分组/聚类的点的纹理值(例如,颜色值)的平均值,纹理值(例如,颜色值)被指派给箱(及其面)。作为绘制的一部分,绘制组件可以将动态3D模型的至少一些体素化点投影到视图中的位置,并将对应应用的纹理值指派给视图中的位置。图18i和图18j示出了应用体素化效果的图像(1809、1810)。在图18i的图像(1809)中,针对体素所定义的增量相对较小(例如,2厘米)。在图18j中的图像(1810)中,针对体素所定义的增量更大(例如,5厘米),并且体素更明显。
作为另一示例,对于“碎片化”效果,针对动态3D模型中的每个三角形,计算法向向量值,并且沿该法向向量值来平移三角形的三个顶点。沿相应三角形的法向向量值、远离动态3D模型平移三角形的顶点可以创建“爆炸”效果。沿相应三角形的法向向量值、再回到动态3D模型平移三角形的顶点,可以从“已爆炸”版本重建动态3D模型。或者,沿相应三角形的反向法向向量值、朝向动态3D模型平移三角形的顶点,可以创建“内爆”效果。作为绘制的一部分,绘制组件可以将动态3D模型的至少一些碎片化点投影到视图中的位置,并将对应应用的纹理值指派给视图中的位置。图18k、图18l和图18m示出了应用了“碎片化”效果的图像(1811、1812、1813)。在图18k、图18l和图18m中的图像(1811、1812、1813)中,对于图18k、图18l和图18m,三角形的顶点沿相应三角形的法向向量值平移,远离动态3D模型,距离相继增加。
7.添加对象的示例
融合组件可以将对象添加到动态3D模型中,然后其被包括作为经纹理化的动态3D模型的绘制视图的一部分。例如,融合组件通过添加一个或多个元数据指示的对象来调整动态3D模型。融合组件可以根据元数据指示的效果模型而在动态3D模型中针对所添加的对象生成新的点,然后根据效果模型将纹理值应用于新的点。效果模型可以指示天气现象(例如,雪、雨、云等)或其他对象的点和纹理值。
VI.备选方案和变型
此外,不同的实施例可以包括以下特征表中所示的一个或多个发明特征。
/>
/>
/>
/>
/>
/>
/>
/>
鉴于可以应用所公开的发明原理的许多可能的实施例,应当认识到,所图示的实施例仅是本发明的优选示例,而不应被视为限制本发明的范围。相反,本发明的范围由所附权利要求书限定。因此,我们要求保护落入这些权利要求的范围和精神内的所有发明。
Claims (28)
1.一种在计算机系统中对计算机表示的环境的动态三维(“3D”)模型进行纹理化的方法,所述方法包括:
接收针对当前帧的纹理图,所述纹理图中的每个纹理图包括在所述计算机表示的环境中从不同输入视点捕获的纹理值;
接收针对所述当前帧的模型数据,所述模型数据包括所述计算机表示的环境的所述动态3D模型的点;
对于所述动态3D模型的所述点中的至少一些点,确定针对所述当前帧的纹理权重,包括在时间上相对于先前的纹理权重对针对所述当前帧的所述纹理权重中的至少一些纹理权重进行平滑;
对于所述动态3D模型的所述点中的所述至少一些点,根据针对所述当前帧的经平滑的所述纹理权重,应用来自所述纹理图的对应纹理值;以及
从输出视点绘制经纹理化的所述动态3D模型的视图。
2.根据权利要求1所述的方法,其中对于所述动态3D模型的所述点中的所述至少一些点之中的每个点,针对所述当前帧的所述纹理权重包括每个不同输入视点的标量权重。
3.根据权利要求1所述的方法,其中所述纹理权重是视点相关的纹理权重,并且其中确定针对所述当前帧的所述纹理权重包括:对于所述动态3D模型的所述至少一些点之中的给定点,针对不同输入视点之中的给定输入视点,至少部分地基于所述给定输入视点和所述输出视点来确定基本权重。
4.根据权利要求1所述的方法,还包括:
至少部分地基于所述模型数据和指示针对相应纹理图的不同输入视点的定向数据,分别从所述不同输入视点确定针对所述当前帧的栅格化深度图;以及
作为确定针对所述当前帧的所述纹理权重的一部分,至少部分地基于所述模型数据和所述栅格化深度图,从所述输出视点针对所述动态3D模型的所述点中的所述至少一些点应用阈值测试。
5.根据权利要求4所述的方法,其中应用所述阈值测试包括:对于所述动态3D模型的所述点中的所述至少一些点之中的给定点,在以下情况下,将针对所述不同输入视点之中的给定输入视点的标量权重设置为零:
所述给定点从所述给定输入视点不可见;
所述给定点在距所述给定输入视点的所述动态3D模型的边缘的阈值距离内,所述边缘的特征在于从所述给定输入视点的所述栅格化深度图中的深度不连续性;或
来自所述纹理图中的不同纹理图的对应纹理值不能满足相似性阈值。
6.根据权利要求1所述的方法,其中确定针对所述当前帧的所述纹理权重包括:针对不同输入视点之中的给定输入视点,为所述给定输入视点应用全局可见性得分。
7.根据权利要求1所述的方法,还包括标识所述动态3D模型中的接缝,其中标识所述接缝包括以下中的一项或多项:
标识所述动态3D模型中从不同输入视点之中的给定输入视点被遮挡的、但与所述动态3D模型中未从所述给定输入视点被遮挡的点相邻的点;
标识所述动态3D模型中来自所述纹理图中的不同纹理图的其对应纹理值不能满足相似性阈值的点;以及
标识所述动态3D模型中其投影在所述给定输入视点的视场内、但与所述动态3D模型中其投影在所述给定输入视点的所述视场外的点相邻的点。
8.根据权利要求1所述的方法,还包括标识所述动态3D模型中的接缝,其中标识所述接缝包括以下中的一项或多项:
从不同输入视点标识所述动态3D模型的所述点之中的自遮挡的实例;
标识所述不同输入视点之间的照明差异或相机校准差异的实例;以及
标识所述动态3D模型在所述不同输入视点的视场边界处的点的实例。
9.根据权利要求1所述的方法,其中确定针对所述当前帧的纹理权重还包括:在空间上围绕所述动态3D模型中的接缝对针对所述当前帧的所述纹理权重中的至少一些纹理权重进行平滑,其中在空间上的所述平滑包括计算从所述动态3D模型中的所述接缝到所述动态3D模型中的至少一些点的测地距离,并且其中所述纹理权重中的至少一些纹理权重使用所述测地距离被衰减。
10.根据权利要求1所述的方法,其中确定针对所述当前帧的纹理权重还包括:在空间上围绕所述动态3D模型中的接缝对针对所述当前帧的所述纹理权重中的至少一些纹理权重进行平滑,并且其中在空间上的所述平滑包括使得所述纹理权重中的至少一些纹理权重衰减,其中衰减随着与所述接缝中最近的接缝的距离减小而增加。
11.根据权利要求1所述的方法,其中所述平滑包括:
确定针对所述当前帧的纹理权重的梯度;
通过速率因子来对所述梯度进行缩放;以及
将经缩放的所述梯度添加到针对先前帧的纹理权重。
12.根据权利要求1所述的方法,其中所述平滑包括:
对针对所述当前帧的初始纹理权重进行缩放;
对所述先前的纹理权重进行缩放;以及
组合针对所述当前帧的经缩放的所述初始纹理权重与经缩放的所述先前的纹理权重。
13.根据权利要求1所述的方法,其中针对所述动态3D模型的所述点之中的给定点,应用所述对应纹理值包括:
针对所述纹理图中的每个纹理图:
将所述给定点投影到所述纹理图中的位置;以及
通过针对所述纹理图的所述不同输入视点的所述纹理权重之一来对所述纹理图中所述位置处的纹理值进行缩放;
组合经缩放的所述纹理值。
14.根据权利要求1所述的方法,还包括:
确定针对相应纹理图的分段图;以及
分别从所述纹理图减去背景细节,以隔离针对所述相应纹理图中所述动态3D模型的一个或多个对象的纹理值。
15.根据权利要求1所述的方法,其中所述纹理值是颜色值,并且其中所述动态3D模型的所述点是网格的三角形的顶点。
16.根据权利要求1所述的方法,其中所述模型数据通过以下方式被确定:基于针对所述当前帧的所述纹理图和针对所述当前帧的深度图来选择性地更新参考3D模型,所述深度图中的每个深度图包括来自不同输入视点中的一个不同输入视点的深度值,并且其中选择性地更新所述参考3D模型包括选择性地更新所述参考3D模型的点和选择性地更新所述参考3D模型的所述点的固有纹理值,所述方法还包括:
接收指示一个或多个特殊效果的元数据,绘制的所述视图并入了用所述元数据指示的所述一个或多个特殊效果。
17.一种包括一个或多个处理单元和存储器的计算机系统,其中所述计算机系统实现了用于对计算机表示的环境的动态三维(“3D”)模型进行纹理化的工具,所述工具包括:
所述存储器中的一个或多个缓冲区,被配置为接收:
针对当前帧的纹理图,所述纹理图中的每个纹理图包括在所述计算机表示的环境中从不同输入视点捕获的纹理值;以及
针对所述当前帧的模型数据,所述模型数据包括所述计算机表示的环境的所述动态3D模型的点;以及
绘制组件,被配置为:
对于所述动态3D模型的所述点中的至少一些点,确定针对所述当前帧的纹理权重,其中所述绘制组件被配置为在时间上相对于先前的纹理权重对针对所述当前帧的所述纹理权重中的至少一些纹理权重进行平滑;
对于所述动态3D模型的所述点中的所述至少一些点,根据针对所述当前帧的经平滑的所述纹理权重,应用来自所述纹理图的对应纹理值;以及
从输出视点来绘制经纹理化的所述动态3D模型的视图。
18.根据权利要求17所述的计算机系统,其中为了确定针对所述当前帧的所述纹理权重,所述绘制组件还被配置为在空间上围绕所述动态3D模型中的接缝对针对所述当前帧的所述纹理权重中的至少一些纹理权重进行平滑,其中在空间上的所述平滑包括计算从所述动态3D模型中的所述接缝到所述动态3D模型中的至少一些点的测地距离,并且其中所述纹理权重中的至少一些纹理权重使用所述测地距离被衰减。
19.根据权利要求17所述的计算机系统,其中为了对针对所述当前帧的所述纹理权重中的所述至少一些纹理权重进行平滑,所述绘制组件被配置为:
确定针对所述当前帧的纹理权重的梯度;
通过速率因子来对所述梯度进行缩放;以及
将经缩放的所述梯度添加到针对先前帧的纹理权重。
20.根据权利要求17所述的计算机系统,其中为了确定针对所述当前帧的所述纹理权重,所述绘制组件还被配置为在空间上围绕所述动态3D模型中的接缝对针对所述当前帧的所述纹理权重中的至少一些纹理权重进行平滑,并且其中在空间上的所述平滑包括使得所述纹理权重中的至少一些纹理权重衰减,其中衰减随着与所述接缝中最近的接缝的距离减小而增加。
21.根据权利要求17所述的计算机系统,其中为了对针对所述当前帧的所述纹理权重中的所述至少一些纹理权重进行平滑,所述绘制组件被配置为:
对针对所述当前帧的初始纹理权重进行缩放;
对所述先前的纹理权重进行缩放;以及
组合针对所述当前帧的经缩放的所述初始纹理权重与经缩放的所述先前的纹理权重。
22.根据权利要求17所述的计算机系统,其中所述绘制组件还被配置为:
至少部分地基于所述模型数据和指示针对相应纹理图的不同输入视点的定向数据,分别从所述不同输入视点确定针对所述当前帧的栅格化深度图;以及
作为确定针对所述当前帧的所述纹理权重的一部分,至少部分地基于所述模型数据和所述栅格化深度图,从所述输出视点针对所述动态3D模型的所述点中的所述至少一些点应用阈值测试。
23.一种或多种计算机可读介质,存储计算机可执行指令,所述计算机可执行指令用于在由计算机系统编程时使所述计算机系统执行操作来将计算机表示的环境的动态三维(“3D”)模型纹理化,所述操作包括:
接收针对当前帧的纹理图,所述纹理图中的每个纹理图包括在所述计算机表示的环境中从不同输入视点捕获的纹理值;
接收针对所述当前帧的模型数据,所述模型数据包括所述计算机表示的环境的所述动态3D模型的点;
对于所述动态3D模型的所述点中的至少一些点,确定针对所述当前帧的纹理权重,包括在时间上相对于先前的纹理权重对针对所述当前帧的所述纹理权重中的至少一些纹理权重进行平滑;以及
对于所述动态3D模型的所述点中的所述至少一些点,根据针对所述当前帧的经平滑的所述纹理权重,应用来自所述纹理图的对应纹理值;以及
从输出视点来绘制经纹理化的所述动态3D模型的视图。
24.根据权利要求23所述的一种或多种计算机可读介质,其中确定针对所述当前帧的纹理权重还包括在空间上围绕所述动态3D模型中的接缝对针对所述当前帧的所述纹理权重中的至少一些纹理权重进行平滑,其中在空间上的所述平滑包括计算从所述动态3D模型中的所述接缝到所述动态3D模型中的至少一些点的测地距离,并且其中所述纹理权重中的至少一些纹理权重使用所述测地距离被衰减。
25.根据权利要求23所述的一种或多种计算机可读介质,其中确定针对所述当前帧的纹理权重还包括在空间上围绕所述动态3D模型中的接缝对针对所述当前帧的所述纹理权重中的至少一些纹理权重进行平滑,并且其中在空间上的所述平滑包括使得所述纹理权重中的至少一些纹理权重衰减,其中衰减随着与所述接缝中最近的接缝的距离减小而增加。
26.根据权利要求23所述的一种或多种计算机可读介质,其中所述平滑包括:
确定针对所述当前帧的纹理权重的梯度;
通过速率因子来对所述梯度进行缩放;以及
将经缩放的所述梯度添加到针对先前帧的纹理权重。
27.根据权利要求23所述的一种或多种计算机可读介质,其中所述平滑包括:
对针对所述当前帧的初始纹理权重进行缩放;
对所述先前的纹理权重进行缩放;以及
组合针对所述当前帧的经缩放的所述初始纹理权重与经缩放的所述先前的纹理权重。
28.根据权利要求23所述的一种或多种计算机可读介质,其中所述操作还包括:
至少部分地基于所述模型数据和指示针对相应纹理图的不同输入视点的定向数据,分别从所述不同输入视点确定针对所述当前帧的栅格化深度图;以及
作为确定针对所述当前帧的所述纹理权重的一部分,至少部分地基于所述模型数据和所述栅格化深度图,从所述输出视点针对所述动态3D模型的所述点中的所述至少一些点应用阈值测试。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/863,799 | 2018-01-05 | ||
US15/863,799 US10504274B2 (en) | 2018-01-05 | 2018-01-05 | Fusing, texturing, and rendering views of dynamic three-dimensional models |
PCT/US2018/067778 WO2019135979A1 (en) | 2018-01-05 | 2018-12-28 | Fusing, texturing, and rendering views of dynamic three-dimensional models |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111656407A CN111656407A (zh) | 2020-09-11 |
CN111656407B true CN111656407B (zh) | 2023-10-03 |
Family
ID=65139248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880085491.0A Active CN111656407B (zh) | 2018-01-05 | 2018-12-28 | 对动态三维模型的视图进行融合、纹理化和绘制 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10504274B2 (zh) |
EP (1) | EP3735677A1 (zh) |
CN (1) | CN111656407B (zh) |
WO (1) | WO2019135979A1 (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11317028B2 (en) * | 2017-01-06 | 2022-04-26 | Appsure Inc. | Capture and display device |
US11164376B1 (en) * | 2017-08-30 | 2021-11-02 | Snap Inc. | Object modeling using light projection |
EP3714432A1 (en) * | 2017-11-24 | 2020-09-30 | Google LLC | Smoothed normals from depth maps for normal-based texture blending |
US10818078B2 (en) * | 2018-09-25 | 2020-10-27 | Sony Corporation | Reconstruction and detection of occluded portions of 3D human body model using depth data from single viewpoint |
WO2020117657A1 (en) * | 2018-12-03 | 2020-06-11 | Google Llc | Enhancing performance capture with real-time neural rendering |
US11302040B2 (en) * | 2019-06-24 | 2022-04-12 | Samsung Electronics Co., Ltd. | System and method for providing weather effect in image |
EP3891707B1 (en) | 2019-02-18 | 2024-06-26 | Samsung Electronics Co., Ltd. | System and method for providing weather effect in image |
US10964098B1 (en) * | 2019-03-05 | 2021-03-30 | Facebook Technologies, Llc | Inverse path tracing for material and lighting estimation |
US11068756B2 (en) * | 2019-03-12 | 2021-07-20 | United States Of America As Represented By The Secretary Of The Air Force | Heterogeneous data fusion |
WO2020242047A1 (en) * | 2019-05-30 | 2020-12-03 | Samsung Electronics Co., Ltd. | Method and apparatus for acquiring virtual object data in augmented reality |
US11164363B2 (en) * | 2019-07-08 | 2021-11-02 | Waymo Llc | Processing point clouds using dynamic voxelization |
US11004254B2 (en) * | 2019-07-25 | 2021-05-11 | Nvidia Corporation | Performance of ray-traced shadow creation within a scene |
US10818071B1 (en) * | 2019-07-26 | 2020-10-27 | Google Llc | Image-based geometric fusion of multiple depth images using ray casting |
CN112652062B (zh) * | 2019-10-10 | 2024-04-05 | 北京京东乾石科技有限公司 | 一种点云地图构建方法、装置、设备和存储介质 |
CN116109793A (zh) | 2019-10-28 | 2023-05-12 | 奇跃公司 | 用于虚拟对象呈现的边缘检测和平滑处理 |
US11494963B2 (en) * | 2019-11-15 | 2022-11-08 | Goodsize Inc. | Methods and systems for generating a resolved threedimensional (R3D) avatar |
CN110996087B (zh) * | 2019-12-10 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 视频显示方法、装置 |
US20210327121A1 (en) * | 2020-04-15 | 2021-10-21 | Sirisilp Kongsilp | Display based mixed-reality device |
US11498005B1 (en) * | 2020-06-30 | 2022-11-15 | Amazon Technologies, Inc. | Geometry-aware encoding of 2D elements |
CN112598778B (zh) * | 2020-08-28 | 2023-11-14 | 国网陕西省电力公司西咸新区供电公司 | 一种基于改进的纹理贴图算法的vr三维重建方法 |
CN112184856B (zh) * | 2020-09-30 | 2023-09-22 | 广州光锥元信息科技有限公司 | 支持多图层特效及动画混合的多媒体处理装置 |
US11276177B1 (en) * | 2020-10-05 | 2022-03-15 | Qualcomm Incorporated | Segmentation for image effects |
US20220157016A1 (en) * | 2020-11-17 | 2022-05-19 | International Institute Of Information Technology, Hyderabad | System and method for automatically reconstructing 3d model of an object using machine learning model |
US11823327B2 (en) | 2020-11-19 | 2023-11-21 | Samsung Electronics Co., Ltd. | Method for rendering relighted 3D portrait of person and computing device for the same |
CN112291479B (zh) * | 2020-11-23 | 2022-03-22 | Oppo(重庆)智能科技有限公司 | 图像处理模组、图像处理方法、摄像头组件及移动终端 |
CN112419482B (zh) * | 2020-11-23 | 2023-12-01 | 太原理工大学 | 深度点云融合的矿井液压支架群位姿三维重建方法 |
US11954070B2 (en) * | 2020-12-18 | 2024-04-09 | The Boeing Company | Generation and distribution of technical model viewpoints |
CN112767518B (zh) * | 2020-12-22 | 2023-06-06 | 北京淳中科技股份有限公司 | 虚拟动画特效制作方法、装置及电子设备 |
WO2022133569A1 (en) * | 2020-12-22 | 2022-06-30 | Prevu3D Inc. | Methods and system for reconstructing textured meshes from point cloud data |
JP2022113962A (ja) * | 2021-01-26 | 2022-08-05 | 富士通株式会社 | データ収集方法及びデータ収集プログラム |
CN113038264B (zh) * | 2021-03-01 | 2023-02-24 | 北京字节跳动网络技术有限公司 | 直播视频处理方法、装置、设备和存储介质 |
CN113421322A (zh) * | 2021-03-19 | 2021-09-21 | 贵州北斗空间信息技术有限公司 | 一种三维场景下模型复用方法及系统 |
US20220345678A1 (en) * | 2021-04-21 | 2022-10-27 | Microsoft Technology Licensing, Llc | Distributed Virtual Reality |
CN113393352B (zh) * | 2021-05-19 | 2022-02-01 | 江苏星月测绘科技股份有限公司 | 一种基于数字孪生技术的智慧城市系统 |
US11978149B2 (en) * | 2021-06-21 | 2024-05-07 | The Weather Company, Llc | UV map using weight painting |
CN114189697B (zh) * | 2021-12-03 | 2022-10-14 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法、装置以及可读存储介质 |
WO2023117194A1 (en) * | 2021-12-20 | 2023-06-29 | British Telecommunications Public Limited Company | Generation of digital terrain |
CN116459511A (zh) * | 2022-01-11 | 2023-07-21 | 华为技术有限公司 | 特效优化方法、装置、存储介质及程序产品 |
US11928757B2 (en) * | 2022-02-16 | 2024-03-12 | Adobe Inc. | Partially texturizing color images for color accessibility |
US20230316552A1 (en) * | 2022-04-04 | 2023-10-05 | Microsoft Technology Licensing, Llc | Repairing image depth values for an object with a light absorbing surface |
US11983808B2 (en) * | 2022-08-24 | 2024-05-14 | Disney Enterprises, Inc. | Conversation-driven character animation |
CN115738249A (zh) * | 2022-11-15 | 2023-03-07 | 网易(杭州)网络有限公司 | 游戏角色的三维模型的展示方法、装置和电子装置 |
CN116740249B (zh) * | 2023-08-15 | 2023-10-27 | 湖南马栏山视频先进技术研究院有限公司 | 一种分布式三维场景渲染系统 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363170B1 (en) * | 1998-04-30 | 2002-03-26 | Wisconsin Alumni Research Foundation | Photorealistic scene reconstruction by voxel coloring |
US6072496A (en) | 1998-06-08 | 2000-06-06 | Microsoft Corporation | Method and system for capturing and representing 3D geometry, color and shading of facial expressions and other animated objects |
US7085409B2 (en) * | 2000-10-18 | 2006-08-01 | Sarnoff Corporation | Method and apparatus for synthesizing new video and/or still imagery from a collection of real video and/or still imagery |
AU2002303082A1 (en) | 2001-01-26 | 2002-09-12 | Zaxel Systems, Inc. | Real-time virtual viewpoint in simulated reality environment |
US7221809B2 (en) | 2001-12-17 | 2007-05-22 | Genex Technologies, Inc. | Face recognition system and method |
JP4123774B2 (ja) | 2001-12-21 | 2008-07-23 | コニカミノルタホールディングス株式会社 | テクスチャマッピング装置 |
US6961061B1 (en) * | 2002-04-19 | 2005-11-01 | Weather Central, Inc. | Forecast weather video presentation system and method |
GB0209080D0 (en) | 2002-04-20 | 2002-05-29 | Virtual Mirrors Ltd | Methods of generating body models from scanned data |
US7292257B2 (en) * | 2004-06-28 | 2007-11-06 | Microsoft Corporation | Interactive viewpoint video system and process |
US7221366B2 (en) * | 2004-08-03 | 2007-05-22 | Microsoft Corporation | Real-time rendering system and process for interactive viewpoint video |
US7558271B2 (en) * | 2005-10-21 | 2009-07-07 | International Business Machines Corporation | Method and apparatus for adaptive bandwidth control with defined priorities for different networks |
US8269765B2 (en) * | 2008-02-28 | 2012-09-18 | Autodesk, Inc. | System and method for removing seam artifacts |
US20100302245A1 (en) * | 2009-05-30 | 2010-12-02 | Best Charles J L | Providing interactive light controls in a three-dimensional compositing application |
US8503539B2 (en) * | 2010-02-26 | 2013-08-06 | Bao Tran | High definition personal computer (PC) cam |
US20130232430A1 (en) * | 2011-08-26 | 2013-09-05 | Reincloud Corporation | Interactive user interface |
US20150178988A1 (en) | 2012-05-22 | 2015-06-25 | Telefonica, S.A. | Method and a system for generating a realistic 3d reconstruction model for an object or being |
US20140111534A1 (en) * | 2012-10-22 | 2014-04-24 | Apple Inc. | Media-Editing Application for Generating and Editing Shadows |
US20140267598A1 (en) | 2013-03-14 | 2014-09-18 | 360Brandvision, Inc. | Apparatus and method for holographic poster display |
US9524588B2 (en) | 2014-01-24 | 2016-12-20 | Avaya Inc. | Enhanced communication between remote participants using augmented and virtual reality |
US10430985B2 (en) * | 2014-03-14 | 2019-10-01 | Magic Leap, Inc. | Augmented reality systems and methods utilizing reflections |
US20160134840A1 (en) * | 2014-07-28 | 2016-05-12 | Alexa Margaret McCulloch | Avatar-Mediated Telepresence Systems with Enhanced Filtering |
US10055018B2 (en) * | 2014-08-22 | 2018-08-21 | Sony Interactive Entertainment Inc. | Glove interface object with thumb-index controller |
US9911242B2 (en) | 2015-05-14 | 2018-03-06 | Qualcomm Incorporated | Three-dimensional model generation |
US9652890B2 (en) * | 2015-09-29 | 2017-05-16 | Disney Enterprises, Inc. | Methods and systems of generating an anatomically-constrained local model for performance capture |
US9813673B2 (en) | 2016-01-20 | 2017-11-07 | Gerard Dirk Smits | Holographic video capture and telepresence system |
KR101769118B1 (ko) * | 2016-02-05 | 2017-08-17 | 주식회사 케이티 | 텔레프레젠스 영상 합성 장치, 텔레프레젠스 영상 합성 시스템 및 원격지 촬영 장치 |
CN109643456A (zh) * | 2016-06-17 | 2019-04-16 | 因默希弗机器人私人有限公司 | 图像压缩方法与设备 |
WO2018160593A1 (en) * | 2017-02-28 | 2018-09-07 | Magic Leap, Inc. | Virtual and real object recording in mixed reality device |
US10453241B2 (en) * | 2017-04-01 | 2019-10-22 | Intel Corporation | Multi-resolution image plane rendering within an improved graphics processor microarchitecture |
-
2018
- 2018-01-05 US US15/863,799 patent/US10504274B2/en active Active
- 2018-12-28 EP EP18837107.4A patent/EP3735677A1/en active Pending
- 2018-12-28 WO PCT/US2018/067778 patent/WO2019135979A1/en unknown
- 2018-12-28 CN CN201880085491.0A patent/CN111656407B/zh active Active
-
2019
- 2019-11-01 US US16/671,402 patent/US11210838B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3735677A1 (en) | 2020-11-11 |
US10504274B2 (en) | 2019-12-10 |
WO2019135979A1 (en) | 2019-07-11 |
CN111656407A (zh) | 2020-09-11 |
US20200066026A1 (en) | 2020-02-27 |
US11210838B2 (en) | 2021-12-28 |
US20190213778A1 (en) | 2019-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111656407B (zh) | 对动态三维模型的视图进行融合、纹理化和绘制 | |
Serrano et al. | Motion parallax for 360 RGBD video | |
US10911732B2 (en) | Free-viewpoint photorealistic view synthesis from casually captured video | |
US11721071B2 (en) | Methods and systems for producing content in multiple reality environments | |
JP7181233B2 (ja) | テクスチャマップ及びメッシュに基づく3d画像情報の処理 | |
Kuster et al. | FreeCam: A Hybrid Camera System for Interactive Free-Viewpoint Video. | |
US11398059B2 (en) | Processing 3D video content | |
US20130321396A1 (en) | Multi-input free viewpoint video processing pipeline | |
US10171785B2 (en) | Color balancing based on reference points | |
CN109791704B (zh) | 用于自由运行fvv应用的基于多层uv映射的纹理渲染方法、系统和装置 | |
US20180310025A1 (en) | Method and technical equipment for encoding media content | |
AU2022231680B2 (en) | Techniques for re-aging faces in images and video frames | |
US11451758B1 (en) | Systems, methods, and media for colorizing grayscale images | |
CN115529835A (zh) | 用于新颖视图合成的神经混合 | |
Starck et al. | Virtual view synthesis of people from multiple view video sequences | |
Ye et al. | High-fidelity 3D real-time facial animation using infrared structured light sensing system | |
Rasmuson et al. | A low-cost, practical acquisition and rendering pipeline for real-time free-viewpoint video communication | |
Eisert et al. | Volumetric video–acquisition, interaction, streaming and rendering | |
Huang et al. | 360° stereo image composition with depth adaption | |
WO2020193703A1 (en) | Techniques for detection of real-time occlusion | |
Liu et al. | See360: Novel panoramic view interpolation | |
Chen et al. | A quality controllable multi-view object reconstruction method for 3D imaging systems | |
Chang et al. | Montage4D: Real-time Seamless Fusion and Stylization of Multiview Video Textures | |
EP3809372B1 (en) | Method of real-time generation of 3d imaging | |
US20240119568A1 (en) | View Synthesis Pipeline for Rendering Passthrough 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |