用于基于顶点重构三维模型的系统和方法与流程

文档序号:12142318阅读:214来源:国知局
用于基于顶点重构三维模型的系统和方法与流程

本申请要求于2014年3月12日提交的美国临时申请No.61/952,055,以及于2014年12月1日提交的美国专利申请No.14/557,238的优先权,其每个申请通过引用将其整体并入本文。本申请与2014年11月10日提交的标题为SYSTEMS AND METHODS FOR SCALABLE ASYNCHRONOUS COMPUTING FRAMEWORK的美国专利申请No.14/537,768有关,并且其通过信用将其整体并入本文。

发明背景

1.发明领域

本实施例大体上涉及重构和图形显示三维空间,并且更具体地涉及基于限定在三维空间内的顶点重构和图形显示三维空间。

2.背景

一般来说,三维重构已是计算密集型任务,尤其是在实时情境中。用于三维重构的方法包括三角测量、立体视觉和飞行时间系统,以实时提取目标空间内的对象的三维特征。与基于传感器的方法相比,计算方法可以具有相当大的发展潜力,但要求消耗大量时间和计算资源的复杂搜索或匹配。例如,飞行时间方法和基于视频的立体视觉两者仅捕获单个角度。飞行时间受限于所使用的传感器的分辨率。虽然基于视频的立体视觉可以在户外操作,但是立体视觉依赖于计算密集型搜索以生成输出。因此,与上面所描述的方法相关联的缺点可以包括由过多或者过少信息引起的误差和低效。

对于娱乐、安全、医疗、影视制作等,基于来自相机的输出的三维空间重构变得越来越有价值。由于大多数现场三维扫描仪具有有限的范围、分辨率和户外能力的事实,因此计算机视觉研究人员已经寻找算法解决方案。由于在算法的输入中的纹理(texture)之间的相似性以及将被处理的数据过多,因此实时导出三维几何结构的基于图片的算法方法具有缺陷。大多数算法方法实行近似法或策略,以避免处理所要求的所有的数据以便增加执行的速度。因此,对于理想解决方案所必要的数据可以被忽略,然而另一方面,理想图片真实感解决方案通常要求处理大量数据以执行足够好的品质。

因而,期望成本高效的系统和方法以建立目标空间的三维模型并且在终端用户的设备处重构三维模型。

公开概述

本文中所描述的实施例涉及用于捕获、建立和重构目标空间的三维模型的系统和方法。特别地,可以实施该系统和方法,以实时(例如,如在现场广播和/或持续超过瞬间的事件流的情况下)捕获、建立和重构三维模型(例如,包括目标空间内的移动的和不动的对象)。

特别地,目标(三维)空间可以被划分为包括多个顶点,每个顶点可以与目标空间内的离散体积相关联。可以由数据源(例如,相机)捕获与目标空间有关的数据(例如,图像数据、视频数据等)。视频的每个图像或帧可以捕获多个区域。例如,每个区域(像素的一小部分或至少一个像素)可以与限定在目标空间内的多个顶点中的一个顶点相关联。

对于每个顶点,可以基于由数据源捕获的图像/视频帧来评估显示特性。显示特性包括但不限于颜色、纹理、频率变换、小波变换、平均值、标准偏差、其组合等。可以以至少一个显示属性表示每个显示特性。关于如由单个源设备捕获的单个图像/帧,可以捕获和处理与顶点中的每个顶点相关联的显示属性。特别地,可以基于与所捕获的图像/或帧的区域(例如,像素的一小部分或至少一个像素)相关联的显示属性来确定用于每个显示属性的权重。假设有以不同的相机姿势同时捕获目标空间的多个数据源,可以捕获与给定顶点相关联的多个显示属性。

目标空间内的对象可以阻挡或包含给定的顶点。当已经获得至少一个潜在的显示属性和与其相关联的权重时,所选择的显示属性可以被设定为与最高置信水平相关联的潜在的显示属性(例如,至少一个潜在的显示属性)中的一个潜在的显示属性。置信水平可以基于预定阈值、与(多个)其它显示属性的权重的比较、标准偏差、平均值、周围像素的卷积、其组合等。

在一些实施例中,本文中可以描述方法,该方法包括但不限于:将目标空间的模型划分为多个顶点;基于由多个数据源提供的输出数据,确定与多个顶点中的每个顶点相关联的至少一个显示属性;以及选择用于多个顶点中的每个顶点的至少一个显示属性中的一个显示属性。

在一些实施例中,方法还包括提供多个数据源。多个数据源中的每个数据源输出对应于当前帧的数据作为包括多个区域的输出数据。

在一些实施例中,多个区域中的每个区域对应于多个顶点中的一个顶点。

在各种实施例中,确定与多个顶点中的每个顶点相关联的至少一个显示属性包括对于多个数据源中的每个数据源确定与当前帧的多个区域中的每个区域相关联的显示属性。

在一些实施例中,多个数据源中的每个数据源提供对应于多个顶点中的至少一些顶点的输出数据。

在一些实施例中,多个数据源中的每个数据源包括被布置在与多个数据源中的另一个数据源的相机位置和取向不同的相机位置和取向处的至少一个数字摄像机。

根据一些实施例,由多个数据源中的两个或更多个数据源输出对应于多个顶点中的至少一个顶点的输出数据。

在各种实施例中,多个数据源被布置成两个或更多个级别。基于由多个数据源中的在两个或更多个级别的第一级别中的至少一个数据源输出的输出数据,确定用于多个顶点的第一顶点的至少一个显示属性。

在一些实施例中,当与用于第一顶点的至少一个显示属性中的一个显示属性相关联的权重超过预定阈值时,基于来自与除了第一级别之外的级别相关联的多个数据源的输出,确定用于除了第一顶点之外的多个顶点的至少一个显示属性。

根据一些实施例,当与至少一个显示属性中的任一个显示属性相关联的权重等于或小于预定阈值时,基于由多个数据源中的与两个或更多个级别中的第二级别相关联的至少一个数据源输出的输出数据,确定用于第一顶点的至少一个显示属性。

在一些实施例中,方法还包括将多个顶点中的至少一个顶点投影到多个区域中的一个区域上。

在各种实施例中,将目标空间的模型划分为多个顶点至少包括:接收目标空间的模型的外部边界;确定多个顶点的密度;以及基于多个顶点的密度,对由模型的外部边界限定的体积进行采样。

在一些实施例中,基于所期望的分辨率、可用的处理功率和网络条件中的至少一个,确定多个顶点的密度。

各种实施例涉及装置,装置被配置成:将目标空间的模型划分为多个顶点;基于由多个数据源观测的输出数据,确定与多个顶点中的每个顶点相关联的至少一个显示属性;以及选择用于多个顶点中的每个顶点的至少一个显示属性中的一个显示属性。

在一些实施例中,装置还被配置成提供多个数据源,多个数据源中的每个数据源输出对应于当前帧的数据作为包括多个区域的输出数据。

在各种实施例中,多个区域中的每个区域对应于多个顶点中的一个顶点。

在一些实施例中,确定与多个顶点中的每个顶点相关联的至少一个显示属性包括对于多个数据源中的每个数据源确定与当前帧的多个区域中的每个区域相关联的显示属性。

根据一些实施例,多个数据源中的每个数据源提供对应于多个顶点中的至少一些顶点的输出数据。

在一些实施例中,多个数据源中的每个数据源包括被布置在与多个数据源中的另一个数据源的相机位置和取向不同的相机位置和取向处的至少一个数字摄像机。

各种实施例涉及储存程序指令的非暂时计算机可读储存媒介,当执行程序指令时使处理器:将目标空间的模型划分为多个顶点;基于由多个数据源观测的输出数据,确定与多个顶点中的每个顶点相关联的至少一个显示属性;以及选择用于多个顶点中的每个顶点的至少一个显示属性中的一个显示属性。

附图简述

图1A是显示根据各种实施例的三维模型重构系统的示例的示意框图。

图1B是显示根据各种实施例的后端设备的示例的框图。

图2是显示根据各种实施例的一般化三维模型重构过程的示例的过程流程图。

图3A是显示根据各种实施例的目标空间的透视图的示意框图。

图3B是显示目标空间的前视图的示意框图。

图3C是显示目标空间的侧视图的示意框图。

图3D是根据各种实施例的目标空间的模型。

图4是显示具有由数字相机捕获的目标空间的顶点中的至少一些顶点的目标空间的透视图的示意图。

图5是显示根据各种实施例由多个数据源捕获的目标空间的顶视图的示意图。

图6是显示如在由数据源捕获的帧/图像中看到的第一组顶点的示意图。

图7是显示根据各种实施例如由在给定帧中的对象占用的第二组顶点的示意图。

图8A是示出如由不同级别的数据源捕获的目标空间的顶视图的示意图。

图8B可以是示出根据各种实施例在每个级别的数据源处被要求处理的顶点的表格。

