菜鸟都应该知道的倾斜摄影测量知识-程序员宅基地

技术标签: gis  三维GIS  

作者:翔翔

所谓“站在巨人的肩膀上”在这篇文章中就很好的体现出来了,本文的一些图和一些概念就是借鉴“巨人”发表的文章中的图和概念。这还得感谢这些“巨人”把我们领向一条光明大道。我不是摄影测量的专业人士,GIS圈也只是个刚入门的菜鸟。请允许我从一个菜鸟的角度,来说说那些菜鸟入门级的倾斜摄影测量知识。
近些年,倾斜摄影测量在GIS圈掀起了一阵巨浪,有人说他颠覆传统的测绘领域,有人说他替代了传统建模方式。正因为倾斜摄影测量被带上了这么多光环,人们开始对他有形形色色的猜想,让它变得越来越神秘。就让咱们来看看倾斜摄影数据的效果图。
这里写图片描述

我们先来看看倾斜摄影测量,和我们传统的影像有什么区别?
从数据采集的方式来看,传统影像是通过飞机上搭载的航摄仪对地面连续摄取相片,而后经过一系列的内业处理得到的影像数据,获取的成果只有地物俯视角度信息,也就是视角垂直于地面。而倾斜摄影测量测试通过飞机或无人机搭载5个相机从前、后、左、右、垂直五个方向对地物进行拍摄,再通过内业的几何校正、平差、多视影像匹配等一系列的处理得到的具有地物全方位信息的数据。简单理解就是,影像上地物是在一个平面的,倾斜摄影测量地物是具有真实高度的。
这里写图片描述

我们知道了倾斜摄影数据采集的方式,通过倾斜摄影数据加工的关键技术,比如多视影像联合平差、多视影像关键匹配、数字表面模型生产和真正射影像纠正等,得到地表数据更多的侧面信息,加上内业数据处理,得到数据的三维模型。
下面,小伙伴们一起来揭开倾斜摄影测量数据神秘的面纱吧!倾斜摄影测量的数据本质上来看是mesh模型,什么是mesh模型呢?mesh模型就是网格面模型,它是点云通过一些算法,比如区域增长法、八叉树算法和波前算法等等构成的。而点云是在同一空间参考系下用来表示目标空间分布和目标表面特性的海量点集合。内业软件基于几何校正,联合平差等处理流程,可计算出基于影像的超高密度点云,如下图:
这里写图片描述
最后经过纹理映射构建真实三维模型,如下图:
这里写图片描述
下面我们说说倾斜摄影测量常用的处理软件。目前国内外比较流行的倾斜摄影自动建模软件如下:
1) 法国Acute3D公司的Smart3DCapture。基于图形运算单元GPU的快速三维场景运算软件,可运算生成基于真实影像的超高密度点云,它能无需人工干预地从简单连续影像中生成逼真的三维场景模型。 国内有多家重要的数据生产单位正在使用该软件。
2) 法国INFOTERRA公司的像素工厂(Pixel Factory)StreetFactory子系统通过对获得的倾斜影像进行几何处理、多视匹配、三角网构建,提取典型地物的纹理特征,并对该纹理进行可视化处理,最终得到三维模型。
3) 美国苹果公司收购C3公司所采用自动建模技术。
4) 美国Pictometry公司的Pictometry倾斜影像处理软件提供了EFSElectronic Field Study。
5) 国内有多家企业及单位对倾斜模型也有比较深入的研究,形成自己独特的模型工艺流程。
目前网络上可以方便找到Smart3DCapture Viewer,并且在Acute3D官网提供了示范的数据, 感兴趣的同学不妨下载试用,下载地址:http://www.acute3d.com/s3c-viewer/。
好,啰嗦了这么多,咱们言归正传,超图可以用倾斜摄影测量的数据做些啥呢?
倾斜摄影测量的数据格式很多,超图目前支持的是OSGB文件格式的倾斜模型,OSGB文件格式自带了多级金子塔的模型精度级别,为了充分利用其LOD结构,超图平台通过scp索引文件直接加载模型,SuperMap iDesktop 7C版本已经为用户提供了生成scp的工具,通过在场景中直接加载scp的方式,可以快速的在三维场景中显示不同精度的LOD层级。这里得说明下LOD这个概念,LOD(Level of Detail)是GIS平台提高性能的一个重要法宝,即对同一个数据从清晰到模糊有多层。当屏幕视角距离某个地物近时,软件自动调用最清晰层的数据;当屏幕视角远离该地物时,则自动切换为模糊层的数据。想在前年使用超图对接OSGB数据时,使用的还是数据导入,再生成模型缓存的方式,这种方式耗时长而且数据加载慢,这样做完全不利于用户体验。现在以这种scp直接加载数据的方式,真是好太多太多了。
倾斜摄影测量的数据有这么多的好处,比如浏览速度快、数据加载快、数据精度高、数据真实性高、人员成本低、和数据获取耗时短等等,但是用过的人都知道,单体化是倾斜摄影测量应用的一大问题,为什么这么说呢?咱们的倾斜摄影数据是一个整体,不像简单模型那样是一个或者同类对象组成的,所以咱们想要倾斜模型像简单模型那样能够进行查询、分析和编辑等功能,这就是倾斜模型存在的一个大问题。
那么什么叫单体化?我们有必要先了解下这个概念。简单的说单体化也就是获取或者分离一个场景中的单个或者一类对象。怎样获取或者分离呢?不同的人有不同的看法,比如说一些人认为应该用切割的方式来获取或者分离;而超图则是用矢量化的方式来获取或者分离,这主要是超图得益于二三维一体化的技术,将二三维的矢量数据与倾斜摄影测量数据相结合,实现了数据的单体化,有了这个法宝,什么查询,分析,编辑等等功能的实现就水到渠成了。小菜我就以这两种方式来谈谈单体化问题。
提倡切割的人认为,单体化单体化,不仅仅是要单体,而且还要实现分离的效果,最后把同类的给分离出来,完成分离之后给后期基于此数据做查询、分析和编辑等功能时提供方便。现在我们来看看切割出来的效果:
这里写图片描述

