用于生成平面图的方法及装置与流程

文档序号:33116435发布日期:2023-02-01 02:56阅读:105来源:国知局
用于生成平面图的方法及装置与流程
用于生成平面图的方法及装置
1.引用并入
2.本技术要求于2021年10月15日提交的美国专利申请第17/502,520号“method and apparatus for generating a floor plan”的优先权的权益,该美国专利申请要求于2021年5月7日提交的美国临时申请第63/185,949号“methods of estimating floorplan from point clouds”的优先权的权益。在先申请的公开内容的全部内容通过引用并入本文中。
技术领域
3.本公开内容描述了总体上涉及三维空间的平面图的生成的实施方式。


背景技术:

4.本文中提供的背景描述是出于总体上呈现本公开内容的上下文的目的。就在该背景技术部分中描述的目前署名的发明人的工作的程度而言,目前署名的发明人的工作以及在提交时可能未被另外限定作为现有技术的描述的各方面既没有明确地也没有隐含地被承认为是针对本公开内容的现有技术。
5.室内建筑物的三维(3d)重建是活跃的研究主题,并且已经用于包括房地产、建筑物建造、建筑物修复、娱乐等的各种行业中。3d重建通过将单个图像(例如,rgb图像)或来自不同视图的一组图像作为输入,利用诸如计算机视觉和机器学习的技术来生成场景中建筑物的3d几何表示。深度传感器的进步实现了甚至更方便并且更准确的直接从场景测量深度信息的方式。例如,一些广泛使用的深度相机包括lidar、结构光等。3d重建可以用于各种应用中,并且可以进一步转换成其他表示。
6.对象的3d几何表示可以是点云的形式,所述点云包括空间中的一组3d点。每个3d点可以包括3d位置信息和附加属性,例如颜色信息和反射率信息。另一流行的3d格式是纹理网格,其除了3d点信息还包括相邻点之间的连接性信息。可以基于连接性信息形成纹理网格的小平面(例如三角形)的集合。也可以将纹理网格的纹理信息附加至每个小平面。
7.对于诸如房地产的3d空间应用,3d几何的重要副产品是平面图。在生产中,通常可以由专家根据建筑物的3d几何信息来创建专业的平面图。图1示出了根据本公开内容的实施方式的示例性平面图。在图1中,平面图通过使用专业应用程序以特定格式的数字画布绘制。平面图包括具有估计的尺寸及一些房间标签的基本房间布局。


技术实现要素:

