一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于深度图的建筑物的细粒度化分划与场景图组织方法

2022-10-26 08:47:16 来源:中国专利 TAG:


1.本发明涉及大规模bim建筑模型网页在线实时可视化技术领域,特别是涉及一种基于深度图的建筑物的细粒度化分划与场景图组织方法。


背景技术:

2.随着大数据时代的到来,包括建筑业在内的诸多行业每天都在产生海量的数据,数据规模和复杂度的快速增长已经使行业数据达到了大数据的级别。bim建筑数据的数据量越大,处理这些数据时所需要的系统资源也越多。资源消耗量大已经成为bim建筑数据的突出特点,导致当前bim应用主要为单机应用,如autodesk的revit系列、bentley的bentleyarchitecture系统等。然而,如今单机版的bim可视化共享已经明显不能满足大众的需求,对web3d和bim大数据场景结合的轻量级可视化共享需求也越来越迫切。面向移动互联网的bim数据共享存在着bim建筑数据体量大、共享系统的系统资源少等多方面的突出矛盾。影响bim建筑数据细粒度调度的因素可以总结为两点:
3.第一,bim建筑结构复杂。建筑在功能、地域文化以及使用材料等方面的差异,决定了最终的建筑风格也各有不同,空间结构复杂且差异较大。为了表达各种建筑信息,bim标准中使用上千个预定义的实体类和类型来定义建筑元素,并定义严格的规则通过元素之间直接或间接的引用来描述元素关系或元素的实际数据。这种通过逐级引用来访问数据的方式,致使空间结构本就复杂的bim建筑大数据要逻辑结构上也较复杂。
4.第二,数据拾取及调度效率不高。系统资源有限,如网络带宽、系统缓存等是互联网应用中常需关注的问题。往往需要从感兴趣的数据(如可视数据)出发,在不影响体验质量的前提下,动态装载感兴趣的数据,避免因处理兴趣数据外的其他数据而引起资源不足,影响实时效果甚至出现系统异常的情况。而bim数据往往只考虑建筑方面的需求,对兴趣区域数据的实时拾取和调度支持不足,需要对现有数据进行分析并完善该方面的数据。


技术实现要素:

