扫荡倾斜摄影单体化难题

单体化问题的由来
咱们先来讲说什么是“单体化”。“单体化”其实指的就是每个咱们想要单独管理的对象,是一个个单独的、能够被选中的实体(Entity);即用鼠标点击时能够显示为不一样颜色(称为“高亮”)显示,能够附加属性,能够被查询统计等等。只有具有了“单体化”的能力,数据才能够被管理,而不只仅是被用来查看。
对于人工建模而言,单体化是一个不言而喻的事情。即在人工建模的过程当中,天然会把须要单独管理的对象(如建筑、路灯、树木等)制做为单独的模型,也是和其它对象分离开的。(固然也有一些时候为了其它方面的一些考虑,人工建模时故意把几栋楼做为一个对象来制做)
这里写图片描述web

图1 倾斜摄影自动化建模过程和机制
对于倾斜摄影自动化建模而言,其建模机制的缘由可简单概括为如上图所示。即在空三以后,首先对所拍摄的影像像对生成稠密的点云,而后对点云进行抽稀,再构建三角网,最后贴上贴图。在这个过程当中,是没有人工干预的。当前的建模算法并不会把建筑、地面、树木等地物区分出来,所以构建出来的是一个连续的Tin网。对于这样的数据,自己是没法选中单个建筑的,须要进行必定的处理才能实现“单体化”。
而对于大多数应用(除了仅仅用来看效果或进行量算)而言,是须要能对建筑等地物进行单独的选中、赋予属性、查询属性能最基本的GIS的能力。所以,单体化成为倾斜摄影模型在GIS中应用所绕不过的一个坎,是必需要解决的问题。
这里写图片描述算法

图2 单体化问题的由来
单体化的三种解决思路
那么,倾斜摄影模型实现单体化的技术思路,总结出来有三种,具体包括:
一、最直观的思路,就是用建筑物、道路、树木等对应的矢量面,对倾斜摄影模型进行切割,即把连续的三角面片网从物理上分割开,从而实现单体化。咱们能够称之为“切割单体化”。效果可以下图所示:
这里写图片描述编程

图3 切割单体化效果图
二、利用三角面片中每一个顶点额外的存储空间,把对应的矢量面的ID值存储起来;即一个建筑所对应的三角面片的全部顶点,都存储了同一个ID值,从而实如今鼠标选中这个建筑时,该建筑能够呈现出高亮的效果。这个能够称之为“ID单体化”,以下图所示。
ID单体化理解起来相对要难一点,最好能懂一点三维开发的知识。其实就是让同一个建筑模型上,都存储上同一个id值。从而在三维gis中呈现出鼠标点击后,能高亮显示这个建筑物:
这里写图片描述
图4 ID单体化效果图
三、在三维渲染的时候,动态的把对应的矢量面叠加到倾斜摄影模型上,相似于一个保鲜膜从上到下完整的把对应建筑等物体的模型包裹起来,从而实现可被单独选中的效果。这种因为是渲染时动态呈现的,能够称之为“动态单体化”。以下图所示:
这里写图片描述
图5 动态单体化效果图svg

动态单体化乍一看和ID单体化效果很是像,但它们实现的技术原理是有很大区别的。ID单体化是须要预先处理数据,把建筑物所对应的模型上存储同一个ID值,而动态单体化则是在渲染时动态绘制出来的。
动态单体化的另一个误解是:是否是就在用一个半透明的方盒子在倾斜摄影模型外面。其实不是这样,动态单体化相似于半透明的皮肤衣,是从上到下贴合模型表面,并把模型完整所有套合在内的效果。以下图所示:
这里写图片描述
图6 动态单体化中矢量面与模型的套合效果性能