图9A是显示根据各种实施例的顶点投影的示例的示意图。

图9B是显示在给定的顶点和捕获该顶点的数据源的帧之间的关系的映射表。

图10是显示根据各种实施例的基于数据源的显示属性确定方法的图示。

图11是显示根据各种实施例的基于顶点的显示属性确定方法的图示。

图12是根据各种实施例实施的加权表的示例。

图13是显示根据各种实施例的三维模型重构过程的示例的过程流程图。

图14是显示根据各种实施例的顶点划分过程的示例的过程流程图。

图15是显示根据各种实施例的关注级别的加权过程的示例的过程流程图。

图16是显示根据各种实施例的加权过程的示例的过程流程图。

具体实施方式

在以下各种实施例的描述中,参考形成各种实施例的描述的一部分的附图,并且在附图中以说明的方式示出了在其中可以实践本发明的具体实施例。应当理解,可以利用其它实施例,并且可以做出结构改变,而不偏离本公开中所公开的各种实施例的范围。

本文中所描述的实施例涉及用于捕获、处理和重构目标空间的三维模型的系统和方法。所描述的系统和方法的具体实施方案可以包括实时显示发生在目标空间内的现场场景。可以在输出具有用于诸如颜色的显示特性的改变的表面投影的流式、移动模型的流水线中生成三维模型。换句话说,可以基于使用用于限定在目标空间内的顶点的显示特性的特定的显示属性的权重所捕获的视频和/或图像,自动地生成目标空间的三维模型。然后,可以重构三维模型用于进行显示,对于该显示,可以呈现在现场场景周围或现场场景内的独特的视点用于由终端用户消费。

目标空间可以被划分为多个离散体积,离散体积中的每个离散体积可以与顶点相关联。由此,多个顶点可以构成目标空间。每个顶点可以与显示特性相关联,显示特性诸如颜色、构造、频率变换、小波变换、平均值、标准偏差、其组合等。当在单个时间点(例如,其关于视频帧)处为顶点中的每个顶点确定显示特性时,可以通过使用投影来重构用于该时间点的目标空间的3-模型,以允许终端用户在那个时刻处的目标空间的二维和/或三维显示。当基于在每个帧(根据帧速率)处的顶点的显示特性/属性确定连续帧时,可以产生(所重构的目标空间的三维模型的)流式视频。

为了确定显示特性,多个数据源(例如,相机)可以被定位在目标空间周围或在目标空间内,以捕获目标空间的视频(或图像)。给定被配置用于数据源的不同的相机姿势,数据源中的每个数据源可以在如帧/图像内的二维区域的给定的帧中捕获至少一些顶点。换句话说,像素的一小部分或至少一个像素可以对应于至少一个顶点。可以以所描述的方式利用处理技术(例如,对由数据源观测的显示属性进行加权),以选择与顶点(如在像素的一小部分或至少一个像素中所示的)相关联的多个显示属性中的一个显示属性。

代替复杂的搜索,本文中所描述的实施例涉及使用蛮力(brute force)数学和简单的比较,以获取关于三维顶点的了解。这允许将处理任务划分为用于分布式处理的离散数据块/线程。在特定的实施例中,可以通过如在“SYSTEMS AND METHODS FOR SCALABLE ASYNCHRONOUS COMPUTING FRAMEWORK”(申请序列no.14/537,768)中所描述的分布式计算框架实行顶点到图像/帧的对应的区域上的投影、所捕获的图像/视频的处理以产生对应于所观测的显示属性的权重和选择对于顶点中的每个顶点所观测的多个显示属性中的一个显示属性。

例如,本文中所描述的分布式计算框架可以是使用最小元数据的异步NoSql服务器(如在后端设备中一般化的)。NoSql服务器可以经由网络(例如,互联网)与多个用户设备连接,每个用户设备具有用户核心(例如,GPU核心)。基于视频帧、顶点(或顶点的切片)、源设备、时间等,NoSql服务器可以划分处理任务。元数据(例如,帧位置、顶点位置等)可以被传输到用户设备用于处理。用户设备可以将关于与顶点相关联的显示属性的输出(例如,加权)返回到后端设备(或远程服务器/数据库)。因此,三维模型处理任务可以被分成用于通过大的神经网络处理的大量的可容易计算的线程/块,其中神经元中的每个神经元(例如,用户设备)可以以并行且异步的方式计算任务。从用户设备中的每个用户设备的输出,可以生成流式三维显示数据的流水线。

在一些实施例中,用户设备可以耦合到所使用的数据源,或供应所使用的数据源以确定顶点的颜色。在一个示例中,用户设备(例如,蜂窝电话)可以将来自相机的视频投影到场景的单个平面或顶点云上。现在对于蜂窝电话,该单个投影简单且容易。输出可以被流式传输到内容分发网络(CDN),其中可以聚合来自额外的(现场)数据源的数据。用户设备可以供应在该情况下所有的输入,包括可以以用于普通相机的相同的方式确定的空间中的相机姿势。可以用在该场景中的标识物、在对应的3D空间中的3D形状、相机的固有参数和用于求解投影的线性代数实现此类确定。

图1A是显示根据各种实施例的三维模型重构系统100的示例的示意框图。参考图1A,三维模型重构系统100可以包括至少后端设备110、多个数据源120a-120h(例如,第一源设备120a、第二源设备120b、…、第八源设备120h)、目标空间105、网络130、多个用户设备140a-140n(例如,第一用户设备140a、第二用户设备140b、…、第n用户设备140n)和数据库170。

在一些实施例中,网络130可以允许在后端设备110和用户设备140a-140n之间的数据传送。在另外的实施例中,网络130还可以允许在数据源120a-120h和后端设备110/用户设备140a-140n之间的数据传送。在另外的实施例中,网络130可以实现在数据库170和后端设备110之间的数据传送。用户设备140a-140n可以通过网络130彼此连接。网络130可以是广域通信网络诸如但不限于互联网,或者一个或多个内联网、局域网(LAN)、以太网、城域网(MAN)、广域网(WAN)、其组合等。在特定的实施例中,网络130可以表示一个或多个安全网络,其被配置有合适的安全特征,诸如但不限于防火墙、加密,或禁止由未授权的人员或实体访问网络通信的其它软件或硬件配置。在网络130上可传输的数据可以使用每帧密钥在用户设备140a-140n的用户核心150上的着色器语言内进行加密和解密,进一步保护数据。

在一些实施例中,数据源120a-120h和后端设备110可以经由第一网络连接,后端设备110和数据库170可以经由第二网络连接,并且后端设备110和用户设备140a-140n可以经由第三网络连接。第一网络、第二网络和第三网络中的每个可以是诸如但不限于网络130的网络。在一些实施例中,第一网络、第二网络和第三网络中的每个可以是彼此不同的网络。在其它实施例中,第一网络、第二网络和第三网络中的两个可以是相同的网络。

目标空间105可以是将由数据源120a-120h捕获的任何三维空间。目标空间105的示例包括但不限于体育场、竞技场、球场、建筑物、公园、车间、农场、房间、其组合等。特别地,如图1A中所示,目标空间105采取网球场的形式作为非限制性示例。换句话说,实质上任何场所、位置、房间等可以被表示为诸如目标空间105的三维体积。目标空间105可被采样且被划分为多个离散体积,多个离散体积中的每个离散体积可以与顶点相关联。目标空间105的模型可以包括与顶点中的每个顶点相关联的显示特性/属性。

每个顶点可以由唯一标识符来识别。在特定的实施例中,标识符可以基于顶点在目标空间105中的位置。例如,坐标系可以被实施用于目标空间105,使得每个顶点可以由特定的一组坐标系的特定一组坐标来识别。

数据源120a-120h中的每个数据源可以(例如,经由网络130或以其它方式)连接到后端设备110,其中后端设备110可以生成数据源120a-120h的输出(例如,视频馈送或图像)的元数据。数据源120可以(例如,经由网络130或以其它方式)被连接到用户设备140a-140n,用于提供将由用户设备140a-140n处理的源数据。例如,数据源120a-120h可以包括用于捕获视频和/或图像且将原始视频和/或图像输出到后端设备110的任何合适的设备。在特定的实施例中,数据源120a-120h中的每个数据源可以包括至少一个相机(例如,数字相机、高清数字相机、IP相机或具有网络能力的其它相机)。在其它实施例中,由数据源120a-120h输出的原始数据可以被路由到网络设备,网络设备将数据中继到后端设备110。

数据源120a-120h可以被定位在目标空间105周围或在目标空间105内,以捕获目标空间105的视频和/或图像。例如,数据源(诸如,但不限于数据源120a-120h)可以被定位在目标空间(诸如,但不限于目标空间105)的顶部、底部和/或侧表面周围,并且面向目标空间的内部。在另外的实施例中,数据源可以被定位在目标空间内用于顶点的更好覆盖,如果所有的数据源被定位在目标空间的内部体积的外面则该顶点可能难以被捕获。在图1A中所示的非限制的示例中,第一数据源120a、第二数据源120b和第三数据源120c可以沿着目标空间105的第一侧表面进行定位;第四数据源120d、第五数据源120e和第六数据源120f可以沿着目标空间105的第二侧表面进行定位;并且第七数据源120g和第八数据源120h可以沿着目标空间105的第三侧表面进行定位。

数据源中的每个数据源可以具有不同的或唯一的相机姿势(即,相对于目标空间的相机的位置和取向)。例如,数据源可以以网格状方式(均匀间隔)进行定位,并且在垂直于目标空间的表面的视线上直接指向前方。多行和多列的数据源可以被提供用于目标空间的给定的表面。在其它实施例中,数据源可以以随机或半随机模式进行定位。数据源的相机姿态可以由在目标空间周围的空间来限制,并且被放置在基于在目标空间周围的空间中的对象和障碍物的可用的几何结构的位置和取向中。

距离可以被提供在目标空间105的表面或边缘与数据源120a-120h之间。距离越长,就可以由给定的数据源捕获越多的顶点。另一方面,较长的距离可以引起所捕获的视频/图像数据的较低的分辨率,从而当处理时引起误差。数据源和目标空间之间的距离可基于相机分辨率、目标空间的体积、可用的其它数据源的数量、其组合等来确定。

虽然在图1A中示出了8个数据源120a-120h,但是本领域中的技术人员应该认识到,可以提供更多或更少数量的数据源(诸如,但不限于数据源120a-120h)。分散在目标空间周围或在目标空间中的更大数量的数据源可以提供用于处理的更大的样本大小(例如,更多视频帧),从而在给定的帧时间中对于与给定的顶点相关联的给定的显示属性提供很多权重。因此,用较大数量的加权值提高了准确性和可靠性。另一方面,由于未处理数据的增加,因此较大数量的数据源可以导致延长的处理。

图1B是显示根据各种实施例的后端设备110的示例的框图。参考图1A-图1B,后端设备110可以包括处理器111、可操作地耦合到处理器111的存储器112、网络设备113、用户界面114等。在一些实施例中,后端设备110可以包括被配置有硬件和软件以实行本文中所描述的操作的台式计算机、大型计算机、服务器单元、膝上型计算机、平板设备、智能电话设备等。在特定的实施例中,后端设备110可以是redis公布/预订服务器,和/或NoSql服务器。

例如,后端设备110可以包括典型的台式PC或AppleTM计算机设备,当被配置有合适的应用软件(或其它软件)以实行本文中所描述的操作时,其具有合适的处理能力、存储器、用户界面(例如,显示和输入)能力和通信能力。适合于实施方案的平台包括Amazon/Debian Linux、不具有插件(诸如java或flash)的HTML(例如,HTML5)浏览器等。因此,特定实施例可以使用往往已经存在于许多商业和组织环境中的处理器设备,通过将这些设备配置有本文中所描述的合适的软件过程来实施。因此,可以用最小的额外硬件成本来实施此类实施例。然而,后端设备110的其它实施例可以涉及与用被特别配置用于实行本文中所描述的操作的专用设备硬件所实施的系统和过程。

处理器111可以包括任何合适的数据处理设备,诸如通用处理器(例如,微处理器)。在可选方案中,处理器111可以是任何传统的处理器、控制器、微控制器或状态机。处理器111还可以被实施作为计算设备的组合,例如,DSP和微处理器、多个微处理器、GPU、结合DSP核心的至少一个微处理器的组合,或任何其它此类配置。

存储器112可以可操作地耦合到处理器111,并且可以包括用于储存软件和数据的任何合适的设备,该软件和数据用于由处理器111控制和使用以实行本文中所描述的操作和功能,任何合适的设备包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、软盘、硬盘、软件狗或连接其它重新排版(recomp)传感器板(RSB)的存储设备等。

网络设备113可以被配置用于通过网络130通信。网络设备113可以包括接口软件、硬件,或其组合,用于通过网络130通信。网络设备113可以包括提供与网络130(或与联网设备)的有线的或无线通信链接的硬件(诸如网络调制解调器、无线接收器或收发器电子器件)和/或软件。在特定的实施例中,网络设备113可以耦合到处理器111,用于提供通信功能。根据典型的行业标准,诸如但不限于码分多址(CDMA)、时分多址(TDMA)、频分多址(FDMA)、长期演进(LTE)、无线保真(WiFi)、调频(FM)、蓝牙(BT)、近场通信(NFC)等,网络设备113可以提供电话和其它通信。

在特定的实施例中,后端设备110的用户界面114可以包括至少一个显示设备。显示设备可以包括提供人类可察觉的可见信号、听觉信号、触觉信号或其任何组合的任何合适的设备,包括但不限于触摸屏、LCD、LED、CRT、等离子体,或其它合适的显示屏、音频扬声器或其它音频生成设备、其组合等。

在一些实施例中,后端设备110的用户界面114可以包括为使用后端设备110的指定人员提供界面的至少一个用户输入设备。用户输入设备可以包括从用户接收输入的任何合适的设备,包括但不限于一个或多个手动操作器(诸如,但不限于开关、按钮、触摸屏、旋钮、滑动器、键盘、鼠标等)、麦克风、相机、图像传感器、任何类型的远程连接控制等。

还参考图1A-图1B,后端设备110可以额外地包括顶点确定模块115。在一些实施例中,顶点确定模量115可以是用于确定与目标空间105相关联的顶点的密度和位置的硬件/软件模块。顶点确定模量150可以是在后端设备110内具有其自己的处理器/存储器(诸如,但不限于处理器111和存储器112)的专用硬件/软件实体,或可选地使用后端设备110的处理器111和存储器112。

在一些实施例中,基于与目标空间105有关的给定信息(例如,尺寸或外部边界),顶点确定模块115可以自动地确定用于目标空间105的顶点的密度和位置。合适的算法可以指定目标空间105内顶点的总数量(或密度),使得与每个顶点相关联的离散体积可以是目标空间105的总体积除以顶点的总数量。算法可以可选地包括间距要求,其可以指定两个顶点之间的距离或每个离散体积的大小。在典型的实施例中,在整个目标空间105中顶点的间距可以是一致的。在其它实施例中,顶点的间距在目标空间105的一些部分(例如,其中所感兴趣的动作要求更高的准确性或更高的分辨率)中可以是密集的,而在目标空间105的其它部分中(例如,在可以是广告或背景的区域中)可以是稀疏的。

在各种实施例中,可以通过用户输入或合适的成像技术提供目标空间105的外形尺寸(外部边界)。外部边界可以形成目标空间105的整体体积,其基于整体体积可以被划分为的离散体积的给定大小或所确定的顶点的密度可以被采样。较少的样本(较少的离散体积)可以对应于密集采样,并且将允许目标空间105的三维模型更接近地类似于实际的目标空间105。反过来,这将允许所观测的显示属性的提取和具有更多细节和更高分辨率的显示属性的三维模型的重构。另一方面,稀疏采样可以产生具有较少细节和分辨率的模型,其中当在用户设备140a-140b上查看时,三维模型的重构可以显得像素化和粗糙。

在其它实施例中,顶点确定模块115可以从分离设备(未示出)或用户设备(通过用户界面114)接收关于目标空间105内顶点的数量和位置的输入。例如,顶点确定模块115可以从分离设备或用户界面114接收包括顶点的定位的目标空间105的模型。

顶点确定模块115还可以以所描述的方式将每个顶点投影或以其它方式映射到如由数据源120a-120h中的每个数据源捕获的帧或图像上。

后端设备110还可以包括加权模块116。在一些实施例中,加权模块116可以是用于以所描述的方式确定所观测的显示属性和与顶点相关联的显示属性中的每个显示属性的权重的硬件/软件模块。加权模块116可以是在后端设备110内具有其自己的处理器/存储器(诸如,但不限于处理器111和存储器112)的专用硬件/软件实体。可选地,加权模块116可以在实行其功能时使用后端设备110的处理器111和存储器112。

后端设备110还可以包括工作结果确定模块117。在一些实施例中,工作结果确定模块117可以是用于确定工作结果(例如,选择为显示特性所观测的至少一个显示属性中的一个显示属性)的硬件/软件模块。特别地,基于与如由加权模块116所确定的每个潜在的显示属性相关联的权重,工作结果确定模块117可以为给定帧中的给定的顶点选择最终显示属性。工作结果确定模块117可以是在后端设备110内具有其自己的处理器/存储器(诸如,但不限于处理器111和存储器112)的专用硬件/软件实体。可选地,工作结果确定模块117可以在实行其功能时使用后端设备110的处理器111和存储器112。