上面两张图看来切割的方式展现出来的效果还蛮不错的,有条有理的,但是当你拉近到一定程度的时候效果是这样的:
这里写图片描述
这样看来切割的缺点就不言而喻了,出现的锯齿状是用户最不愿看到的,而且这也不是倾斜摄影该有的展示效果。这是效果问题,那么对于倾斜摄影的话,我们后续还要进行数据处理,切割之后的倾斜摄影要替换人工精细建模的时候, 如何才能把锯齿状边缘与精细模型的边缘对接上去,使它们能够达到无缝结合?要隐藏某种地物的时候露出锯齿状的空洞,该如何解决?而且这样切割之后,也抛弃了倾斜摄影数据自带的LOD的优点,导致GIS平台只能用按照普通模型的方法来构建LOD。这些都应该是 “切割工程师”需要考虑的。
说完了切割咱们来一起来探讨下矢量化的方式,何谓矢量化?矢量化则是用简单的面数据,通过贴附的方式展现在倾斜摄影模型数据上,在保证效果、不破坏原始数据和LOD的同时,最大的好处还在于它打通了基于三维的倾斜摄影与基于二维的矢量面之间的关键“关卡”,实现三维和二维GIS的完美一体化。现在小菜我就给大家带来大神做的矢量化的单体化的效果图:
这里写图片描述
看到了这样的效果,小伙伴们是怎样想的呢?上面咱们介绍了单体化的内容,现在咱们来说说矢量化解决了倾斜摄影数据的一个重大问题水面“破洞”现象,“破洞”是由于水面的高反射现象使得相机在获取水面信息的时候被“致盲”了,使得那片区域的信息不准确。下面咱们来看看修补前后的效果图:
这里写图片描述
这里写图片描述
超图弥补的还不止一个倾斜摄影数据本身的问题,比如树的还原度不高等问题。大家都知道相机是有拍摄盲区,比如立交桥的下面,建筑的屋檐下面,这些被遮挡的地方,而这盲区也是不可避免的,就像人的眼睛不能看到遮挡物后面的区域,这片区域就是我们所谓的盲区 。对于这个区域目前各个公司有不同的想法,目前听来,才疏学浅的我觉得,倾斜摄影测量+街景的想法很靠谱,既可以利用现有的资源,同时还能弥补互相的不足 ,不过街景数据的覆盖程度和数据更新的算法也是个问题,那就让我们拭目以待。下面这幅图就给大家说明了相机盲区和树的还原度问题。
这里写图片描述
在小菜我看来,倾斜数据的价值还需要挖掘,它能提供给我们的价值远不止目前看到的,随之数据精度的不断提高,采集速度的加快,有可能在未来的某一天,倾斜摄影测量的数据可能会成为人们了解现实环境的重要手段。
但是犹如上文提及到的一系列功能模块,我们也可以看到倾斜摄影的一些缺陷:比如倾斜摄影相机的盲点区域,比如立交桥下、房屋遮挡处;水面的“破洞”现象;不规则模型的还原度不高,比如说树等等,造成这些缺陷的主要原因还在于倾斜摄影相机的拍摄技巧、硬件、还原模型的计算方式等因素。在这里小菜我也希望大家一起努力的学习把倾斜摄影这个技术提升到一个新的高度,也让我们的数字化城市、数字化地球更加真实、漂亮、更具观赏性。未来是咱们的!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/supermapsupport/article/details/47129077

