CN112465962B - 一种面向大场景三维实景数据的动态更新方法 - Google Patents

一种面向大场景三维实景数据的动态更新方法 Download PDF

Info

Publication number
CN112465962B
CN112465962B CN202110109493.2A CN202110109493A CN112465962B CN 112465962 B CN112465962 B CN 112465962B CN 202110109493 A CN202110109493 A CN 202110109493A CN 112465962 B CN112465962 B CN 112465962B
Authority
CN
China
Prior art keywords
dimensional live
data
action data
tile
effective
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
Application number
CN202110109493.2A
Other languages
English (en)
Other versions
CN112465962A (zh
Inventor
高广
吴敦
孙华
费佳宁
应良中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baolue Technology Zhejiang Co ltd
Original Assignee
Baolue Technology Zhejiang Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Baolue Technology Zhejiang Co ltd filed Critical Baolue Technology Zhejiang Co ltd
Publication of CN112465962A publication Critical patent/CN112465962A/zh
Application granted granted Critical
Publication of CN112465962B publication Critical patent/CN112465962B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种面向大场景三维实景数据的动态更新方法,对待录入更新的有效三维实景数据依次进行坐标转换‑分幅及空间编码‑计算有效范围‑根据空间编码和有效范围进行数据融合更新的过程来实现三维实景数据的动态更新;本发明真正实现了动态更新过程的全自动化,既降低了人为操作出现错误的风险,又降低了数据管理的成本,适用于大场景的三维实景数据的动态更新;并且本发明实现了各种三维实景数据的标准化处理,可以适应不同软件、不同企业生产的各种类型三维实景数据,具有极强的适应能力;更重要的是,本发明实现了历史三维实景数据和待录入更新的有效三维实景数据的有机融合,确保数据的高质量与高精度。

Description

一种面向大场景三维实景数据的动态更新方法
技术领域
本发明涉及数字孪生城市建设、地理空间数据管理技术领域,具体为一种面向大场景三维实景数据的动态更新方法。
背景技术
数字孪生(Digital Twin)是综合利用计算机视觉、物联网、人工智能、5G等技术对物理世界的人、物、事件等所有要素进行空间化和数字化,实现物理世界与孪生世界的真实映射。由数字孪生技术所构建的城市称为数字孪生城市,它是实现智慧城市建设的重要设施和基础能力。城市的三维空间模型是数字孪生城市建设的关键内容之一,目前主流的方案是采用倾斜摄影、激光扫描等技术实现建筑、道路、树木、地形等宏观对象的实景表达。据不完全统计,全国已有120多个地市开展了三维实景建设工作,并取得了积极反响,为此自然资源部也提出要建设“三维实景中国”的建议。
数据的现势性和鲜活性是三维实景数据能否得到可持续应用的关键,而实现三维实景数据的动态更新是保证数据现势性和鲜活性的最重要的技术手段;三维实景数据是一种全新的三维空间模型数据,目前针对三维实景数据的动态更新尚未形成统一的标准:不同的软件厂商会根据自己的算法特点生产不同格式的数据;行业监管部门出于谨慎考虑还处于调研阶段,未出台相关指导性的规范或标准。而全国各地正如火如荼地开展三维实景数据的建设工作,一批批的大场景三维实景数据如雨后春笋般涌现。如果不能有效地解决大场景三维实景数据的动态更新问题,必将导致大量数据重复建设、财政经费的浪费。
目前,尚未有成熟的技术或者软件系统可以实现大场景三维实景数据的动态更新,为此各数据生产企业往往采用最为原始的、粗糙的方式来开展这项工作:将数据以行政区域(如区、街道等)范围来划分,然后根据时间间隔(比如1年)和城市变化程度来决定是否对某个行政区域进行数据重生产。大场景三维实景数据的动态更新的技术难点在于:1)数据量大,数据分散(由很多细小的文件构成),数据难以快速检索和定位;2)数据的标准一致,不同软件生产的数据的瓦片大小不一,坐标系不一,坐标原点不一;3)数据内部的结构复杂,导致不同来源的数据很难实现真正的融合,融合结果的质量和精度无法保证。
发明内容
本发明的目的在于提供一种面向大场景三维实景数据的动态更新方法,以解决上述背景技术中提出的大场景三维实景数据的动态更新中存在的问题。
为实现上述目的,本发明提供如下技术方案,一种面向大场景三维实景数据的动态更新方法,包括待录入更新的有效三维实景数据和需要被更新的历史三维实景数据,该方法包括以下步骤:
S1.将有效三维实景数据进行坐标转换;
S2.将经过坐标转换后的有效三维实景数据分幅成若干瓦片数据,根据分幅的空间尺寸和图幅的平面范围计算出瓦片数据对应的空间编码;
S3.利用栅格化边缘跟踪算法计算瓦片数据的有效范围;
S4.根据S2的瓦片数据对应的空间编码获取与当前瓦片数据对应的历史三维实景数据,再根据S3的瓦片数据的有效范围,对当前瓦片数据对应的历史三维实景数据进行三角形剔除处理,最后将三角形剔除处理后的结果与当前瓦片数据进行纹理、纹理坐标、顶点集和三角网索引集的合并;
S5.将更新信息记录到数据库中。
优选的,所述S1中采用坐标重投影算法对有效三维实景数据进行坐标转换,具体包括:
S101.定义历史三维实景数据的坐标系为目标坐标系,该目标坐标系的坐标原点为(x00,y00,z00);并定义有效三维实景数据的坐标系为源坐标系,该源坐标系的坐标原点为(x01,y01,z01);并定义pi=(xi,yi,zi)为有效三维实景数据中的任一顶点的空间坐标;
S102.创建从源坐标系到目标坐标系的转换模型函数f_c2c,然后利用转换模型函数f_c2c进行坐标转换:
Figure GDA0003033229630000031
式中,f_c2c函数的功能是进行坐标重投影计算,p′(x′i,y′i,z′i)为进行坐标转换后的顶点的空间坐标。
优选的,所述S2中对坐标转换后的有效三维实景数据进行正方形分幅,并赋予空间编码,具体包括:
S201.计算正方形图幅信息
a1)定义分幅的空间尺寸为tile_size;
b1)统计坐标转换后有效三维实景数据的平面范围,[Xmin,Xmax]表示X方向的范围,[Ymin,Ymax]表示Y方向的范围;
c1)计算所有正方形图幅的平面范围,[X′min,X′max]表示X方向的范围,[Y′min,Y′max]表示Y方向的范围;
Figure GDA0003033229630000032
Figure GDA0003033229630000033
式中,X′min、Y′min、X′max、Y′max均可被tile_size整除;
d1)定义每个图幅的空间编码为tile_ri_cj,其中,ri为图幅的行空间编码,cj为图幅的列空间编码,定义每个图幅的平面范围Rij,并定义图幅在X轴方向范围为
Figure GDA0003033229630000041
图幅在Y轴方向范围为
Figure GDA0003033229630000042
其中,ri和cj为整数,取值范围为:
Figure GDA0003033229630000043
平面范围Rij的计算公式为:
Figure GDA0003033229630000044
Figure GDA0003033229630000045
S202.利用正方形图幅进行分幅操作包括:
a2)定义坐标转换后的有效三维实景数据为{s1,s2…sn},用Sk表示三维实景数据的其中任一个瓦片数据;
b2)从{s1,s2…sn}中逐一选取瓦片数据Sk,令其顶点集为:V={(x0,y0,z0,u0,v0),(x1,y1,z1,u1,v1)…(xm,ym,zm,um,vm)},三角网索引集为T={(t00,t01,t02),(t10,t11,t12)…(tn0,tn1,tn2)};
其中,(xi,yi,zi)表示顶点的空间坐标,(ui,vi)表示顶点的纹理坐标,(ti0,ti1,ti2)表示三角形的三个顶点在V中的序号;
c2)判断Rij是否包含Sk中的任一顶点,若不包括,则返回步骤b2),处理下一个瓦片数据;若包括,则转步骤d2);
d2)定义Sij_k为瓦片数据Sk在图幅tile_ri_cj中的有效数据,其顶点集为Vij_k,三角网索引集为Tij_k,Sij_k的纹理与Sk的纹理保持一致;
e2)定义图幅tile_ri_cj的所有瓦片数据为{Sij_k0,Sij_k1…},将其融合为一个瓦片数据sij
优选的,所述S202步骤d2)中Sij_k的计算过程具体包括:
①将平面范围Rij转换为由四个顶点构成的多边形polyR
Figure GDA0003033229630000051
②从Sk中逐一选取三角形(tp0,tp1,tp2),其对应的顶点为
Figure GDA0003033229630000052
Figure GDA0003033229630000053
由此,三个顶点构成多边形:
Figure GDA0003033229630000054
③利用Weiler-Atherton算法求得polyR与polyt的交集polyRt,如果polyRt为空,则转入步骤②,处理下一个三角形,否则转入步骤④;
④利用OpenGL的Tessellation算法对polyRt进行三角剖分,得到新的三角网,其顶点集为V′={(x′0,y′0,z′0,u′0,v′0),(x′1,y′1,z′1,u′1,v′1)...},三角网索引集为T′={(t′00,t′01,t′02),(t′10,t′11,t′12)…},其中,x′i和y′i以及T′可以由polyRt三角剖分的结果直接得到,然后求解以下公式可得到z′i、u′i和v′i、ai、bi
Figure GDA0003033229630000061
其中,tp0,tp1,tp2表示三角网索引集T′中的任一三角形;
⑤将V′和T′分别合并到Vij_k和Tij_k中;需要注意的是当V′合并进Vij_k后,其顶点在集合中的索引将会发生变化,故T′中对应的索引需要进行相应的调整;
所述S202中步骤e2)中关于将所有瓦片数据融合为一个瓦片数据的具体计算内容包括:
①利用Bin Packing算法将所有瓦片数据的纹理合并成一张大纹理,Bin Packing算法可以确保大纹理的宽和高尽可能小;
②根据Sij_kp瓦片数据的纹理在大纹理上的位置,更新其顶点集的纹理坐标,其中,Sij_kp表示图幅tile_ri_cj中的任一瓦片数据;
③将所有瓦片数据的顶点集和三角网索引集进行合并。
优选的,所述S3中针对每一幅有效三维实景数据,利用栅格化边缘跟踪算法计算其有效范围,具体包括:
S301.定义其栅格化后的空间分辨率为res,对该有效三维实景数据进行栅格化的具体内容包括:
a3)将平面范围
Figure GDA0003033229630000071
向外扩展成
Figure GDA0003033229630000072
其中:
Figure GDA0003033229630000073
b3)创建一个长和宽分别为w和h的栅格grid,栅格的每个单元初始化为0;
Figure GDA0003033229630000074
c3)逐一选取sij中的三角形,将其投影到grid上并利用Edge Walking算法进行栅格化处理,栅格化结果对应的grid的单元置为1;
d3)为了降低数据中的空洞对后续计算过程的影响,利用形态学闭运算对grid进行处理,然后再利用形态学腐蚀算法对grid进行处理;
S302.基于S301生成的grid,利用边缘跟踪算法进一步提取三维实景数据的有效范围,具体包括:
a4)针对grid的每个非1单元,如果其四领域不全为0或1,则判断该非1单元为边缘单元,将找到的边缘单元置为1,其它单元则为0;
b4)从任一边缘单元开始,按照逆时针顺序查找周围的边缘单元,将查找到的单元依次插入到检索队列中,同时将该单元置为0,重复该查找过程直到没有新的边缘单元加入到检索队列;
c4)将检索队列中的单元依次连接起来即为提取到的有效范围。
优选的,所述S4步骤中根据空间编码,依次对每一幅有效三维实景数据和与之对应的历史三维实景数据进行融合更新,具体包括:
根据sij、tile_ri_cj、Rij来定义经过分幅后的有效三维实景数据的有效范围
Figure GDA0003033229630000087
S401.计算Rij
Figure GDA0003033229630000088
的交并比iou;
Figure GDA0003033229630000081
Area表示计算平面面积,若Area大于0.99,则直接将瓦片数据sij拷贝进历史三维实景数据中,否则进入S402;
S402.搜索历史三维实景数据中具有相同的空间编码tile_ri_cj的三维实景数据s′ij,如果s′ij不存在,则直接将sij拷贝进历史三维实景数据中,否者进入S403;
S403.计算Rij与BoundarySij的差集
Figure GDA0003033229630000082
剔除s′ij中与
Figure GDA0003033229630000083
不相交的三角形,得到s′ij的差集
Figure GDA0003033229630000084
S404.将sij
Figure GDA0003033229630000085
进行融合合并,具体计算步骤包括:
a5)利用Bin Packing算法将sij
Figure GDA0003033229630000086
的纹理合并成一张大纹理,Bin Packing算法可以确保大纹理的宽和高尽可能小;
b5)根据sij
Figure GDA0003033229630000091
的纹理在大纹理上的位置,更新其顶点集的纹理坐标;
c5)将sij
Figure GDA0003033229630000092
的顶点集和三角网索引集进行合并。
与现有技术相比,本发明的有益效果有:1)本发明采用的空间编码技术可以实现大场景三维实景数据的有效管理,通过空间编码实现了地理位置和图幅的快速转换,方便数据的后续应用、管理与更新;2)采用基于有效范围的三维实景数据更新方法,真正实现了动态更新过程的全自动化,既降低了人为操作出现错误的风险,又降低了数据管理的成本,适用于大场景的三维实景数据的动态更新;3)本发明实现了各种三维实景数据的标准化处理,可以适应不同软件、不同企业生产的各种类型三维实景数据,具有极强的适应能力;4)本发明实现了历史三维实景数据和待录入更新的有效三维实景数据的有机融合,确保数据的高质量与高精度。
附图说明
图1为本发明面向大场景三维实景数据的动态更新方法的流程图;
图2为本发明三维实景数据的空间编码示意图;
图3为本发明正方形分幅后的三维实景数据的示意图;
图4为本发明利用栅格化边缘跟踪算法计算得到的有效范围;
图5为本发明三维实景数据融合合并前后的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示的一种面向大场景三维实景数据的动态更新流程示意图,一种面向大场景三维实景数据的动态更新方法,包括待录入更新的有效三维实景数据和需要被更新的历史三维实景数据,该方法包括以下步骤:
S1.利用坐标重投影算法,对有效三维实景数据进行坐标转换,从而确保历史三维实景数据与有效三维实景数据的坐标系和坐标原点保持一致;具体包括:
S101.令历史三维实景数据的坐标系,简称目标坐标系,该目标坐标系的文本标记语言描述为historic_wkt,坐标原点(x00,y00,z00);有效三维实景数据的坐标系,简称源坐标系,该源坐标系的文本标记语言描述为update_wkt,坐标原点为(x01,y01,z01);定义pi=(xi,yi,zi)为有效三维实景数据中的任一顶点的空间坐标;
S102.利用proj4库创建从源坐标系到目标坐标系的转换模型c2c;
c2c=proj_create_crc_to_crc(null,update_wkt,historic_wkt,null)
接着,创建从源坐标系到目标坐标系的转换模型函数f_c2c,然后利用转换模型函数f_c2c进行坐标转换,具体为:
Figure GDA0003033229630000101
式中,f_c2c函数的功能是进行坐标重投影计算,p′(x′i,y′i,z′i)为进行坐标转换后的顶点的空间坐标。
S2.对经过坐标转换后的有效三维实景数据进行分幅,根据分幅的空间尺寸和图幅的平面范围计算出瓦片数据对应的空间编码,为了便于赋予空间编码,本具体实施例对有效三维实景数据进行正方形分幅,如图2-3所示,其中,图2中的数字编码为分幅后的空间编码;
S201.计算正方形图幅信息具体包括:
a1)定义分幅空间尺寸为tile_size,本具体实施例以tile_size=125米为例;
b1)统计坐标转换后的有效三维实景数据的平面范围,其中,X方向的范围为[Xmin,Xmax],Y方向的范围为[Ymin,Ymax];
c1)计算所有图幅的平面范围,X方向的范围为[X′min,X′max],Y方向的范围为[Y′min,Y′max],其中,
Figure GDA0003033229630000111
Figure GDA0003033229630000112
式中,X′min、Y′min、X′max、Y′max均可被tile_size整除;
d1)定义每个图幅的空间编码为tile_ri_cj,其中,ri为图幅的行空间编码,cj为图幅的列空间编码;定义每个图幅的平面范围为Rij,并定义图幅在X轴方向的平面范围
Figure GDA0003033229630000113
图幅在Y轴方向的平面范围为
Figure GDA0003033229630000114
其中,ri和cj为整数,取值范围为:
Figure GDA0003033229630000115
平面范围Rij的计算公式为:
Figure GDA0003033229630000121
Figure GDA0003033229630000122
S202.令坐标转换后的有效三维实景数据为{s1,s2…sn},其中,定义Sk表示三维实景数据的其中任一个瓦片数据,正方形的分幅步骤具体包括:
a2)已知当前选中的图幅的空间编码为tile_ri_cj,平面范围为Rij
b2)从{s1,s2…sn}中逐一选取瓦片数据Sk,令其顶点集为V={(x0,y0,z0,u0,v0),(x1,y1,z1,u1,v1)…(xm,ym,zm,um,vm)},三角网索引集为T={(t00,t01,t02),(t10,t11,t12)…(tn0,tn1,tn2)};
其中,(xi,yi,zi)表示顶点的空间坐标,(ui,vi)表示顶点的纹理坐标,(ti0,ti1,ti2)表示三角形的三个顶点在V中的序号;
c2)判断Rij是否包含Sk中的任一顶点,若不包括,则返回步骤b2),处理下一个瓦片数据;若包括,则转步骤d2);
d2)定义Sij_k为瓦片数据Sk在图幅tile_ri_cj中的有效数据,其顶点集为Vij_k,三角网索引集为Tij_k,Sij_k的纹理与Sk的纹理保持一致,则Sij_k的计算过程包括:
①将平面范围Rij转换为由四个顶点构成的多边形polyR
Figure GDA0003033229630000123
②从Sk中逐一选取三角形(tp0,tp1,tp2),其对应的顶点为
Figure GDA0003033229630000131
Figure GDA0003033229630000132
由此,三个顶构成多边形:
Figure GDA0003033229630000133
③利用Weiler-Atherton算法求得polyR与polyt的交集polyRt,如果polyRt为空,则转入步骤②,处理下一个三角形,否则转入步骤④;
④利用OpenGL的Tessellation算法对polyRt进行三角剖分,得到新的三角网,其顶点为V′={(x′0,y′0,z′0,u′0,v′0),(x′1,y′1,z′1,u′1,v′1)…},三角网索引集为T′={(t′00,t′01,t′02),(t′10,t′11,t′12)…},其中,x′i和y′i以及T′可以由polyRt三角剖分的结果直接得到,然后求解以下公式可得到z′i、u′i和v′i、ai、bi
Figure GDA0003033229630000134
其中,tp0,tp1,tp2表示三角网索引集T′中的任一三角形;
⑤将V′和T′分别合并到Vij_k和Tij_k中,需要注意的是当V′合并进Vij_k后,其顶点在集合中的索引将会发生变化,故T′中对应的索引需要进行相应的调整;
e2)定义图幅tile_ri_cj的所有瓦片数据为{Sij_k0,Sij_k1…},将其融合为一个瓦片数据sij,具体计算内容包括:
①利用Bin Packing算法将所有瓦片数据的纹理合并成一张大纹理,Bin Packing算法可以确保大纹理的宽和高尽可能小;
②根据Sij_kp瓦片数据的纹理在大纹理上的位置,更新其顶点集的纹理坐标,其中,Sij_kp表示图幅tile_ri_cj的任一瓦片数据;
③将所有瓦片数据的顶点集和三角网索引集进行合并,这里需要注意的是在进行合并操作时,顶点的索引会发生变化,因此对应的三角网索引集中的顶点索引需要进行同步更新;
如图3所示得到正方形分幅后的三维实景数据的示意图;
S3.针对每一幅有效三维实景数据,利用栅格化边缘跟踪算法计算其有效范围,如图4所示为本发明利用栅格化边缘跟踪算法计算得到的有效范围,为了提供符合申请要求的附图,图4由彩色图去色后产生,但是从边缘的白线可以体现处有效范围,具体内容包括:
S301.根据已知的经过正方形分幅后的有效三维实景数据sij、平面范围Rij,定义其栅格化后的空间分辨率为res,本具体实施例以res=5厘米为例,对该有效三维实景数据进行栅格化的具体内容包括:
a3)将平面范围
Figure GDA0003033229630000141
向外扩展成
Figure GDA0003033229630000142
其中:
Figure GDA0003033229630000151
本具体实施例定义n=10;
b3)创建一个长和宽分别为w和h的栅格grid,栅格的每个单元初始化为0;
Figure GDA0003033229630000152
c3)逐一选取sij中的三角形,将其投影到grid上并利用Edge Walking算法进行栅格化处理,栅格化结果对应的grid的单元置为1;
d3)为了降低数据中的空洞对后续计算过程的影响,利用形态学闭运算对grid进行处理,本具体实施例采用形态学闭运算的窗口大小为5,然后再利用形态学腐蚀算法对grid进行处理,本具体实施例采用腐蚀的窗口大小为3;
S302.基于S301生成的grid,利用边缘跟踪算法进一步提取三维实景数据的有效范围,具体包括:
a4)针对grid的每个非1单元,如果其四领域(上下左右)不全为0或1,则判断该单元为边缘单元,将找到的边缘单元置为1,其它单元则为0;
b4)从任一边缘单元开始,按照逆时针顺序(上下左右)查找周围的边缘单元,将查找到的单元依次插入到检索队列中,同时将该单元置为0,重复该查找过程直到没有新的边缘单元加入到检索队列;
将检索队列中的单元依次连接起来即为提取到的有效范围;
S4.根据空间编码和有效范围,依次对每一幅有效三维实景数据和与之对应的历史三维实景数据进行融合更新;
已知sij为经过正方形分幅后的有效三维实景数据,其图幅的空间编码为tile_ri_cj,图幅范围为Rij,并定义其有效范围
Figure GDA0003033229630000161
S401.计算Rij
Figure GDA0003033229630000162
的交并比iou;
Figure GDA0003033229630000163
Area表示计算平面面积,若Area大于0.99,则直接拷贝进历史三维实景数据中,否则进入S402;
S402.搜索历史三维实景数据中具有相同的空间编码tile_ri_cj的三维实景数据s′ij,如果s′ij不存在,则直接将sij拷贝进历史三维实景数据中,否者进入S403;
S403.计算Rij
Figure GDA0003033229630000169
的差集
Figure GDA0003033229630000164
剔除s′ij中与
Figure GDA0003033229630000165
不相交的三角形,得到s′ij的差集
Figure GDA0003033229630000166
S404.将sij
Figure GDA0003033229630000167
进行融合合并,具体计算步骤包括:
a5)利用Bin Packing算法将sij
Figure GDA0003033229630000168
的纹理合并成一张大纹理,Bin Packing算法可以确保大纹理的宽和高尽可能小;
b5)根据sij
Figure GDA0003033229630000171
的纹理在大纹理上的位置,更新其顶点集的纹理坐标;
c5)将sij
Figure GDA0003033229630000172
的顶点集和三角网索引集进行合并,这里需要注意的是在进行合并操作时,顶点的索引会发生变化,因此对应的三角网索引集中的顶点索引需要进行同步更新;
如图5所示为本发明三维实景数据融合合并结果前后的对比图,图5的左侧白色虚线框内为三维实景数据融合前的历史三维实景图,图5的右侧为白色虚线框内为将图4中有效三维实景数据更新后的有效三维实景图,对比更新前和更新后可以明显看出区别;
S5.将更新信息记录到数据库中,便于后续检索;
将更新时间和正方形分幅后形成的空间编码记录到数据库中,便于后续检索,即可以快速查询到每一次更新的所有图幅编号以及每一个图幅的所有更新日期。
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种面向大场景三维实景数据的动态更新方法,其特征在于,包括待录入更新的有效三维实景数据和需要被更新的历史三维实景数据,该方法包括以下步骤:
S1.将有效三维实景数据进行坐标转换;
S2.将经过坐标转换后的有效三维实景数据分幅成若干瓦片数据,根据分幅的空间尺寸和图幅的平面范围计算出瓦片数据对应的空间编码;
S3.利用栅格化边缘跟踪算法计算瓦片数据的有效范围;
S4.根据S2的瓦片数据对应的空间编码获取与当前瓦片数据对应的历史三维实景数据,再根据S3的瓦片数据的有效范围,对当前瓦片数据对应的历史三维实景数据进行三角形剔除处理,最后将三角形剔除处理后的结果与当前瓦片数据进行纹理、纹理坐标、顶点集和三角网索引集的合并;
S5.将更新信息记录到数据库中。
2.根据权利要求1所述的一种面向大场景三维实景数据的动态更新方法,其特征在于,所述S1中采用坐标重投影算法对有效三维实景数据进行坐标转换,具体包括:
S101.定义历史三维实景数据的坐标系为目标坐标系,该目标坐标系的坐标原点为(x00,y00,z00);并定义有效三维实景数据的坐标系为源坐标系,该源坐标系的坐标原点为(x01,y01,z01);并定义pi=(xi,yi,zi)为有效三维实景数据中的任一顶点的空间坐标;
S102.创建从源坐标系到目标坐标系的转换模型函数f_c2c,然后利用转换模型函数f_c2c进行坐标转换:
Figure FDA0003033229620000021
式中,f_c2c函数的功能是进行坐标重投影计算,p′(x′i,y′i,z′i)为进行坐标转换后的顶点的空间坐标。
3.根据权利要求2所述的一种面向大场景三维实景数据的动态更新方法,其特征在于,所述S2中对坐标转换后的有效三维实景数据进行正方形分幅,并赋予空间编码,具体包括:
S201.计算正方形图幅信息
a1)定义分幅的空间尺寸为tile_size;
b1)统计坐标转换后有效三维实景数据的平面范围,[Xmin,Xmax]表示X方向的范围,[Ymin,Ymax]表示Y方向的范围;
c1)计算所有正方形图幅的平面范围,[X′min,X′max]表示X方向的范围,[Y′min,Y′max]表示Y方向的范围;
Figure FDA0003033229620000022
Figure FDA0003033229620000023
式中,X′min、Y′min、X′max、Y′max均可被tile_size整除;
d1)定义每个图幅的空间编码为tile_ri_cj,其中,ri为图幅的行空间编码,cj为图幅的列空间编码;定义每个图幅的平面范围为Rij,并定义图幅在X轴方向的平面范围为
Figure FDA0003033229620000031
图幅在Y轴方向的平面范围为
Figure FDA0003033229620000032
其中,ri和cj为整数,取值范围为:
Figure FDA0003033229620000033
平面范围Rij的计算公式为:
Figure FDA0003033229620000034
Figure FDA0003033229620000035
S202.利用正方形图幅进行分幅操作包括:
a2)定义坐标转换后的有效三维实景数据为{s1,s2…sn},用Sk表示三维实景数据的其中任一个瓦片数据;
b2)从{s1,s2…sn}中逐一选取瓦片数据Sk,令其顶点集为:V={(x0,y0,z0,u0,v0),(x1,y1,z1,u1,v1)…(xm,ym,zm,um,vm)},三角网索引集为T={(t00,t01,t02),(t10,t11,t12)…(tn0,tn1,tn2)};
其中,(xi,yi,zi)表示顶点的空间坐标,(ui,vi)表示顶点的纹理坐标,(ti0,ti1,ti2)表示三角形的三个顶点在V中的序号;
c2)判断Rij是否包含Sk中的任一顶点,若不包括,则返回步骤b2),处理下一个瓦片数据;若包括,则转步骤d2);
d2)定义Sij_k为瓦片数据Sk在图幅tile_ri_cj中的有效数据,顶点集为Vij_k,三角网索引集为Tij_k,Sij_k的纹理与Sk的纹理保持一致;
e2)定义图幅tile_ri_cj的所有瓦片数据为{Sij_k0,Sij_k1…},将其融合为一个瓦片数据sij
4.根据权利要求3所述的一种面向大场景三维实景数据的动态更新方法,其特征在于,所述S202步骤d2)中Sij_k的计算过程具体包括:
①将平面范围Rij转换为由四个顶点构成的多边形polyR
Figure FDA0003033229620000041
②从Sk中逐一选取三角形(tp0,tp1,tp2),其对应的顶点为
Figure FDA0003033229620000042
Figure FDA0003033229620000043
由此,三个顶点构成多边形:
Figure FDA0003033229620000044
③利用Weiler-Atherton算法求得polyR与polyt的交集polyRt,如果polyRt为空,则转入步骤②,处理下一个三角形,否则转入步骤④;
④利用OpenGL的Tessellation算法对polyRt进行三角剖分,得到新的三角网,其顶点集为V′={(x′0,y′0,z′0,u′0,v′0),(x′1,y′1,z′1,u′1,v′1)…},三角网索引集为T′={(t′00,t′01,t′02),(t′10,t′11,t′12)…},其中,x′i和y′i以及T′可以由polyRt三角剖分的结果直接得到,然后求解以下公式可得到z′i、u′i和v′i、ai、bi
Figure FDA0003033229620000051
其中,tp0,tp1,tp2表示三角网索引集T′中的任一三角形;
⑤将V′和T′分别合并到Vij_k和Tij_k中;
所述S202中步骤e2)中关于将所有瓦片数据融合为一个瓦片数据的具体计算内容包括:
①利用Bin Packing算法将所有瓦片数据的纹理合并成一张大纹理,Bin Packing算法可以确保大纹理的宽和高尽可能小;
②根据Sij_kp瓦片数据的纹理在大纹理上的位置,更新其顶点集的纹理坐标,其中,Sij_kp表示图幅tile_ri_cj中的任一瓦片数据;
③将所有瓦片数据的顶点集和三角网索引集进行合并。
5.根据权利要求4所述的一种面向大场景三维实景数据的动态更新方法,其特征在于,所述S3中针对每一幅有效三维实景数据,利用栅格化边缘跟踪算法计算其有效范围,具体包括:
S301.定义其栅格化后的空间分辨率为res,对该有效三维实景数据进行栅格化的具体内容包括:
a3)将平面范围
Figure FDA0003033229620000052
向外扩展成
Figure FDA0003033229620000053
其中:
Figure FDA0003033229620000061
b3)创建一个长和宽分别为w和h的栅格grid,栅格的每个单元初始化为0;
Figure FDA0003033229620000062
c3)逐一选取sij中的三角形,将其投影到grid上并利用Edge Walking算法进行栅格化处理,栅格化结果对应的grid的单元置为1;
d3)为了降低数据中的空洞对后续计算过程的影响,利用形态学闭运算对grid进行处理,然后再利用形态学腐蚀算法对grid进行处理;
S302.基于S301生成的grid,利用边缘跟踪算法进一步提取三维实景数据的有效范围,具体包括:
a4)针对grid的每个非1单元,如果其四邻域不全为0或1,则判断该非1单元为边缘单元,将找到的边缘单元置为1,其它单元则为0;
b4)从任一边缘单元开始,按照逆时针顺序查找周围的边缘单元,将查找到的单元依次插入到检索队列中,同时将查找到的单元置为0,重复该查找过程直到没有新的边缘单元加入到检索队列;
c4)将检索队列中的单元依次连接起来即为提取到的有效范围。
6.根据权利要求5所述的一种面向大场景三维实景数据的动态更新方法,其特征在于,所述S4步骤中根据空间编码,依次对每一幅有效三维实景数据和与之对应的历史三维实景数据进行融合更新,具体包括:
根据sij、tile_ri_cj、Rij来定义经过分幅后的有效三维实景数据的有效范围
Figure FDA0003033229620000071
S401.计算Rij
Figure FDA0003033229620000072
的交并比iou;
Figure FDA0003033229620000073
Area表示计算平面面积,若iou大于0.99,则直接将瓦片数据sij拷贝进历史三维实景数据中,否则进入S402;
S402.搜索历史三维实景数据中具有相同的空间编码tile_ri_cj的三维实景数据s′ij,如果s′ij不存在,则直接将sij拷贝进历史三维实景数据中,否者进入S403;
S403.计算Rij
Figure FDA0003033229620000074
的差集
Figure FDA0003033229620000075
剔除s′ij中与
Figure FDA0003033229620000076
不相交的三角形,得到s′ij的差集
Figure FDA0003033229620000077
S404.将sij
Figure FDA0003033229620000078
进行融合合并,具体计算步骤包括:
a5)利用Bin Packing算法将sij
Figure FDA0003033229620000079
的纹理合并成一张大纹理;
b5)根据sij
Figure FDA00030332296200000710
的纹理在大纹理上的位置,更新其顶点集的纹理坐标;
c5)将sij
Figure FDA0003033229620000081
的顶点集和三角网索引集进行合并。
CN202110109493.2A 2021-01-15 2021-01-27 一种面向大场景三维实景数据的动态更新方法 Active CN112465962B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021100518519 2021-01-15
CN202110051851 2021-01-15

