用于构建三维几何图形的方法和装置与流程


用于构建三维几何图形的方法和装置
1.交叉引用
2.本技术要求2021年10月15日提交,标题为“用于构建三维几何图形的方法和装置”的美国专利申请第17/502,973号的优先权,该申请要求2021年5月7日提交,标题为“用于室内场景的从带有标记角的全景图像构建三维几何图形的方法”的美国临时申请第63/185,946号的优先权。这些在先申请的披露通过引用全部并入本文中。
技术领域
3.本公开描述了通常的与三维空间的重建有关的实施例,包括用于各种虚拟现实和/或增强现实应用的实施例。


背景技术:



4.此处的背景描述是为了总体呈现本公开的上下文。目前命名的发明人的工作,只要在本背景技术部分中描述的工作范围内,以及这些描述在提交时可能不属于现有技术的方面,既不明示也不暗示地承认为针对本公开的现有技术。
5.室内建筑的三维(3d)重建是一个活跃的研究课题,其已应用于包括房地产、建筑构建、建筑修复、娱乐等在内的各个行业。三维重建可以利用诸如计算机视觉和机器学习的技术,通过将来自不同视图的单个图像(例如,rgb图像)或一组图像作为输入来生成场景中建筑物的三维几何表示。深度传感器的进步使得直接从现场测量深度信息的方法变得更加方便和准确。例如,一些广泛使用的包括激光雷达、结构光等的深度相机。


技术实现要素:



6.本公开的各方面提供了用于从房间的全景图像生成房间的三维(3d)几何图形的装置。该装置包括基于用户输入确定房间的全景图像中房间的墙角点的二维(2d)位置的处理电路。每个墙角点位于房间的地板平面或天花板平面中的一个。处理电路基于墙角点的二维位置、全景图像的大小以及房间的地板平面与被配置为捕获房间的全景图像的设备的捕获位置之间的距离计算墙角点的三维位置。处理电路基于墙角点的顺序确定房间的布局。处理电路基于房间的布局和墙角点的三维位置生成房间的三维几何图形。
7.在一个实施例中,用户输入包括用户选择的房间的墙角点和墙角点的顺序。
8.在一个实施例中,墙角点中的至少一个是第一类型的墙角点。第一类型的墙角点指示三维几何图形的墙壁平面。
9.在一个实施例中,墙角点中的至少一个是第二类型的墙角点。第二类型的墙角点指示三维几何图形的开口区域平面。
10.在一个实施例中,处理电路基于两个相邻墙角点中的预定的一个墙角点的类型来生成三维几何的平面。
11.在一个实施例中,处理电路针对三维几何图形的平面中的每个三维位置,基于与相应三维位置相对应的房间的全景图像中的二维位置处的颜信息,确定相应三维位置的
颜信息。
12.在一个实施例中,三维几何图形的每个墙壁平面平行或正交于三维几何图形的至少一个其他墙壁平面。处理电路生成协助用户选择墙角点之一的指引线。
13.在一个实施例中,三维几何图形的每个墙壁平面平行或正交于三维几何图形的至少一个其他墙壁平面。处理电路调整由用户选择的墙角点之一。
14.在一个实施例中,处理电路确定房间的全景图像中的两个点的二维位置。处理电路基于两个点的二维位置、全景图像的大小以及房间的地板平面与设备的捕获位置之间的距离计算两个点的三维位置。处理电路计算两个点的三维位置之间的距离。
15.本公开的各方面提供了用于从房间的全景图像生成房间的三维几何图形的方法。可以通过该方法,执行由用于从房间的全景图像生成房间的三维几何图形的设备执行的处理过程中的的任意一个或组合。在一种方法中,基于用户输入确定房间的全景图像中房间的墙角点的二维位置。每个墙角点位于房间的地板平面或天花板平面中的一个。基于墙角点的二维位置、全景图像的大小以及房间的地板平面与被配置为捕获房间的全景图像的设备的捕获位置之间的距离计算墙角点的三维位置。根据墙角点的顺序生成房间的布局。根据房间的布局和墙角点的三维位置生成房间的三维几何图形。
16.本公开的各方面还提供了存储指令的非暂时性计算机可读介质,当由至少一个处理器执行时,使所述至少一个处理器执行用于从房间的全景图像生成房间的三维几何图形的方法的任何一个或组合。
附图说明
17.通过下面的详细描述和附图,本公开主题的进一步特征、性质和各种优点将更加明显,其中:
18.图1a示出了根据本公开实施例的房间的示例性全景图像。
19.图1b示出了根据本公开实施例的房间的示例性三维几何图形。
20.图2示出了根据本公开实施例的在另一房间的全景图像中测量白板的高度的示例。
21.图3示出了根据本公开实施例的确定另一房间的全景图像中的遮挡点的示例。
22.图4a-4d示出了根据本公开的一些实施例的根据封闭和控制点定义的房间布局的各种示例。
23.图5示出了根据本公开实施例的标记过程中使用的示例性指引线。
24.图6示出了根据本公开的实施例的示例性流程图。
25.图7是根据本公开实施例的计算机系统的示意图。
具体实施方式
26.i.一个三维几何图形构建
27.本公开涉及三维(3d)空间例如房间的重建。例如,房间可以在建筑物中。此外,三维重建可用于各种虚拟现实(vr)和/或增强现实(ar)应用,例如虚拟旅游、数字博物馆和虚拟房屋销售。在本公开中,示例性地描述了从全景图像构建房间的三维几何图形的方法,该全景图像具有针对室内场景的手工制作的角。然而,应该理解,该方法可以应用于其他三维
空间。
28.物体的三维几何表示通常是以点云的形式出现的,点云包含空间中的一组三维点。每个三维点可以包括三维位置信息和诸如颜信息和反射率信息的附加属性。另一种流行的三维格式是纹理网格,除了三维点信息之外,它还包含相邻点之间的连通性信息。基于连通性信息,可以形成纹理网格的小平面(例如,三角形)的集合。纹理化网格的纹理信息也可以附加到每个小平面。
29.在一些室内场景应用中,利用一些先验知识,可以使用一些基于学习的方法(如布局网(layoutnet)算法、视界网(horizonnet)算法和杜拉网(dula-net)算法)从房间的单个全景图像中预测一些房间布局元素,如布局边界和角位置。然而,这些算法通常是数据驱动的,需要高质量的训练数据。由于真实世界场景的复杂性,这些算法在生产场景中可能会失败。
30.本公开包括从房间的单个全景图像重建房间的三维几何图形的方法,其中全景图像中的房间的墙角被手工标记(例如,由用户手动标记)。需要注意的是,这些方法可以应用于半自动化技术设计。例如,可以首先使用自动算法(例如,layoutnet算法、horizonnet算法或dula-net算法)来生成布局角的粗略估计,然后可以使用本公开的方法来细化布局角。在另一示例中,可以使用本公开的方法手工标记布局角,然后可以将自动细化算法应用于手工标记的角。
31.图1a示出了根据本公开实施例的房间的示例性全景图像。在全景图像中,用户可以手动标记房间的一个或多个墙角。基于标记的墙角,可以生成如图1b所示的房间的三维几何图形。房间的三维几何可以用点云或纹理网格的形式表示。
32.在本公开的方法中,可以使用(房间的)全景图像(i)作为输入。假设全景图像(i)的尺寸是w
×
h,其中,以像素为单位,w=2h。此外,可以提供照相机高度的精确值(例如,照相机的中心位置到地平面之间的垂直距离)。照相机高度可以由用户提供、通过算法估计、测量或设置为默认值(例如,1.5米)。照相机高度被标记为h
cam