智能推荐

2023.8DataWhale_cv夏令营第三期笔记_逻辑回归需要训练很多轮么-程序员宅基地

文章浏览阅读257次。使用官方提供的脑PET数据集,构建逻辑回归模型来进行脑PET图像的疾病预测,数据集被分为两类,分别为轻度认知障碍(MCI)患者的脑部影像数据和健康人(NC)的脑部影像数据,图像数据格式为nii,因此本赛题可抽象为一个二分类问题。nii是一种常用的医学图像数据格式,主要用于存储和交换神经影像数据。以下是一些主要特点:1.主要用于存储3D(三维)医学图像数据,如MRI(磁共振成像)和CT(计算机断层扫描)图像。2.支持多种数据类型,使得其可以支持不同类型的数据处理和分析。_逻辑回归需要训练很多轮么

通用指南-营销和设计中的增强现实(AR)-程序员宅基地

文章浏览阅读1.2k次,点赞31次,收藏26次。增强现实通常被视为一个利基领域。然而,在过去的两年里,它已经到了一个成熟的阶段,应该在一般的营销堆栈中进行考虑。正如我们所看到的,这个市场是巨大的,而且随着主要参与者向这项技术投入大量投资,它只会继续增长。从苹果到Meta,大公司都相信身临其境的未来,而想要获得成功的营销人员和创意人员也加入了进来。本文第三章,最佳设计实践除了深入讨论AR设计的原则外,还全面推荐了AI设计工具。旨在帮助读者的AI作品脱颖而出。

linux c 网络编程_usage: ./tcp_client hostname-程序员宅基地

文章浏览阅读473次。OSI七层网络模型由下至上为1至7层,分别为:物理层(Physical layer),数据链路层(Data link layer),网络层(Network layer),传输层(Transport layer),会话层(Session layer),表示层(Presentation layer),应用层(Application layer)。1.1 应用层,很简单,就是应用程序。这一层负责_usage: ./tcp_client hostname

Nexus3配置yum代理 pypi代理和npm代理(三合一)_maximum component age-程序员宅基地