Publications (2)

Publication Number Publication Date
CN112465962A CN112465962A (zh) 2021-03-09
CN112465962B true CN112465962B (zh) 2021-06-08

Family

ID=74802792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110109493.2A Active CN112465962B (zh) 2021-01-15 2021-01-27 一种面向大场景三维实景数据的动态更新方法

Country Status (1)

Country Link
CN (1) CN112465962B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115880596B (zh) * 2023-02-06 2023-05-16 宝略科技(浙江)有限公司 一种基于实景三维的地理实体语义化的解译方法、系统
CN116091526B (zh) * 2023-04-10 2023-06-20 北京飞渡科技股份有限公司 一种智慧城市三维场景瓦片化加速方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292960A (zh) * 2017-06-30 2017-10-24 浙江科澜信息技术有限公司 一种三维场景中大规模地形渲染的局部刷新方法
WO2019161229A1 (en) * 2018-02-15 2019-08-22 DMAI, Inc. System and method for reconstructing unoccupied 3d space
CN110321443A (zh) * 2019-06-27 2019-10-11 埃洛克航空科技(北京)有限公司 三维实景模型数据库构建方法、装置及数据服务系统
CN111028349A (zh) * 2019-10-24 2020-04-17 宝略科技(浙江)有限公司 一种适用于海量三维实景数据快速可视化的层级构建方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292960A (zh) * 2017-06-30 2017-10-24 浙江科澜信息技术有限公司 一种三维场景中大规模地形渲染的局部刷新方法
WO2019161229A1 (en) * 2018-02-15 2019-08-22 DMAI, Inc. System and method for reconstructing unoccupied 3d space
CN110321443A (zh) * 2019-06-27 2019-10-11 埃洛克航空科技(北京)有限公司 三维实景模型数据库构建方法、装置及数据服务系统
CN111028349A (zh) * 2019-10-24 2020-04-17 宝略科技(浙江)有限公司 一种适用于海量三维实景数据快速可视化的层级构建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
三维地形场景局部高精度地形快速更新方法;刘浩等;《计算机工程与应用》;20131115;第1-4页 *