33.在本公开的方法中,可以对三维空间的表面做出某些假设。例如,可以假设房间的地板是平的,并与地平面平行。可以假设房间的天花板是平的,并与地平面平行。可以假设房间的墙壁是垂直的,并与地板垂直。此外,可以假设照相机射线平行于地平面。
34.在本公开的方法中,在照相机坐标系中,照相机的中心位置可以用作笛卡尔坐标系中全局坐标的原点,即照相机的坐标是(0,0,0)。也可以假设照相机面向正x轴,负z轴朝向地板平面,地板平面和天花板平面平行于x-y平面。地平面的水平消失线位于房间的全景图像的中间高度。因此,地板平面的z轴位置为-h
cam

35.通过上述假设,房间中的三维位置的坐标可以在与三维位置相对应的全景图像中的像素的图像坐标与照相机坐标系中的三维位置的笛卡尔坐标之间转换。需要注意的是,如果假设不同,转换方程可能会有所不同。
36.根据本公开的各个方面,全景图像中的像素的图像坐标可以转换为对应于该像素对应的照相机坐标系中的三维位置的笛卡尔坐标。
37.在一个实施例中,全景图像中的像素的图像坐标是(u,v),其中u∈[0,w]v∈,[0h,。假定照相机坐标系中对应的三维位置的z轴坐标已知。因此,像素的图像坐标可以按如下方式转换为对应的三维位置的笛卡尔坐标:
[0038][0039][0040]
然后,对应的三维位置与真实世界中的照相机之间的距离可以被估计为
[0041]
因此,如果像素在地板平面上,则照相机坐标系中对应三维位置的笛卡尔坐标可以表示为:
[0042][0043][0044]
z=-h
cam
ꢀꢀꢀ
(等式5)
[0045]
如果像素在天花板平面上,并且天花板高度,即从天花板平面到地板平面的垂直距离,已知为h
ceil
,则照相机坐标系中对应的三维位置的笛卡尔坐标可以表示为:
[0046][0047][0048]
z=h
ceil-h
cam
ꢀꢀꢀ
(等式8)
[0049]
根据本公开的各个方面,照相机坐标系中的三维位置的笛卡尔坐标可以转换为与该三维位置对应的全景图像中的像素的图像坐标。
[0050]
当照相机坐标系中三维位置的笛卡尔坐标为(x,y,z)时,全景图像中对应像素的图像坐标可表示为:
[0051][0052][0053]
其中,arctan2()是定义为如下的函数:
[0054][0055]
根据本公开的各个方面,可以基于房间的全景图像来估计房间中物体的高度。给定全景图像中同一列处的两个像素,全景图像中这两个像素的坐标表示为(u,v1)和(u,v2),
并且对应于像素(u,v1)的照相机坐标系中的第一三维位置的z轴坐标已知,且等于z1,且对应于另一个像素(u,v2)的照相机坐标系中的第二三维位置的z轴坐标可表示为如下:
[0056][0057]
一个示例性应用是估计全景图像中物体中的感兴趣点到地板平面的高度。如果已知像素(u,v1)位于地板平面上,即z1=-h
cam
,则对应另一像素(u,v2)的照相机坐标系中的第二三维位置的z轴坐标可表示为如下:
[0058][0059]
如果物体中的感兴趣点是像素(u,v2),则物体中的感兴趣点到地板平面的高度是h
obj
=z
2-z1。
[0060]
图2示出了根据本公开实施例的在房间的全景图像中测量白板的高度的示例。需要注意的是,图2示出了房间的全景图像的一部分。在图2中,从房间的地板平面到白板的底侧手动绘制垂直线(201),因此可以自动估计白板的高度。通过这种方式,也可以估计物体高度,如天花板高度或桌子高度。例如,垂直线(202)示出房间的天花板高度。
[0061]
需要注意的是,在一些实施例中,房间的天花板高度也可以由用户设置。因此,一旦天花板高度,即h
ceil
,被确定,如果对应点由用户标记,则可以基于天花板平面(或地板平面)中的对应点自动确定地板平面(或天花板平面中)中的点。两个点都在房间全景图像中的同一垂直线或列中。
[0062]
在一个实施例中,如果确定了天花板高度并且确定了房间的地板平面中的点(例如,由用户标记),则可以自动确定房间的天花板平面中的对应点。这两个点在房间的全景图像中处于同一垂直线上。
[0063]
例如,如果一个房间的全景图像中的一个点(u1,v1)位于房间的地板平面中,则该点在照相机坐标系中的笛卡尔坐标,即(x1,y1,z1),可以由(等式1)-(等式2)计算,其中,z1=-h
cam
。房间天花板平面中对应点的笛卡尔坐标可计算为(x2,y2,z2)=(x1,y1,z1+h
ceil
)。对应于天花板平面中的点的像素的图像坐标可以由(等式9)-(等式10)计算。
[0064]
在一个实施例中,如果确定了天花板高度并且确定了房间的天花板平面中的点(例如,由用户标记),则可以自动确定房间的地板平面中的对应点。这两个点在房间的全景图像中处于同一垂直线上。
[0065]
例如,如果房间的全景图像中的点在天花板平面中,则该点在照相机坐标系中的笛卡尔坐标,即(x1,y1,z1),可以由(等式1)-(等式2)计算,其中,z1=h
ceil-h
cam
。地板平面中对应点的笛卡尔坐标可计算为(x2,y2,z2)=(x1,y1,z
1-h
ceil
)。地板平面中的点的图像坐标可由(等式9)-(等式10)计算。
[0066]
上述方法很重要,因为在实际场景中,地板平面中的点或天花板平面中的点被物体遮挡是很常见的。在这种情况下,用户可以点击地板平面或天花板平面中的可见点,并且可以在全景图像中自动估计被遮挡的对应物。也就是说,如果手动标记地板平面中的点或天花板平面中的点中的至少一个,则可以确定墙角。
[0067]
图3示出了确定房间的全景图像中的遮挡点的示例。例如,对于标有数字“01”、“02”和“03”的角点对,房间的地板平面内的角点被房间内的一些椅子和桌子遮挡。然而,这
些角点仍然可以通过点击房间的天花板平面中的对应点来估计。
[0068]
在房间的全景图像的同一垂直线上的一对天花板和地板角点可以定义三维空间中的一条垂直直线。两对角点可以定义三维空间中的一个垂直墙壁平面。例如,在图3中,角点对“00”和“01”定义有白板的墙壁平面,角点对“01”和“02”定义有窗户的墙壁平面,角点对“02”和“03”定义有电视的墙壁平面,角点对“03”和“04”定义有玻璃门的墙壁平面。需要注意的是,角点对“04”和“00”定义了一扇打开的门,而不是一个实心墙壁平面。
[0069]
根据本公开的各方面,可以通过控制点来定义房间布局。房间布局可以是一个多边形形状的区域,包括多个角点。一些相邻的角点有的可以形成墙壁平面,另一些可以形成开口区域。因此,封闭概念和两种类型的控制点可以描述如下。
[0070]
封闭可以定义为一组具有一定顺序的控制点。在图3中,从“00”到“04”的角点对形成一个封闭。图4a示出了根据本公开的实施例的封闭的另一示例。在图4a中,从“00”到“03”的控制点形成封闭。需要注意的是,图4中的控制点以二维(2d)示出,其中具有照相机坐标系中x-y平面的鸟瞰视图。图4a中的控制点对应于真实场景中的角点对(例如,一个角点在天花板平面中,另一个角点在地板平面中)。由于这两个角点在照相机坐标系中具有相同的x和y坐标,所以在图4a中它们由相同的控制点表示。为了确定控制点的二维位置,用户可以在房间的全景图像中的地板平面或天花板平面中标记相应的角点。需要注意的是,封闭是一个闭环,并根据控制点的顺序确定。一个控制点按顺序与其邻居连接,最后一个控制点与第一个控制点连接。例如,“00”和“04”连接在图3的封闭中。
[0071]
在一些实施例中,可以使用不同类型的控制点来区分不同类型的墙壁平面。例如,为了区分实心墙壁平面和开口区域,可以定义两种类型的控制点。如图4a-4d所示,两种类型的控制点可以分别用实心圆和图案圆表示。实心控制点可以与其先前的控制点形成实心墙壁平面,而图案控制点可以与其先前的控制点形成开口区域。例如,图4a中的所有四个控制点都是实心控制点,因此该封闭在空间中具有四个实心墙壁。然而,在图4b中,“00”是图案控制点,因此从“04”到“00”的区段指示开口区域(例如,打开的门或窗)。在图4c和图4d中,存在两个图案控制点和两个实心控制点,因此存在两个实体墙壁和两个开口区域(例如,阳台和走廊)。
[0072]
需要注意的是,封闭不限于基于实心控制点的实心墙壁平面的构建,还可以构建地板平面和/或天花板平面。由所有控制点定义的多边形可以标识地板平面和/或天花板平面的形状。因此,图案控制点可以和实体控制点一样重要。
[0073]
在一个实施例中,计算机软件(或程序)可以通过不同的输入类型(例如计算机鼠标的左键单击或右键单击)来区分两种类型的控制点。
[0074]
在一个实施例中,计算机软件(或程序)可以借助键盘(例如不同的键盘输入)来区分两种类型的控制点。
[0075]
在一些实施例中,可以使用多于一个封闭来描述单个全景图像中场景的房间布局。多个封闭是相互独立的,并且可以具有不同的天花板高度。因此,多个封闭可以用来表示具有不同天花板高度的多个房间的场景。
[0076]
一旦通过封闭和控制点定义了房间布局,就可以通过构建墙壁平面、地板平面和天花板平面来恢复场景的三维几何图形。控制点的三维几何位置可以基于(等式1)-(等式8)来计算。然后,每个平面(例如,墙壁平面、天花板平面、地板平面或另一平面)中的三维位
置可以通过从控制点中插值来计算。每个插值位置的图像坐标可以基于(等式9)-(等式10)计算,并且全景图像中每个插值位置的图像坐标处的颜信息可以作为三维几何图形中相应插值位置处的颜信息使用。因此,可以构建场景的彩点云或纹理网格。
[0077]
在一些实施例中,可以作出关于墙壁的布置的某些假设。例如,曼哈顿世界假设可用于生成三维空间的三维几何图形,以提高生成的三维几何图形的质量。在曼哈顿世界假设中,假定墙要么相互平行,要么相互正交。
[0078]
在一个实施例中,曼哈顿世界假设可用于指引用户的标记过程。图5示出了根据本公开的实施例的可用于标记处理的指引线的示例性显示。在图5中,由于控制点“00”和“01”被标记后形成了一个实心墙壁平面,因此可以确定曼哈顿世界的一个主要方向。然后,当用户移动光标寻下一个控制点“02”时,可以生成一组指引线以帮助用户快速到它。在图5中,从下一个控制点“02
””
伸出的曲线(501)-(504)是预览指引线。这些曲线描绘了在全景图像中的“02”位置相交的两个正交墙壁平面。通过这种方式,即使地板和天花板角点都被遮挡,也可以提高标记控制点“02”的方便程度和准确性。
[0079]
在一个实施例中,曼哈顿世界假设可用于细化用户标记的位置。例如,如果全景图像中用户标记的位置接近指引线但不完全在指引线上,则可以稍微调整用户标记的位置以与曼哈顿世界假设一致。通过这种方法,可以保证生成的3s几何图形满足曼哈顿世界假设,从而得到更精确的结构。
[0080]
根据本公开的各方面,可以通过在房间的全景图像中的天花板平面和/或地板平面中标记一组墙角点来构建三维几何图形(例如,点云或纹理网格)。在一个实施例中,墙角点可以由用户手动标记。在另一实施例中,墙角点可以首先被估计,例如通过自动算法(例如,layoutnet算法、horizonnet算法或dula-net算法),然后由用户修改。在另一实施例中,墙角点可以首先由用户标记,然后例如通过自动算法进行细化。
[0081]
在一些实施例中,可以基于房间的全景图像中的标记点来测量或估计真实世界中的距离(或尺寸)。真实世界中的距离是从与全景图像中的标记点相对应的真实世界中的位置到被配置为捕获图像的照相机设备之间的距离。真实世界中的位置的三维坐标可以位于照相机坐标系中,例如照相机设备可以位于(0,0,0)处。
[0082]
在一个实施例中,可以通过在房间的全景图像中标记物体的点来估计物体高度(例如,从物体到房间的地板平面的垂直距离)。当物体高度已知(或已估计)或以其他方式确定时,可以估计与全景图像中的任意点相对应的真实世界中的点的三维坐标。真实世界中的位置的三维坐标可以位于照相机坐标系中,例如照相机位于(0,0,0)处。此外,当物体高度已知(或已估计)或以其他方式确定时,可以估计真实世界中两个位置之间的距离。这两个位置可以对应房间全景图像中的任意两个点。
[0083]
在一些实施例中,房间布局可以由全景图像中的一组标记点(也称为控制点)来定义。以特定顺序标记的点可以定义与房间布局相对应的封闭。可以使用两种类型的标记点,其中第一种类型的标记点可以形成房间的实心墙壁平面,第二种类型的标记点可以形成房间的开口区域。
[0084]
如上所述,在一个实施例中,计算机软件(或程序)可以通过计算机鼠标的左键点击或右键点击来区分两种类型的控制点。在一个实施例中,计算机软件(或程序)可以借助键盘区分两种类型的控制点。
[0085]
对于单个全景图像,可以使用多个封闭来描述场景的房间布局。多个封闭是相互独立的,并且可以具有不同的天花板高度。因此,多个封闭可以用来表示具有不同天花板高度的多个房间的场景。
[0086]
基于房间布局,可以构建场景的三维几何表示。三维几何图形可以是具有颜和法向量信息的点云,也可以是具有纹理信息的网格。通过对全景图像进行插值,可以得到图像的颜和纹理信息。
[0087]
在一些实施例中,诸如曼哈顿世界假设的某些假设可以应用于构建场景的三维几何图形。
[0088]
在一个实施例中,曼哈顿世界假设可用于指导标记过程。例如,可以基于曼哈顿世界假设在全景图像中生成一组指引线。在标记过程中,用户可以遵循该组指引线来标记全景图像中的点。
[0089]
在一个实施例中,曼哈顿世界假设可用于细化用户标记的位置。例如,如果用户标记的位置不在该组指引线中的任何一条上,则用户标记的位置可被自动调整为在一条最近的指引线上。
[0090]
ii.流程图
[0091]
图6示出了概述根据本公开实施例的示例性过程(600)的流程图。在各种实施例中,过程(600)由处理电路执行,例如图7所示的处理电路。在一些实施例中,过程(600)在软件指令中实现,因此当处理电路执行软件指令时,处理电路执行过程(600)。
[0092]
过程(600)通常可以在步骤(s610)开始。其中,过程(600)基于用户输入确定房间的全景图像中房间的墙角点的二维位置。每个墙角点位于房间的地板平面或天花板平面中的一个。然后,过程(600)进行到步骤(s620)。
[0093]
在步骤(s620),过程(600)基于墙角点的二维位置、全景图像的大小以及房间的地板平面与被配置为捕获房间的全景图像的设备的捕获位置之间的距离计算墙角点的三维位置。然后,过程(600)进行到步骤(s630)。
[0094]
在步骤(s630),过程(600)基于墙角点的顺序确定房间的布局。然后,过程(600)进行到步骤(s640)。
[0095]
在步骤(s640),过程(600)基于房间的布局和墙角点的三维位置生成房间的三维几何图形。然后,过程(600)终止。
[0096]
在一个实施例中,用户输入包括用户选择的房间的墙角点和墙角点的顺序。
[0097]
在一个实施例中,墙角点中的至少一个是第一类型的墙角点。第一类型的墙角点指示三维几何图形的墙壁平面。
[0098]
在一个实施例中,墙角点中的至少一个是第二类型的墙角点。第二类型的墙角点指示三维几何图形的开口区域平面。
[0099]
在一个实施例中,处理电路基于两个相邻墙角点中的预定的一个墙角点的类型生成三维几何图形的平面。
[0100]
在一个实施例中,过程(600)针对三维几何图形的平面中的每个三维位置,基于与相应三维位置相对应的房间的全景图像中的二维位置处的颜信息,确定相应三维位置的颜信息。
[0101]
在一个实施例中,三维几何图形的每个墙壁平面平行或正交于三维几何图形的至
少一个其他墙壁平面,并且过程(600)生成协助用户选择墙角点之一的指引线。
[0102]
在一个实施例中,三维几何图形的每个墙壁平面平行或正交于三维几何图形的至少一个其他墙壁平面,并且过程(600)调整由用户选择的墙角点之一。
[0103]
在一个实施例中,过程(600)确定房间的全景图像中的两个点的二维位置。过程(600)基于两个点的二维位置、全景图像的大小以及房间的地板平面与设备的捕获位置之间的距离计算两个点的三维位置。处理(600)计算两个点的三维位置之间的距离。
[0104]
iii.计算机系统
[0105]
上述技术可以使用计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图7示出适于实现所公开主题的某些实施例的计算机系统(700)。
[0106]
计算机软件可以使用任何合适的机器代码或计算机语言进行编码,这些机器代码或计算机语言可以服从组装、编译、链接或类似机制,以创建包括指令的代码,这些指令可以由一个或多个计算机中央处理单元、图形处理单元等直接执行或通过解释、微代码执行等执行。
[0107]
指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板计算机、服务器、智能手机、游戏设备、物联网设备等。
[0108]
图7中所示的计算机系统(700)的组件本质上是示例性的,并且不旨在对实施本公开的实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应被解释为具有与计算机系统(700)的示例性实施例中所示的组件的任何一个组件或组件的组合有关的任何依赖或要求。
[0109]
计算机系统(700)可以包括某些人机接口输入设备。此类人机接口输入设备可以响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动、数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未示出)。该人机接口设备还可用于捕获不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像照相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)等。
[0110]
输入人机接口设备可以包括下述中的一项或多项(每种中仅示出一个):键盘(701)、鼠标(702)、触控板(703)、触摸屏(710)、数据手套(未示出)、操纵杆(705)、麦克风(706)、扫描仪(707)和照相机(708)。
[0111]
计算机系统(700)也可以包括某些人机接口输出设备。此类人机接口输出设备可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出设备可以包括触觉输出设备(例如触摸屏(710)、数据手套(未示出)或操纵杆(705)的触觉反馈,但是也可以是不作为输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(709)、耳机(未示出))、视觉输出设备(例如包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕的屏幕(710),每种屏幕有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出、虚拟现实眼镜(未示出),全息显示器和烟箱(未示出),以及打印机(未示出)之类的装置来输出二维视觉输出或超过三维输出。这些视觉输出设备(例如屏幕(710))可以通过图形适配器(750)连接到系统总线(748)。
[0112]
计算机系统(700)也可以包括人类可访问存储设备和其相关联介质:例如包括具
有cd/dvd等介质(721)的cd/dvd rom/rw(720)的光学介质、指状驱动器(722)、可拆卸硬盘驱动器或固态驱动器(723),诸如磁带和软盘之类的传统磁性介质(未示出)、诸如安全软件狗之类的基于专用rom/asic/pld的装置(未示出)等。
[0113]
本领域技术人员还应该理解,结合当前公开的主题使用的所术语“计算机可读介质”不涵盖传输介质、载波或其他暂时性信号
[0114]
计算机系统(700)还可以包括到一个或多个通信网络(755)的网络接口(754)。一个或多个通信网络(755)例如可以是无线网络、有线网络、光网络。一个或多个通信网络(755)可以进一步地是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。一个或多个通信网络(755)的示例包括诸如以太网之类的局域网、无线lan、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域网数字网络、包括canbus的车载和工业用电视等。某些网络通常需要连接到某些通用数据端口或外围总线(749)的外部网络接口适配器(例如计算机系统(700)的usb端口);如下所述,其他网络接口通常通过连接到系统总线而集成到计算机系统(700)的内核中(例如,连接pc计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(700)可以使用这些网络中的任何一个网络与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些canbus装置的canbus)或双向的,例如,使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可以在那些网络和网络接口的每一个上使用某些协议和协议栈。
[0115]
上述人机接口设备、人机可访问的存储装置和网络接口可以附接到计算机系统(700)的内核(740)。
[0116]
内核(740)可以包括一个或多个中央处理单元(cpu)(741)、图形处理单元(gpu)(742)、现场可编程门阵列(fpga)(743)形式的专用可编程处理单元、用于某些任务的硬件加速器(744)、图形适配器(750)等。这些设备以及只读存储器(rom)(745)、随机存取存储器(746)、诸如内部非用户可访问硬盘驱动器、ssd等之类的内部大容量存储器(747)可以通过系统总线(748)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(748),以能够通过附加的cpu、gpu等进行扩展。外围设备可以直接连接到内核的系统总线(748)或通过外围设备总线(749)连接到内核的系统总线。在一个示例中,屏幕(710)可以连接到图形适配器(750)。外围总线的体系结构包括pci、usb等。
[0117]
cpu(741)、gpu(742)、fpga(743)和加速器(744)可以执行某些指令,这些指令可以组合起来构成上述计算机代码。该计算机代码可以存储在rom(745)或ram(746)中。过渡数据也可以存储在ram(746)中,而永久数据可以例如存储在内部大容量存储器(747)中。可以通过使用高速缓冲来进行对任何存储器设备的快速存储和检索,该高速缓冲可以与下述紧密关联:一个或多个cpu(741)、gpu(742)、大容量存储(747)、rom(745)、ram(746)等。
[0118]
计算机可读介质可以在其上具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域技术人员公知且可用的类型。
[0119]
作为非限制性示例,可以由于一个或多个处理器(包括cpu、gpu、fpga、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(700),特别是内核(740)的计算机系统可以提供功能。此类计算机可读介质可以是与如上所述的用户可访
问的大容量存储相关联的介质,以及某些非暂时性的内核(740)的存储器,例如内核内部大容量存储器(747)或rom(745)。可以将实施本公开的各种实施例的软件存储在此类装置中并由内核(740)执行。根据特定需要,计算机可读介质可以包括一个或多个存储装置或芯片。软件可以使得内核(740),特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在ram(746)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其他方式体现在电路(例如,加速器(744))中的逻辑中而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或包括两者。本公开包括硬件和软件的任何合适的组合。
[0120]
尽管本公开已经描述了几个示例性实施例,但存在落入本公开范围内的改变、置换和各种替代等价物。因此将理解,本领域的技术人员将能够设计许多系统和方法,尽管在此未明确示出或描述,但这些系统和方法体现了本公开的原理,并因此在其精神和范围内。

技术特征:


1.一种从房间的全景图像生成所述房间的三维几何图形的方法,包括:基于用户输入确定所述房间的全景图像中所述房间的墙角点的二维位置,其中,每个墙角点位于所述房间的地板平面或天花板平面中的一个;基于所述墙角点的二维位置、所述全景图像的大小以及所述房间的地板平面与被配置为捕获所述房间的全景图像的设备的捕获位置之间的距离,计算所述墙角点的三维位置;基于所述墙角点的顺序确定所述房间的布局;以及基于所述房间的布局和所述墙角点的三维位置生成所述房间的三维几何图形。2.根据权利要求1所述的方法,其中,所述用户输入包括用户选择的所述房间的墙角点和所述墙角点的顺序。3.根据权利要求1所述的方法,其中,所述墙角点中的至少一个是第一类型的墙角点,所述第一类型的墙角点指示所述三维几何图形的墙壁平面。4.根据权利要求1所述的方法,其中,所述墙角点中的至少一个是第二类型的墙角点,所述第二类型的墙角点指示所述三维几何图形的开口区域平面。5.根据权利要求1所述的方法,其中,所述生成包括:基于两个相邻墙角点中的预定的一个墙角点的类型生成所述三维几何图形的平面。6.根据权利要求1所述的方法,还包括:针对所述三维几何图形的平面中的每个三维位置,基于与所述相应三维位置相对应的所述房间的全景图像中的二维位置处的颜信息,确定所述相应三维位置的颜信息。7.根据权利要求1所述的方法,其中,所述三维几何图形的每个墙壁平面平行或正交于所述三维几何图形的至少一个其他墙壁平面,以及所述方法还包括生成协助用户选择所述墙角点之一的指引线。8.根据权利要求1所述的方法,其中,所述三维几何图形的每个墙壁平面平行或正交于所述三维几何图形的至少一个其他墙壁平面,以及所述方法还包括调整由所述用户选择的所述墙角点之一。9.根据权利要求1所述的方法,进一步包括:确定所述房间的全景图像中的两个点的二维位置;基于所述两个点的二维位置、所述全景图像的大小以及所述房间的地板平面与所述设备的捕获位置之间的距离,计算所述两个点的三维位置;以及计算所述两个点的三维位置之间的距离。10.一种装置,包括:处理电路,所述处理电路被配置为:基于用户输入确定房间的全景图像中所述房间的墙角点的二维位置,其中,每个墙角点位于所述房间的地板平面或天花板平面中的一个;基于所述墙角点的二维位置、所述全景图像的大小以及所述房间的地板平面与被配置为捕获所述房间的全景图像的设备的捕获位置之间的距离,计算所述墙角点的三维位置;基于所述墙角点的顺序确定所述房间的布局;以及基于所述房间的布局和所述墙角点的三维位置生成所述房间的三维几何图形。
11.根据权利要求10所述的装置,其中,所述用户输入包括用户选择的所述房间的墙角点和所述墙角点的顺序。12.根据权利要求10所述的装置,其中,所述墙角点中的至少一个是第一类型的墙角点,所述第一类型的墙角点指示所述三维几何图形的墙壁平面。13.根据权利要求10所述的装置,其中,所述墙角点中的至少一个是第二类型的墙角点,所述第二类型的墙角点指示所述三维几何图形的开口区域平面。14.根据权利要求10所述的装置,其中,所述处理电路进一步被配置为:基于两个相邻墙角点中的预定的一个墙角点的类型生成所述三维几何图形的平面。15.根据权利要求10所述的装置,其中,所述处理电路进一步被配置为:针对所述三维几何图形的平面中的每个三维位置,基于与所述相应三维位置相对应的所述房间的全景图像中的二维位置处的颜信息,确定所述相应三维位置的颜信息。16.根据权利要求10所述的装置,其中,所述三维几何图形的每个墙壁平面平行或正交于所述三维几何图形的至少一个其他墙壁平面,以及所述处理电路还被配置为:生成协助用户选择所述墙角点之一的指引线。17.根据权利要求10所述的装置,其中,所述三维几何图形的每个墙壁平面平行或正交于所述三维几何图形的至少一个其他墙壁平面,以及所述处理电路还被配置为:调整由所述用户选择的所述墙角点之一。18.根据权利要求10所述的装置,其中,所述处理电路还被配置为:确定所述房间的全景图像中的两个点的二维位置;基于所述两个点的二维位置、所述全景图像的大小以及所述房间的地板平面与所述设备的捕获位置之间的距离,计算所述两个点的三维位置;以及计算所述两个点的三维位置之间的距离。19.一种存储指令的非暂时性计算机可读存储介质,当由至少一个处理器执行时,使所述至少一个处理器执行:基于用户输入确定所述房间的全景图像中所述房间的墙角点的二维位置,其中,每个墙角点位于所述房间的地板平面或天花板平面中的一个;基于所述墙角点的二维位置、所述全景图像的大小以及所述房间的地板平面与被配置为捕获所述房间的全景图像的设备的捕获位置之间的距离,计算所述墙角点的三维位置;基于所述墙角点的顺序确定所述房间的布局;以及基于所述房间的布局和所述墙角点的三维位置生成所述房间的三维几何图形。20.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述用户输入包括用户选择的所述房间的墙角点和所述墙角点的顺序。

技术总结


本公开的各方面包括用于从房间的全景图像生成房间的三维几何图形的方法、装置和非暂时性计算机可读存储介质。该装置包括基于用户输入确定全景图像中房间的墙角点的二维位置的处理电路。每个墙角点位于房间的地板平面或天花板平面中的一个。处理电路基于墙角点的二维位置、全景图像的大小以及地板平面与捕获全景图像的设备的捕获位置之间的距离计算墙角点的三维位置,基于墙角点的顺序来确定房间布局,并基于房间布局和墙角点的三维位置生成三维几何图形。维几何图形。维几何图形。


技术研发人员:

张翔 简兵 何露 朱海超 刘杉 刘克林 封薇薇

受保护的技术使用者:

腾讯美国有限责任公司

技术研发日:

2021.10.18

技术公布日:

2022/12/23

本文发布于:2024-09-22 11:41:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/47526.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:全景   所述   房间   平面
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议