CN115033972B - 一种建筑主体结构批量单体化方法、系统及可读存储介质 - Google Patents
一种建筑主体结构批量单体化方法、系统及可读存储介质 Download PDFInfo
- Publication number
- CN115033972B CN115033972B CN202210952990.3A CN202210952990A CN115033972B CN 115033972 B CN115033972 B CN 115033972B CN 202210952990 A CN202210952990 A CN 202210952990A CN 115033972 B CN115033972 B CN 115033972B
- Authority
- CN
- China
- Prior art keywords
- building
- model
- dimensional
- target
- constructing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A30/00—Adapting or protecting infrastructure or their operation
- Y02A30/60—Planning or developing urban green infrastructure
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Civil Engineering (AREA)
- Architecture (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供的一种建筑主体结构批量单体化方法、系统及可读存储介质,该方法包括基于反映城市建筑三维实景的三维模型构建初始三维点线面结构;从初始三维点线面结构中剔除地面,得到相应的目标三维点线面结构;将对应所得的目标三维点线面结构转化到对应栅格图上,并基于栅格图,构建整个模型在XOY平面投影的栅格化二值图;根据栅格化二值图确定联通区的数量,并根据联通区的数量构建多个关联到建筑联通区的目标子模型;针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型。
Description
技术领域
本申请涉及实景三维建模技术领域,具体而言,涉及一种建筑主体结构批量单体化方法、系统及可读存储介质。
背景技术
随着信息技术的发展,“数字地球”和“数字城市”等宏大概念已经不在停留在纸面。据统计,所有副省级以上城市、超过89%的地级及以上城市均提出智慧城市的建设。对此,无论其中的GIS地理信息系统还是VR虚拟现实应用,都离不开基础的城市模型建设。而在城市模型建设中,占比最高,同时也是最为复杂的就是建筑物。因此,在生产过程中,大量时间和人力被用于建筑模型的生产。
目前,城市模型建设中主要分为下述几种方式进行建模:1、利用三维软件(例如,3DMAX,Maya 及AutoCAD等建模软件)进行手工建模;2、利用仪器设备(例如,三维扫描仪、无人机等)进行自动建模。
然而,对于三维模型来说,其中涉及的点线面的量级都是超千万级甚至超亿级别的,上述几种方式并未考虑到采用合适的方式,以保证对建筑物内部的细节结构(尤其是凹陷部位和拐角部位)的批量化精准表达,存在建筑物内部细节的呈现效果不佳,执行效率低的问题。
发明内容
本申请实施例的目的在基于提供一种建筑主体结构批量单体化方法、系统及可读存储介质,可以提高建筑物内部细节的呈现效果、执行效率低。
本申请实施例还提供了一种建筑主体结构批量单体化方法,包括以下步骤:
S1、基于反映城市建筑三维实景的三维模型构建初始三维点线面结构;
S2、从所述初始三维点线面结构中剔除地面,得到相应的目标三维点线面结构;
S3、将对应所得的目标三维点线面结构转化到对应栅格图上,并基于所述栅格图,构建整个模型在XOY平面投影的栅格化二值图;
S4、根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量构建多个关联到建筑联通区的目标子模型;
S5、针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型。
第二方面,本申请实施例还提供了一种建筑主体结构批量单体化系统,所述系统包括模型获取模块、地面剔除模块、栅格化模块、模型划分模块以及建筑单体生成模块,其中:
所述模型获取模块,用于基于反映城市建筑三维实景的三维模型构建初始三维点线面结构;
所述地面剔除模块,用于从所述初始三维点线面结构中剔除地面,得到相应的目标三维点线面结构;
所述栅格化模块,用于将对应所得的目标三维点线面结构转化到对应栅格图上,并基于所述栅格图,构建整个模型在XOY平面投影的栅格化二值图;
所述模型划分模块,用于根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量构建多个关联到建筑联通区的目标子模型;
所述建筑单体生成模块,用于针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型。
第三方面,本申请实施例还提供了一种可读存储介质,所述可读存储介质中包括建筑主体结构批量单体化方法程序,所述建筑主体结构批量单体化方法程序被处理器执行时,实现如上述任一项所述的一种建筑主体结构批量单体化方法的步骤。
由上可知,本申请实施例提供的一种建筑主体结构批量单体化方法、系统及可读存储介质,通过分区域栅格化的方式,将三维模型中代表不同建筑物的多边形网格区分开来,从而实现分区域进行分批次的单体化操作,提高了模型分批和单体化的处理效率,保证了对建筑物内部的细节结构(尤其是凹陷部位和拐角部位)的批量化精准表达,避免了建筑物内部细节的呈现效果不佳,以及执行效率低的问题。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种建筑主体结构批量单体化方法的流程图;
图2为模型在XOY平面投影的栅格化二值图的示意图;
图3为申请实施例提供的一种建筑主体结构批量单体化方法的整体实施流程图;
图4为本申请实施例提供的一种建筑主体结构批量单体化系统的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1是本申请一些实施例中的一种建筑主体结构批量单体化方法的流程图。以该方法应用于计算机设备(该计算机设备具体可以是终端或服务器,终端具体可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群)为例进行说明,包括以下步骤:
步骤S1,基于反映城市建筑三维实景的三维模型构建初始三维点线面结构。
步骤S2,从所述初始三维点线面结构中剔除地面,得到相应的目标三维点线面结构。
步骤S3,将对应所得的目标三维点线面结构转化到对应栅格图上,并基于所述栅格图,构建整个模型在XOY平面投影的栅格化二值图。
步骤S4,根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量构建多个关联到建筑联通区的目标子模型。
步骤S5,针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型。
由上可知,本申请公开的一种建筑主体结构批量单体化方法,通过分区域栅格化的方式,将三维模型中代表不同建筑物的多边形网格区分开来,从而实现分区域进行分批次的单体化操作,提高了模型分批和单体化的处理效率,保证了对建筑物内部的细节结构(尤其是凹陷部位和拐角部位)的批量化精准表达,避免了建筑物内部细节的呈现效果不佳,以及执行效率低的问题。
在其中一个实施例中,所述三维模型包括倾斜三维模型、FBX三维模型以及obj三维模型中的至少一种,步骤S1中,所述基于反映城市建筑三维实景的三维模型构建初始三维点线面结构,包括:
针对所述倾斜三维模型,基于开源osg库的节点访问器,对所述倾斜三维模型的各节点进行遍历,遍历过程中,逐节点的读取、并保持节点涵盖的顶点信息和面信息,并基于所述顶点信息和面信息构建初始三维点线面结构。
具体的,计算机设备将基于构造的数据结构顶点集合vertices,保存模型中的各个顶点Vertex。其中,集合vertices中保存的顶点信息包括顶点Vertex的坐标、法向量、在顶点集vertice中的序号和纹理坐标等,本申请实施例对此不作限定。
具体的,计算机设备将基于构造的数据结构面集合triangles(其中,根据模型中面的实际情况,此处选择三角面),保存模型中的各个三角面triangle。其中,集合triangles中保持的面信息包括三角面triangle的三个顶点在顶点集vertice中的序号、法向量、以及在面集合triangles中的序号等,本申请实施例对此不作限定。
当前实施例中,对于倾斜三维模型,计算机设备可以通过开源osg库,来打开模型的根节点。然后,再通过osg库的nodevisitor(节点访问器)对模型的各节点进行遍历。其中,遍历节点的过程中,将逐节点的读取节点中的顶点信息和三角面信息,并将顶点信息和三角面信息分别保存到上述构造的顶点集vertices和面集合triangles中。
针对所述FBX三维模型,通过Maya软件提供的开源fbx sdk包编译osg插件,并基于osg插件对所述FBX三维模型的各节点进行遍历,遍历过程中,逐节点的读取、并保持节点涵盖的顶点信息和面信息,并基于所述顶点信息和面信息构建初始三维点线面结构。
具体的,对于FBX三维模型,计算机设备将通过Maya软件提供的开源fbx sdk(即Software Developer Kit,其为用于方便处理Fbx文件的一套工具)包编译osg插件(其是一组动态链接库,实现了osgDB头文件ReaderWriter定义的接口)。之后,再通过osg的fbx插件,对所述原始三维模型的各节点进行遍历,并将读取到的顶点信息和三角面信息保持到相应的顶点集vertices和面集合triangles中。
针对所述obj三维模型,按照模型的通用存储格式,读取、并保持所述obj三维模型中各节点涵盖的顶点信息和面信息,并基于所述顶点信息和面信息构建初始三维点线面结构。
具体的,对于obj三维模型,由于其本身就是通过点、面和法向量等方式开放接口进行存储。当前实施例中,计算机设备只需要按照obj的通用格式,按照对应关系,将读取到的顶点信息和三角面信息依次保存到相应的顶点集合vertices和三角面triangles即可。
在其中一个实施例中,针对地面以及建筑物混合保存在相同模型节点中的情况,步骤S2中,所述从所述初始三维点线面结构中剔除地面,得到相应的目标三维点线面结构,包括:
步骤S21,从所述初始三维点线面结构中确定模型的顶点信息,并根据所述顶点信息构建反映模型中各顶点的高程分布情况的高程直方图。
需要说明的是,在提取点线面的过程中,计算机设备可以通过设定地面高程、以及结合面的法向量方向进行地面的判定。示例性的,可以将存在的大量联通、高程接近、且法向量方向和Z轴方向接近的面判断为地面。其中,对于将地面和建筑物分别保存的模型,此处可以忽略,直接取出仅包含建筑物的模型即可。
具体的,对于所有顶点vertice,计算机设备将构建反映中各顶点的高程分布情况即z坐标分布的高程直方图。
步骤S22,根据预设的百分比分布阈值,从所述高程直方图中筛选出近似地面高程gound_h。
具体的,计算机设备将取高程直方图中z值低于预设的百分比分布阈值(如30%)的高程中、且频率最高的值作为近似地面高程gound_h。
步骤S23,从所述初始三维点线面结构中确定模型的,并根据选取到的gound_h上、下h_hat范围的多个面,构建地面网,其中,h_hat为预设的高程变化阈值。
具体的,由于较大区域的地面高程变化可能会比较大,当前实施例中,计算机设备将预先设置好较大阈值(即高程变化阈值)h_hat,如10米,本申请实施例不对其取值进行限定。之后,再从面集合triangles中,取gound_h上、下h_hat范围内的多个三角面,构成整体三角地面网groundNet。
步骤S24,按照预设的划分阈值,将所述地面网划分为多个子格网。
具体的,在进行格网划分的时候,计算机设备将按照预设的划分阈值space,如50米,将三角地面网groundNe划分为一个个的小格网。
其中,对于每个处于非边缘区域的小格网gridX,其均存在相邻的8块小格网(需要说明的是,处于边缘区域的小格网,其周围存在的相邻小格网的数量可能更少,其可以按实际情况选择)。
步骤S25,从各所述子格网中识别出中间子格网,并将所述高程直方图中频率最高的高程作为所述中间子格网的地面高程h_temp。
具体的,计算机设备将从各子格网中识别出的、且处于格网中间位置的目标子格网作为中间子格网,并将高程直方图中频率最高的高程作为该中间子格网的地面高程h_temp。
步骤S26,将模型中法向量垂直于地面的面作为筛选面,并在确定相应筛选面的高程趋近于h_temp时,将相应筛选面作为多余面进行剔除。
具体的,对于每个格网,若其对应三角面的高程在地面高程h_temp的设定阈值附近(示例性的,该设定阈值可设置一个较小值,如1米),且其法向量接近于z轴,则可以认为该三角面即为所需剔除的地面三角面。
在其中一个实施例中,步骤S3中,所述将对应所得的目标三维点线面结构转化到对应栅格图上,并基于所述栅格图,构建整个模型在XOY平面投影的栅格化二值图,包括:
步骤S31,按照预设的抽样间隔,构建具备固定间隔的格网。
需要说明的是,三维模型中最基本的单位都是点,处理的过程中点的坐标都是离散的小数,对于城市来说点线面是海量的。当前实施例中,进行栅格化处理就是通过设置精确度,将过程中离散的三维矢量图转化为二值化正射像素图,如此,可以大幅提高后续的模型分批和单体化过程中效率,同时提高可视化单体化的整体视觉效果。
具体的,在进行格网划分时,将按照X、Y方向、且每间隔一定的抽样间隔space,取一个采样点,并将其作为格网顶点,如此,经由上述操作便可以将目标三维模型划分一个呈正方形的格网。其中,逐个像素值分别对应一小片区域,此处以0.1米为例。
步骤S32,获取模型的顶点信息,并根据所述顶点信息,确定XOY平面的包围盒,所述包围盒包括涵盖所有顶点的最小矩形框(x 0,y 0,x 1,y 1)。
具体的,计算机设备将根据点集合vertices中的顶点坐标,求出XOY平面的包围盒,即计算出能够包含vertices中所有顶点的最小矩形(x 0,y 0,x 1,y 1)。其中,(x 0,y 0)和(x 1,y 1)分别代表矩形的左上角坐标、以及右下角坐标。
步骤S33,根据所述最小矩形框(x 0,y 0,x 1,y 1)、以及所述预设的抽样间隔,通过下述公式确定栅格图的大小:
其中,width表示栅格图的宽度,height表示栅格图的高度,space表示预设的抽样间隔。
步骤S34,根据所述栅格图的宽度、以及栅格图的高度,初始化栅格图。
步骤S35,获取模型的面信息,并根据所述面信息,将模型中包含的所有面转化到栅格图上的对应位置,并在所述栅格图上进行二值图的绘制,得到整个模型在XOY平面投影的栅格化二值图。
示例性的,对于点(m,n),在将该点转化到栅格图 Image之后,该点在栅格图Image上对应的位置坐标即为((m - x 0)/space,(n - y 0)/space),即该点(m,n)位于栅格图Image的第(m - x 0)/space行,第(n - y 0)/space列。
具体的,在将三角面的点转化到栅格图 Image上后,就可以在该栅格图 Image上绘制相应的二值图。其中,在进行二值图绘制的时候,可以将对应三角面内部的像素置为1,对应三角面外部的像素置为0。当然,二值图的绘制规则,也不仅限于上述一种方式,例如,可以基于背景图的区分,将对应背景图的像素置为1,其他区域的像素置为0等,本申请实施例对此不作限定。
在其中一个实施例中,计算机设备可以通过开源库opencv中的fillpoly函数实现二值图的绘制。其中,在遍历完所有的三角面之后,即可得到整个模型在XOY平面投影的栅格化二值图。
具体的,可以参考图2,该图示意的即为某区域模型栅格化得到的可视化二值图。通过该图可以直观的看到,顶部视角的建筑布局情况。
在其中一个实施例中,步骤S4中,所述根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量将所述目标三维模型划分成多个关联到建筑联通区的目标子模型,包括:
步骤S41,从所述栅格化二值图中划分出num_c个联通区,其中,所述num_c个联通区构成一个联通区域,所述联通区域表征单体建筑物在XOY平面的投影区域。
需要说明的是,由于房屋几乎都是垂直于地面的,即垂直于Z轴。当前实施例中,在得到正射栅格化的图片即栅格化二值图之后,就可以根据该二值化的删格图,从XOY平面中,按照建筑联通区分离出一个个的联通区域。其中,每个联通区域代表该处的建筑物在XOY平面有重合区域,也就是可能是同一栋建筑。
具体的,基于得到的栅格化二值图,即可求出所有联通区的轮廓线。其中,联通区的求解存在很多种成熟的基础方法,此处不进行赘述。
在其中一个实施例中,将采用开源库opencv中提供的findContours接口,从所得的栅格化二值图中筛选出所有的联通区域轮廓,此处以num_c个联通区组成的 contours联通区域为例。
步骤S42,初始化num_c个子模型,得到相应的初始化子模型,其中,每个子模型分别代表一个对应的联通区。
具体的,计算机设备将根据上述步骤中得到的联通区,初始化num_c批子模型models。其中,每个子模型model分别代表一个联通区,且此时的子模型model中不包含任何数据。
步骤S43,对所述目标三维模型中包含的所有面进行遍历,遍历过程中,从划分出的多个联通区中筛选出包含相应遍历面的目标联通区,并将所述相应遍历面添加到与所述目标联通区相关联的初始化子模型中。
具体的,计算机设备将进一步遍历面集合triangles,其中,对于每一个遍历到的三角面triangle,将从划分出的num_c个联通区中,找出包含三角面的目标联通区。
由于,联通区是通过XOY平面投影得到。因此,对于每一个三角面,所有的联通区都应该是完整的包含,或没有交点。因此,当前实施例中,只需要判断三角面的三个顶点在XOY平面投影的投影坐标是否在联通区的多边形轮廓中即可。
在其中一个实施例中,计算机设备可以通过opencv库中提供的pointPolygonTest方法,将该三角面的投影坐标(x,y)、以及联通区的多边形轮廓坐标作为方法的处理对象,进一步实现目标联通区的判定。
步骤S44,在确定遍历结束时,基于已完成相应遍历面添加操作的初始化子模型,确定对应关联到建筑联通区的目标子模型。
具体的,遍历完成后,就可以得到根据XOY平面的投影,完成三角面的分配操作。
在其中一个实施例中,步骤S5中,所述针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型,包括:
步骤S51,对于每个目标子模型,初始化用于存储建筑的变量buildings,所述变量buildings中包含了多个建筑单体building。
需要说明的是,分批次后,每个联通区域的点线面数量大幅减少,由于每个联通区域的判定是通过删格化得到,且删格化的过程中有取整操作,由此可能带来误差。当前实施例中,为消除误差,计算机设备考虑通过比较准确的三维坐标 ,将存在公共交点的面进行结合,并以此构成相应的单体建筑。
具体的,对于每一个目标子模型,将初始化一个变量buildings来存储建筑。在其中一个实施例中,计算机设备还可以定义一个变量sorted_triangles,基于该变量sorted_triangles来缓存已分类过的三角面,以避免重复遍历,降低处理效率。
步骤S52,针对每个目标子模型,遍历添加到目标子模型中的各个面,并在确定相应遍历面与变量buildings中包含的第一建筑单体building存在共同顶点时,将相应遍历面加入到所述第一建筑单体building中。
需要说明的是,计算机设备将从头开始遍历目标子模型中添加的每个三角面triangles,其中,在确定遍历到的三角面triangles不包含在变量sorted_triangles时,即可认为该三角面triangles未被加入到任何building中。
具体的,计算机设备在将遍历到的三角面triangle和变量buildings中的所有building进行比较时,如果确定该三角面triangle和比较到的第一建筑单体building存在共同的顶点,则可以将该三角面triangle加入到上述的第一建筑单体building中。
步骤S53,在确定相应遍历面与变量buildings中包含的多个第二建筑单体building之间均存在共同顶点时,将所述多个第二建筑单体building进行合并,将相应遍历面加入到合并所得的合并建筑单体building中。
具体的,在确定遍历到的三角面triangle和比较到的多个第二建筑单体building存在共同顶点时,则需要先将上述的多个第二建筑单体building进行合并,得到相应的合并建筑单体building。之后,再将该三角面triangle加入构建好的合并建筑单体building中。
步骤S54,在确定相应遍历面与变量buildings中包含的各第三建筑单体building之间均不存在共同顶点时,将相应遍历面加入到新建的新建建筑单体building中。
具体的,在确定遍历到的三角面triangle和所有的现存building之间均不存在共同顶点时,则需要先构建一个新建建筑单体building。之后,再将该三角面triangle加入到构建好的新建建筑单体building中。
步骤S55,在结束遍历时,结束变量buildings的更新,并基于更新后的变量buildings中包含的各个建筑单体building,生成相应的单体三维建筑模型。
具体的,在遍历完所有的目标子模型时,则可以将更新后的变量buildings中的各个建筑单体building先保存到预设的输出文件result_buildings中。之后,再将基于该输出文件result_buildings,生成相应的单体三维建筑模型。
需要说明的是,整体实施流程可以参考图3,结合该图可知,该方法的实施过程可以简化为:从标准化数据导入到地面剔除,再到数据栅格化处理,再到模型分批,最后便是建筑单体生成。
在其中一个实施例中,在具体应用时,即基于步骤S5得到单体建筑模型后,则可以通过obj的方式,将单体建筑模型保存出来。之后,可以将批量化地将其保存到预设的模型库中,供后期生产调用,达到快速建模的效果。当然,当前实施例中也不仅限于上述一种应用方式,即基于步骤S5得到单体建筑模型后,还可以直接根据实际的地理坐标,将该单体建筑模型映射到其他的三维模型中,镶嵌得到完成单体化的整体模型。
在其中一个实施例中,计算机设备还可以根据模型库的应用需求,通过模型中点的坐标,求出建筑的占地面积(即XOY平面投影面积),建筑的实际高度,建筑的顶视图形状等。之后,可以根据求出的建筑的占地面积、实际高度和形状,进行建筑分类,其中,具体的分类方法可以视实际的情况而定,本申请实施例对此不作限定。
请参考图4,本申请公开的一种建筑主体结构批量单体化系统400,该系统400包括模型获取模块401、地面剔除模块402、栅格化模块403、模型划分模块404以及建筑单体生成模块405,其中:
所述模型获取模块401,用于基于反映城市建筑三维实景的三维模型构建初始三维点线面结构。
所述地面剔除模块402,用于从所述初始三维点线面结构中剔除地面,得到相应的目标三维点线面结构。
所述栅格化模块403,用于将对应所得的目标三维点线面结构转化到对应栅格图上,并基于所述栅格图,构建整个模型在XOY平面投影的栅格化二值图。
所述模型划分模块404,用于根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量构建多个关联到建筑联通区的目标子模型。
所述建筑单体生成模块405,用于针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型。
在其中一个实施例中,所述模型划分模块用于根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量构建多个关联到建筑联通区的目标子模型的具体实现为:
从所述栅格化二值图中划分出num_c个联通区,其中,所述num_c个联通区构成一个联通区域,所述联通区域表征单体建筑物在XOY平面的投影区域;
初始化num_c个子模型,得到相应的初始化子模型,其中,每个子模型分别代表一个对应的联通区;
对模型中包含的所有面进行遍历,遍历过程中,从划分出的多个联通区中筛选出包含相应遍历面的目标联通区,并将所述相应遍历面添加到与所述目标联通区相关联的初始化子模型中;
在确定遍历结束时,基于已完成相应遍历面添加操作的初始化子模型,确定对应关联到建筑联通区的目标子模型。
在其中一个实施例中,所述建筑单体生成模块用于针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型的具体实现为:
对于每个目标子模型,初始化用于存储建筑的变量buildings,所述变量buildings中包含了多个建筑单体building;
针对每个目标子模型,遍历添加到目标子模型中的各个面,并在确定相应遍历面与变量buildings中包含的第一建筑单体building存在共同顶点时,将相应遍历面加入到所述第一建筑单体building中;
在确定相应遍历面与变量buildings中包含的多个第二建筑单体building之间均存在共同顶点时,将所述多个第二建筑单体building进行合并,将相应遍历面加入到合并所得的合并建筑单体building中;
在确定相应遍历面与变量buildings中包含的各第三建筑单体building之间均不存在共同顶点时,将相应遍历面加入到新建的新建建筑单体building中;
在结束遍历时,结束变量buildings的更新,并基于更新后的变量buildings中包含的各个建筑单体building,生成相应的单体三维建筑模型。
由上可知,本申请实施例提供的一种建筑主体结构批量单体化系统,通过分区域栅格化的方式,将三维模型中代表不同建筑物的多边形网格区分开来,从而实现分区域进行分批次的单体化操作,提高了模型分批和单体化的处理效率,保证了对建筑物内部的细节结构(尤其是凹陷部位和拐角部位)的批量化精准表达,避免了建筑物内部细节的呈现效果不佳,以及执行效率低的问题。
本申请实施例提供一种可读存储介质,所述计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法。其中,可读存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static RandomAccess Memory, 简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-Only Memory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
上述可读存储介质,通过分区域栅格化的方式,将三维模型中代表不同建筑物的多边形网格区分开来,从而实现分区域进行分批次的单体化操作,提高了模型分批和单体化的处理效率,保证了对建筑物内部的细节结构(尤其是凹陷部位和拐角部位)的批量化精准表达,避免了建筑物内部细节的呈现效果不佳,以及执行效率低的问题。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (6)
1.一种建筑主体结构批量单体化方法,其特征在于,包括以下步骤:
S1、基于反映城市建筑三维实景的三维模型构建初始三维点线面结构;
S2、从所述初始三维点线面结构中剔除地面,得到相应的目标三维点线面结构;
S3、将对应所得的目标三维点线面结构转化到对应栅格图上,并基于所述栅格图,构建整个模型在XOY平面投影的栅格化二值图;
S4、根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量构建多个关联到建筑联通区的目标子模型;
S5、针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型;
其中,步骤S4中,所述根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量构建多个关联到建筑联通区的目标子模型,包括:
S41、从所述栅格化二值图中划分出num_c个联通区,其中,所述num_c个联通区构成一个联通区域,所述联通区域表征单体建筑物在XOY平面的投影区域;
S42、初始化num_c个子模型,得到相应的初始化子模型,其中,每个子模型分别代表一个对应的联通区;
S43、对模型中包含的所有面进行遍历,遍历过程中,从划分出的多个联通区中筛选出包含相应遍历面的目标联通区,并将所述相应遍历面添加到与所述目标联通区相关联的初始化子模型中;
S44、在确定遍历结束时,基于已完成相应遍历面添加操作的初始化子模型,确定对应关联到建筑联通区的目标子模型;
步骤S5中,所述针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型,包括:
S51、对于每个目标子模型,初始化用于存储建筑的变量buildings,所述变量buildings中包含了多个建筑单体building;
S52、针对每个目标子模型,遍历添加到目标子模型中的各个面,并在确定相应遍历面与变量buildings中包含的第一建筑单体building存在共同顶点时,将相应遍历面加入到所述第一建筑单体building中;
S53、在确定相应遍历面与变量buildings中包含的多个第二建筑单体building之间均存在共同顶点时,将所述多个第二建筑单体building进行合并,将相应遍历面加入到合并所得的合并建筑单体building中;
S54、在确定相应遍历面与变量buildings中包含的各第三建筑单体building之间均不存在共同顶点时,将相应遍历面加入到新建的新建建筑单体building中;
S55、在结束遍历时,结束变量buildings的更新,并基于更新后的变量buildings中包含的各个建筑单体building,生成相应的单体三维建筑模型。
2.根据权利要求1所述的方法,其特征在于,所述三维模型包括倾斜三维模型、FBX三维模型以及obj三维模型中的至少一种,步骤S1中,所述基于反映城市建筑三维实景的三维模型构建初始三维点线面结构,包括:
针对所述倾斜三维模型,基于开源osg库的节点访问器,对所述倾斜三维模型的各节点进行遍历,遍历过程中,逐节点的读取、并保持节点涵盖的顶点信息和面信息,并基于所述顶点信息和面信息构建初始三维点线面结构;
针对所述FBX三维模型,通过Maya软件提供的开源fbx sdk包编译osg插件,并基于osg插件对所述FBX三维模型的各节点进行遍历,遍历过程中,逐节点的读取、并保持节点涵盖的顶点信息和面信息,并基于所述顶点信息和面信息构建初始三维点线面结构;
针对所述obj三维模型,按照模型的通用存储格式,读取、并保持所述obj三维模型中各节点涵盖的顶点信息和面信息,并基于所述顶点信息和面信息构建初始三维点线面结构。
3.根据权利要求1所述的方法,其特征在于,针对地面以及建筑物混合保存在相同模型节点中的情况,步骤S2中,所述从所述初始三维点线面结构中剔除地面,得到相应的目标三维点线面结构,包括:
S21、从所述初始三维点线面结构中确定模型的顶点信息,并根据所述顶点信息构建反映模型中各顶点的高程分布情况的高程直方图;
S22、根据预设的百分比分布阈值,从所述高程直方图中筛选出近似地面高程gound_h;
S23、从所述初始三维点线面结构中确定模型的面信息,并根据选取到的gound_h上、下h_hat范围的多个面,构建地面网,其中,h_hat为预设的高程变化阈值;
S24、按照预设的划分阈值,将所述地面网划分为多个子格网;
S25、从各所述子格网中识别出中间子格网,并将所述高程直方图中频率最高的高程作为所述中间子格网的地面高程h_temp;
S26、将模型中法向量垂直于地面的面作为筛选面,并在确定相应筛选面的高程趋近于h_temp时,将相应筛选面作为多余面进行剔除。
4.根据权利要求1所述的方法,其特征在于,步骤S3中,所述将对应所得的目标三维点线面结构转化到对应栅格图上,并基于所述栅格图,构建整个模型在XOY平面投影的栅格化二值图,包括:
S31、按照预设的抽样间隔,构建具备固定间隔的格网;
S32、获取模型的顶点信息,并根据所述顶点信息,确定XOY平面的包围盒,所述包围盒包括涵盖所有顶点的最小矩形框(x 0,y 0,x 1,y 1);
S33、根据所述最小矩形框(x 0,y 0,x 1,y 1)、以及所述预设的抽样间隔,通过下述公式确定栅格图的大小:
其中,width表示栅格图的宽度,height表示栅格图的高度,space表示预设的抽样间隔;
S34、根据所述栅格图的宽度、以及栅格图的高度,初始化栅格图;
S35、获取模型的面信息,并根据所述面信息,将模型中包含的所有面转化到栅格图上的对应位置,并在所述栅格图上进行二值图的绘制,得到整个模型在XOY平面投影的栅格化二值图。
5.一种建筑主体结构批量单体化系统,其特征在于,所述系统包括模型获取模块、地面剔除模块、栅格化模块、模型划分模块以及建筑单体生成模块,其中:
所述模型获取模块,用于基于反映城市建筑三维实景的三维模型构建初始三维点线面结构;
所述地面剔除模块,用于从所述初始三维点线面结构中剔除地面,得到相应的目标三维点线面结构;
所述栅格化模块,用于将对应所得的目标三维点线面结构转化到对应栅格图上,并基于所述栅格图,构建整个模型在XOY平面投影的栅格化二值图;
所述模型划分模块,用于根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量构建多个关联到建筑联通区的目标子模型;
所述建筑单体生成模块,用于针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型;
所述模型划分模块用于根据所述栅格化二值图确定联通区的数量,并根据所述联通区的数量构建多个关联到建筑联通区的目标子模型的具体实现为:
从所述栅格化二值图中划分出num_c个联通区,其中,所述num_c个联通区构成一个联通区域,所述联通区域表征单体建筑物在XOY平面的投影区域;
初始化num_c个子模型,得到相应的初始化子模型,其中,每个子模型分别代表一个对应的联通区;
对模型中包含的所有面进行遍历,遍历过程中,从划分出的多个联通区中筛选出包含相应遍历面的目标联通区,并将所述相应遍历面添加到与所述目标联通区相关联的初始化子模型中;
在确定遍历结束时,基于已完成相应遍历面添加操作的初始化子模型,确定对应关联到建筑联通区的目标子模型;
所述建筑单体生成模块用于针对各目标子模型,将存在公共交点的面进行结合,以构成相应的单体三维建筑模型的具体实现为:
对于每个目标子模型,初始化用于存储建筑的变量buildings,所述变量buildings中包含了多个建筑单体building;
针对每个目标子模型,遍历添加到目标子模型中的各个面,并在确定相应遍历面与变量buildings中包含的第一建筑单体building存在共同顶点时,将相应遍历面加入到所述第一建筑单体building中;
在确定相应遍历面与变量buildings中包含的多个第二建筑单体building之间均存在共同顶点时,将所述多个第二建筑单体building进行合并,将相应遍历面加入到合并所得的合并建筑单体building中;
在确定相应遍历面与变量buildings中包含的各第三建筑单体building之间均不存在共同顶点时,将相应遍历面加入到新建的新建建筑单体building中;
在结束遍历时,结束变量buildings的更新,并基于更新后的变量buildings中包含的各个建筑单体building,生成相应的单体三维建筑模型。
6.一种可读存储介质,其特征在于,所述可读存储介质中包括建筑主体结构批量单体化方法程序,所述建筑主体结构批量单体化方法程序被处理器执行时,实现如权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210952990.3A CN115033972B (zh) | 2022-08-09 | 2022-08-09 | 一种建筑主体结构批量单体化方法、系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210952990.3A CN115033972B (zh) | 2022-08-09 | 2022-08-09 | 一种建筑主体结构批量单体化方法、系统及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115033972A CN115033972A (zh) | 2022-09-09 |
CN115033972B true CN115033972B (zh) | 2022-11-08 |
Family
ID=83130207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210952990.3A Active CN115033972B (zh) | 2022-08-09 | 2022-08-09 | 一种建筑主体结构批量单体化方法、系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033972B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117308821B (zh) * | 2023-11-28 | 2024-02-06 | 江苏华辉建筑装饰工程有限公司 | 一种基于扫描仪的建筑装饰造型精度检验方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158966A (zh) * | 2007-11-01 | 2008-04-09 | 北京航空航天大学 | 一种基于矢量和栅格混合表示的城市环境量化数据组织方法 |
CN110021070A (zh) * | 2018-01-10 | 2019-07-16 | 阿里巴巴集团控股有限公司 | FBX三维模型转换为glTF三维模型的方法、设备以及系统 |
CN110189412A (zh) * | 2019-05-13 | 2019-08-30 | 武汉大学 | 基于激光点云的多楼层室内结构化三维建模方法及系统 |
WO2021204025A1 (zh) * | 2020-04-08 | 2021-10-14 | 速度时空信息科技股份有限公司 | 一种基于八叉树的三维建筑物模型lod方法 |
WO2021212875A1 (zh) * | 2020-04-21 | 2021-10-28 | 广东博智林机器人有限公司 | 地图生成方法、装置、存储介质及处理器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717983B (zh) * | 2019-09-07 | 2023-05-02 | 苏州工业园区测绘地理信息有限公司 | 一种基于背包式三维激光点云数据的建筑物立面三维重建方法 |
CN112258649A (zh) * | 2020-10-27 | 2021-01-22 | 中国科学院空天信息创新研究院 | 一种基于光线投射的三维城市太阳辐射计算方法 |
-
2022
- 2022-08-09 CN CN202210952990.3A patent/CN115033972B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158966A (zh) * | 2007-11-01 | 2008-04-09 | 北京航空航天大学 | 一种基于矢量和栅格混合表示的城市环境量化数据组织方法 |
CN110021070A (zh) * | 2018-01-10 | 2019-07-16 | 阿里巴巴集团控股有限公司 | FBX三维模型转换为glTF三维模型的方法、设备以及系统 |
CN110189412A (zh) * | 2019-05-13 | 2019-08-30 | 武汉大学 | 基于激光点云的多楼层室内结构化三维建模方法及系统 |
WO2021204025A1 (zh) * | 2020-04-08 | 2021-10-14 | 速度时空信息科技股份有限公司 | 一种基于八叉树的三维建筑物模型lod方法 |
WO2021212875A1 (zh) * | 2020-04-21 | 2021-10-28 | 广东博智林机器人有限公司 | 地图生成方法、装置、存储介质及处理器 |
Non-Patent Citations (4)
Title |
---|
利用密集匹配点云的建筑单体提取算法研究;闫利等;《中国激光》;20180328(第07期);全文 * |
城市地下空间信息三维数据模型研究;朱良峰等;《华东师范大学学报(自然科学版)》;20090315(第02期);全文 * |
基于房屋轮廓与纹理的三维建筑模型分层次聚类研究;潘文斌等;《地球信息科学学报》;20160331(第03期);全文 * |
室内平面图分块矢量化与高效三维建筑建模;张宏鑫等;《计算机科学与探索》;20130115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115033972A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
US20150187130A1 (en) | Automatic Generation of 2.5D Extruded Polygons from Full 3D Models | |
CN107798725B (zh) | 基于Android的二维住房户型识别和三维呈现方法 | |
KR20100136604A (ko) | 3차원 지형 영상 실시간 가시화 시스템 및 이의 방법 | |
CN109118588B (zh) | 一种基于块分解的彩色lod模型自动生成方法 | |
CN113628331B (zh) | 一种虚幻引擎中摄影测量模型的数据组织和调度方法 | |
CN113706713A (zh) | 一种实景三维模型裁剪方法、装置及计算机设备 | |
CN115082699B (zh) | 一种轮廓形状提取方法、装置、电子设备及存储介质 | |
CN115033972B (zh) | 一种建筑主体结构批量单体化方法、系统及可读存储介质 | |
WO2023124676A1 (zh) | 3d模型构建方法、装置和电子设备 | |
CN115937461B (zh) | 多源融合模型构建及纹理生成方法、装置、介质及设备 | |
Peters et al. | Visibility Analysis in a Point Cloud Based on the Medial Axis Transform. | |
CN114332134A (zh) | 一种基于密集点云的建筑物立面提取方法和装置 | |
Zhang et al. | A geometry and texture coupled flexible generalization of urban building models | |
Kada | Aggregation of 3D buildings using a hybrid data approach | |
Forlani et al. | Building reconstruction and visualization from lidar data | |
CN114758087B (zh) | 一种城市信息模型的构建方法及装置 | |
Chang et al. | Hierarchical simplification of city models to maintain urban legibility. | |
CN114091141A (zh) | 一种基于倾斜实景模型的三维道路生成方法及装置 | |
CN113076803A (zh) | 一种基于高分辨率遥感影像的建筑物矢量提取方法及系统 | |
Mahdavi-Amiri et al. | Data management possibilities for aperture 3 hexagonal discrete global grid systems | |
Masood et al. | A novel method for adaptive terrain rendering using memory-efficient tessellation codes for virtual globes | |
Li | Real-world large-scale terrain model reconstruction and real-time rendering | |
CN116824082B (zh) | 虚拟地形的绘制方法、装置、设备、存储介质及程序产品 | |
CN115018893B (zh) | 一种建筑细部结构自动单体化方法、系统及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |