通过识别全景图像中的地面上的标记估计相机之间的姿势图和变换矩阵的方法与流程

文档序号:32756202发布日期:2022-12-31 03:43阅读:121来源:国知局
通过识别全景图像中的地面上的标记估计相机之间的姿势图和变换矩阵的方法与流程
通过识别全景图像中的地面上的标记估计相机之间的姿势图和变换矩阵的方法
1.相关申请的交叉引用
2.本技术要求美国专利商标局的美国临时专利申请号63/185,945(2021年5月7日提交)和美国专利申请号17/497,025(2021年10月8日提交)的优先权,其全部内容通过引用并入本文。
技术领域
3.本公开一般涉及数据处理领域,并且更具体地涉及图像处理。


背景技术:

4.室内建筑的3d重建是一个活跃的研究课题,已被用于房地产、建筑施工、建筑修复、娱乐等各个行业。3d重建利用计算机视觉和机器学习技术,通过获取单个rgb图像或一组来自不同视角的图像作为输入,以生成场景中建筑的3d几何表示。深度传感器的发展使得直接从场景中测量深度信息变得更加方便和准确,目前广泛使用的深度相机有激光雷达、结构光等。
5.3d几何表示通常是所谓的点云形式,它包含空间中的一组3d点,每个点包含3d位置信息和附加属性,如颜色和反射率。另一种流行的3d格式是纹理网格。除了单个3d点外,它还包含相邻点之间的连通性信息,形成一组小面(如三角形),并且纹理信息也可以附加到每个小面。为了捕获大场景,从不同的视点获取多张图像。在这种情况下,姿势图很重要。姿势图定义了不同视点之间的连通性和可见性。


技术实现要素:

