用户云卷云舒 发表于 2024-12-23 04:22:17

深度科普文:细数倾斜拍照数据的缺点

1. 引言

写这篇文章的因由是最近遇到一个使用倾斜拍照数据应标的三维可视化项目,业主认为倾斜拍照数据加载很卡,要求能浏览场景的时候能立即表现出当前的场景最精细的模子,如下图1所示。实在这个题目遇到的次数还真不少,作为乙方尝试去解答这个题目是一种骑虎难下的煎熬,因此在这里忍不住吐槽一二。
https://www.cnblogs.com/./1.gif
2. 题目

2.1 题目的答案

先说一下笔者的结论,这个要求对于倾斜拍照数据来说是不可能实现的:

[*]倾斜拍照数据的加载并不是卡,卡是性能题目,卡住了画面就会一动不动。现实上正常的倾斜拍照数据加载起来一点都不卡,浏览起来也非常流畅。
[*]倾斜拍照数据的题目是实在是加载很慢,很难一下子加载到最精细的模子。但对业主来说,是不太了解这些的,只能直观的表达这就是很卡。
[*]加载很慢的题目是没办法解决的,这里面的逻辑是这样的:
[*]如果硬件资源(CPU、内存、GPU、显存等)答应,我们固然希望能一次性加载到内存/显存空间中进行渲染表现,这样只会在预加载数据的时候卡一次,渲染画面浏览操作的时候就完全不会卡。
[*]但是这个方式对于倾斜拍照数据来说不可能的。一个倾斜拍照数据通常有上百G的数据量,但是如今还没有上百G的内存和显存,即使有GPU也不一定能包管渲染如此大数据量的画面不会卡。
[*]为了解决这个题目,就诞生了一种名为多分辨率层次结构(Hierarchical Level of Detail, HLoD)的技术,具体来说就是将三维模子数据划分为多个层次,每个层次包罗不同具体水平的模子;同时在渲染端根据观察者的位置和视角,动态选择最适合的模子细节,从而在保持高性能的同时提供高质量的视觉结果。
[*]在三维图形渲染中为了包管流畅的性能,须要在1秒中渲染60次画面,专业说法就是要到达60帧。换算一下也就是渲染一次画面(简称为每一帧)最多只能1/60秒的时间。数据须要从磁盘中获取,假设磁盘IO的效率是每秒60M,那么每一帧能处理的数据就只能是1M大小。
[*]很显然,在真正可视化的时候,每一帧能处理的数据几M大小相对于整体的上百G数据实在太小了,一定会有一个渐渐加载的过程的,这就是总是会显得加载很慢的原因。

2.2 业主的疑惑

那么为什么总是有业主希望倾斜拍照数据能马上加载出来,不要有中央渐渐加载的过程呢?因为这本来就是传统的三维模子工作流的优点和特性。在传统的三维模子工作流中,通过3DMax等建模工具将模子创建完成之后,渲染端只须要在程序启动的时候预加载一次就可以了,之后的模子数据就常驻在内存/显存中,后续整个渲染流程就完全不会卡,更不存在什么渐渐加载的过程。
很多人,尤其是干拍照测量的,就会对业主的这个要求感到疑惑,觉得倾斜拍照数据就是这样要渐渐加载的啊,有什么题目呢?实在固然有题目,对业主来说已经习惯了传统的三维模子工作流了,你如今引入了更有技术含量的倾斜拍照技术,另有什么HLoD的可视化技术,这个加载快的优点应该保留吧?总不能你技术升级了,反而还让用户的交互感受下降了,那算什么高新技术呢?
这样来看,业主的要求也是有道理的,作为乙方唯一有题目就是不应该随便拿倾斜拍照数据这种做三维可视化项目有很大缺陷的数据来应标,导致自己陷入了一种难以自证的困境:如果你觉得倾斜拍照数据更好,那为什么加载很慢?如果倾斜拍照数据不好,那为什么要用比力差的数据方案来应标?
3 缺点

我说倾斜拍照数据是一种缺陷非常大的数据,可能很多人尤其是拍照测量从业人员可能会不太服气。但是实在数据生产是数据生产,可视化项目是可视化项目,是两个不同维度的东西。倾斜拍照数据很多被人认为是习以为常的特性,放在可视化项目中是很难被接受的。
3.1 建模题目