如由工作结果确定模块117所确定的,所选择的显示属性可以是由大多数数据源所捕获的显示属性。在其它实施例中,如由工作结果确定模块117所确定的,所选择的显示属性可以与超过预定阈值的权重相关联。在其它实施例中,当来自平均显示属性的标准偏差低于预定阈值时,如由工作结果确定模块117所确定的,所选择的显示属性可以是平均显示属性(例如,当显示特性是颜色时在颜色通道中的平均值)。

在其它实施例中,后端设备110可以实施分布式计算框架,如在“SYSTEMS AND METHODS FOR SCALABLE ASYNCHRONOUS COMPUTING FRAMEWORK”(申请序列no.14/537,768)中所描述的,而不具有本地化的顶点确定模块115、加权模块116和/或工作结果确定模块117。例如,后端设备110(经由其处理器111)可以将由如所描述的顶点确定模块115、加权模块116和/或工作结果确定模块117所实行的计算任务分割为将被分发给多个用户设备用于(例如,由用户设备的GPU)处理的离散数据块/线程。因此,可以由除了后端设备110之外的设备实行关于顶点确定模块115、加权模块116和工作结果确定模块117所描述的功能。特别地,顶点确定模块115、加权模块116和工作结果确定模块117中的一个或多个可以在后端设备110外部。

除存储器112之外(或作为存储器112的可选方案),后端设备110可以可操作地耦合到至少一个数据库170。数据库170可能够储存更大量的信息,并且与后端设备110中的存储器112相比,针对对所储存的信息的未授权访问提供更高级别的安全性。数据库170可以包括任何合适的电子储存设备或系统,包括但不限于随机存取存储器RAM、只读存储器ROM、软盘、硬盘、软件狗或其他RSB连接的存储器设备等。在特定的实施例中,数据库170可以是由redis服务器维护的NOSQL数据库。

数据库170和/或存储器112可以被配置成储存来自数据源的源数据(例如,未处理数据)。在一些实施例中,源数据可以被储存在数据库170或者存储器112中。在其它实施例中,源数据的至少一部分可以被储存在数据库170和存储器112中的一个中,而源数据的分离的一部分可以被储存在数据库170或存储器112中的另一个中。

用户设备140a-140n中的每个用户设备可以包括一般处理单元、存储器设备、网络设备和用户界面。处理单元可以被配置成执行用户设备140a-140n(诸如,任何合适的数据处理设备)的一般功能。用户设备140a-140n中的每个用户设备的存储器设备可以可操作地耦合到处理单元,并且可以包括用于储存软件和数据的任何合适的设备,其用于由处理单元控制和使用以实行本文中所描述的操作和功能。用户设备140a-140n中的每个用户设备的网络设备可以包括界面软件、硬件,或其组合,用于通过网络130通信。

用户设备140a-140n的每个可以包括用户界面,其包括用于向用户显示信息(例如,文本和图形)的至少一个显示设备。显示设备可以包括提供人类可察觉的可见信号、听觉信号、触觉信号或其任何组合的任何合适的设备,包括但不限于触摸屏、LCD、LED、CRT、等离子体,或其它合适的显示屏、音频扬声器或其它音频生成设备、其组合等。基于与每个顶点相关联的最终显示特性,该界面可以被配置成向用户设备140a-140n的用户显示三维模型的所投影的视频或图像。

用户设备140a-140n中的每个用户设备可以是任何有线或无线计算系统或设备。在一些实施例中,用户设备140a-140n可以是被配置有硬件和软件以实行本文中所描述的操作的台式计算机、大型计算机、膝上型计算机、平板设备等。例如,用户设备140a-140n中的每个用户设备可以包括典型的台式PC或AppleTM计算机设备,当被配置有合适的应用软件(或其它软件)以实行本文中所描述的操作时,其具有合适的处理能力、存储器、用户界面(例如,显示和输入)能力和通信能力。在其它实施例中,用户设备140a-140n可以包括移动智能电话(诸如,但不限于iPhoneTM、AndroidTM电话等)或具有合适的处理能力的其它移动电话。典型的现代移动电话设备包括电话通信电子器件以及一些处理器电子器件、一个或多个显示设备和键盘和/或其它用户输入设备,诸如,但不限于上面所描述的。特定的实施例采用移动电话(通常被称为智能电话),其具有除了电话通信能力之外的相对先进的处理、输入和显示能力。然而,在本发明的另外的实施例中,用户设备140a-140n可以包括任何合适类型的移动电话和/或其它类型的便携式电子通信设备,诸如但不限于电子智能平板设备(诸如,但不限于iPadTM)、便携式膝上型计算机等。

图2是显示根据各种实施例的一般化三维模型重构过程200的示例的过程流程图。参考1A-图2,可以用如图1A-图1B中所示的三维模型重构系统100实施一般化三维模型重构过程200。首先,在框B210处,后端设备110的顶点确定模块115可以将目标空间105的模型划分为多个顶点,多个顶点中的每个顶点可以与作为目标空间105的一部分的离散体积相关联(例如,被定位在离散体积的中心)。

接下来,在框B220处,基于由多个数据源(例如,数据源120a-120h)捕获的视频帧(或图像),后端设备110的加权模块116可以确定用于与多个顶点中的每个顶点相关联的显示特性的至少一个显示属性。在给定的帧时间处,多个数据源中的每个数据源可以输出捕获目标空间105的至少一部分(和在该部分中限定的顶点)的视频帧(或图像)。与顶点相关联的显示特性可以是指以下中的至少一个:颜色、纹理、频率变换、小波变换、平均值、标准偏差,其组合等。每个顶点可以以至少一个(往往是多个)显示属性被捕获,其是特定类型的一个显示特性。例如,红色、黄色、蓝色可以是与显示特性颜色相关联的显示属性的示例。

接下来,在框B230处,后端设备110的工作结果确定模块117可以为多个顶点中的每个顶点选择至少一个显示属性中的一个显示属性(例如,选择多个潜在的颜色中的一个颜色)。随后,后端设备110或用户设备140a-140n可以基于用于该当前帧的(用于该显示特性的)至少一个显示属性的一个所选择的显示属性来显示目标空间105的模型。同样地,可以以上面所描述的方式并行地处理多个显示特性。

图3A是显示根据各种实施例的目标空间300的透视图的示意框图。图3B是显示目标空间300的前视图的示意框图。图3C是显示目标空间300的侧视图的示意框图。参考图1-图3C,目标空间300可以是三维空间,诸如但不限于目标空间105的一部分。目标空间300可以被划分为多个离散体积310a-310l(例如,第一体积310a、第二体积310b、...、第十二体积310l)。离散体积310a-310l中的每个离散体积可以与顶点相关联。例如,第一体积310a可以与第一顶点320a相关联,第二体积310b可以与第二顶点320b相关联、...、第十二体积310l可以与第十二顶点320l相关联。离散体积310a-310l中的每个离散体积可以是任何合适的形状,诸如但不限于长方体、立方体等。为了清楚起见,目标空间300被扩展到包括12个顶点。

假设用于目标空间300的尺寸可以是已知的,可以确定离散体积和/或顶点。在一些实施例中,对于60’乘30’乘10’的目标空间,可以有6,000,000个顶点,诸如但不限于顶点320a-320l。顶点的数量越大,目标空间的三维模型可以更可靠和更详细。当与显示特性相关联时,更大数量的顶点在重构和显示目标空间的三维模型时可以允许高分辨率。

当在数据源的输出的二维背景下投影和显示时,顶点320a-320l中的每个顶点可以对应于像素的一部分(例如,1/16、1/8、1/4、1/2等)、(多个)像素、(多个)宏模块等。例如,基于作为二维视频流的顶点320a-320l,用户设备140a-140n可以被配置成(利用用户界面)显示目标空间300的三维投影。当由数据源120a-120h捕获时,顶点320a-320l中的每个顶点可以对应于像素的一部分、至少一个像素或至少一个宏模块。

每个顶点可以与显示特性相关联,诸如但不限于颜色、纹理、频率变换、小波变换、平均值、标准偏差。本文中所描述的各种实施例可以是指作为示例性显示特性的颜色。本领域中的技术人员将知道还可以以类似的方式实施如所陈述的其它显示特性。

假设相机姿势(位置和取向)可以是提前已知的,可以确定由每个数据源(诸如但不限于数据源120a-120h)捕获的顶点(例如,顶点320a-320l中的至少一些顶点)。例如,捕获目标空间300的前视图(例如,图3B)的数据源(例如,数字相机)可以捕获前面的顶点(例如,第二顶点320b、第三顶点320c、第五顶点320e、第六顶点320f、第七顶点320g和第八顶点320h)。类似地,捕获目标空间300的侧视图(例如,图3C)的数据源可以捕获侧面顶点(例如,第一顶点320a、第二顶点320b、第三顶点320c和第四顶点320d)。额外的数据源可以捕获目标空间300的后视图、顶视图、底视图和/或侧视图。因此,可以由多个数据源捕获单个顶点。特别地,数据源可以捕获与每个顶点相关联的显示特性。