6.实施方式涉及一种用于构造相机姿势图的方法、系统和计算机可读介质。根据一个方面,提供了一种用于姿势图构造的方法。该方法可以包括接收与第一相机对应的一个或多个视图的图像数据。在接收到的图像数据中识别出与第二相机对应的一个或多个标记。基于识别出的一个或多个标记,构造与第一相机对应的一个或多个视图对应的姿势图,该姿势图至少包括边。
7.根据另一方面,提供了一种用于姿势图构造的计算机系统。该计算机系统可以包括一个或多个处理器、一个或多个计算机可读存储器、一个或多个计算机可读有形存储设备、以及存储在一个或多个存储设备中的至少一个上的程序指令,由一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个执行该程序指令,由此该计算机系统能够执行一种方法。该方法可以包括接收对应于第一相机的一个或多个视图的图像数据。在所接收的图像数据中识别对应于第二相机的一个或多个标记。基于所识别的一个或多个标记构造对应于第一相机的一个或多个视图的姿势图,该姿势图至少包括边。
8.根据又一个方面,提供了一种用于姿势图构造的计算机可读介质。该计算机可读介质可以包括一个或多个计算机可读存储设备和存储在一个或多个有形存储设备中的至
少一个上的程序指令,该程序指令可由处理器执行。该程序指令可由处理器执行,以执行一种方法,该方法可以相应地包括接收对应于第一相机的一个或多个视图的图像数据。在所接收的图像数据中识别对应于第二相机的一个或多个标记。基于所识别的一个或多个标记构造对应于第一相机的一个或多个视图的姿势图,该姿势图至少包括边。
附图说明
9.从下面结合附图阅读的说明性实施方式的详细描述中,这些和其他目的、特征和优点将变得显而易见。附图的各种特征不是按比例的,因为图示是为了便于本领域技术人员结合详细描述理解的清晰性。在附图中:
10.图1示出了根据至少一个实施方式的联网计算机环境;
11.图2是根据至少一个实施方式的用于姿势图重建的一组标记;
12.图3是示出根据至少一个实施方式的由用于姿势图重建的程序执行的步骤的操作流程图;
13.图4是根据至少一个实施方式的图1中描绘的服务器和计算机的内部和外部组件的框图;
14.图5是根据至少一个实施方式的包括图1中描绘的计算机系统的说明性云计算环境的框图;以及
15.图6是根据至少一个实施方式的图5的说明性云计算环境的功能层的框图。
具体实施方式
16.本文公开了所要求保护的结构和方法的详细实施方式;然而,可以理解,所公开的实施方式仅仅是对可以以各种形式实施的所要求保护的结构和方法的说明。然而,这些结构和方法可以以许多不同的形式来体现,并且不应被解释为限于本文所阐述的示例性实施方式。相反,提供这些示例性实施方式是为了使本公开全面和完整,并且将范围完全传达给本领域技术人员。在描述中,可能会省略众所周知的特征和技术的细节,以避免不必要地模糊所呈现的实施方式。
17.实施方式一般涉及数据处理领域,并且更具体地涉及图像处理。以下描述的示例性实施方式提供了一种用于姿势图重建等的系统、方法和计算机程序。因此,在一些实施方式中,有能力通过识别全景图像中地面上的标记而估计出的相机之间的姿势图和变换矩阵,允许对用于vr/ar应用(例如虚拟旅游、数字博物馆和虚拟房屋销售)的室内建筑物的3d重建,来提升计算机领域。
18.如前所述,3d几何表示通常是所谓的点云形式,它包含空间中的一组3d点,每个点包含3d位置信息和附加属性,如颜色和反射率。另一种流行的3d格式是纹理网格。除了独立的3d点外,它还包含相邻点之间的连通性信息,形成一组小面(如三角形),并且纹理信息也可以附加到每个小面。为了捕获大场景,从不同的视点获取多幅图像。在这种情况下,姿势图很重要。姿势图定义了不同视点之间的连通性和可见性。
19.解决这一问题的现有的方法是试图从图像对中寻找对应关系和估计相似性,并应用多视角几何技术估计变换矩阵。然而,这种算法在许多场景下可能会失败。例如,如果场景没有特征或有许多重复图案,则很难在图像中找到正确的图像对应关系。因此,从多视角
全景图像估计姿势图和变换矩阵可能是有利的。
20.本文参考根据各种实施方式的方法、装置(系统)和计算机可读介质的流程图图示和/或框图来描述各方面。应当理解,可以通过计算机可读程序指令来实施流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合。
21.以下描述的示例性实施方式提供了一种系统、方法和计算机程序,该系统、方法和计算机程序根据从多个视点捕获的图像来估计姿势图和变换矩阵。现在参考图1,联网计算机环境的功能框图示出了姿势图重建系统100(以下称为“系统”),该系统是基于通过识别全景图像中地面上的标记而估计出的相机之间的姿势图和变换矩阵,用于vr/ar应用的室内建筑物的3d重建。应当理解,图1仅提供了一个实施方式的图示,且并不暗示关于其中可以实施不同实施方式的环境的任何限制。可以基于设计和实施方式需求对所描述的环境进行许多修改。
22.系统100可以包括计算机102和服务器计算机114。计算机102可以经由通信网络110(以下称为“网络”)与服务器计算机114通信。计算机102可以包括处理器104和软件程序108,软件程序存储在数据存储设备106上,并且能够与用户接口并与服务器计算机114通信。如下文将参考图4所讨论的,计算机102可以分别包括内部组件800a和外部组件900a,并且服务器计算机114可分别包括内部组件800b和外部组件900b。例如,计算机102可以是移动设备、电话、个人数字助理、上网本、膝上型计算机、平板计算机、台式计算机或能够运行程序、访问网络和访问数据库的任何类型的计算设备。
23.服务器计算机114还可以在云计算服务模型中操作,例如软件即服务(saas)、平台即服务(paas)或基础设施即服务(laas),如下面关于图5和6所讨论的。服务器计算机114还可以位于云计算部署模型中,例如私有云、社区云、公共云或混合云。
24.服务器计算机114,其可用于基于通过识别全景图像中地面上的标记而估计出的相机之间的姿势图和变换矩阵,来对vr/ar应用的室内建筑物进行3d重建,以能够运行可与数据库112交互的姿势图重建程序116(以下称为“程序”)。下面参考图3解释姿势图重建程序方法的更多细节。在一个实施方式中,计算机102可以作为包括用户界面的输入设备进行操作,而程序116可以主要在服务器计算机114上运行。在替代实施方式中,程序116可以主要在一个或多个计算机102上运行,而服务器计算机114可以用于处理和存储程序116使用的数据。应当注意,程序116可以是独立程序,或者可以集成到更大的姿势图重建程序中。
25.然而,应当注意,在某些情况下,可以在计算机102和服务器计算机114之间以任何比例共享用于程序116的处理。在另一实施方式中,程序116可以在一个以上的计算机、服务器计算机或计算机和服务器计算机的某种组合上操作,例如,多个计算机102通过网络110与单个服务器计算机114通信。在另一实施方式中,例如,程序116可在多个服务器计算机114上操作通过与多个客户端计算机进行跨网络110通信。可替代地,该程序可以在网络服务器上操作,通过网络与服务器和多个客户端计算机通信。
26.网络110可以包括有线连接、无线连接、光纤连接或其一些组合。通常,网络110可以是将支持计算机102和服务器计算机114之间的通信的连接和协议的任何组合。例如,网络110可以包括各种类型的网络,例如,局域网(lan),如因特网的广域网(wan)、如公共交换电话网络(pstn)的电信网络、无线网络、公共交换网络、卫星网络、蜂窝网络(例如第五代(5g)网络、长期演进(lte)网络、第三代(3g)网络、码分多址(cdma)网络等)、公共陆地移动
网络(plmn)、城域网(man)、专用网络、自组织网络、内联网、基于光纤的网络等,和/或这些或其他类型网络的组合。
27.图1中所示的设备和网络的数量和布置被提供为示例。实际上,与图1中所示的设备和/或网络相比,可以存在额外的设备和(或)网络、更少的设备和/或网络、不同的设备和网络、或不同布置的设备和