在软件操做中,动态单体化须要把矢量面做为一个图层添加到三维场景中,而后软件中的一个开关设置为“贴对象”,效果就出来了。
内部实现中,能够简单理解为:矢量面会判断tin网的哪些部分是在它的范围内的,包括空中漂浮的模型,而后把半透明的颜色覆盖上去。
还有一类是以天际航的DP-Modeler为表明,在倾斜摄影模型的基础上,进行人工干预,从新构建单个的三维模型;这个其实有点相似于人工建模的味道,结果天然就是单体化的(同时还起到修饰模型效果的做用)。就不在咱们后续讨论之列了。
单体化目的回顾及优缺点分析
乍一看,第一种思路即“切割单体化”在单体化的道路上最为完全,毕竟只有这样,才是真正把连片的模型单独切割出来了,以后的选中高亮、赋予属性等也就都是瓜熟蒂落的事情了。所以,也有人说:只有“切割单体化”才是真正的单体化,其余都是假的单体化。
但咱们继续深刻研究,就会发现后面两种单体化在代价更小的状况下,也能实现对应的要求,切效果更佳。也就是说咱们须要再审视目的,再综合利弊来考虑和选择途径和方法。就如同减肥并不表明必须节食,运动加合理的膳食一样能达到目的,效果可能更好。
那么,咱们再来回顾一下单体化的目的究竟是什么:
单体化本质上是为了解决倾斜摄影自动化建模软件输出的三维模型是连片的、没法单独选中要管理的地物;为了能进行查询和管理,咱们须要能单独选中某个地物,能查询它对应的业务属性;但并不“必然”要求把这个地物从物理上把它和周边的模型分离开。
固然,“单体化”这个名词容易给人形成一种误解,彷佛必须物理切割了,才是真正的单体化;要是换作“对象化”或“可管理”等名词,理解起来就顺畅多了。
这里写图片描述3d

图7 单体化思惟的转变xml

打破了这个心理障碍,那咱们就继续来分析这三种单体化方法各自存在的优缺点。
首先咱们来看,上述三种单体化的方式,其实都能达成最基本的目标,就是能选中该地物,能赋予属性并进行查询。咱们再看数据制做过程,“切割单体化”必须先进行模型物理上的切割,因为倾斜摄影数据量通常都比较大,所以切割是一件费时费力的事情,再有就是切割后模型的底边,会带有很是明显的锯齿(三角面片的边界)。另外因为三维GIS对模型的空间查询和分析计算能力远没有二维GIS对面的能力完善,所以所能进行的下一步分析计算的能力是很是有限的。
而“动态单体化”则是在三维渲染过程当中,动态的把对应矢量底面套合在模型表面之上,所以就无需提早的预处理,只须要三维GIS软件和所运行的设备上支持该渲染能力便可;套合后的模型底边的平滑度是和显示器屏幕的分辨率一致的,效果会好的太多。另外动态单体化因为是把二维矢量面和三维倾斜摄影模型结合起来了,所以能够充分利用二维GIS平台对面数据的查询计算分析等能力,各种GIS能力都能充分发挥出来,如查询周边地物,制做专题图等等。以下图所示:对象

这里写图片描述
图8 动态单体化支持丰富的GIS功能blog

“ID单体化”则是介于二者之间,能够理解为在还不支持“动态单体化”所须要的三维渲染能力时,一种折中的处理方法。
对于以上分析,咱们能够概括总结为下表:图片

单体化方法 技术思路 预处理时间 模型效果 功能 小结
切割单体化 预先物理切割把地物分离开 长 差,锯齿感明显 弱 非特殊状况不推荐使用
ID单体化 给对应地物的模型赋予相同ID 通常 通常 通常 在不支持动态渲染的环境中使用
动态单体化 叠加矢量底面,动态渲染出地物单体化效果 无需 好,模型边缘和和屏幕分辨率一致 强,全部GIS功能都能实现 推荐使用

“切割单体化”还有一个很是致命的问题在于:倾斜摄影模型自己是带有多层LOD的,切割针对最精细层进行,破坏了数据原生的LOD,也就没法直接加载模型,而只能采用导入的方式。再就是切割通常只是把Tin网分来了,而整块模型所对应的纹理并不会切割开,所以会出现多份纹理,而重复大量的纹理是最耽误三维渲染性能的。这一切,都会致使数据量较大时三维浏览的性能急剧降低。这一点,还能够参考对倾斜摄影数据加载和性能方面的问题,会有更详细的阐述。
分层单体化的实现思路
动态单体化的一个高级应用,就是对不一样楼层进行单体化,也就是能选中高亮一个建筑的每一层、乃至每一户,并查询对应的属性。这么作的目的是为了实现基于倾斜摄影模型的精细化管理,在公安的“三实”、不动产登记等诸多领域中都具有应用价值。
实现分层单体化的提早是须要知道每一层楼层高度信息的矢量面数据。数据准备过程以下图所示。通常这类数据在房产主管部门会有,本身也能根据倾斜摄影模型采集制做。
这里写图片描述

图9 分层单体化所须要的数据基础

对于切割单体化而言,是把模型中的每一层楼都单独切割开,想一想运算效率和每一层的锯齿都是比较恐怖的事情。对于动态单体化而言,在数据准备稳当的状况下,也是软件中的一个开关打开,便可实现单独每层每户的选中和查询。效果以下图所示:
这里写图片描述

图10 基于动态单体化技术的选中查询倾斜摄影模型每层每户效果图
从数据本质角度出发的再思考
其实,咱们从科学原理上分析,倾斜摄影自动建模的结果,本质上就是带有建筑树木等一切地物的地形加影像数据,只不过地形是用三角网来表达的。对于这种数据,咱们更多能够参考和借鉴对影像的处理方式。即没有人会把影像按照一个个建筑来进行切割为多个小的影像块,而是经过叠加一层矢量化的面来实现对建筑的选中和管理。
这里写图片描述

图11 单体化方式的再思考

这里写图片描述
图 12 2.5维地图中的热区(图中央的天安门城楼效果)

固然,“切割单体化”也并不是一无可取。曾经遇到个别应用中,用户就是想存储和拷贝其所拥有的建筑模型,而并不关心周边的环境。对于这种状况,窃觉得采用模型修补软件进行进一步加工处理,除了知足单独建筑模型的须要,还能同时修补模型的效果。
配套矢量底面的获取方法
须要说明的是:因为三种单体化都事先须要准备好地物所对应的矢量底面,所以在数据的准备工做上并无差异。不一样的是:切割单体化是用完矢量面以后就能够扔了;ID单体化须要留着矢量面作属性查询;而动态单体化得把矢量面带着走、随时用。
那么,获取配套的矢量底面就是一个很是重要的工做。方法有三:
一、 已有DLG数据进行配准。这个是最省事的,不过须要有数据基础;注意投影的一致性。
二、用自动化建模软件输出正射影像,而后半自动的勾画矢量面,这个须要投入必定的人工时间。也有很多国内公司,直接基于倾斜摄影来进行矢量化制图,听说效率也很是高。
三、 自动化的提取;这种方式表明着将来的方向,业界有不一样公司正在探索之中,虽然方法各有差异,但整体前景很是看好。
例如中科遥感(天津)基于模型数据直接进行提取,但运算性能和效果还须要进一步提高。北京超图则先把倾斜摄影模型转换为Grid格式的地形,而后提取等高线,根据等高线的特征进行分析提取。具体过程和提取后效果以下图所示。最后的效果只能说是勉强可用,要是作太精确的计算确定是达不到要求的;不过用来作管理,能选中能查询仍是OK的。
考虑到不一样地区数据特征不一样,还没有提供一键式功能;但上述功能在桌面中都能进行操做(无需编程)。

这里写图片描述
图13 根据等高线分析来提取矢量面的操做步骤

这里写图片描述
图14 根据等高线分析方法提取矢量面以后的效果

最值得期待的是街景工厂、ContextCapture(Smart3D)等自动化建模软件也在研制自动化提取方法。大体思路是经过中间输出的点云数据,按照必定规则进行筛选、简化转化为DLG。这个技术完成后,对于倾斜摄影的单体化,以及后续应用,都是一个大大的福音。