基于目标空间内的顶点的位置,可以由唯一标识符定义每个顶点。在图3A-图3C中所示的非限制性示例中,第四顶点320d可由其坐标(1,1,1)来识别,第六顶点320f可由其坐标(3,2,1)来识别,并且第五顶点320e可由其坐标(2,2,2)来识别。

图3D是根据各种实施例的目标空间105的模型390。参考图1A-图3D,模型390可以包括多个顶点,诸如但不限于顶点320a-320l。如所述的可以由任何合适的算法或由用户输入确定顶点。在各种实施例中,假设目标空间保持静止状态,对于目标空间(例如,目标空间105或目标空间300)所界定的相同一组顶点可以被重复使用以用于多个现场事件,使得包含相同顶点的模型可以仍然可靠地恰当地表示目标空间。

图4是显示具有由数字相机410捕获的目标空间的顶点中的至少一些顶点的目标空间105的透视图的示意图。参考图1A-图4,在各种实施例中,目标空间105可以包括内部体积430。内部体积430可以被划分为多个顶点,诸如但不限于顶点320a-320l。为了清楚起见,图4中未示出内部体积430内的顶点。可以在任何合适的相机姿势下提供数字相机410(作为数据源120a-120g的具体实施方案),以捕获目标空间105的图像/视频。数字相机410可以捕获表示数字相机410的视野范围的所捕获的空间420。所捕获的空间420内的顶点可以被数字相机410捕获。因此,给定的源设备可以捕获内部体积430内的至少一些顶点。所有的顶点可以由已被放在足够远离目标空间105的距离之外(如由相机姿势所指示的,其可以在设置中预先确定相机姿势)的相机捕获。

在一些实施例中,数字相机410(以及数据源120a-120g)可以包括标识物440或与标识物440相关联。标识物440可以包括与数字相机410相关联的位置和/或角度(例如,相机姿势)的任何物理或数字指示。在一些实施例中,标识物440可以被放置在地面或其它合适的对象上或在地面或其它合适的对象附近,数字相机410被定位在地面或其它合适的对象上(下面或周围)。当数字相机410被定位在标识物上时,标识物440可以包括棋盘、QR码或包含距目标空间105的位置和/或相对于目标空间105的角度数据的任何具体可识别的标识物。标识物440可以在实际地放置数字相机410之前被初步地放置在目标空间105周围或在目标空间105内。通过用相关联的扫描设备扫描包含在标识物440中的信息,数字相机410可以变成与标识物440相关联。在其它实施例中,标识物440可以以任何合适的方式被放置在数字相机410上,并且与数字相机410一起移动。相应地,后端设备110可以辨识在来自数字相机410的输出和如由标识物440指定的相机姿势之间的关联。

图5是显示根据各种实施例由多个数据源510a-520j捕获的目标空间105的顶视图的示意图。参考图1A-图5,多个数据源510a-520j的每个可以是数据源,诸如但不限于数据源120a-120g和/或数字相机410。本领域中的技术人员应当理解,数据源120a-120g可以具有任何合适的相机姿势(例如,距目标空间105的距离、距数据源120a-120g中的每个数据源的距离、角度等)。数据源120a-120g的共同的相机姿势可以是任何组织化或随机化的图案。相机姿势可以影响顶点到由特定的数据源输出的帧/图像上的投影以及由特定的数据源捕获的顶点。数据源120a-120g的位置还可以经由场景内的标识物来捕获。标识物的几何结构是已知的,所以标识物的所有2D投影允许导出相机的3D姿势。

由于相机姿势与数据源510a-520j中的每个数据源相关联,所以数据源510a-520j中的每个数据源可以与唯一视野范围相关联。例如,第一数据源510a可以与第一视野520a相关联,第二数据源510b可以与第二视野520b相关联,…,并且第十数据源510j可以与第十视野520j相关联。视野510a-510j中的至少两个视野可以重叠以捕获相同的顶点。例如,顶点530可以由第一视野520a、第四视野520d、第八视野520h和第十视野520j捕获。由多种多样的相机姿势捕获给定的顶点的很多数据源可以允许顶点的更准确的采样,并且由此可以产生关于从可以由捕获给定的顶点的数据源输出的多个显示属性中选择显示属性的更准确的结果。

虽然图5显示涉及二维(例如,x-y平面)的非限制性示例,但是应当理解,目标空间105可以由诸如但不限于数据源510a-510j的数据源以对于目标空间105的三维体积所描述的方式来捕获。

图6是显示如在由数据源捕获的帧/图像中看到的第一组顶点600的示意图。参考图1A-图6,第一组顶点600可以是本文中所描述的任何顶点。第一组顶点600的第一部分(例如,包含16个顶点的左边部分)可以被投影到第一帧610(如由诸如本文中所描述的任何数据源的第一数据源所捕获的)。第一组顶点600的第二部分(例如,包含16个顶点的中间部分)可以被投影到第二帧620(如由诸如本文中所描述的任何数据源的第二数据源所捕获的)。第一组顶点600的第三部分(例如,包含16个顶点的右边部分)可以被投影到第三帧620(如由诸如本文中所描述的任何数据源的第二数据源所捕获的)。所示的顶点中的每个顶点可以是被布置在y方向上(例如,进入页面内)的一连串顶点中的第一顶点。顶点640可以由第一帧610和第二帧620两者捕获。相机的位置还可以经由场景内的标识物来捕获。标识物的几何结构是已知的,所以标识物的所有2D投影允许导出相机的3D姿势。每个顶点可以被投影到每个帧,不过可以被投影到帧的界限外面的位置(意味着数据源不可观测/捕获与包括任何投影在数据源的界限外面的所有的顶点有关的数据)。

图7是显示根据各种实施例的如由在给定的帧中的对象占用的第二组顶点700的示意图。参考图1A-图7,第二组顶点700可以是本文中所描述的任何顶点。三个数据源(例如,相机X 710、相机Y 720和相机Z 730)可以被提供以捕获第二组顶点700的显示特性/属性。特别地,相机X 710可以在视野X 715内捕获第二组顶点700中的一些顶点的显示特性/属性。相机Y 720可以在视野Y 725内捕获第二组顶点700中的一些顶点的显示特性/属性。相机Z 730可以在视野Z 735内捕获第二组顶点700中的一些顶点的显示特性/属性。

相机X 710可以被配置成捕获顶点行760中的顶点的显示特性/属性,顶点行760包括无载顶点770、第一加载顶点745、第二加载顶点775a、第三加载顶点755b和第四加载顶点755c。无载顶点770未被加载有对象(即,除了空气之外无对象占用空白顶点770)。第一加载顶点745可以由第一对象740占用。第二加载顶点775a、第三加载顶点755b和第四加载顶点755c可以由第二对象750占用。

假设关于顶点行760中的一个顶点,相机X 710的相机姿势可以允许仅捕获一组显示特性/属性,假设顶点行760的顶点中的每个顶点堆叠在一起,并且相对于相机X 710阻挡在其后面的顶点。例如,假设无载顶点770由不具有显示特性/属性的空气占用,由相机X 710捕获的顶点行760中的第一顶点可以是第一加载顶点745,其可以具有第一对象740的显示特性/属性。因此,相机X 710可以输出无载顶点770、第一加载顶点745、第二加载顶点775a、第三加载顶点755b和第四加载顶点755c中的每个,以具有第一对象740的显示特性/属性。可以增加用于与顶点行760中的顶点中的每个顶点的第一对象740相关联的显示特性/属性的加权。

然而,凭借使额外的数据源(相机Y 720、相机Z 730,以及为了清楚的原因未示出的其它相机)具有不同的相机姿势,可以由处于更好的相机姿势的其它数据源适当地捕获不适当地/未能捕获的顶点,以适当地捕获这些顶点的显示特性/属性。例如,关于第二加载顶点755a,相机Y 720的视野Y 725和相机Z 730的视野Z 735两者可以捕获第二加载顶点755a。由于前述的顶点775可以是无载的(例如,未占用的),所以相机Y 720和相机Z 730两者可以捕获第二加载顶点755a,以在第二加载顶点755a处具有第二对象750的显示特性/属性,其是适当的。同样地,适当的权重(例如,距相机Y 720和相机Z 730为2)可以超过不适当的权重(例如,距相机X 710为1)或阈值。其他顶点可以以类似的方式被捕获和加权。

当显示特性/属性的加权没有清晰地指示对于给定顶点的所有捕获的属性中的主要属性时,顶点可以是完全(或至少基本上)在对象内(例如,由其它外围顶点所阻挡),或者顶点可以是空气,显示特性/属性可以被选择作为无效或不可用的。用于该顶点的显示特性/属性可以以所描述的方式被选择作为背景特性/属性(例如,背景颜色)、空白的、透明的,或与产生高于置信水平的一组有效的显示特性/属性的最接近的顶点的显示特性/属性相同的显示特性/属性。