或网络。此外,图1中所示的两个或多个设备可以在单个设备内实施,或者图1中所示的单个设备可以被实施为多个分布式设备。附加地或可替代地,系统100的一组设备(例如,一个或多个设备)可以执行一个或多个功能,其被描述为由系统100的另一组设备执行。
28.现在参考图2,描绘了一组标记200。在一个或多个实施方式中,姿势图重建系统100(图1)可以容易地在图像中找到这些标记,并且可以通过唯一id来区分它们。每个标记都可以与一个id相关联,通过该id,计算机可以自动识别id号,并将其与姿势图中相应的视点连接起来。
29.例如,在视点“03”中,姿势图重建系统100(图1)可以通过地板上的标记200自动检测两个可见的相邻视点“02”和“04”。然后,姿势图重建系统100可以构造具有三个视点的姿势图,并且“03”具有分别与“02”和“04”连接的两个边。通过检测场景的所有图像,姿势图重建系统100可以构造姿势图。可以理解,如果计算机不能区分具有不同视点id的标记,则可以通过用户输入来收集(或校正)该信息。在这种情况下,用户可能需要告诉计算机哪个标记对应于哪个视点。
30.连接视图之间的变换矩阵可以是4
×
4变换矩阵t,该变换矩阵包含3
×
3旋转矩阵r和3
×
1平移向量t,该旋转矩阵和平移向量可以与每对连通视图相关联。例如,变换矩阵t
i,j
(由r
i,j
和t
i,j
组成)描述了相机如何从视点i移动到另一个视点j。将3d世界坐标中视点i处的相机位置表示为pi∈r3×1,然后pj=r
i,j
·
pi+t
i,j

31.对于视点i和j,如果它们可以从捕获的图像中看到彼此,并且如果每个视点的相机高度是已知的,那么可以如下计算视点i到视点j的转换矩阵,即,m
i,j
(r
i,j and t
i,j
)。
32.假设视点i和j相机高度分别为ci和cj。在不丧失一般性的前提下,假定来自不同视点的全景图像具有相同的分辨率w
×
h,其中w=2h。假设在视点i的全景图像中的位置(uj,vj)处检测到视点j的标记,并且在视点j的全景图像中的位置(ui,vi)处检测到视点i的标记。
33.在不丧失一般性的前提下,假定相机中心是笛卡尔坐标系中世界坐标的原点,即相机的坐标为(0,0,0)。假设相机朝向正x轴,负z轴朝向地板平面,地板/天花板平面平行于x-y平面。地平面的水平消失线位于全景图像的中间高度。
34.因此,可以在视点i的3d坐标系中计算视点j的相对位置,如下:
[0035][0036][0037]zji
=c
j-ciꢀꢀꢀꢀꢀ
(3)
[0038]
从j到i的距离是
[0039]
类似地,可以在视点j的3d坐标系中计算视点i的相对位置,如下:
[0040][0041][0042]zij
=c
i-cjꢀꢀꢀꢀꢀꢀ
(7)
[0043]
从i到j的距离是
[0044]
如果大于阈值,则表示有错误。计算机可能会丢弃这对错误的图像,或者提示错误消息。
[0045]
为了减少系统误差,在一个实施方式中,两个视点之间的距离由d
ij
和d
ji
的平均值估计,即
[0046]
为了将坐标系从视点i转换到视点j,可以由平移向量t