文章浏览阅读2.8k次。环境准备安装 maven 安装 java 环境[root@cicd-nexus ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz[root@cicd-nexus ~]# tar xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/[root@cicd-nexus ~]# tar xf _maximum component age

使用js-xlsx handsontable 分批次导入Excel数据(兼容ie9)_js 导excel 分批写入-程序员宅基地

文章浏览阅读1.6k次。使用js-xlsx handsontable 可以把本地excel 解析到网页上,然后分批次传入后台。在chrome 下 可以参考 https://github.com/SheetJS/js-xlsx 【Browser file upload form element】但需要使用FileReader api 这个只有ie10 才开始支持。兼容ie9 ,ie9需要通过flash 来支持..._js 导excel 分批写入

wxWidgets 自绘按钮(图片+文字)_wxwidgets 中文按钮-程序员宅基地

文章浏览阅读2.5k次。在wxWidgets中,想要通过其本身的控件来实现图片+文件的按钮,貌似不太容易做到。但是可以通过重载wxControl来自绘图片+文件按钮。下面给出的是已经封装好的按钮类:wxBitmapButtonEx.h#ifndef _BITMAP_BUTTON_EX_H#define _BITMAP_BUTTON_EX_H#include "wx/wx.h"enum eBitm_wxwidgets 中文按钮

随便推点

invalidate()和postInvalidate()的区别_postinvalidate和invalidate的区别-程序员宅基地

文章浏览阅读847次。invalidate()与postInvalidate()都用于刷新View,主要区别是invalidate()在主线程中调用,若在子线程中使用需要配合handler;而postInvalidate()可在子线程中直接调用。postInvalidate它是向主线程发送个Message,然后handleMessage时,调用了invalidate()函数。(系统帮我们 写好了 Handle..._postinvalidate和invalidate的区别

计算机表格 求差,Excel表格中求差函数公式怎么用-程序员宅基地

文章浏览阅读9.1k次。excel数据进行分类汇总的步骤在做分类汇总前,我们需要对数据先进行排序,否则分类汇总无法进行。得到排序后的表格。点击上方工具栏中的“数据”→“分类汇总”。在弹出的对话框中选择“分类字段”→“汇总方式”→“决定汇总项”。点击确定出现数据汇总结果。Excel表格中求差函数公式使用的方法第一步:打开Excel表格,单击第一排,第三个“单元格”,也就是C1,在C1中输入“=A1-B1”;第二步:这个公式..._表格求差公式

Linux下OpenCV的安装与测试成功教程(解决E: 无法定位软件包 libjasper-dev、无法找到directory `opencv.pc‘、fatal error:“highgui.h“)_无法定位软件包 libgazebo-dev-程序员宅基地

文章浏览阅读1.5w次,点赞49次,收藏169次。前言好激动,断断续续装了两三天才装上,踩了好多坑。这里把成功安装的步骤详细写下来,如果有小伙伴需要,可以尝试一下,但我不能保证你也可以装好。首先说一下我的各个版本(不谈版本的安装教程都是耍流氓!)是用虚拟机软件:VirtualBOX6.1.30系统版本:ubuntu-20.04.3-desktop-amd64(最小安装模式,中文)OpenCV版本:4.5.5安装时间:2022.2.11下面是步骤1、进入OpenCV的官方下载地址Releases - OpenCV,下载So_无法定位软件包 libgazebo-dev

红帽子粉帽子绿帽子II(递归,递推)-程序员宅基地

文章浏览阅读320次,点赞6次,收藏10次。/是上一个的进化版,相邻的可以一样但是不能都是绿色,注意条件;~~~//仅当笔者个人备忘录使用。

解决Install Intel x86 Emulator Accelerator (HAXM installer) (revision: 7.6.5)“ failed问题-程序员宅基地

文章浏览阅读6.7k次。由于Install Intel x86 Emulator Accelerator (HAXM installer) (revision: 7.6.5)安装失败,导致我的安卓虚拟机无法启动。解决办法有一下几种:1.开机进入BIOS打开Virtual虚拟化功能,然后进入Androidstudio 的SDK manager里面安装HAXM2.关闭系统中的Hyper-v,进入控制面板的程序和功能,将Hyper-v去选即可。3.如果前面的方法都不行,那么建议你重新下载AndroidStudio最新版进行安装_intel x86 emulator

PowerBuilder的语言基础-程序员宅基地

文章浏览阅读1.1w次,点赞2次,收藏15次。 每一种语言都有一组基本的语法约定,POWERBUILDER也不例外。 (1)断行、续行与多条语句 通常情况下,powerbuilder的一条语句是写到一行上的,该条语句在书写完毕之后,按键转到下一行,开始写下一句的内容。也就是说,在PowerBuilder中,使用键作为一行的结束。在PowerBuilder语句比较长的情况下,为了方便阅读,可以使用续行符号把一条语句写到几_powerbuilder