8.本公开内容的各方面提供了用于从点云模型生成平面图的装置。装置包括接收与三维空间对应的输入三维点云的处理电路系统。处理电路系统确定所接收的输入三维点云中的多个墙平面。处理电路系统生成多个线段。每个线段通过将多个墙平面中的各个墙平面投影到三维空间中的地板平面生成。处理电路系统在对应于平面图的二维空间中使用多个线段来表示三维空间中的多个墙平面。处理电路系统在二维空间中调整多个线段以改进平面图。处理电路系统基于多个经调整的线段生成平面图。
9.在实施方式中,处理电路系统将接收的输入点云中的点的子集投影到多个墙平面中的一个墙平面上。处理电路系统基于投影的点确定多个线段中的一个线段对应于多个墙平面中的一个墙平面。
10.在实施方式中,处理电路系统基于投影的点计算与多个墙平面中的一个墙平面对应的多个线段中的一个线段的两个端点的坐标。
11.在实施方式中,多个墙平面中的一个墙平面由多个网格表示,以及处理电路系统确定多个网格中的连续网格是否包括至少一个投影的点。处理电路系统基于连续网格不包括至少一个投影点来确定多个墙平面中的一个墙平面上的开口区域。开口区域对应于连续网格。处理电路系统基于多个墙平面中的一个墙平面上的开口区域来确定多个线段中的一个线段中的开口区域。
12.在实施方式中,多个墙平面中的一个墙平面由多列网格表示,并且处理电路系统确定多列网格中的每一个中没有投影点的连续网格的数目是否大于网格阈值。处理电路系统基于多列网格中相应的一列网格中的连续网格的数目大于网格阈值,将多个线段中的一个线段的与多列网格中相应的一列网格对应的部分确定为多个线段中的一个线段中的开口区域候选部分。处理电路系统基于多个线段中的一个线段中的连续开口区域候选部分的数目大于部分阈值,确定多个线段中的一个线段中的开口区域。该开口区域对应于多个线段中的一个线段中的连续开口区域候选部分。
13.在实施方式中,处理电路系统基于多个线段中的一个线段与多个线段中的一个或更多个其他线段相交,将该多个线段中的一个线段拆分成多个部分。处理电路系统确定多个线段中的一个线段的多个部分中的哪些连续部分对应于多个墙平面中的一个墙平面。处理电路系统基于连续部分中的被确定为对应于多个墙平面中的一个墙平面的一个或更多个连续部分,确定多个经调整的线段之一。
14.在实施方式中,处理电路系统基于多个部分之一的长度大于长度阈值,确定该多个部分之一对应于多个墙平面中的一个墙平面。
15.在实施方式中,多个线段形成包括测试点的初始平面图,多个部分中的每一个部分包括多个采样点,并且处理电路系统针对多个部分之一生成多个测试线段。多个测试线段中的每一个测试线段在多个部分之一的采样点之一与初始平面图的测试点之间生成。处理电路系统基于多个测试线段中一个或更多个测试线段的数目小于相交阈值,确定多个部分之一对应于多个墙平面中的一个墙平面。一个或更多个测试线段中的每一个与多个线段中的至少一个另外的线段相交。
16.在实施方式中,处理电路系统移除不与多个墙平面中的一个墙平面对应的多个部分中的一个部分。处理电路系统将被确定为对应于多个墙平面中的一个墙平面的一个或更多个连续部分合并成多个经调整的线段之一。
17.本公开内容的各方面提供了用于从点云模型生成平面图的方法。该方法可以执行由用于从点云模型生成平面图的装置所执行的处理的中的任何一个或其组合。在该方法中,接收对应于三维空间的输入三维点云。确定接收的输入三维点云中的多个墙平面。生成多个线段。多个线段中的每一个通过将多个墙平面中的各个墙平面投影到三维空间中的地板平面生成。通过在对应于平面图的二维空间中使用多个线段来表示三维空间中的多个墙平面。在二维空间中调整多个线段以改进平面图。基于多个经调整的线段生成平面图。
18.本公开内容的各方面还提供了存储指令的非暂态计算机可读介质,该指令在由至少一个处理器执行时使至少一个处理器执行用于从点云模型生成平面图的方法中的任何一个或其组合。
附图说明
19.根据以下详细描述和附图,所公开的主题的另外的特征、性质和各种优点将更加明显,在附图中:
20.图1示出了根据本公开内容的实施方式的示例性平面图;
21.图2示出了根据本公开内容的实施方式的建筑物的示例性点云;
22.图3a示出了根据本公开内容的实施方式的室内间格模型的二维平面图的示例;
23.图3b示出了根据本公开内容的实施方式的室内间格模型的三维模型的示例;
24.图4示出了根据本公开内容的实施方式的示例性墙平面表示;
25.图5a至图5d示出了根据本公开内容的实施方式的细化房间布局的示例性过程;
26.图6a至图6b示出了根据本公开内容的一些实施方式的墙平面中的开口区域的两个示例;
27.图7示出了根据本公开内容的实施方式的示例性流程图;以及
28.图8是根据本公开内容的实施方式的计算机系统的示意性图示。
具体实施方式
29.i.平面图生成
30.本公开内容涉及3d空间(例如,室内建筑物)的三维(3d)重建。3d重建可以用于各种虚拟现实(vr)和/或增强现实(ar)应用,例如虚拟参观、数字博物馆和虚拟房屋销售。
31.为了有助于平面图生成,在一些有关的示例中,可以借助于分割和图形优化来使用各种自动算法(例如,平面图-拼图(floor plan-jigsaw)系统、floor-sp系统等)。通过使用这些自动算法,可以生成房间布局的粗略估计,这可以作为专业平面图的良好起点。然而,这些自动算法需要大量的计算和优化迭代,复杂性高,因此相当昂贵。此外,一些自动算法是数据驱动的,并且在很大程度上依赖于训练数据的质量。
32.本公开内容包括从点云估计平面图的方法,包括例如从3d空间的点云生成简化平面图的简单但有效的算法。图2示出了根据本公开内容的实施方式的建筑物的示例性点云。在点云中,小方块(例如,方块(201)和方块(202))指示被配置成捕获建筑物图像以生成点云的摄像装置的位置。这些摄像装置位置可以是根据所使用的算法可选的。
33.图3a至图3b示出了在将室内间格模型的点云输入到本公开内容的算法中时的示例性输出。算法的输出包括如图3a所示的室内间格模型的2d平面图以及如图3b所示的室内间格模型的3d室内间格模型表示。
34.如图3a所示,平面图可以包括多个墙部段,并且每个墙部段与点云中的墙平面对应。因此,在一些实施方式中,可以首先检测输入3d点云中的主墙平面。当墙平面投影到点云中的地板平面时,这些墙平面可以由多个线段表示。假设墙平面垂直于水平地板平面。然后可以对多个线段进行各种操作以提高平面图的质量。
35.在一些实施方式中,假设输入点云中的地板平面平行于3d空间中的x-y平面,z轴
反方向朝向地板平面(或地平面),并且竖直的墙垂直于x-y地板平面。图2示出了x轴、y轴和z轴的方向。
36.根据本公开内容的各方面,可以从3d空间的表示例如3d点云来检测一些主平面(例如,墙平面、地板平面和天花板平面)。可以使用各种平面检测算法来检测主平面。
37.在一个实施方式中,可以将随机样本一致性(ransac)算法应用于检测3d点云中的分段平面。
38.在一个实施方式中,可以将3d点云中的点投影到x-y平面中的2d网格上。然后在2d平面中检测用于表示3d点云中的墙平面的线段。例如,如果x-y平面的区域中投影的点的数目大于阈值,则可以认为该区域是墙平面,并且将其由线段表示。
39.在一个实施方式中,可以按照特定的规则将检测到的平面分为不同的类别。例如,可以基于每个平面的法线方向、大小和位置将检测到的平面分为以下类型:(i)地板平面,其法线方向应当接近于(0,0,1)并且其z位置应当低于摄像装置位置;(ii)天花板平面,其法线方向应当接近于(0,v,-1)并且其z位置应当高于摄像装置位置;(iii)墙平面,其法线方向应当平行于x-y平面;以及(iv)另一平面。
40.当假设墙平面垂直于点云的x-y平面时,可以通过将墙平面投影到x-y平面来在2d平面中将点云中的墙平面表示为线段。例如,点云中的墙平面位于无限平面中,即ax+by+d=0,其中a、b、d为常数系数,并且为了方便,假设a2+b2=1。由于z轴的系数为零,因此可以认为式ax+by+d=0是2d平面中的线。起点(x0,y0)和终点(x1,y1)限定了表示墙平面的线段,其中(x0,y0)和(x1,y1)在由式ax+by+d=0表示的线上。
41.图4示出了根据本公开内容的实施方式的示例性墙平面表示。在该表示中,实心正方形(401)表示由ax+by+d=0限定的墙平面,并且条纹正方形(402)是平行于墙平面(402)的2d子空间平面。2d子空间平面(402)可以由式ax+by=0限定并且由两个正交的基向量表示。一个基向量垂直于x-y平面(或地平面),即bv=(0,0,1)
t
,并且另一基向量可以通过bh=n
×bv
=(-b,a,0)
t
来计算,其中n=(a,b,0)
t
是2d子空间平面(402)的法线向量。根据定义,基向量bh在x-y平面上。
42.基于以上假设,可以估计每个墙的尺寸。墙平面可以由通过使用平面检测算法(例如,ransac算法)检测到的一组点来表示。这些点应当靠近于由式ax+by+d=0限定的墙平面(401)。通过将这些点投影到检测到的墙平面(401)上,可以通过2d子空间平面(402)的两个基向量bv和bh来估计墙平面(401)的尺寸(例如,宽度和高度)。
43.在实施方式中,对于在墙平面(401)上或靠近于墙平面(401)的每个点pi=(xi,yi,zi)
t
,墙平面(401)中的对应的投影点的坐标可以计算为p
′i=(hi,vi)
t
=(bh,bv)
t
·
pi。然后,墙平面(401)的宽度可以估计为w=max(hi)-min(hi),并且墙平面(401)的高度可以估计为h=max(vi)-min(vi)。表示墙平面(401)的线段的起点和终点可以计算为(x0,y0,0)
t
=min(hi)
·bh
和(x1,y1,0)
t
=max(hi)
·bh