i,j
平移坐标系。在一个实施方式中,通过t

i,j
=(-x
ji
,-y
ji
,-z
ji
)
·davg
/d
ji
计算平移。在另一实施方式中,通过t

i,j
=(-x
ji
,-y
ji
,-z
ji
)计算平移,而不进行d
avg
调整。坐标系可能会旋转一定的偏航角,可以如下计算,
[0047]
θ
yaw
=arctan2(-y
ji
,-x
ji
)-arctan2(y
ij
,x
ij
)
ꢀꢀ
(10)
[0048]
其中,arctan2()是如下定义的函数,
[0049][0050]
相应的旋转矩阵如下,
[0051][0052]
因此,从视点i到视点j的整体变换等式可以写成如下,
[0053]
pj=r

i,j
·
(pi+t

i,j
)=r

i,j
·
pi+r

i,j
·
t

i,j
=r
i,j
·
pi+t
i,j
ꢀꢀ
(13)
[0054]
其中,r
i,j
=r

i,j
和t
i,j
=r

i,j
·
t

i,j

[0055]
通过识别地面上每个相机位置下的标记,可以构造相机的姿势图。例如,如果可以在相机a捕获的图像中看到相机b的标记,则可以在姿势图中的a和b之间构造边(假设姿势图是无向的)。如果可以在相机b捕获的图像中看到相机a的标记,则可以在姿势图中的a和b之间构造边(假设姿势图是无向的)。如果可以在相机a捕获的图像中看到相机b的标记,同时可以在相机b捕获的图像中看到相机a的标记,则可以在姿势图中的a和b之间构造边(假设姿势图是无向的)。通过识别地面上每个相机位置下的标记,该方法可以估计相机位置之间的可见性。如果可以在相机a捕获的图像中看到相机b的标记,则可以估计相机b可以看到相机a,或者可以估计相机a和相机b可以彼此看到。如果可以在相机b捕获的图像中看到相机a的标记,则可以估计相机a可以看到相机b,或者可以估计相机a和相机b可以彼此看到。如果可以在相机a捕获的图像中看到相机b的标记,同时可以在相机b捕获的图像中看到相机a的标记,则可以估计相机a和相机b可以彼此看到。通过识别地面上每个相机位置下的标记,该方法可以估计相机之间的变换矩阵。相机高度(到地板的竖直距离)可以是来自用户
的输入,由算法估计,或由默认值设置。如果可以在相机a捕获的图像中看到相机b的标记,同时可以在相机b捕获的图像中看到相机a的标记,则可以估计a和b之间的变换矩阵。
[0056]
现在参考图3,示出了基于通过识别全景图像中地面上的标记来估计相机之间的姿势图和变换矩阵,用于vr/ar应用的室内建筑物的3d重建的程序执行的方法300的步骤的操作流程图。
[0057]
在302,方法300可以包括接收与一个或多个视图对应的图像数据。
[0058]
在304,方法300可以包括在接收到的图像数据内识别出与第二相机对应的一个或多个标记。
[0059]
在306,方法300可以包括基于识别出的一个或多个标记,构造与第一相机的一个或多个视图对应的姿势图。
[0060]
可以理解,图3仅提供了一个实施方式的图示,并且不暗示关于如何实施不同实施方式的任何限制。可以基于设计和实施方式需求对所描述的环境进行许多修改。
[0061]
图4是根据说明性实施方式的图1中描绘的计算机的内部和外部组件的框图400。应当理解,图4仅提供了一个实施方式的图示,并且不暗示关于其中可以实施不同实施方式的环境的任何限制。可以基于设计和实施方式需求对所描述的环境进行许多修改。
[0062]
计算机102(图1)和服务器计算机114(图1)可以包括图5中所示的内部组件800a、b和外部组件900a、b的相应集合。每组内部组件800包括一个或多个处理器820、一个或多个总线826上的一个或多个计算机可读ram 822和一个或多个计算机可读rom 824、一个或多个操作系统828、以及一个或多个计算机可读有形存储设备830。
[0063]
处理器820以硬件、固件或硬件和软件的组合来实施。处理器820是中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)、微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)或另一类型的处理组件。在一些实施方式中,处理器820包括能够被编程以执行功能的一个或多个处理器。总线826包括允许内部组件800a、b之间通信的组件。
[0064]
服务器计算机114(图1)上的一个或多个操作系统828、软件程序108(图1)和姿势图重建程序116(图1)存储在相应的计算机可读有形存储设备830中的一个或多个上,以便由相应的处理器820中的一个或多个经由相应的ram 822中的一个或多个(其通常包括高速缓冲存储器)执行。在图4所示的实施方式中,每个计算机可读有形存储设备830是内部硬盘驱动器的磁盘存储设备。可替代地,每个计算机可读有形存储设备830是半导体存储设备,例如rom 824、eprom、闪存、光盘、磁光盘、固态盘、光盘(cd)、数字通用盘(dvd)、软盘、盒式磁带、磁带和/或可存储计算机程序和数字信息的另一类型的非暂时性计算机可读有形存储设备。
[0065]
每组内部组件800a、b还包括从一个或多个便携式计算机可读有形存储设备936(例如cd-rom、dvd、记忆棒、磁带、磁盘、光盘或半导体存储设备)读取和写入的r/w驱动器或接口832。软件程序,例如软件程序108(图1)和姿势图重建程序116(图1)可以存储在相应的便携式计算机可读有形存储设备936中的一个或多个上,经由相应的r/w驱动器或接口832读取并加载到相应的硬盘驱动器830中。
[0066]
每组内部组件800a、b还包括网络适配器或接口836,例如tcp/ip适配器卡;无线wi-fi接口卡;或3g、4g、5g无线接口卡或其他有线或无线通信链路。可以经由网络(例如,因
特网、局域网或其他广域网)和相应的网络适配器或接口836将服务器计算机114(图1)上的软件程序108(图1)和姿势图重建程序116(图1)从外部计算机下载到计算机102(图1)和服务器计算机114。从网络适配器或接口836,将服务器计算机114上的软件程序108和姿势图重建程序116加载到相应的硬盘驱动器830中。该网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边服务器。
[0067]
外部组件组900a、b中的每一个可以包括计算机显示器920、键盘930和计算机鼠标934。外部组件900a、b还可以包括触摸屏、虚拟键盘、触摸板、定点设备和其他人机接口设备。内部组件组800a、b中的每一个还包括设备驱动器840,以与计算机显示器920、键盘930和计算机鼠标934接口。设备驱动器840、r/w驱动或接口832和网络适配器或接口836包括硬件和软件(存储在存储设备830和/或rom 824中)。
[0068]
预先理解,尽管本公开包括关于云计算的详细描述,但本文所述教导的实施方式不限于云计算环境。相反,一些实施方式能够结合现在已知或以后开发的任何其他类型的计算环境来实施。
[0069]
云计算是一种服务交付模型,用于实现对共享的可配置计算资源池(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)的便捷、按需的网络访问,这些资源可以以最小的管理工作或与服务提供商的交互快速提供和释放。这个云模型可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0070]
特征如下:
[0071]
按需自助服务:云消费者可以根据需要自动单方面提供计算能力,如服务器时间和网络存储,而不需要与服务提供商进行人工交互。
[0072]
广泛的网络访问:可以通过网络获得功能,并通过标准机制进行访问,这些可以促进异构的瘦或胖客户端平台(例如移动电话、笔记本电脑和pda)的使用。
[0073]
资源池:提供商的计算资源被池化,以使用多租户模型为多个消费者服务,根据需求动态分配和重新分配不同的物理和虚拟资源。存在位置独立感,因为消费者通常无法控制或了解所提供资源的确切位置,但可能能够在更高的抽象级别(例如,国家、州或数据中心)指定位置。
[0074]
快速弹性:可以快速和弹性地提供功能,在某些情况下是自动的,以快速向外扩展,并快速释放以快速向内扩展。对于消费者来说,可用于供应的功能通常看起来是无限的,并且可以在任何时间以任何数量购买。
[0075]
测量服务:云系统通过利用某种抽象级别上适合于服务类型的计量能力(例如,存储、处理、带宽和活动用户帐户),自动控制和优化资源使用。可以监督、控制和报告资源使用情况,为所使用服务的提供者和消费者提供透明度。
[0076]
服务模式如下:
[0077]
软件即服务(saas):提供给消费者的功能是使用在云基础设施上运行的供应商的应用程序。通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口,可以从各种客户端设备访问这些应用程序。消费者不管理或控制底层云基础设施,包括网络、服务器、操作系统、存储,甚至单个应用程序功能,可能的例外是有限的特定用户的应用程序配置设置。
[0078]
平台即服务(paas):提供给消费者的功能是将消费者创建或获取的应用程序部署
到云基础设施上,这些应用程序使用提供商支持的编程语言和工具创建。消费者不管理或控制底层云基础设施,包括网络、服务器、操作系统或存储,但控制已部署的应用程序和可能的应用程序托管环境配置。
[0079]
基础设施即服务(laas):提供给消费者的能力是提供处理、存储、网络和其他基本计算资源,消费者可以在这些资源中部署和运行任意软件,这些软件可以包括操作系统和应用程序。消费者不管理或控制底层云基础设施,但控制操作系统、存储、部署的应用程序,并可能有限地控制选定的网络组件(例如,主机防火墙)。
[0080]
部署模型如下:
[0081]
私有云:云基础设施仅为组织运行。它可能由组织或第三方管理,并且可能存在于内部或外部。
[0082]
社区云:云基础设施由多个组织共享,并支持具有共享关注点(例如,任务、安全需求、策略和遵从性考虑)的特定社区。它可能由组织或第三方管理,并且可能存在于内部或外部。
[0083]
公有云:云基础设施对公众或大型行业集团可用,并且被拥有其的组织销售云服务。
[0084]
混合云:云基础设施是由两个或多个云(私有、社区或公共)组成的,这些云仍然保留独立的实体,但通过标准化或专有技术绑定在一起,实现数据和应用程序的可移植性(例如,用于云间负载平衡的云突发)。
[0085]
云计算环境是面向服务的,关注无状态、低耦合、模块化和语义互操作性。云计算的核心是由互连节点网络组成的基础设施。
[0086]
参考图5,描绘了说明性云计算环境500。如图所示,云计算环境500包括一个或多个云计算节点10,云消费者使用的本地计算设备,例如,个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n可以与其通信。云计算节点10可以彼此通信。可以将在一个或多个网络中的它们进行物理地或虚拟地分组(未示出),例如如上所述的私有、社区、公共或混合云,或其组合。这允许云计算环境500提供基础设施、平台和/或软件作为云消费者不需要维护本地计算设备上的资源的服务。应当理解,图5中所示的计算设备54a-n的类型仅用于说明,并且云计算节点10和云计算环境500可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
[0087]
参考图6,示出了由云计算环境500(图5)提供的一组功能抽象层600。应当预先理解,图6中所示的组件、层和功能仅旨在说明,并且实施方式不限于此。如图所示,提供了以下层和相应的功能:
[0088]
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和网络组件66。在一些实施方式中,软件组件包括网络应用服务器软件67和数据库软件68。
[0089]
虚拟化层70提供抽象层,可以从该抽象层提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;包括虚拟私有网络的虚拟网络73;虚拟应用程序和操作系统74;以及虚拟客户端75。
[0090]
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计
算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82提供在云计算环境中使用资源时的成本跟进,以及对这些资源的消耗进行计费或开票。在一个示例中,这些资源可以包括应用软件许可证。安全为云消费者和任务提供身份验证,以及对数据和其他资源的保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(sla)规划和实现85提供对云计算资源的预安排和采购,以使其与基于sla预期的未来需求相适配。
[0091]
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:映射和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;事务处理95;以及姿势图重建96。姿势图重建96可以通过识别全景图像中地面上的标记来估计相机之间的姿势图和变换矩阵,以用于vr/ar应用的室内建筑物的3d重建。
[0092]
一些实施方式可以涉及在任何可能的技术细节集成级别的系统、方法和/或计算机可读介质。计算机可读介质可以包括一个计算机可读非暂时性存储介质(或多个介质),在其上具有用于使处理器执行操作的计算机可读程序指令。
[0093]
所述计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以但不限于是,例如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述设备任何适当组合。计算机可读存储介质的更具体示例的非穷举列表包括以下内容:便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能磁盘(dvd)、记忆棒、软盘、机械编码设备(例如打孔卡或凹槽中的凸起结构,上面存有指令),以及上述设备任何适当组合。如本文所使用的,计算机可读存储介质不应被解释为瞬时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过电线传输的电信号。
[0094]
本文描述的计算机可读程序指令可经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到各个计算/处理设备或下载到外部计算机或外部存储设备。该网络可包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,转发计算机可读程序指令以存储在相应的计算/处理设备内的计算机可读存储介质中。
[0095]
用于执行本发明的操作的计算机可读程序代码/指令可以是汇编程序指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c++等,以及面向过程的编程语言,例如c语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以全部在用户计算机上、部分在用户计算机上、作为独立软件包执行、部分在用户计算机上部分在远程计算机上、完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者可以与外部计算机建立连接(例如,通过使用互联网服务提供商的互联网)。在一些实施方式中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)、
可编程逻辑阵列(pla))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令个性化电子电路来执行各方面或操作。
[0096]
这些计算机可读程序指令可提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器,来产生机器,以使经由计算机的处理器或其他可编程数据处理设备的处理器执行的指令来创建方法,从而实施流程图和/或框图中指定的功能/动作。该计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指导计算机、可编程数据处理装置和/或其他设备以特定方式工作,这样其中存有指令的计算机可读存储介质包括制造物品,该制造物品包括实施流程图和/或框图中指定的功能/动作方面的指令。
[0097]
也可以将所述计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,来产生计算机实施的流程,以使在计算机、其他可编程装置或其他设备上执行的指令实施流程图和/或框图中指定的功能/动作。
[0098]
图中的流程图和框图示出了根据各个实施方式的系统、方法和计算机可读介质的可能实施的架构、功能和操作。就这点而言,流程图或框图中的每个框可以表示指令的模块、片段或一部分,包括用于实施指定的逻辑功能的一个或多个可执行指令。该方法、计算机系统和计算机可读介质可以包括附加框、较少框、不同框或与图中所示的框不同排列的框。在一些替代实施方式中,框中示出的功能可以不按图中示出的顺序发生。例如,实际上,根据所涉及的功能,可以同时或基本上同时执行连续示出的两个框,或者有时可以以相反的顺序执行这些框。还将注意到,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实施。
[0099]
显然,本文描述的系统和/或方法可以以硬件、固件或硬件和软件的组合的不同形式来实施。用于实施这些系统和/或方法的实际专用控制硬件或软件代码并不限制这些实施方式。因此,本文描述了系统和/或方法的操作和行为,而不参考特定的软件代码-应当理解,软件和硬件可以被设计为基于本文的描述来实施系统和/或方法。
[0100]
除非明确描述为关键或必要的,否则本文所使用的任何元素、行为或指令都不应被解释为关键或必要的。此外,如本文所使用的,冠词“一”和“一个”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。此外,如本文所使用的,术语“集”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关和不相关项目的组合等),并且可以与“一个或多个”互换使用。如果打算仅一个项目,则使用术语“一个”或类似的语言。此外,如本文所使用的,术语“有”、“具有”、“具有”等旨在是开放式术语。此外,除非另有明确说明,“基于”一语旨在表示“至少部分基于”。
[0101]
已经出于说明的目的呈现了对各个方面和实施方式的描述,但并不旨在穷尽或限于所公开的实施方式。即使在权利要求中列举了和/或在说明书中公开了特征的组合,但这些组合并不旨在限制可能实施方式的公开。事实上,这些特征中的许多可以以权利要求书中未具体叙述和/或说明书中未公开的方式组合。尽管下面列出的每个从属权利要求可以仅直接依赖于一个权利要求,但可能实现的公开包括每个从属权利要求与权利要求集中的每一其他权利要求组合。在不脱离所描述的实施方式的范围的情况下,许多修改和变化对
于本领域普通技术人员将是显而易见的。选择本文使用的术语是为了最好地解释实施方式的原理、对市场上发现的技术的实际应用或技术改进,或者使本领域的其他普通技术人员能够理解本文公开的实施方式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1