Also Published As

Publication number Publication date
CN112465962A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN106547853B (zh) 基于一张图的林业大数据建设方法
CN112465962B (zh) 一种面向大场景三维实景数据的动态更新方法
CN110321443B (zh) 三维实景模型数据库构建方法、装置及数据服务系统
WO2022166681A1 (zh) 一种虚拟场景生成方法、装置、设备和存储介质
CN109118588B (zh) 一种基于块分解的彩色lod模型自动生成方法
Zhao Application of 3D CAD in landscape architecture design and optimization of hierarchical details
CN103559374A (zh) 一种多子网格模型上进行面分裂型曲面细分的方法
CN114926602B (zh) 基于三维点云的建筑物单体化方法及系统
CN108717729A (zh) 一种面向虚拟地球的地形多尺度tin在线可视化方法
CN114049462B (zh) 一种三维模型单体化方法及装置
CN115661374B (zh) 一种基于空间划分和模型体素化的快速检索方法
Yang et al. Complementarity of historic building information modelling and geographic information systems
CN113724279A (zh) 路网自动划分交通小区的系统、方法、设备及存储介质
She et al. 3D building model simplification method considering both model mesh and building structure
CN117611768B (zh) 一种基于cad图纸的道路参数化建模方法
CN108830794B (zh) 高斯投影的pdf地图跨图幅无缝拼接显示方法
Zhang et al. A geometry and texture coupled flexible generalization of urban building models
Zhao et al. A 3D modeling method for buildings based on LiDAR point cloud and DLG
WO2024108974A1 (zh) 一种空间数据模型切片的多级简化方法
Wu et al. [Retracted] Intelligent City 3D Modeling Model Based on Multisource Data Point Cloud Algorithm
CN114972612B (zh) 一种基于三维简化模型的图像纹理生成方法及相关设备
CN115131526B (zh) 一种自动化综合制图方法及系统
CN115048473B (zh) 城市信息模型人工智能服务方法及系统
CN113076803B (zh) 一种基于高分辨率遥感影像的建筑物矢量提取方法及系统
CN115033972A (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