参考图1A-图8A,图8A是示出如由不同级别的数据源捕获的目标空间105的顶视图的示意图。在各种实施例中,数据源中的每个数据源可以是如本文中所描述的任何数据源。数据源的每个可以具有唯一的相机姿势。数据源可以被分类为多个级别。在如所示的非限制性示例中,数据源可以包括第一级别设备810a-810d、第二级别设备820a-820d和第三级别设备830a-830h。

在一些实施例中,每个级别可以包括数据源,其可以凭借与该级别的每个源设备相关联的相机姿势,(共同)捕获目标空间105中的所有顶点。在其它实施例中,每个级别可以包括数据源,其可以凭借与该级别的每个源设备相关联的相机姿势,(共同)捕获目标空间105中的一些顶点而不是所有顶点。在一些实施例中,用于前述级别的数据源的数量可以小于或等于用于随后级别的数据源的数量。在图8A的非限制性示例中,对于第一级别设备810a-810d和第二级别设备820a-820d中的每个有四个设备,并且对于第三级别设备830a-830h有8个设备。在其它实施例中,用于前述级别的数据源的数量可以大于或等于用于随后级别的数据源的数量。

在一些实施例中,与用于至少一个随后级别的数据源相比较,用于前述级别的数据源可以以更加稀疏的模式来布置。在其它实施例中,与用于至少一个随后级别的数据源相比,用于前述级别的数据源可以以更密集的模式来布置。在一些实施例中,来自相同级别的每个源设备可以不被放置为彼此相邻。在其它或另外的实施例中,来自相同级别的每个源设备可以被放置为彼此相邻。

一般来说,不同级别的源设备可以用来有效地进行顶点采样,并且处于考虑丢弃/抽出在每个级别的末端处的顶点。假设基于置信水平已经选择显示属性,所丢弃/抽出的顶点不由随后级别考虑。目标空间105的顶点可以以所描述的方式被投影到由数据源中的每个数据源(第一级别设备810a-810d)捕获的帧(在相同的帧时间处)的区域上。对于与顶点相关联的显示特性/属性可以采样对应的区域。当给定的顶点具有超过预定阈值的显示属性(例如,编码为“4394492”的颜色)时(例如,第一级别设备810a-801d中的每个第一级别设备可以捕获相同颜色4394492中的给定顶点,从而超过阈值权重4),该显示属性(4394492)可以被选择作为用于该顶点的特定的显示特性的显示属性。假设已经满足与第一级别相关联的置信水平(如利用阈值方法所实施的),顶点可以由随后级别(例如,第二级别设备820a-820d和第三级别设备830a-830h)处理中丢弃。在另外的实施例中,鉴于关于给定的顶点,来自给定级别内的每个数据源的输出大不相同(例如,用于给定的显示属性的最大的加权是存在于该级别中的设备的总数量的非常小的一部分),顶点可以被指定为无载的(例如,空气)或在体积内部,并且在随后级别处从考虑中同样被丢弃。

图8B可以是示出根据各种实施例的在每个级别的数据源处所要求处理的顶点的表900。参考图1A-图8B,各种级别的数据源(诸如但不限于第一级别设备810a-810d、第二级别设备820a-820d和第三级别设备830a-830h)可以被提供用于按级别处理目标空间105的顶点的系统(例如,三维模型重构系统100)。

例如,目标空间105可以被划分为多个顶点(例如,顶点a、顶点b、…、顶点n)。在级别1 910处,顶点b可被发现具有高于置信水平的显示属性(例如,具有超过预定阈值的加权),并且从而从在随后级别中的另外的处理中被抽出。在级别2 920处,顶点c可被发现具有高于置信水平的显示属性(例如,具有超过预定阈值的加权),并且从而从随后级别中的另外的处理中被抽出。在级别2 920和级别N 930之间的任何级别处,顶点a可被发现具有高于置信水平的显示属性(例如,具有超过预定阈值的加权),并且从而从在任何随后级别中的另外的处理中被抽出。可以处理在级别N930中所有剩余的顶点。

图9A是显示根据各种实施例的顶点投影的示例的示意图。参考图1A-图9A,所感兴趣的顶点910可以与目标空间105内的所感兴趣的离散体积920相关联。所感兴趣的顶点910可以是如本文中所描述的任何顶点。第一帧930可以是由第一源设备(例如,如本文中所描述的任何合适的源设备)捕获的图像或视频帧。第二帧940可以是由第二源设备(例如,如本文中所描述的任何合适的源设备)捕获的图像或视频帧。第三帧950可以是由第三源设备(例如,如本文中所描述的任何合适的源设备)捕获的图像或视频帧。第一帧930、第二帧940和第三帧950中的每个可以是在相同的帧时间处由分离的数据源捕获的帧。

顶点910可以被投影到第一帧930、第二帧940和第三帧950中的每个上,以确定对应于顶点910的每个帧中的区域(像素的一小部分、至少一个像素、至少一个宏模块等)。换句话说,用于目标空间105的模型的三维体积中的顶点910可以以任何合适的变换矩阵被投影到二维图像/帧上。例如,来自目标空间105的三维模型的所感兴趣的顶点910到捕获所感兴趣的顶点910的帧上的投影可以是相机姿势(例如,距所感兴趣的顶点910的距离、相对于所感兴趣的顶点910的角度/取向或为目标空间105所定义的轴)、目标空间105的大小、帧的屏幕大小,其组合等的函数。

所投影的二维区域(例如,第一帧930中的第一区域935、第二帧940中的第二区域945、第三帧950中的第三区域955)可以是不同的大小、形状(如为第三区域955所示的平面的取向)、在帧中的位置。这可以由相机姿势的差异导致。

图9B是显示给定的顶点和捕获该顶点的数据源的帧之间的关系的映射表960。参考图1A-图9B,对于数据源中的每个数据源在随后时间所捕获的帧,在如投影到不同的数据源(诸如但不限于本文中所描述的任何数据源)的帧上的目标空间105的模型中的给定顶点(诸如但不限于本文中所描述的任何顶点)之间的关系可以被储存在存储器112、数据库170或其它处理设备(诸如用户设备)中。响应于顶点的位置/密度改变或响应于对于数据源的相机姿势改变,可以更新和恢复投影。

还参考图1A-图9B,在图9B中所示的非限制性示例中,顶点n 970可以是本文中所描述的任何顶点,并且是在存储器中通过标识符(诸如在目标空间105的模型中的其坐标)的索引。多个数据源(例如,如在数据源列985中所示的数据源A 980、数据源B 920、…、数据源N 984)可以被提供以捕获目标空间105内的顶点的显示特性/属性。在一些实施例中,顶点n 970的至少一个数据源(例如,数据源B)可以不被配置(由于其相机姿势)成捕获顶点n 970。因此,帧列990上所投影的位置中所列出的面积坐标被列出为空或“N/A”。换句话说,与顶点n 970相关联的显示属性的确定与数据源B 982的帧无关(除非顶点n 970或数据源B 982的相机姿势改变)。对于其它数据源,平面坐标可以被提供用于指示被映射到顶点n 970的帧上的区域。例如,可以由坐标(α1,β2)指示帧上的区域。在另外的实施例中,映射表960可以包括详述每个数据源的帧被储存的地方的帧位置列995。帧可以被储存在存储器112、数据库170或互联网上的任何地方中。

图10是显示根据各种实施例的基于数据源的显示属性确定方法1000的图示。参考图1A-图10,相机A 1010、相机B 1020和相机C 1030中的每个可以是如所描述的任何合适的数据源。相机1010-1030中的每个可以(基于与此相关联的相机姿势)被配置成捕获如所描述的目标空间105的模型中的顶点(顶点列1040中所示的)中的至少一些顶点。在由图10所示的简单非限制性示例中,相机A可以捕获具有对应于如顶点列1040中所示的顶点1、顶点2、顶点3和顶点4中的每个的区域的帧。此类方法可以是基于数据源的,假设加权模块116可以确定与给定的相机帧相关联的顶点,对与由该相机帧捕获的顶点相关联的区域实行图形确定过程,然后移动到在当前帧时间处由不同的相机输出的下一个相机帧。

通过任何合适的图像处理方法,加权模块116可以被配置成确定用于与顶点1-4中的每个顶点相关联的帧上的区域(由相机A 1010所捕获的)的给定显示特性(例如,与顶点相关联的颜色)的显示属性(例如,如在显示属性列1150中所示的具体颜色)。例如,顶点1可以被确定为具有颜色A,顶点2可以被确定为具有颜色C,顶点3可以被确定为具有颜色D,并且顶点4可以被确定为具有颜色E。

图11是显示根据各种实施例的基于顶点的显示属性确定方法1100的图示。参考图1A-图11,基于顶点的显示属性确定方法1100可以是基于数据源的显示属性确定方法1000的可选方法。相机列1160中的每个可以是如所描述的任何合适的数据源。顶点1 1110、顶点2 1120、顶点3 1130、顶点4 1140和顶点5 1150中的每个可以是本文中所描述的任何合适的顶点。

对于顶点1110-1150中的每个,加权模块116可以被配置成确定捕获顶点的相机。例如,加权模块116可以确定相机A和相机C(在相机列1160中)与顶点1 1110相关联。通过任何合适的图像处理方法,加权模块116可以被配置成确定用于与顶点1 1110相关联的帧上的区域(由相机A和相机C所捕获的)的给定的显示特性(例如,与顶点相关联的颜色)的显示属性(例如,如在显示属性列1170中所示的具体颜色)。相机A和相机C两者可以捕获颜色A的顶点1 1110。

图12是根据各种实施例实施的加权表1200的示例。参考图1A-图12,加权表1200可以对应于在基于数据源的显示属性确定方法1000或者基于顶点的显示属性确定方法1100中所示的非限制性示例。加权表1200显示关于颜色的显示特性的简化示例。

对于顶点(例如,顶点1 1210、顶点2 1220、顶点3 1230、顶点4 1240和顶点5 1250)中的每个顶点,可以创建显示属性箱,以在阵列中储存所捕获的对应顶点中的每个顶点的显示属性。如在显示属性(颜色)箱列1260中所示的,顶点1 1210可以仅在颜色A中被捕获。顶点3 1230可以在颜色D和颜色F中被捕获。对于为给定顶点所捕获的每个显示属性,创建权重箱,如在权重箱列1270中所示的。权重箱储存用于所捕获的显示属性中的每个显示属性的加权值。每次分离数据源以给定的显示属性捕获顶点,用于该显示属性的加权值被增加了设定量(例如,在这种情况下,1)。例如,如图10-图11中所示,顶点4可以在颜色A(例如,由相机B 1020和相机C 1030)中被捕获两次,并且在颜色E(例如,由相机A 1010)中被捕获一次。

基于如在权重箱列1270中所示的加权箱中的加权值,可以选择在显示属性列1260中所示的显示属性箱中所发现的显示属性的一个显示属性。在各种实施例中,可以预定阈值(在该具体示例中,显示阈值权重=1),使得当与给定的显示属性相关联的权重超过(或等于)阈值时,例如由工作结果确定模块117选择该权重。例如,对于顶点4 1240,显示属性箱中的颜色A可以与权重2相关联,其超过显示阈值1。因此,颜色A被选择。另一方面,在显示属性箱中没有显示属性超过预定阈值的情况下,则没有显示属性被选择(例如,被示出为“N/A”,如在顶点3 1230和顶点5 1250的情况下)。这可以是当顶点被其它对象所阻挡或顶点在对象内的情况。在一些实施例中,具有未经选择的显示属性的顶点可以以默认显示属性(例如,背景颜色)被显示。在其它实施例中,可以将预定数量的顶点(例如,周围顶点)内的平均显示属性(例如,平均颜色通道)分配给具有未经选择的显示属性的顶点。

图13是显示根据各种实施例的三维模型重构过程1300的示例的过程流程图。参考图1A-图13,三维模型重构过程1300可以是一般化的三维模型重构过程200的特定的实施方案。特别地,框B1310可以对应于框B210,框B1320-B1350可以对应于框B220,并且框B1360可以对应于框B230。

首先,在框B1310处,后端设备110的顶点确定模块115可以以诸如但不限于框B210的方式将目标空间(例如,本文中所描述的任何合适的目标空间)的模型划分为多个顶点。特别地,多个顶点中的每个顶点可以与作为目标空间的一部分的离散体积相关联(例如,被定位在离散体积的中心)。在其它实施例中,该划分可以由除了后端设备110之外的设备执行。在此类情况下,包括所划分的顶点(例如,顶点的位置)的模型可以被导入到后端设备110或远程服务器(以使由后端设备110处理或储存的数据最小化)。可以以所描述的任何合适的方式划分顶点。

接下来,在框B1320处,数据源(例如,本文中所描述的任何合适的数据源)可以在当前帧时间处捕获目标空间,使得每个数据源的所捕获的帧(在当前帧时间处)捕获多个顶点中的至少一些顶点的显示特性。在一些实施例中,数据源可以将所捕获的数据输出到远程服务器储存器/数据库或CDN,以最小化在后端设备110处的瓶颈。在其它实施例中,数据源的输出可以被直接中继到后端设备110。

接下来,在框B1330处,对于数据源中的每个数据源的每个所捕获的帧(例如,在当前帧时间处),后端设备110可以将每个所捕获的顶点投影到每个所捕获的帧的区域上。在其它实施例中,给定投影的过程密集性质,后端设备110可以以关于“SYSTEMS AND METHODS FOR SCALABLE ASYNCHRONOUS COMPUTING FRAMEWORK”(申请序列no.14/537,768)所描述的方式,将投影过程外包给额外的设备,诸如网络核心。该投影可以将目标空间(例如,具有三维坐标)的三维模型中的每个顶点投影到每个所捕获的帧的区域(例如,像素的一小部分、至少一个像素、至少一个宏模块等)上,该区域是二维的。

接下来,在框B1340处,例如,当给定的帧时间时,加权模块116可以确定与每个数据源的每个所捕获的帧的每个区域相关联的显示属性。在其中显示特性是颜色的示例中,后端设备110可以确定与每个所捕获的帧的每个区域相关联的颜色。在其它实施例中,区域的显示属性的确定可以以关于“SYSTEMS AND METHODS FOR SCALABLE ASYNCHRONOUS COMPUTING FRAMEWORK”(申请序列no.14/537,768)所描述的方式被外包给网络核心。

接下来,在框B1350处,基于与每个所捕获的帧中的每个区域相关联的所确定的显示属性(例如,如关于框B1340所描述的),加权模块116可以以所描述的方式确定用于与每个顶点相关联的至少一个显示属性的加权。在典型的实施例中,可以分析所捕获的帧的区域,以确定哪个显示属性与所捕获的帧的区域相关联。所确定的显示属性可以指示与顶点相关联的该所确定的显示属性的增加的权重。

接下来,在框B1360处,基于与该顶点相关联的至少一个显示属性中的每个显示属性的加权,工作结果确定模块117对于每个顶点可以选择至少一个显示属性中的一个显示属性。在典型的实施例中,工作结果确定模块117可以选择具有其加权超过预定阈值的至少一个显示属性中的一个显示属性。

接下来,在框B1370处,基于多个顶点的位置和所选择的显示属性,工作结果确定模块117可以重构目标空间的模型。所选择的显示属性被分配给其对应的顶点,该顶点的位置可以是已知的。

作为对框B1340-B1360的可选实施例,可以确定对于给定的顶点所观测的所有显示属性的标准偏差。当标准偏差低于预定阈值时,可以选取显示属性的平均值(例如,颜色通道的平均值)。另一方面,当所有所观测的显示属性的标准偏差高于预定阈值时,在相当大数量的数据源中,顶点被观测具有不同的颜色。如此,很有可能顶点可以在目标空间300中的体积的内部,而不是顶点与颜色相关联,并且由此被分配作为无效或周围顶点的显示属性的平均值。

图14是显示根据各种实施例的顶点划分过程1400的示例的过程流程图。参考图1A-图14,顶点划分过程1400可以是框B210和框B1310的特定的实施方案。在一些实施例中,可以由后端设备110中的顶点确定模块115执行顶点划分过程1400。在其它实施例中,可以由在后端设备110外部的具有顶点确定模块115的设备(例如,经由合适的网络连接到后端设备110的处理器)执行顶点划分过程1400。

首先,在框B1410处,顶点确定模块115可以接收目标空间的模型的外部边界。模型可以基于扫描仪/相机输出自动的生成、由用户利用用户界面(例如,用户界面114)手动的生成、其组合等。在一些实施例中,可以由具有顶点确定模块115的设备(例如,后端设备110或另一个设备)或生成模型的外部边界的另一个设备来生成外部边界。

接下来,在框B1420处,基于1)所期望的分辨率,2)可用的处理功率和3)网络条件中的至少一个,顶点确定模块115可以确定用于模型的顶点的密度。密集顶点可以当期望较高的分辨率,更多的处理功率是可用的,和/或存在更好的网络条件(例如,网络带宽和拥塞)时被选择,反之亦然。可以经由后端设备110的用户界面114或通过任何其它设备手动设定分辨率。此外,分辨率还可以是处理功率和网络条件的函数(例如,较高的分辨率可以与可用的更多处理功率和/或存在的更好的网络条件相关联)。可用的处理功率可以是指如在“SYSTEMS AND METHODS FOR SCALABLE ASYNCHRONOUS COMPUTING FRAMEWORK”(申请序列no.14/537,768)中所阐述的分布式计算框架或后端设备110(例如,处理器111)的处理能力。网络条件可以是指网络130或在传输本文中所描述的过程中所使用的数据中所涉及的其它网络的带宽/使用率。