倾斜拍照数据最大的题目就是难以表达突变的、尖锐的特征,只对平滑的特征才有比力好的表达。具体来说,像树木、广告牌、电线杆这些或蓬松的,或细长,或薄型的结构建建模结果总是一言难尽,如下图2所示树木的建模结果:
https://www.cnblogs.com/./2.png
我知道,国内有很多建模软件都宣称可以将广告牌、电线杆甚至塔吊都建模出真实的结果;确实,只要提拔充足的分辨率、或者混淆Lidar点云建模、甚至增补使用AI技术增补细节,也许真的可以将这些要素都复原出来,但是有的题目总归是不能避免的,比方物建筑物外貌不平整的题目,如果你做过倾斜拍照数据单体化,就一定明白我说的是什么:
https://www.cnblogs.com/./3.png
实在这些题目从原理上来说都是同一个题目,都是三维重建算法导致的。简单来说,三维重建的时候使用的输入要素是有限的,就一定会产生插值误差或者过拟合的题目,如果是重建地形题目不是很大,但是要重建复杂的、充满了突变要素的地表模子,就一定会导致平面边缘含糊或产生多余的升沉的题目。确实,是可以通过增加分辨率的办法让三维建模的输入要素更多,从而使得建模更加准确,但是如此高尺度的倾斜拍照建模,又有谁能应用的起呢?至少在公共领域是看不到这样的倾斜拍照建模数据的。
3.2 语义化题目

搞倾斜拍照搞到最后,各大数据生产商也都发现了,一定要解决语义化的题目。笔者也不知道语义化这个词怎么来的,约莫意思就是说倾斜拍照数据就是一张皮,你是不知道这张皮上面哪个部分是属于哪个建筑物的。这也就意味着倾斜拍照数据不能与现实的业务关联,只能做做可视化的展示工作。
要解决语义化的题目,起首就必须实现倾斜拍照数据的单体化。具体来说,就是将倾斜拍照数据上具有具体意义的部分单独提取出来,形成独立的、准确的三维模子。这一过程使得每个单独的对象(如一栋楼、一座桥等)能够被单独编辑、查看、分析和应用,也可以赋予具体的业务属性,从而实现了语义化。关于倾斜拍照的单体化,笔者的文章《倾斜单体化模子技术实现》中有具体的论述。
在笔者看来,将倾斜拍照数据进行单体化不仅解决了语义化的题目,最紧张的是规避了上一末节中提到的建模题目:在一个倾斜拍照数据中,表达地形的部分可以直接使用DEM数据替代,树木、广告牌、电线杆这些突变的尖锐的舆图要素又表达不好,剩下的就只有一些建筑物的表达另有可视化价值了,那就干脆将这些建筑物单体化出来,反而更有实用价值。
3.3 可视化结果题目

很多人将倾斜拍照数据称为“实景”,将倾斜拍照数据称为基于真实的物理建模。究竟是友商,其时笔者并未做过多的争论,如今细想起来实在是有题目的。确实,笔者承认倾斜拍照数据确实很真实,但是这种真实仅仅只是照片那种真实,与三维图形渲染会合基于真实的物理光影结果渲染的模子实在是有很大差距的。如下图4和图5所示,图4是纹理图片上的水面结果,图5是通过三维殊效实现的水面结果,你觉得哪边更加真实呢?
https://www.cnblogs.com/./4.png
https://www.cnblogs.com/./5.png
倾斜拍照数据就是这样,它的真实性,所有的光线反射、阴影全部都固化到纹理图片上了。这意味着你不可以像调整三维结果一样调整它,强行调整它就只会得到很希奇很不真实的结果,你的可视化结果的上限就这样被定死了。基于真实的渲染是一个很复杂的题目,相机拍摄的照片也只是一种迫近而已,倾斜拍照数据的真实感上限是远远比不上传统的三维模子工作流的。传统的三维模子工作流在进行渲染端之后,可以借助于渲染引擎的物理光照计算,获得更为真实的渲染结果。另一个最现实的例子就是,你是觉得倾斜拍照数据更真实,还是《黑悟空》里面的场景更真实?
3.4 地理套合题目

所有的资料都宣称倾斜拍照数据具有亚米级别甚至于厘米级别的精度。我固然相信这个说法,但是这么高级别的精度用到三维可视化项目上,是符合国家数据安全要求的吗?即使不考虑这个题目,倾斜拍照数据一般要与地形数据进行套盒,但是现实上由于精度不一致的题目,两者的套合结果并不好。以如今的解决方案来说,都是调整倾斜拍照数据的高度,包管大概能贴到地面即可。但是对于有的倾斜拍照数据来说,这样的做法并不严密,有的地方都贴到地下面去了,有的地方离地面另有点距离。
4. 结论

最后实在还想讨论一下倾斜拍照数据的调度题目,不外这个题目就太复杂了,有时机就放在背面再先容吧。总结一下本文的内容,那就是在使用倾斜拍照数据进行三维可视化项目的应标的时候一定要慎重,它具有一下几个缺点:

[*]无法保持在传统的三维模子工作流中数据只加载一次的优点,而是须要一边渲染一边加载,这可能并不满足业主对于及时性的要求。
[*]如今通用的倾斜拍照技术的建模算法对于突变的、尖锐的特征的表达并不太好,比方树木、广告牌、电线杆等;建筑物的表达也存在不平整的题目。
[*]倾斜拍照数据的可视化结果固化在纹理图片上,无法通过三维渲染技术进一步提拔真实的结果。
[*]由于精度的差异,倾斜拍照数据与三维场景的套合可能存在一定的偏差。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 深度科普文:细数倾斜拍照数据的缺点