44.根据本公开内容的各方面,可以通过分析点云中的检测到的墙平面的线段来估计空间(例如,房间)的布局。由于可以在2d平面中由线段表示墙平面,因此线段可以提供对房间布局的粗略估计。可以对线段中的每一个执行一组操作以细化房间布局。该组操作可以包括但不限于以下步骤:(1)检查一个线段与其他线段的交点;(2)如果该线段与一个或更多个其他线段相交,则将该线段拆分成多个部分;(3)移除多个部分中的离群部分;(4)将剩
余的连续部分合并成新的线段。在一些实施方式中,离群部分的移除可以包括修正步骤。例如,可以基于附加的信息例如摄像装置位置来对线段进行修正。注意,可以使用这些操作以任何顺序的任何组合来细化房间布局。此外,并非在所有实施方式中都需要所有操作。
45.图5a至图5d示出了根据本公开内容的实施方式的细化房间布局的示例性过程。图5a示出了粗略的房间布局(或初始房间布局),其包括五个线段0至4。每个线段基于点云的多个墙平面中的各个墙平面生成。在图5a中,检查线段的交点。如果线段与其他线段有一个或更多个交点,则可以将该线段拆分成多个部分。例如,图5a中线段0和线段1彼此相交,因此如图5b所示,将线段0拆分成两个子段0.0和0.1,并且将线段1拆分成两个子段1.0和1.1。图5a中线段2和线段4彼此相交,因此如图5b所示,将线段2拆分成两个子段2.0和2.1,并且将线段4拆分成两个子段4.0和4.1。
46.在图5c中,可以移除离群子段。在实施方式中,如果子段的长度小于长度阈值,则可以认为该子段是离群子段并且将其移除。例如,可以移除图5b中的子段0.0和1.0,这是因为每个的长度小于长度阈值。在实施方式中,可以提供被配置成捕获建筑物的图像的捕获装置(例如,摄像装置)的捕获位置。如果子段对于捕获装置不可见,则可以确定与该子段对应的墙平面被其他墙平面遮挡,并且可以认为该子段是离群段并且将其移除。例如,可以基于捕获装置的视线来确定该确定。在实施方式中,子段可以包括多个采样位置,并且多个采样位置中的每一个可以与捕获装置的捕获位置形成相应的测试线段。如果测试线段中的至少一个与一个或更多个其他线段相交,并且至少一个测试线段的数目大于交点阈值,则可以认为该子段是离群段并且将其移除。例如,可以移除图5b中的子段4.1,这是因为其对于图5c中的摄像装置不可见。
47.在图5d中,如果未移除的子段交叠(或连接)并且彼此平行,则可以将剩余的子段合并成新的线段。例如,可以将图5c中的子段2.0和2.1合并成图5d中的线段2。
48.根据本公开内容的各方面,可以通过分析与墙平面相关联的3d点的模式来识别房间的某些特征。在一些实施方式中,可以检测墙平面中的开口区域,例如墙上的门和窗。与墙平面相关联的3d点可以投影到由多个2d网格表示的墙平面。如图6a至图6b所示,投影的点可以被体素化成2d网格,其中由x标记的网格指示被至少一个点占据的体素,而其余网格为空。可以对墙平面的2d网格表示应用各种算法以检测开口区域。
49.在一个实施方式中,可以将开口区域检测为空网格的连通区域。空网格的连接性可以以各种方式例如8连接和4连接来定义。在8连接中,空的中心网格及其八个空的相邻网格可以形成空网格的连通区域。8连接的示例是图6b中的连通区域(605),其中中心网格为空,并且其八个相邻的网格也为空。在4连接中,空的中心网格及其四个空的相邻网格(例如,顶部相邻网格、左侧相邻网格、右侧相邻网格和底部相邻网格)可以形成空网格的连通区域。
50.在图6a中,阴影区域(603)是墙平面(601)中的空网格连通区域。在图6b中,墙平面(602)中存在两个空网格连通区域(604)和(605)。可以认为每个空网格连通区域是墙平面上的开口区域候选。如果空网格的连通区域满足一个或更多个特定规则,则可以将其检测为开口区域。所述规则可以包括但不限于开口区域的最小尺寸、开口区域的高度、开口区域的宽度等。
51.在一个实施方式中,可以如图6a至图6b所示,通过使用按列统计,将具有2d网格的
墙平面简化成1d(一维)行,其中墙平面(601)和(602)分别被简化成1d条带(611)和(612)。可以基于某些规则来确定每个1d条带中的空单元。例如,如果列中的空网格的百分比(或数目)大于第一百分比阈值(或第一空数目阈值),则可以确定与该列对应的1d条带中的单元为该1d条带中的空单元。在图6a中,列(606)中的空网格百分比大于百分比阈值(例如,50%),并且可以将1d条带(611)中的对应单元(616)确定为空单元。如果1d条带中连续的空单元的百分比(或数目)大于第二百分比阈值(或第二空数目阈值),则连续的空单元可以形成代表墙平面的1d条带中的开口区域。例如,连续空单元(617)的数目大于第二空数目阈值(例如,2),并且可以将连续空单元(617)确定为1d条带(611)中的开口区域。
52.在一个实施方式中,可以应用模式识别技术(例如,深度学习算法),基于墙平面的2d网格或1d条纹表示来提取特征,并且自动地检测开口图案。
53.本公开内容包括通过在2d平面中将3d点云中的墙平面表示为多个线段来从诸如室内场景的3d空间的点云估计平面图的方法。可以根据3d点云中的各个点或地板上的各个2d投影来估计墙平面中的每一个。可以通过在2d平面中对线段的各种操作来估计房间布局。摄像装置位置可以用于细化线段。例如,可以根据摄像装置位置来估计墙平面的可见性。可以根据墙平面估计开口区域(例如,开口的门或窗)。此外,可以应用一种或更多种机器学习和/或深度学习算法(例如,支持向量机),以便可以基于生成的平面图执行其他分析,例如房间分割、房间标记等。
54.ii.流程图
55.图7示出了概述根据本公开内容的实施方式的示例性处理(700)的流程图。在各种实施方式中,处理(700)由处理电路系统例如如图8所示的处理电路系统来执行。在一些实施方式中,处理(700)以软件指令来实现,因此当处理电路系统执行软件指令时,处理电路系统执行处理(700)。
56.处理(700)通常可以开始于步骤(s710)处,其中处理(700)接收与三维空间对应的输入三维点云。然后,处理(700)进行到步骤(s720)。
57.在步骤(s720)处,处理(700)确定接收的输入三维点云中的多个墙平面。然后,处理(700)进行到步骤(s730)。
58.在步骤(s730)处,处理(700)生成多个线段。每个线段通过将多个墙平面中的各个墙平面投影到三维空间中的地板平面生成。然后,处理(700)进行到步骤(s740)。
59.在步骤(s740)处,处理(700)在对应于平面图的二维空间中使用多个线段来表示三维空间中的多个墙平面。然后,处理(700)进行到步骤(s750)。
60.在步骤(s750)处,处理(700)在二维空间中调整多个线段以改进平面图。然后,处理(700)进行到步骤(s760)。
61.在步骤(s760)处,处理(700)基于多个经调整的线段来生成平面图。然后,处理(700)终止。
62.在实施方式中,处理(700)将接收的输入点云中的点的子集投影到多个墙平面之一上。处理(700)基于投影的点确定多个线段之一对应于多个墙平面之一。
63.在实施方式中,处理(700)基于投影的点计算与多个墙平面之一对应的多个线段之一的两个端点的坐标。
64.在实施方式中,多个墙平面之一由多个网格表示,并且处理(700)确定多个网格中
的连续网格是否包括至少一个投影的点。处理(700)基于不包括至少一个投影点的连续网格来确定多个墙平面之一上的开口区域。开口区域对应于连续网格。处理(700)基于多个墙平面之一上的开口区域来确定多个线段之一中的开口区域。
65.在实施方式中,多个墙平面之一由多列网格表示,并且处理(700)确定多列网格中的每一个中没有投影点的连续网格的数目是否大于网格阈值。处理(700)基于多列网格中相应的一列网格中的连续网格的数目大于网格阈值,将多个线段之一的与多列网格中相应的一列网格对应的部分确定为多个线段之一中的开口区域候选部分。处理(700)基于多个线段之一中的连续开口区域候选部分的数目大于部分阈值,确定多个线段之一中的开口区域。该开口区域对应于多个线段之一中的连续开口区域候选部分。
66.在实施方式中,处理(700)基于多个线段中的一个线段与多个线段中的一个或更多个其他线段相交,将上述多个线段中的所述一个线段拆分成多个部分。处理(700)确定所述多个线段中的所述一个线段的多个部分中的哪些连续部分对应于多个墙平面之一。处理(700)基于连续部分中的被确定为对应于多个墙平面之一的一个或更多个连续部分,确定多个经调整的线段之一。
67.在实施方式中,处理(700)基于多个部分中的一个部分的长度大于长度阈值,确定所述多个部分中的所述一个部分对应于多个墙平面之一。
68.在实施方式中,多个线段形成包括测试点的初始平面图,多个部分中的每一个部分包括多个采样点,并且处理(700)针对多个部分中的一个部分生成多个测试线段。多个测试线段中的每一个测试线段在所述多个部分中的所述一个部分的采样点之一与初始平面图的测试点之间生成。处理(700)基于多个测试线段中一个或更多个测试线段的数目小于交点阈值,确定所述多个部分的所述一个部分对应于多个墙平面之一。一个或更多个测试线段中的每一个与多个线段中的至少一个另外的线段相交。
69.在实施方式中,处理(700)移除不与多个墙平面之一对应的多个部分之一。处理(700)将被确定为对应于多个墙平面之一的一个或更多个连续部分合并成多个经调整的线段之一。
70.iii.计算机系统
71.可以使用计算机可读指令将上述技术实现为计算机软件并且将其物理地存储在一个或更多个计算机可读介质中。例如,图8示出了适合于实现所公开主题的某些实施方式的计算机系统(800)。
72.可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,机器代码或计算机语言可以经受汇编、编译、链接等机制以创建包括指令的代码,所述指令可以由一个或更多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或者通过解译、微代码执行等来执行。
73.指令可以在各种类型的计算机或其部件上执行,上述计算机的部件包括例如个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。
74.图8中示出的用于计算机系统(800)的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应当被解释为具有与计算机系统(800)的示例性实施方式中示出的部件中的任何一个部件或部件的组合有关的任何依赖性或要求。
75.计算机系统(800)可以包括某些人机接口输入装置。这样的人机接口输入装置可以响应于由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:姿势)、嗅觉输入(未描绘)的输入。人机接口装置还可以用于捕获不一定与人的意识输入直接有关的某些介质,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静态图像摄像装置获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
76.输入人机接口装置可以包括以下中的一个或更多个(每者仅描绘了一个):键盘(801)、鼠标(802)、触控板(803)、触摸屏(810)、数据手套(未示出)、操纵杆(805)、麦克风(806)、扫描仪(807)和摄像装置(808)。
77.计算机系统(800)还可以包括某些人机接口输出装置。这样的人机接口输出装置可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感官。这样的人机接口输出装置可以包括:触觉输出装置(例如,通过触摸屏(810)、数据手套(未示出)或操纵杆(805)进行的触觉反馈,但是也可以存在不用作输入装置的触觉反馈装置);音频输出装置(例如:扬声器(809)、头戴式耳机(未描绘));视觉输出装置(例如,屏幕(810),包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕,每个均具有或不具有触摸屏输入能力,每个均具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体图像输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘);全息显示器和烟罐(未描绘));以及打印机(未描绘)。这些视觉输出装置(例如屏幕(810))可以通过图形适配器(850)连接至系统总线(848)。
78.计算机系统(800)还可以包括人类可访问的存储装置及其相关联的介质,例如,包括具有cd/dvd等介质(821)的cd/dvd rom/rw(820)的光学介质、拇指驱动器(822)、可移除硬盘驱动器或固态驱动器(823)、诸如磁带和软盘(未描绘)的传统磁性介质、基于专用rom/asic/pld的装置例如安全加密狗(未描绘)等。
79.本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其他瞬态信号。
80.计算机系统(800)还可以包括到一个或更多个通信网络(855)的网络接口(854)。一个或更多个通信网络(855)可以例如是无线的、有线的、光学的。一个或更多个通信网络(855)还可以是局域的、广域的、城域的、车载和工业的、实时的、延时容忍的等。一个或更多个通信网络(855)的示例包括:诸如以太网的局域网,无线lan,包括gsm、3g、4g、5g、lte等的蜂窝网络,包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络,包括canbus的车载和工业网络等。某些网络通常需要附接至某些通用数据端口或外围总线(849)(诸如,例如计算机系统(800)的usb端口)的外部网络接口适配器;其他网络通常通过附接至如下所述的系统总线(例如,到pc计算机系统中的以太网接口或到智能电话计算机系统中的蜂窝网络接口)而集成到计算机系统(800)的核中。使用这些网络中的任何网络,计算机系统(800)可以与其他实体进行通信。这样的通信可以是单向、仅接收的(例如,广播电视)、单向仅发送的(例如,到某些canbus装置的canbus)、或双向的,例如使用局域数字网络或广域数字网络到其他计算机系统。可以在如上所述的这些网络和网络接口中的每一个上使用某些协议和协议栈。
81.以上提及的人机接口装置、人类可访问存储装置和网络接口可以附接至计算机系
统(800)的核(840)。
82.核(840)可以包括一个或更多个中央处理单元(cpu)(841)、图形处理单元(gpu)(842)、现场可编程门区(fpga)形式的专用可编程处理单元(843)、用于某些任务的硬件加速器(844)、图形适配器(850)等。这些装置,连同只读存储器(rom)(845)、随机存取存储器(846)、内部大容量存储装置(847)例如内部非用户可访问型硬盘驱动器、ssd等,可以通过系统总线(848)连接。在一些计算机系统中,系统总线(848)可以是以一个或更多个物理插头的形式可访问的,以使得能够通过附加的cpu、gpu等进行扩展。外围装置可以直接地或通过外围总线(849)附接至核的系统总线(848)。在示例中,屏幕(810)可以连接至图形适配器(850)。外围总线的架构包括pci、usb等。
83.cpu(841)、gpu(842)、fpga(843)和加速器(844)可以执行某些指令,这些指令可以组合构成以上提及的计算机代码。该计算机代码可以存储在rom(845)或ram(846)中。暂态数据也可以存储在ram(846)中,而永久数据可以存储在例如内部大容量存储装置(847)中。可以通过使用缓存存储器来实现对存储装置中的任何存储装置的快速存储和检索,该缓存存储器可以与一个或更多个cpu(841)、gpu(842)、大容量存储装置(847)、rom(845)、ram(846)等紧密相关联。
84.计算机可读介质上可以在其上具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以具有计算机软件领域的技术人员公知且可用的类型。
85.作为示例而非限制,具有架构(800)并且特别地具有核(840)的计算机系统可以提供作为处理器(包括cpu、gpu、fpga、加速器等)执行体现在一个或更多个有形计算机可读介质中的软件的结果的功能。这样的计算机可读介质可以是与如上面介绍的用户可访问的大容量存储装置相关联的介质,以及具有非暂态性质的核(840)的某些存储装置,例如核内部大容量存储装置(847)或rom(845)。可以将实现本公开内容的各种实施方式的软件存储在这样的装置中并且由核心执行(840)。根据特定需要,计算机可读介质可以包括一个或更多个存储器装置或者芯片。软件可以使核(840)并且特别是其中的处理器(包括cpu、gpu、fpga等)执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在ram(846)中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或作为替选方案,计算机系统可以提供作为逻辑硬连线或在电路中实施的以其他方式(例如:加速器(844))的结果的功能,上述逻辑硬连线或在电路中实施的以其他方式(例如:加速器(844))可以代替软件或与软件一起操作以执行本文中描述的特定处理或特定处理的特定部分。在适当的情况下,对软件的参考可以包含逻辑,反之亦然。在适当的情况下,对计算机可读介质的参考可以包含存储用于执行的软件的电路(例如,集成电路(ic))、实施用于执行的逻辑的电路或上述两者。本公开内容包含硬件和软件的任何合适的组合。
86.尽管本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容的范围内的改变、置换和各种替换等效物。因此将认识到,本领域技术人员能够设想虽然本文中没有明确示出或描述但是实施了本公开内容的原理并且因此在其精神和范围内的许多系统和方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1