接下来,在框B1430处,顶点确定模块115可以基于密度对由模型的外部边界所限定的体积进行采样,并且确定顶点在由模型的外部边界限定的体积中的位置。密度越高,顶点就更靠近在一起,并且与每个顶点相关联的离散体积越小。在一些实施例中,体积可以被分为两个或更多个区域,其中第一区域(例如,在目标空间中发生许多活动的所感兴趣的区域)可以具有第一(较高的)密度,而第二区域(例如,相对平静的区域)可以具有第二(较低的)密度。

本领域中的技术人员应该注意到,当一旦发生初始采样所期望的分辨率、可用的处理功率和网络条件就被变更时,可以重复密度确定框B1420和采样框B1430。在一些实施例中,当这些要素的波动超过阈值时,顶点确定模块115可以重新执行框B1420和框B1430以用于进行调节。

接下来,在框B1440处,顶点确定模块115可以将与所确定的模型的顶点的位置有关的信息储存在存储器112、数据库170或将被访问(例如,用于投影和选择显示特性/属性)的另一个远程储存器/数据库中。

图15是显示根据各种实施例的关注级别的加权过程1500的示例的过程流程图。参考图1A-图15,关注级别的加权过程1500可以是框B220和框B1340/B1350的特定的实施方案。在一些实施例中,可以由后端设备110中的加权模块116执行关注级别的加权过程1500。在其它实施例中,可以由在后端设备110外部的具有加权模块116的设备(例如,经由合适的网络连接到后端设备110的处理器)执行关注级别的加权过程1500。

首先,在框B1510处,两个或更多个级别的数据源可以被提供以捕获目标空间,其中每个级别可以包括至少一个数据源。数据源的级别可以以诸如但不限于关于图8A所描述的方式来提供。接下来,在框B1520处,加权模块116可以将当前级别设定为第一级别。

随后,在框B1530处,基于当前级别的源设备的所捕获的帧,加权模块116可以确定用于与给定的顶点相关联的至少一个显示属性的加权。换句话说,当前级别(其初始可以是第一级别,并且随后是其它级别)的源设备可以输出每个所捕获的帧,并且每个所捕获的帧可以包括对应于给定的顶点的区域。显示特性的显示属性可以从区域中提取并且以所描述的方式被添加到加权箱。关于给定的顶点,可以开发对应于每个捕获的显示属性的加权箱,其中基于当前级别的数据源的所捕获的帧,加权箱可以包括显示属性和加权。

接下来,在框B1540处,加权模块116可以确定由当前级别的数据源捕获的至少一个显示属性中的一个显示属性的加权是否超过预定阈值。当一个显示属性的加权超过预定阈值时,可以建立顶点与该显示属性相关联的足够的置信度。由此,在框B1550(B1540:是)处,可以对于给定的顶点选择具有超过预定阈值的加权的显示属性。所选择的显示属性可以被储存在所选择的显示属性箱1280中。随后在框B1560处,在当前帧时间处加权模块116可以从考虑中抽出给定的顶点。换句话说,在相同的帧时间处,从随后的级别(涉及额外的数据源)处的处理中抽出给定的顶点。

另一方面,然而,用于由当前级别的数据源所观测的至少一个显示属性的加权中没有加权超过预定阈值,在框B1570(B1540:否)处,加权模块116可以将随后级别设定为当前级别,并且过程返回到框B1530。在框B1570处,当没有更多的随后级别的数据源时,所选择的显示属性可以被设定为空,或作为周围顶点的显示属性的平均值。

本领域中的技术人员将认识到,当过程发展到随后的级别时,可以变更加权阈值(在框B1570处)。例如,在第一级别中有10个数据源的情况下,阈值可以被设定为5(以确保仅一个显示属性可以潜在地超过阈值)。当在第二级别中有额外的10个数据源时,用于第二级别的阈值可以被设定为10。示例假设每次捕获显示属性时加权增加1。

除了关注级别的加权过程1500(其寻求相对于随后级别从考虑中抽出顶点)之外,加权模块116可以采用探试法,以通过丢弃已知几乎不需要或不需要处理的顶点而进一步减少对于每个帧时间所处理的(帧上对应的区域)顶点的数量。

例如,基于运动的掩码可以被用于丢弃不在目标空间中的所感兴趣的体积中的顶点。所感兴趣的体积可以是指感兴趣的特定处理的特定的区域(例如,其中播放器正在播放的场地,而不是看台)。在一些实施例中,所感兴趣的体积可以是静态对象位于其中的特定的体积。例如,加权模块116可以访问显示属性箱1260、权重箱1270和对于先前的帧时间用于给定的顶点的所选择的显示属性箱1280。用于与当前帧的给定顶点相关联的显示属性的加权可以由对于先前帧时间的所选择的显示属性(如储存在所选择的显示属性箱1280中的)进一步修改。例如,对于每个显示属性的权重可以由常量乘以先前对于顶点(例如,对于先前帧时间)已经选择该显示属性的次数来进行修改。同样地,本文中所描述的过程可以快速地通过常常是静态的且对于该帧时间将具有与先前的帧时间的显示属性相同的显示属性的顶点。

图16是显示根据各种实施例的加权过程1600的示例的过程流程图。参考图1A-图16,加权过程1600可以是框B220、框B1350和框B1530的特定的实施方案。在一些实施例中,可以由在后端设备110中的加权模块116执行加权过程1600。在其它实施例中,可以由在后端设备110外部的具有加权模块116的设备(例如,经由合适的网络连接到后端设备110的处理器)执行加权过程1600。

首先,在框B1610处,加权模块116可以确定与所捕获的帧的给定的区域相关联的第一显示属性,给定的区域对应于目标空间的模型中限定的顶点。在非限制性示例(其中显示特性是颜色)中,加权模块116可以确定编码“b65e6f”的颜色可以与第一数据源的所捕获的帧的第一区域相关联。然后,加权模块116可以为与第一区域相关联的顶点检索存储箱(例如,显示属性箱1260、权重箱1270等)。

接下来,在框B1620处,加权模块116可以确定第一显示属性(例如,颜色b65e6f)是否具有与第一显示属性相关联的显示属性箱1260。在框B1630(B1620:是)处,鉴于已经创建了显示属性箱1260,加权模块116可以将第一显示属性的加权增加预定量(例如,1)。加权模块116可以将所更新的加权储存到显示属性箱1260中。

另一方面,在框B1640(B1620:否)处,加权模块116可以是对应于第一显示属性的新的显示属性箱1260。然后,在框B1650处,加权模块116可以通过例如将第一显示属性的加权增加预定量(例如,1),并且将所更新的加权储存到最近创建的显示属性箱1260中来初始化第一显示属性的加权。

上面参考图1A-图16所描述的各种实施例包括各种过程或任务的性能。在各种实施例中,可以通过执行从计算机可读储存介质读取的计算机代码来实行此类过程或任务。例如,在各种实施例中,一个或多个计算机可读储存媒介储存一个或多个计算机程序,当由处理器执行该一个或多个计算机程序时使处理器实行如关于在上面的实施例中的处理器所描述的过程或任务。另外,在各种实施例中,一个或多个计算机可读储存媒介储存一个或多个计算机程序,当由设备执行该一个或多个计算机程序时使计算机实行如关于在上面的实施例中所提到的设备所描述的过程或任务。在各种实施例中,一个或多个计算机储存媒介储存一个或多个计算机程序,当由数据库执行该一个或多个程序时使数据库实行如关于在上面的实施例中的数据库所描述的过程或任务。

因此,实施例包括程序产品,其包括用于携带或具有储存在其上的计算机或机器可执行的指令或数据结构的计算机可读或机器可读介质。此类计算机可读储存介质可以是可以例如由通用或专用计算机或具有处理器的其它机器访问的任何可用的介质。以示例的方式,此类计算机可读储存介质可以包括半导体存储器、闪速存储器、硬盘、光盘诸如压缩盘(CD)或数字通用光盘(DVD)、磁存储器、随机存取存储器(RAM)、只读存储器(ROM)等。这些类型的存储器的组合还可以被包括在计算机可读储存介质的范围内。计算机可执行的程序代码可以包括例如指令和数据,其使计算机或处理机器实行某些功能、计算、动作等。

本文中所公开的实施例在所有方面都被认为是说明性的而非局限性的。本公开不以任何方式限于上面所描述的实施例。可以对实施例做出各种修改和改变,而不偏离本公开的精神和范围。在权利要求书的等效意义和范围内的各种修改和改变旨在本公开的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1