基于BIM的室内地图模型构建方法及装置
技术领域
本发明属于室内寻路技术领域,尤其涉及一种基于BIM的室内地图模型构建方法及装置。
背景技术
BIM(Building Information Modeling,建筑信息模型)文件***地记录了建筑全生命周期的各类信息,使用BIM数据自动生成室内地图模型可以显著降低室内地图模型的建立成本,并为室内路径查询和许多其他相关研究和应用奠定技术基础。
传统的室内地图模型根据二维图纸进行构建,丢失了丰富的建筑构件语义信息。基于网格的地图模型和拓扑地图模型属于两种典型的模型。其中,基于网格的地图模型是一种广泛熟知的室内地图模型,它将室内三维空间离散为覆盖整个空间的有限数量的不重叠空间单元。每个空间单元通过关联其对应的空间单元占据状态来表示该空间单元是可通过或者不可通过的区域。基于网格的地图模型可准确识别起点和终点。然而,应用于室内路径查询时运行效率并不高,特别是在具有数百万个单元的网格地图模型中,运行效率问题越发明显。
拓扑地图模型将室内空间建模为由物理节点和边组成的地形网。其中,节点表示室内空间位置,边则表示节点之间的路径。当前,拓扑地图模型已被各种基于上下文感知的导航服务广泛使用。目前构建拓扑图模型的技术主要包括可视图法(Visibility Graph)、直骨架法(Straight Skeletons)和广义Voronoi图法(Generalized Voronoi Graphs,GVG)。
可视图由一组可视节点和边组成。可视节点通常表示重要的空间位置,例如空间区域的入口、出口,障碍物的顶点。由两个可视节点形成的边是不与空间中的任何对象相交的节点连线。可视图可应用于路径查询,但查询结果并不完全符合人类对路径的认知。此外,边的数量可能会随着可视节点的数量呈指数增长。直骨架能够捕获平面几何形状的中轴线并将多边形转换为图形。然而,直骨架方法可能会产生许多不必要的节点和弯曲边缘,更加适用于构建具有不规则多边形组件的室内地图模型。GVG能够捕获广义Voronoi图的边界,并用直线替换其中的曲线。拓扑地图模型的主要缺点是无法实现与网格地图模型一样高的精确度。
综上所述,传统的室内地图模型构建方法丢失了丰富的建筑构件语义信息,基于网格的地图模型运行效率低,拓扑地图模型精确度低。
发明内容
为克服上述现有的室内地图模型构建方法丢失了建筑构件语义信息、运行效率低或精确度低的问题或者至少部分地解决上述问题,本发明实施例提供一种基于BIM的室内地图模型构建方法及装置。
根据本发明实施例的第一方面,提供一种基于BIM的室内地图模型构建方法,包括:
根据建筑的BIM数据构建所述建筑的基于网格的地图模型;
根据所述基于网格的地图模型,构建所述建筑的拓扑地图模型;
根据所述基于网格的地图模型和所述拓扑地图模型,生成所述建筑的混合室内地图模型;
其中,所述混合室内地图模型包括所述基于网格的地图模型中每个网格的通行状态,以及所述拓扑地图模型中的拓扑节点和根据所述拓扑节点确定的可通行路线。
具体地,根据建筑的BIM数据构建所述建筑的基于网格的地图模型的步骤包括:
从所述BIM数据的IFC文件中提取所述建筑中构件的几何信息和语义信息;
根据所述构件的几何信息,将所述构件映射到所述建筑的平面板块的网格中;
根据所述构件的语义信息,设置所述构件映射到的每个所述网格的通行状态;
根据所述网格的通行状态,构建所述基于网格的地图模型。
具体地,从所述BIM数据的IFC文件中提取所述建筑中每个构件的几何信息和语义信息的步骤包括:
从IfcProduct中获取所述构件的几何信息;其中,所述几何信息包括形状表示和位置布局;
将IfcSlab作为可通行区域;
将IfcDoor作为可穿过障碍物的构件;
将除IfcSlab和IfcDoor以外的其他IfcProduct作为障碍物;其中,所述其他IfcProduct包括IfcWall。
具体地,根据所述构件的几何信息,将所述构件映射到所述建筑的平面板块的网格中的步骤包括:
将IfcSlab映射到二维平面;
对所述二维平面以n*n的网格大小进行栅格化,并将IfcSlab所覆盖的网格标记为可通行状态;其中,n为正整数;
将所述障碍物映射到所述二维平面,并将所述障碍物所覆盖的网格标记为不可通行状态;
将IfcDoor映射到所述二维平面,并将IfcDoor所覆盖的网格标记为可通行状态。
具体地,根据所述基于网格的地图模型,构建所述建筑的拓扑地图模型的步骤包括:
根据图像细化方法,对所述基于网格的地图模型中可通行状态的网格进行细化;
对细化后的所述可通行状态的网格建立拓扑链接,构建所述拓扑地图模型。
具体地,根据图像细化方法,对所述基于网格的地图模型中可通行状态的网格进行细化的步骤包括:
在第一个子迭代中,对于任一所述可通行状态的网格k,若满足如下条件,则将该可通行状态的网格删除:
Ck=1;
2≤Dk≤6;
在第二个子迭代中,对于任一所述可通行状态的网格k,若满足如下条件,则将该可通行状态的网格删除:
Ck=1;
2≤Dk≤6;
其中,Ck为可通行状态的网格k的连通性,Dk为可通行状态的网格k的扩展性,Oki为可通行状态的网格k的第i个相邻单元的占用状态,i的范围为1-8;
直到所述第一个子迭代和第二个子迭代中均没有删除可通行状态的网格。
具体地,对细化后的所述可通行状态的网格建立拓扑链接,构建所述拓扑地图模型的步骤包括:
从细化后的所述可通行状态的网格中获取扩展性为1的网格;
将扩展性为1的网格标记为起始单元,将所述起始单元唯一的相邻单元标记为构建可通行路线的当前遍历单元;
若所述当前遍历单元的扩展性大于2,则将所述当前遍历单元标记为结束节点,构建从所述起始单元到所述结束节点的可通行路线,并将所述结束节点标记为起始单元,将所述起始单元的每个未遍历的相邻单元标记为下一次构建可通行路线的当前遍历单元;
若所述当前遍历单元的扩展性等于2,且所述当前遍历单元的未遍历的相邻单元不位于从所述起始单元到所述当前遍历单元的行中,则将所述当前遍历单元标记为结束节点,构建从所述起始单元到所述结束节点的可通行路线,并将所述结束节点标记为起始单元,将所述起始单元的未遍历的相邻单元标记为下一次构建可通行路线的当前遍历单元;
若所述当前遍历单元的扩展性等于2,且所述当前遍历单元的未遍历的相邻单元位于从所述起始单元到所述当前遍历单元的行中,则将所述未遍历的相邻单元标记为下一次构建可通行路线的当前遍历单元;
若所述当前遍历单元的扩展性等于1,则将所述当前遍历单元标记为结束节点,构建从所述起始单元到所述结束节点的可通行路线。
具体地,根据所述基于网格的地图模型和所述拓扑地图模型,生成所述建筑的混合室内地图模型的步骤包括:
根据细化后的所述可通行状态的网格在细化前的所述基于网格的地图模型中的状态标记为拓扑节点;
将所述基于网格的地图模型中每个网格的状态和所述拓扑地图模型中的可通行路线进行融合,构建所述混合室内地图模型。
根据本发明实施例的第二个方面,提供一种基于BIM的室内地图模型构建装置,其特征在于,包括:
第一构建模块,用于根据建筑的BIM数据构建所述建筑的基于网格的地图模型;
第二构建模块,用于根据所述基于网格的地图模型,构建所述建筑的拓扑地图模型;
生成模块,用于根据所述基于网格的地图模型和所述拓扑地图模型,生成所述建筑的混合室内地图模型;
其中,所述混合室内地图模型包括所述基于网格的地图模型中每个网格的通行状态,以及所述拓扑地图模型中的拓扑节点和根据所述拓扑节点确定的可通行路线。
根据本发明实施例的第三个方面,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于BIM的室内地图模型构建方法。
本发明实施例提供一种基于BIM的室内地图模型构建方法及装置,该方法通过根据BIM数据构建基于网格的地图模型,使得基于网格的地图模型中包含建筑构件的语义和几何信息,然后使用基于网格的地图模型构建拓扑地图模型,使得两个模型之间存在关联关系,便于将两个模型进行融合生成混合室内地图模型,混合室内地图模型同时具有基于网格的地图模型和拓扑地图模型的特征,精度高且运行效率高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于BIM的室内地图模型构建方法整体流程示意图;
图2为本发明实施例提供的基于BIM的室内地图模型构建方法中空格的八邻域分布示意图;
图3为本发明实施例提供的室内路径查询方法整体流程示意图;
图4为本发明实施例提供的基于BIM的室内地图模型构建装置整体结构示意图;
图5为本发明实施例提供的电子设备整体结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
在本发明的一个实施例中提供一种基于BIM的室内地图模型构建方法,图1为本发明实施例提供的基于BIM的室内地图模型构建方法整体流程示意图,该方法包括:S101,根据建筑的BIM数据构建所述建筑的基于网格的地图模型;
具体地,从BIM数据中提取定义的建筑构件的几何和语义信息,然后根据建筑构件的几何和语义信息将建筑构件映射到平面网格中,生成基于网格的室内地图模型。
基于网格的地图模型很容易建成,并且能够支持不同类型的基于几何的路径查询以及空间单元级的交互。但是,大量的空间单元可能会使算法的运行时间指数增加,从而导致性能问题及相应的其他问题。
S102,根据所述基于网格的地图模型,构建所述建筑的拓扑地图模型;
与现有工作不同,本实施例直接根据基于网格的地图模型自动生成拓扑地图模型,使得基于网格的地图模型和拓扑地图模型之间存在关联关系,便于将两个模型进行融合。
S103,根据所述基于网格的地图模型和所述拓扑地图模型,生成所述建筑的混合室内地图模型;其中,所述混合室内地图模型包括所述基于网格的地图模型中每个网格的通行状态,以及所述拓扑地图模型中的拓扑节点和根据所述拓扑节点确定的可通行路线。
将生成的基于网格的地图模型和拓扑地图模型进行组合,形成混合室内地图模型。基于网格的地图模型和拓扑地图模型通常应用于不同的场景,基于网格的地图模型精确度高,而拓扑地图模型可以高效地找到最短路径,混合室内地图模型继承了网格地图模型的准确性和拓扑地图模型中路径的高效查询。
每个网格的通行状态包括可通行状态和不可通行状态,网格的通行状态由映射到该网格的构建是否为障碍物确定。拓扑地图模型中的拓扑节点为基于网格的地图模型中的某些网格,将拓扑节点进行拓扑链接构成可通信路线。
本实施例通过根据BIM数据构建基于网格的地图模型,使得基于网格的地图模型中包含建筑构件的语义和几何信息,然后使用基于网格的地图模型构建拓扑地图模型,使得两个模型之间存在关联关系,便于将两个模型进行融合生成混合室内地图模型,混合室内地图模型同时具有基于网格的地图模型和拓扑地图模型的特征,精度高且运行效率高。
在上述实施例的基础上,本实施例中根据建筑的BIM数据构建所述建筑的基于网格的地图模型的步骤包括:从所述BIM数据的IFC文件中提取所述建筑中构件的几何信息和语义信息;根据所述构件的几何信息,将所述构件映射到所述建筑的平面板块的网格中;根据所述构件的语义信息,设置所述构件映射到的每个所述网格的通行状态。
其中,IFC(Industry Foundation Class,工业基础类)是国际公认的BIM数据规范,本实施例假设所采用的BIM数据都符合IFC规范。从IFC文件中提取建筑构件的几何信息和语义信息,在信息提取过程中,在尽量减少信息冗余的前提下提取构建基于网格的地图模型所必需的几何和语义信息。
然后将三维的建筑构件离散化,并映射到平面网格中。在构建平面网格时,先计算建筑中平面板块的边界框,将平面中右下点的坐标设置为(0,0),并且使用方形网格来模拟室内空间。然后,让每个空间单元占据n×n cm2大小的区域,将平面板块离散成方形网格,也可以为六边形网格。将建筑构件映射到平面网格中。如果某个网格被障碍物占据,那么它是无法通行的;否则,该网格是可通行的。从而获得基于网格的地图模型。首先提取所需建筑构件并将其映射到一个平面,其代表平面板块。然后将平面分割成许多不重叠的正方形网格。障碍物占据的方块为不可通行的区域,其他方框为可通行区域。
显然,n越小,基于网格的地图模型就越准确。如果一个网格被障碍物占据,那么将它的通行特征值设置为0;否则,将其通行特征值设置为1。网格k的通行状态定义如下:
在上述实施例的基础上,本实施例中从所述BIM数据的IFC文件中提取所述建筑中每个构件的几何信息和语义信息的步骤包括:从IfcProduct中获取所述构件的几何信息;其中,所述几何信息包括形状表示和位置布局;将IfcSlab作为可通行区域;将IfcDoor作为可穿过障碍物的构件;将除IfcSlab和IfcDoor以外的其他IfcProduct作为障碍物;其中,所述其他IfcProduct包括IfcWall。
其中,任何具有几何形状的建筑构件都可以是路径查询过程中的可通过空间,例如平板或障碍物,例如墙壁。因此,具有三维几何形状的所有对象都是建筑信息提取过程的提取对象。由于只有IfcProduct可以根据IFC规范存储形状表示和位置布局,因此本实施例考虑从IfcProduct中继承而来的建筑构件。
在建立基于网格的地图模型之前,需要提取两种类型的基本语义信息。第一个是IfcSlab,因为IfcSlab定义了为行走提供空间的slab。第二个是IfcDoor,它为像IfcWall这样的障碍物提供了通道。而基于网格的地图模型并不能对障碍物进行自动的识别。
在上述实施例的基础上,本实施例中根据所述构件的几何信息,将所述构件映射到所述建筑的平面板块的网格中的步骤包括:将IfcSlab映射到二维平面;对所述二维平面以n*n的网格大小进行栅格化,并将IfcSlab所覆盖的网格标记为可通行状态;将所述障碍物映射到所述二维平面,并将所述障碍物所覆盖的网格标记为不可通行状态;将IfcDoor映射到所述二维平面,并将IfcDoor所覆盖的网格标记为可通行状态。
具体地,从IFC文件中提取有价值的几何和语义信息之后,对门和障碍物与其所重叠的平面板块执行交叉操作。通过交叉操作识别门和障碍物与平面板块之间的交叉区域,从而产生边界障碍。由于平面板块是一个平面,因此交互操作结果也将是一个平面,并且可以容易地被映射到平面网格中。将边界障碍所映射到的平面网格的状态设置为不可通行状态,其他平面网格设置为可通行状态。
在上述实施例的基础上,本实施例中根据所述基于网格的地图模型,构建所述建筑的拓扑地图模型的步骤包括:根据图像细化方法,对所述基于网格的地图模型中可通行状态的网格进行细化;对细化后的所述可通行状态的网格建立拓扑链接,构建所述拓扑地图模型。
具体地,本实施例采用图像细化理论根据基于网格的地图模型自动生成拓扑地图模型。基于网格的地图模型将每个空间单元格标记为可通行状态或不可通行状态。在基于网格的地图模型被细化之后,获得可通行网格的骨架。显然,很容易从基于网格的地图模型的骨架中获取拓扑地图模型。因此,从基于网格的地图模型生成拓扑地图模型包括两个步骤:网格细化和拓扑链接。本实施例不限于网格细化的方法和拓扑链接的方法。网格细化的步骤旨在移除所选择的可通行网格,在保留原始网格地图模型的拓扑关系的基础上舍弃大部分原始可通行网格。拓扑关系包括范围和连通性。拓扑链接的步骤旨在根据细化后的可通行网格构建可通行路线。
在上述实施例的基础上,本实施例中根据图像细化方法,对所述基于网格的地图模型中可通行状态的网格进行细化的步骤包括:在第一个子迭代中,对于任一所述可通行状态的网格k,若满足如下条件,则将该可通行状态的网格删除:
Ck=1;
2≤Dk≤6;
在第二个子迭代中,对于任一所述可通行状态的网格k,若满足如下条件,则将该可通行状态的网格删除:
Ck=1;
2≤Dk≤6;
其中,Ck为可通行状态的网格k的连通性,Dk为可通行状态的网格k的扩展性,Oki为可通行状态的网格k的第i个相邻单元的占用状态,i的范围为1-8;直到所述第一个子迭代和第二个子迭代中均没有删除可通行状态的网格,网格细化过程停止。
具体地,细化算法可以分为两大类,即迭代和非迭代。虽然非迭代算法比迭代算法更快,但是并不总能产生准确的细化结果。本实施例采用并行迭代算法来细化基于网格的地图模型。在进行细化之前进行如下定义。
定义1占用状态,基于网格的地图模型中网格的占用状态是指网格是否被障碍物占据。
用Ok来表征网格k的占用状态,则有:
用Pk来表示网格k的通行特征值,很明显有:
Pk=1-Ok (3)
定义2连通性,连通性表示与特定网格相连接的对象数量。
通常,网格k的连通性Ck可以定义为:
其中,S={1,3,5,7},并且ki是网格k的第i个相邻单元。具体地,网格k的八个相邻单元从网格k的右侧相邻单元开始以逆时针顺序编号。图2显示了网格k的八个相邻单元。
定义3扩展性,网格k的扩展性Dk是网格k的相邻单元中可通过网格的数量,则有:
本实施例使用两个子迭代来稀疏基于网格的地图模型。
在上述实施例的基础上,本实施例中对细化后的所述可通行状态的网格建立拓扑链接,构建所述拓扑地图模型的步骤包括:从细化后的所述可通行状态的网格中获取扩展性为1的网格;将扩展性为1的网格标记为起始单元,将所述起始单元唯一的相邻单元标记为构建可通行路线的当前遍历单元;若所述当前遍历单元的扩展性大于2,则将所述当前遍历单元标记为结束节点,构建从所述起始单元到所述结束节点的可通行路线,并将所述结束节点标记为起始单元,将所述起始单元的每个未遍历的相邻单元标记为下一次构建可通行路线的当前遍历单元;若所述当前遍历单元的扩展性等于2,且所述当前遍历单元的未遍历的相邻单元不位于从所述起始单元到所述当前遍历单元的行中,则将所述当前遍历单元标记为结束节点,构建从所述起始单元到所述结束节点的可通行路线,并将所述结束节点标记为起始单元,将所述起始单元的未遍历的相邻单元标记为下一次构建可通行路线的当前遍历单元;若所述当前遍历单元的扩展性等于2,且所述当前遍历单元的未遍历的相邻单元位于从所述起始单元到所述当前遍历单元的行中,则将所述未遍历的相邻单元标记为下一次构建可通行路线的当前遍历单元;若所述当前遍历单元的扩展性等于1,则将所述当前遍历单元标记为结束节点,构建从所述起始单元到所述结束节点的可通行路线。
具体地,本实施例基于细化后的网格地图模型,通过拓扑链接构建拓扑地图模型。细化后的网格地图模型中,扩展性值等于1的网格是拓扑地模型图中的节点。拓扑链接过程从任何Dk=1的网格k开始,网格k被标记为起始单元s和当前遍历单元c。然后,从c到其唯一的相邻单元n获得拓展性方向。n被标记为当前遍历单元c,并根据以下四个条件进行处理:
a、若Dc>2,则将c标记为结束节点e,构建从s到e的可通行路线,并将c标记为起始单元s,将s的每个未遍历的相邻单元标记为下一次构建可通行路线的当前遍历单元c;
b、若Dc=2且当前遍历单元c的未遍历的相邻单元不位于从s到c的行中,则将c标记为结束节点e,构建从s到e的可通行路线,并将c标记为起始单元s,将s的未遍历的相邻单元标记为下一次构建可通行路线的当前遍历单元c;
c、若Dc=2且当前遍历单元c的未遍历的相邻单元位于从s到c的行中,则将未遍历的相邻单元标记为下一次构建可通行路线的当前遍历单元c;
d、若Dc=1,则将当前遍历单元c标记为结束节点e,构建从起始单元s到结束节点e的可通行路线。
如下代码总结了使用基于网格的地图模型生成拓扑地图模型的整个过程。其中,第2行对基于网格的地图模型进行细化,第3-5行产生拓扑地图模型,第7-16行显示了基于网格的地图模型细化的详细步骤。第10行和第11行执行网格细化中的第一次子迭代,第12和13行处理第二次子迭代。第17行和第31行是拓扑链接过程,以递归方式操作。
在上述实施例的基础上,本实施例中根据所述基于网格的地图模型和所述拓扑地图模型,生成所述建筑的混合室内地图模型的步骤包括:根据细化后的所述可通行状态的网格在细化前的所述基于网格的地图模型中的状态标记为拓扑节点;将所述基于网格的地图模型中每个网格的状态和所述拓扑地图模型中的可通行路线进行融合,构建所述混合室内地图模型。
具体地,混合室内地图模型具有基于网格的地图模型和拓扑地图模型的特征。通过将细化的基于网格的地图中的可通行网格标记为拓扑节点来优化基于网格的地图模型。
因此,对于优化后的基于网格的地图模型中的网格k,其状态Sk为:
混合室内地图模型同时具有已优化的基于网格的地图模型和拓扑地图模型的特征,以用于路径查找。室内地图模型应包括楼层和非平面路径。基于网格的地图模型准确地模拟了楼层路径。非水平路径包括楼梯、坡道和电梯。楼梯和坡道分别由IfcStair和IfcRamp定义。本实施例获取IfcStair和IfcRamp定义的对象,并在拓扑图模型中直接构造每个非水平对象的两个端点之间的物理通行路线。
在本发明的另一个实施例中提供一种基于上述任一室内地图模型构建方法的室内路径查询方法,图3为本发明实施例提供的室内路径查询方法整体流程示意图,该方法包括:301,基于扩展策略从混合室内地图模型中获取距离预设起点最近的拓扑节点和距离预设终点最近的拓扑节点,将距离所述预设起点最近的拓扑节点作为拓扑单元起点,将距离所述预设终点最近的拓扑节点作为拓扑单元终点;
其中,路径查询通常是指寻找两点之间的路线,同时避免与障碍物相碰撞。路径查询也称为路径规划、轨迹规划和寻路,是机器人、自动化、计算机辅助设计和计算机图形学等领域中的一个基本问题。由于室内地图的缺乏,室内路径查询仍然是一项极具挑战的任务。目前,室内地图模型的建立依然依赖于手动建模的方式。
基于网格的地图可以精确地识别三维室内空间中的起点和终点,并实现准确的路径查询。然而,在基于网格的地图模型中,执行路径查询算法进行路径规划时效率低下。拓扑地图模型可以解决在网格地图模型中执行寻路算法效率低下的问题。但是,在拓扑地图中准确识别室内环境中的起点和终点仍然是一项亟待解决的问题。由于起点和终点通常不位于拓扑地图模型中的拓扑节点上,并且与最近的拓扑节点不相匹配。在没有文本说明的情况下,路径规划过程中可能在起点和终点附近生成不合理的路径,例如迂回路径和穿越障碍物路径。
现有研究中,在进行路径查询时单独使用基于网格的地图模型或拓扑地图模型。单独应用一种地图模型的方法将导致路径寻找效率低下或生成路径不准确。本实施例中的混合室内地图模型首先使用BIM中所提取的建筑数据构建基于网格的地图模型,然后在基于网格的地图模型的基础上生成拓扑地图模型。由于混合室内地图模型综合了网格地图模型的精确度和拓扑地图模型的路径查询效率,因此可以实现准确高效的室内路径查询。
A-star算法和广度优先搜索(Breadth First Search,BFS)算法等一些最短路径算法可以直接应用于网格地图模型中进行寻路。但是,当网格数量很大时,这些算法效率不高。类似地,Dijkstra等算法也可用于在拓扑地图模型中找到最短路径。然而,在缺乏文本限定的情况下,将空间起点或终点映射到拓扑地图模型中的节点上并不简单,尤其是在复杂的室内环境中。
使用混合室内地图模型,可以通过两个步骤解决路径查询问题。首先,利用扩展策略来使用优化的基于网格的地图来找到离给定起点和终点最近的拓扑节点。扩展策略可以为广度优先搜索策略。其次,使用像Dijkstra这样的算法来计算两个拓扑节点之间的最短路径。最后,可以通过链接三个独立但存在联系的路径来获得最短路径。三条路径分别是从预设起点到最近的拓扑单元起点,拓扑单元起点到拓扑单元终点,以及拓扑单元终点到预设终点的路径。
S302,根据所述混合室内地图模型中的可通行路线,基于Dijkstra算法计算所述拓扑单元起点和所述拓扑单元终点之间的最短路径;
在寻找两个拓扑单元之间的最短路径时,在拓扑地图模型的基础上生成临时拓扑地图。首先,临时拓扑地图模型中将两个拓扑单元之间的路径分段。假设网格k位于路径(i,j)中,则(i,j)被临时分段为(i,k)和(k,j)。然后,利用Dijkstra在临时拓扑地图中找到最短路径。
S303,根据从所述预设起点到所述拓扑单元起点之间的最短路径、从所述预设终点到所述拓扑单元终点之间的最短路径和所述拓扑单元起点和所述拓扑单元终点之间的最短路径,获取从所述预设起点到所述预设终点之间的最短路径。
本实施例中由于基于网格的地图模型包含室内空间的语义信息,同时拓扑地图模型在寻路方面是高效的,应用混合室内地图模型中网格地图模型的特征将起点和终点匹配到距离最近的拓扑节点,并使用混合室内地图模型中拓扑地图模型的特征查询拓扑单元起点和拓扑单元终点之间的最短路径,实现准确高效的路径查询。
在上述实施例的基础上,本实施例中基于扩展策略从混合室内地图模型中获取距离预设起点最近的拓扑节点和距离预设终点最近的拓扑节点的步骤包括:利用广度优先搜索策略寻找距离指定起点和终点最近的拓扑节点,将预设起点和预设终点映射到包含它们的网格中;
若所述预设起点映射到的网格为拓扑节点,则将所述预设起点作为所述拓扑单元起点;若所述预设终点映射到的网格为拓扑节点,则将所述预设终点作为所述拓扑单元终点,停止查询;
若所述预设起点映射到的网格为不为拓扑节点,则判断所述预设起点的相邻单元是否为拓扑节点,如果不为拓扑节点,则判断相邻单元的相邻单元是否为拓扑节点,以此迭代,直到找到至少一个拓扑节点。当找到多个拓扑节点时,选择与预设起点之间经过倾斜网格数量最少的拓扑节点作为所述拓扑单元起点;
若所述预设终点映射到的网格为不为拓扑节点,则判断所述预设终点的相邻单元是否为拓扑节点,如果不为拓扑节点,则判断相邻单元的相邻单元是否为拓扑节点,以此迭代,直到找到至少一个拓扑节点。当找到多个拓扑节点时,选择与所述预设终点之间经过倾斜网格数量最少的拓扑节点作为所述拓扑单元终点。
如下代码使用混合室内地图模型总结了寻路算法。其中,第2行和第3行使用基于网格的映射来分别查询从起点和终点到它们最近的拓扑单元的路径。第4行找到拓扑地图模型上两个拓扑单元之间的最短路径。具体地,第7-14行给出了使用基于网格的地图模型找到最近拓扑节点的详细步骤。第15-22行是使用Dijkstra算法计算最短路径的过程,其中第16-20行构造临时拓扑地图模型。
本实施例解决了路径查询中存在迂回和穿越障碍物的问题,这些问题存在于使用拓扑地图来进行路径查询的寻路方案中,本实施例使用基于网格的地图模型的特征查询从起点和终点到拓扑节点的路径,因此起点和终点周围的路线不会与拓扑边缘重叠;相反,使用拓扑地模型图获得两个拓扑单元之间的路径,两个拓扑单元之间的大部分路线与拓扑边缘重叠。本实施例没有在拓扑图中搜索最近的拓扑节点,因此避免了路径迂回和穿越问题。
为了评估了本实施例的效率,实验不考虑人群的影响,而只考虑自由流动对单个人的影响,实验研究结果如表1所示。
表1寻路时间比较
随机选取15对点进行寻路实验。将本实施例所提出的寻路方案和Dijkstra寻路方法以及在基于网格的地图模型上的A-star寻路方法的寻路时间进行比较。显然,A-star在所有15个寻路任务中表现最差。在大多数任务中,A-star需要超过150秒才能找到最短路径。与此同时,本实施例所提方法和Dijkstra方法在所有15项任务中的成本约为3秒。实证研究结果表明,本实施例中的寻路方案在15个中有8个比Dijkstra快一点,且平均时间为3.39秒,略大于Dijkstra。这是因为本实施例中的寻路算法还利用Dijkstra算法计算两个拓扑单元之间的最短路径。实验结果证明了本实施例提出的寻路方案的有效性。
目前的研究主要利用基于网格的地图模型或拓扑图模型来构建室内路径查询方案,导致效率低下或不准确。本实施例旨在提出一种准确高效的室内路径查询方法,共同采用基于网格的地图模型和基于BIM的拓扑地图模型的优点。首先,提出了一种混合室内地图模型,包括使用BIM模型生成基于网格的地图模型,并从基于网格的地图模型中提取拓扑地图模型;基于网格的地图模型是通过将3D空间映射和离散成平面网格而获得的;利用细化算法得到基于网格的地图模型中可通行区域的骨架;并提出了一种网格链接算法,用于从细化网格中生成拓扑地图;在混合室内地图模型的基础上,提出一种室内路径查询方法,该方法可以使用基于网格的地图模型准确匹配起点和终点,并使用拓扑地图模型高效地找到最短路径。
在本发明的另一个实施例中提供一种基于BIM的室内地图模型构建装置,该装置用于实现前述各实施例中的基于BIM的室内地图模型构建方法。因此,在前述基于BIM的室内地图模型构建方法的各实施例中的描述和定义,可以用于本发明实施例中各个执行模块的理解。图4为本发明实施例提供的基于BIM的室内地图模型构建装置整体结构示意图,该装置包括第一构建模块401、第二构建模块402和生成模块403,其中:
第一构建模块401用于根据建筑的BIM数据构建所述建筑的基于网格的地图模型;
第一构建模块401从BIM数据中提取定义的建筑构件的几何和语义信息,然后根据建筑构件的几何和语义信息将建筑构件映射到平面网格中,生成基于网格的室内地图模型。
第二构建模块402根据所述基于网格的地图模型,构建所述建筑的拓扑地图模型;
第二构建模块402直接根据基于网格的地图模型自动生成拓扑地图模型,使得基于网格的地图模型和拓扑地图模型之间存在关联关系,便于将两个模型进行融合。
生成模块403用于根据所述基于网格的地图模型和所述拓扑地图模型,生成所述建筑的混合室内地图模型;其中,所述混合室内地图模型包括所述基于网格的地图模型中每个网格的通行状态,以及所述拓扑地图模型中的拓扑节点和根据所述拓扑节点确定的可通行路线。
生成模块403将生成的基于网格的地图模型和拓扑地图模型进行组合,形成混合室内地图模型。基于网格的地图模型和拓扑地图模型通常应用于不同的场景,基于网格的地图模型精确度高,而拓扑地图模型可以高效地找到最短路径,混合室内地图模型继承了网格地图模型的准确性和拓扑地图模型中路径的高效查询。
每个网格的通行状态包括可通行状态和不可通行状态,网格的通行状态由映射到该网格的构建是否为障碍物确定。拓扑地图模型中的拓扑节点为基于网格的地图模型中的某些网格,将拓扑节点进行拓扑链接构成可通信路线。
本实施例通过根据BIM数据构建基于网格的地图模型,使得基于网格的地图模型中包含建筑构件的语义和几何信息,然后使用基于网格的地图模型构建拓扑地图模型,使得两个模型之间存在关联关系,便于将两个模型进行融合生成混合室内地图模型,混合室内地图模型同时具有基于网格的地图模型和拓扑地图模型的特征,精度高且运行效率高。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)501、通信接口(Communications Interface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501可以调用存储器503中的逻辑指令,以执行如下方法:根据建筑的BIM数据构建所述建筑的基于网格的地图模型;根据所述基于网格的地图模型,构建所述建筑的拓扑地图模型;根据所述基于网格的地图模型和所述拓扑地图模型,生成所述建筑的混合室内地图模型;其中,所述混合室内地图模型包括所述基于网格的地图模型中每个网格的通行状态,以及所述拓扑地图模型中的拓扑节点和根据所述拓扑节点确定的可通行路线。
此外,上述的存储器503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:根据建筑的BIM数据构建所述建筑的基于网格的地图模型;根据所述基于网格的地图模型,构建所述建筑的拓扑地图模型;根据所述基于网格的地图模型和所述拓扑地图模型,生成所述建筑的混合室内地图模型;其中,所述混合室内地图模型包括所述基于网格的地图模型中每个网格的通行状态,以及所述拓扑地图模型中的拓扑节点和根据所述拓扑节点确定的可通行路线。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。