5.本发明的目的是提供一种bim建筑数据的细粒度化分割方法。结合整个bim建筑的集合空间结构,将bim建筑数据分割为外体、内体、封闭空间。方便bim建筑数据在可视化分析过程中,能以合适的粒度来调度动态更新可视数据,提高系统资源的利用率。
6.为实现上述目的,本发明提供了如下方案:
7.一种基于深度图的大型bim建筑模型细粒度化分划方法,该方法包括以下步骤:
8.s1,对于建筑整体,使用外壳抽取算法,将bim建筑模型分割为外体和内体两部分;
9.s2,对于建筑内体,使用封闭空间划分算法,将楼层划分为一个个单独的封闭空间;
10.s3,基于s2中封闭空间划分的结果,计算子空间之间的拓扑关系,建立索引结构。
11.所属步骤s1中,基于外壳抽取算法,对bim建筑数据进行划分,将完整的bim建筑划分成外体和内体两部分,具体包括:
12.s1.1,构件标注:将建筑物构件与rgb颜色值一一对应,将rgb颜色值作为构件的标注。将标注的颜色建立与模型对象相似的树结构,树的叶节点为颜色值,且与模型对象中的构件在位置上一一对应。标记的方法是生成随机的rgb颜色值,使用该颜色值创建材质对象。经过颜色标注后,构建场景,将建筑物模型添加到场景中。场景内使用正交相机。根据建筑物碰撞盒,改变建筑物模型坐标,将建筑物碰撞盒的中心为(0,0,0)。此时画布上看到的每一种颜色,就代表建筑物模型的对应构件。
13.s1.2,深度图像:建筑物模型被rgb颜色值标注并将其添加到场景中后,通过canvas对其进行分析处理。canvas是一个html5的标签,这个标签可以被浏览器渲染为画布。完成模型渲染后,根据元素id获取当前画布,并将其转化为图像数据,图像大小等于浏览器显示区域的大小。对图像的每个像素进行分析,查找出画布上出现的所有颜色,并将其整理为列表,将这个颜色值列表与建筑物构件一一对应起来,就代表了相机从当前视点观察到的所有构件。
14.s1.3,观察外体:从建筑物包围盒外选取视点。视锥方向指向包围盒中心。在第一步的初步观察中,选择的包围盒六个面的中心点以及八个顶点,对建筑物模型进行初步观察,得到一个颜色列表。然后选择包围盒12条边的中点作为检查点再次观察。若从某个视点观察到了新的颜色,则说明这个方向上存在着未发现的构件。将该视点作为旋转相机、再次观察的起始点。在第二次观察中,相机在与其所在边垂直的平面内旋转,同时对建筑物模型进行观察,若有新的颜色值出现,则记录下来。全部观察完毕后,则根据颜色值与构件的对应关系,将颜色列表转换为构件列表,即建筑物外体构件集合。
15.所属步骤s2中,基于封闭空间划分算法,将一个楼层划分为若干个封闭空间,具体包括:
16.s2.1内体分块:将建筑内体均匀划分成若干块,对分块的构件填充度进行判断。若在某一高度上,被构件填充的分块达到一定比例,则将此高度视为上下两个楼层之间的分隔楼板。找出所有的分隔楼板后则将建筑内体分划为若干个楼层。
17.s2.2,去除过近视点:在楼层内部选择若干个视点,在楼层碰撞盒内均匀分布。在第一步去除中,要去除距离建筑物构件过近或处于构件内部的视点。判断距离是否过近的方法是射线检测。以视点坐标为原点向x轴正负方向、y轴正负方向各发射一条射线,计算该视点距离路层内各构件的距离。若距离小于碰撞盒长宽/这一方向的视点数量,则说明视点距离楼层内构件过近,去除该视点。
18.s2.3,视点合并:去除距离构件过近或在构件内部的视点后,这些视点被分割成一个个矩形区域,进行第二步处理,即合并处于同一区域的视点。合并的方法是构造01矩阵,在矩阵中寻找视点能够组成的矩形。根据找到的矩形,将区域内的所有点x、y坐标之和除以点的数量,获得中心点坐标。找到一个矩形区域并计算得到中心坐标后,就将01矩阵中该矩形区域内的值全部设为0,继续寻找下一个矩形区域,直到01矩阵内的均为0为止。最终获得一个中心点列表。
19.s2.4,深度图观察:在选定的视点位置使用深度图的方法进行观察。楼层内构件需要使用rgb颜色值进行标注,标注的颜色值与构件一一对应。观察的方向是x轴正负方向、y轴正负方向四个方向。观察这四个方向后能够获得一个颜色值列表,这个列表就代表从该视点能够观察到的所有构件。
20.s2.5,构造封闭空间:所有视点都观察完毕后,将获得的若干个颜色值列表按长度从大到小排序。合并是通过两个列表之间的相似度判断的。对于某个颜色值列表,将它与合并后的封闭空间列表比较。若它与其中某个封闭空间的相似度大于0.7,则将它与该封闭空间合并,将它的颜色值添加到封闭空间中;若它与任何一个封闭空间的相似度都不大于0.7,则将它视为一个新的封闭空间。重复以上比较步骤,直到所有颜色值列表都处理完毕,得到封闭空间列表。最后将颜色值列表转换为构件列表,完成封闭空间的构造。
21.所述步骤s3中,基于s2中封闭空间划分的结果,计算子空间之间的拓扑关系,建立索引结构,具体包括:
22.s3.1,空间关系计算:计算子空间之间的空间连接关系。使用语义的方法确定空间中门的位置后,将相机放置在门的中心坐标,在水平方向上旋转后,相机观察到连通的两个子空间。使用rgb颜色值进行标注,基于深度图计算,将获得的构件列表与子空间的构件列表进行相似度判断,确定门的两侧属于哪两个子空间,并记录下来。重复以上步骤直到所有门或连通结构都处理完毕,即可获得子空间之间的连接关系。
23.s3.2,生成室内场景贴图:获取子空间的连接关系后,使用相机获取室内场景的贴图。将该楼层放置在场景中,利用包围盒计算子空间中心坐标,将相机放置在中心坐标的位置,并调整相机视角的角度和宽高比,使相机视锥的远平面正好与墙面重合。向房间所有墙面的方向进行观察,并保存画布上的图像,直到所有墙面都观察完毕。最终生成若干张室内场景贴图。
24.s3.3,构造可视化空间结构:在子空间连通处,即“门”的位置构造可视化的子空间关联结构。该空间结构类似子空间的投影,将连通子空间的门视为其所在的一面墙壁,按墙面长宽比例制作出一个与子空间形状相似的小型空间结构。将空间结构的墙面材质设置为相应方向上的室内场景贴图。当用户在子空间外进行观察时,即可看到子空间内场景的贴图。
25.s3.4,索引结构构建:构建加载索引,当用户漫游到不同位置时,加载相应的空间构件列表。模型被划分为外体和内体,内体被再次划分为若干楼层,楼层之间通过楼梯相互连接;同一楼层的构件被划分为若干子空间,子空间之间通过门或通道,以及相应的可视化空间结构进行连接。
26.根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的bim建筑数据的细粒度化分割方法具有以下效果:第一,自动化,即自动地进行bim建筑场景的分割,通过颜色标注、深度图的方式将bim数据分割为外体和内体,将楼层数据分割为若干个封闭空间,用户可根据自己的专业情况对该数据进行相应深度的专业性理解;第二,细粒度化,即基于可视化应用的空间剔除等特点,将结构复杂的bim建筑场景统一细粒度化表达为层次化粒度,进一步支持应用根据实际情况对合适粒度的数据进行及时调度和访问。
附图说明
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
28.图1为本发明的建筑物细粒度化分划与场景图组织方法效果图;
29.图2为本发明中的外壳抽取算法流程示意图;
30.图3为本发明的子空间划分算法流程示意图;
31.图4为本发明的子空间算法中确定观察视点的两次去除示意图;
32.图5为本发明的子空间划分算法效果示意图;
33.图6为本发明的可视化索引构建示意图。
具体实施方式
34.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
36.如图2所示,本发明提供的bim建筑数据外壳抽取算法,方法包括以下步骤:
37.第一步,查找建筑物模型中的所有构件,使用随机且不重复的rgb颜色值新建材质对象,将新的材质赋给构件,并保存构件与rgb值的对应关系。
38.第二步,创建场景,将场景渲染到画布上,并初始化相机、渲染器,调整模型坐标。
39.第三步,从14个视点对建筑物模型进行初步观察,保存颜色列表。
40.第四步,从12个检查点对外体的完整度进行检查,如果发现了新的颜色,则说明还存在未发现的外体构件,需要旋转相机继续观察。
41.第五步,将观察到的颜色与建筑物构件一一对应,即可获取建筑物外壳。
42.其中,第一步中涉及的关键技术具体包括:
43.构件标注:将建筑物构件与rgb颜色值一一对应,将rgb颜色值作为构件的标注。rgb颜色的总数为256
×
256
×
256=16777216种,若与构件一一对应,则最多能够标记16777216个不同构件。
44.建筑物模型中存在子对象,且子对象能够继续嵌套,形成树形结构,树形结构的叶节点即组成建筑物的构件,随意改变其结构可能会破坏建筑物对象。因此将标注的颜色建立与模型对象相似的树结构,树的叶节点为颜色值,且与模型对象中的构件在位置上一一对应。
45.标记的方法是生成随机的rgb颜色值,使用该颜色值创建材质对象。为了使贴图效果在所有方向上显示,避免在观察时遗漏构件,将材质设定为双面显示。
46.经过颜色标注后,构建场景,将建筑物模型添加到场景中。场景内使用正交相机。根据建筑物碰撞盒,改变建筑物模型坐标,将建筑物碰撞盒的中心为(0,0,0),方便后续观察时改变视点。为了防止构件连接处颜色混合变色,webglrenderer不能开启反锯齿。
47.此时画布上看到的每一种颜色,就代表建筑物模型的对应构件。
48.第三步对bim建筑进行观察时,涉及的关键技术包括:
49.深度图:建筑物模型被rgb颜色值标注并将其添加到场景中后,通过canvas对其进行分析处理。canvas是一个html5的标签,这个标签可以被浏览器渲染为画布。完成模型渲染后,根据元素id获取当前画布,并将其转化为图像数据,图像大小等于浏览器显示区域的大小。对图像的每个像素进行分析,查找出画布上出现的所有颜色,并将其整理为列表,将
这个颜色值列表与建筑物构件一一对应起来,就代表了相机从当前视点观察到的所有构件。
50.视点选择:在基于深度图的方法中,要想获取完整的外壳构件,最关键的就是要从尽可能全方位的视角观察建筑物模型。为了适应各种形状的bim建筑,从建筑物包围盒外选取视点。视点方向朝向包围盒中心,即(0,0,0)。
51.由于在观察的过程中使用的是orthographiccamera,即正交相机,因此只要从包围盒外选取视点,只要与包围盒中心在一条直线上,无论距离远近,观察到的都是相同投影。在本文中,初步观察是在包围盒外,与包围盒同一中心,且长宽高分别为包围盒两倍的立方体上选择视点。旋转观察则是在以包围盒任一顶点与中心的距离与半径的球体上选择视点。这样的选择可以保证视点始终处于建筑物之外,且建筑物不脱离相机视野范围。
52.初始视点与强化视点:在第一步的初步观察中,选择的视点为立方体六个面的中心点以及八个顶点。从这14个视点对建筑物模型进行初步观察,得到一个颜色列表。将它转化为构件集s0,即初始视点观察的结果。
53.然后选择立方体12条边的中点作为检查点再次观察。对于i∈[1,12],将从第i个视点观察到的构件集si与初始构件集s0比较,若则不做处理;否则,说明这个方向上存在着初步观察中未发现的构件。将该视点记录下来,作为旋转相机、再次观察的起始点。保存的形式为如(1,1,0)、(0,-1,1)的三维空间向量。x、y、z的坐标代表了它们处在哪一条边上。
[0054]
对所有第二次观察的起始点,相机在于其所在边垂直的平面内旋转,分别顺时针、逆时针旋转45
°
。在旋转相机的同时,从相机所在的视点对建筑物模型进行观察,若有新的颜色值出现在画布内,则保存并记录到外体构件集s;若经过旋转没有再发现新的颜色值,则停止这一方向的旋转,继续处理其他起始点。
[0055]
全部观察完毕后,获得构件集s,即建筑物外体构件集合。
[0056]
如图4所示,本发明提供的bim楼层信息细粒度化算法,即封闭空间划分算法,具体实现步骤包括:
[0057]
第一步,查找楼层内所有构件,使用随机且不重复的rgb颜色值新建材质对象,将新的材质赋给构件,并保存构件与rgb值的对应关系。
[0058]
第二步,创建场景,将场景渲染到画布上,并初始化相机、渲染器,在楼层内选择均匀分布的视点。
[0059]
第三步,计算每个视点到周围构件的距离,将距离过近的视点去除。
[0060]
第四步,寻找视点能够组成的矩形区域,将区域内的视点合并为一个中心视点,直到所有视点都处理完毕。
[0061]
第五步,从每个中心视点出发,向前后左右四个方向进行深度图观察,得到颜色值列表。
[0062]
第六步,将相似的结果视为同一个封闭空间,进行合并,最终转化为封闭空间列表。
[0063]
第七步,在子空间的连接处进行深度图计算,根据相似度确定子空间拓扑结构。
[0064]
在第三步的首次去除过程中,涉及的关键技术包括:
[0065]
去除过近视点:如图5中第一次处理所示。在楼层内部选择视点,高度确定为楼层
高度的一半。将视点的高度设定为楼层高度的一半,可以使得观察时,上下、左右方向上分布的构件较为平均,降低遗漏构件的可能。初始选择的视点是30*30=900个,在楼层碰撞盒内均匀分布。根据楼层内构件分布,开始对视点进行第一步去除。
[0066]
在第一步去除中,要去除距离建筑物构件过近或处于构件内部的视点。从这些视点进行观察,可能会导致观察得到的构件过少,影响通过相似合并构造封闭空间的结果,因此要提前去除。
[0067]
判断距离是否过近的方法是射线检测。以视点坐标为原点向x轴正负方向、y轴正负方向各发射一条射线,判断该视点距离路层内各构件的距离di。若di《d0,即碰撞盒长宽/行列上视点数量,则说明视点距离楼层内构件过近,需要去除。
[0068]
在进行判断的同时,定义一个01矩阵m。矩阵的行列与视点分布相同。将去除的视点定义为0,保留的视点定义为1,获得01矩阵,用于之后的处理。
[0069]
在第四步的合并区域内视点过程中,涉及的关键技术包括:
[0070]
视点合并:如图5中第二次处理所示。去除距离构件过近或在构件内部的视点后,这些视点被分割成一个个矩形区域。在同一区域内的视点通常拥有相似的观察结果,重复观察的意义不大,因此对视点进行第二步处理,即合并处于同一区域的视点。
[0071]
合并同一区域内的视点需要利用第一步中的01矩阵m,问题转化为寻找01矩阵中由1构成的矩形。具体方法是从(0,0)的位置开始遍历矩阵,找到第一个值为1的点后,向y轴方向继续寻找,找出这个矩形最远可以延伸到哪里;然后在下一列继续寻找,直到找到值为0的点,x方向上的长度即为矩形长度,长度最小的“最远点”即为矩形宽度。根据找到的矩形,将区域内的所有点x、y坐标之和除以点的数量,获得中心点坐标p。
[0072]
找到一个矩形区域并计算得到中心坐标p后,就将01矩阵m中该矩形区域内的值全部设为0,继续寻找下一个矩形区域,直到m内的均为0为止。最终获得一个中心点列表。
[0073]
在第五步的观察过程中,涉及的关键技术为:
[0074]
深度图观察:在选定的视点位置使用深度图的方法进行观察。楼层内构件需要使用rgb颜色值进行标注,标注的颜色值与构件一一对应。获取并处理深度图的方法与外壳抽取中的深度图相同。
[0075]
观察的方向是x轴正负方向、y轴正负方向四个方向。观察这四个方向后能够获得一个构件列表oi,这个列表就代表从该视点能够观察到的所有构件。继续移动到下一个视点的位置再次观察,直到所有视点都观察完毕。
[0076]
在第六步的构造封闭空间过程中,涉及的关键技术为:
[0077]
深度图观察:在选定的视点位置使用深度图的方法进行观察。楼层内构件需要使用rgb颜色值进行标注,标注的颜色值与构件一一对应。获取并处理深度图的方法与外壳抽取中的深度图相同。
[0078]
观察的方向是x轴正负方向、y轴正负方向四个方向。观察这四个方向后能够获得一个颜色值列表,这个列表就代表从该视点能够观察到的所有构件。继续移动到下一个视点的位置再次观察,直到所有视点都观察完毕。
[0079]
本发明提供的建筑模型细粒度化存储-加载索引算法,具体实现步骤包括:
[0080]
第一步,将相机放置在子空间之间的门或连接处,通过计算构件列表相似度确定空间关系。
[0081]
第二步,在子空间中心对场景进行观察,通过画布保存场景渲染结果,生成室内场景贴图。
[0082]
第三步,在子空间之间的连接处,根据子空间形状和室内场景贴图,构造可视化空间结构。
[0083]
第四步,建立外体-内体-楼层-子空间的索引结构并保存。
[0084]
当前webbim数据的网上加载与网页在线渲染都是以文件为处理单位,一个构筑物文件的数据量动辄几百mb甚至几gb。当多人上网在线并发访问编辑bim场景时,这种“粗粒度”数据文件往来传输在移动互联网上,会给网络加载与网页缓存渲染带来严重的阻塞。这是困扰web3d/webbim大数据在线可视化技术的瓶颈之一。
[0085]
本发明提供了一种bim建筑数据的细粒度化分割方法。结合整个bim建筑的几何空间结构,将bim建筑数据分割为外体、内体、子空间。方便bim建筑数据在可视化分析过程中,能以合适的粒度来调度动态更新可视数据,提高系统资源的利用率,方便粒度数据的快速访问和管理。
[0086]
本技术中应用了典型案例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献