一、引言

倾斜摄影测量技术是国际测绘遥感领域近年发展起来的一项高新技术,以大范围、高精度、高清晰的方式全面感知复杂场景,通过高效的数据采集设备及专业的数据处理流程生成的数据成果直观反映地物的外观、位置、高度等属性,为真实效果和测绘级精度提供保证。同时有效提升模型的生产效率。三维建模在测绘行业、城市规划行业、旅游业、甚至电商业等的行业应用越来越广泛,越来越深入。

无人机航拍不再是大众陌生的话题,商场到处可见的DJI商店,各种厂商的无人机也是层出不穷,这将无人机倾斜数据建模推到了一个关键性的阶段。

二、倾斜摄影原理概述

倾斜摄影技术,通过在同一飞行平台上搭载多台传感器(目前常用的是五镜头相机)。同时从垂直、倾斜等不同角度采集影像,获取地面物体更为完整准确的信息。垂直地面角度拍摄获取的是垂直向下的一组影像,称为正片,镜头朝向与地面成一定夹角拍摄获取的四组影像分别指向东南西北,称为斜片。 摄取范围如下图:

在建立建筑物表面模型的过程中,下图可以看到,相比垂直影像,倾斜影像有着显著的优点,因为它能提供更好的视角去观察建筑物侧面,这一特点正好满足了建筑物表面纹理生成的需要。同一区域拍摄的垂直影像可被用来生成三维城市模型或是对生成的三维城市模型的改善。

利用建模软件将照片建模,这里的照片不仅仅是通过无人机航拍的倾斜摄影数据,还可以是单反甚至是手机以一定重叠度环拍而来的,这些照片导入到建模软件中,通过计算机图形计算,结合pos信息空三处理,生成点云,点云构成格网,格网结合照片生成赋有纹理的三维模型。区域整体三维建模方法生产路线图:

到这里,大家大致明白了采集来的照片是如何进过软件处理生成模型的,接下来,大家是不是想说都有哪些软件可以实现三维重建呢?

三、主流照片建模软件介绍及比较

行业里主流的有Bently公司的ContextCapture(Smart3D),俄罗斯Agisoft公司的PhotoScan,瑞士Pix4D公司Pix4D mapper。

这几个建模软件也是各有优缺点,PhotoScan比较轻量级,但是生成的模型纹理效果不是太理想,Smart3D生成的三维模型效果最为理想,人工修复工作量较低,但是软件比较复杂不易上手且价格较高。

下面就这三种软件做一个对比:

这些软件的拔地而起无疑造福了大量的三维爱好者,使得三维重建的门槛大大降低,人人都可以成为三维模型的作者。

下图是这三个主流重建软件的图标:

四、Smart3D的软件概述

目前市面上最常见的,同时也是最难上手最昂贵的软件——Smart3D,现在也叫ContextCapture,它是一套无需人工干预,通过影像自动生成高分辨率的三维模型的软件解决方案。我们所接触到的一般都是纯英文版,这对于软件的普及化学习形成了一定的阻碍,但是近期好像要推出中文汉化包了,请大家关注微信号“Wish3D”(文章结尾有二维码),我们会在第一时间发布中文补丁包。

接下来,我将以Smart3D为中心,从系统原理、软件构成、软硬件要求和建模对象等几个方面逐一和大家交流学习。

4.1 Smart3D软件的总体流程

Smart3D需要以一组对静态建模主体从不同的角度拍摄的数码照片作为输入数据源。

这些照片的额外辅助数据需要:传感器属性(焦距、传感器尺寸、主点、镜头失真),照片的未知参数(如GPS),照片姿态参数(如INS),控制点等等。

它无需人工干预,在几分钟或几小时的计算时间内(根据输入的数据大小),能输出高分辨率的带有真实纹理的三角网格模型,这个三角格网模型能够准确精细地复原出建模主体的真实色泽、几何形态及细节构成。

下面给出一个软件处理数据的工作流程图:

4.2 Smart3D软件的系统架构

Smart3D采用了主从模式(Master-Worker)。

两大模块是ContextCapture Master和ContextCapture Engine。

ContextCapture Master是Smart3D的主要模块。通过图形用户接口,向软件定义输入数据,设置处理过程,提交过程任务,监控这些任务的处理过程与处理结果可视化等。这里注意到,Master并不会执行处理过程,而是将任务分解为基础作业并提交给Job Queue。

ContextCapture Engine是Smart3D的工作模块。它在计算机后台运行,无需与用户交互。当Engine空闲时,一个等待队列中的作业执行,主要取决于它的优先级和任务提交的时间。一个任务通常由空中三角测量和三维重建组成。空中三角测量和三维重建采用不同的且计算量大的密集型算法,如关键点的提取,自动连接点匹配,集束调整、密度图像匹配、鲁棒三维重建、无接缝纹理映射、纹理贴图包装、细节层次生成等等。

可以多台计算机上运行多个ContextCapture Engine,并将它们关联到同一个作业队列中,这样就会大幅降低处理时间。因此有条件的朋友还是选择工作站集群处理比较合适。

很多新手会问:提交空三了怎么不开始或者没反应?会出现下图的情况?

这里注意到,一个任务提交空三处理时,如果此时engine没有打开启动,空三处理将不会开始。

4.3 Smart3D的工具模块

4.3.1 Acute3D Viewer

免费的轻量可视化模块,它可以处理多重精细度模型(LOD)、分页(Paging)和网络流(Streaming),所以,TB级的三维数据能够在本地或离线环境下顺畅地浏览。

Acute3D Viewer支持软件的原生s3c格式来查看浏览模型,它也整合了三维测量工具和瓦片选择工具,测量方面包括三维空间位置、三维距离和高差等信息。这里的瓦片选择工具对于后期模型的核心区域提取和重建都是十分有实用价值的。

4.3.2 Smart3D Settings

用于管理软件授权许可证和相关其他的软件配置。

4.3.3 Smart3D Composer

是为Acute3D Viewer修改设定各种三维格式化工程文件。当需要为osgb数据手动生成索引在Acute3D Viewer中查看时,这个工具就可以派上用场了。

4.4 Smart3D推荐硬件配置

软硬件要求方面,操作系统需要Windows XP/Visa/7/8 64位,至少8G内存和拥有1G显存与512个CUDA核心的NVIDIA GeForce显卡。

建议使用GTX系列显卡。

4.5 Smart3D 建模对象的适用范围

在实际的建模生产过程中,Smart3D 能够针对近至中距离的景物建模,也可以对自然景观的大场景建模,但最适用于复杂的几何形态及哑光图案表面的物体。下面简单列出了建模目标体的基本特征:

在三维数据格式方面,Smart3D可以生成很多的格式,比如s3c、osgb、obj、fbx、dae、stl等,一般用的最多的还是osgb、obj和fbx格式的数据,其中obj和fbx可以在多个建模软件里互导。这些数据格式也可采用成熟的技术快速进行网络发布,比如OSGB格式可以直接在我们Wish3D云平台上传,实现共享应用。在绝大数的情况下,自动生成的三维模型可以直接使用。但是对于一些具体的行业应用,可能就需要使用第三方建模软件比如maya或3dmax等对模型的局部误差进行修饰,再通过retouch操作导入ContextMaster,重新提交新的重建任务。(关于Retouch的操作,我们后续课程中会详细讲解)

五、结束语

好了,这次对Smart3D的原理架构介绍先讲到这里了。关于照片采集技巧以及一些Smart3D建模过程中的关键性设置技巧,之后会陆续更新出来。

感兴趣的朋友可以关注下面的二维码(关注回复“1”获取更多中文学习资料)也可以加QQ群:516635556进行交流。

我将会在下周更新《Smart3D系列教程2—为什么三维重建效果这么差?——探探那些被忽略的拍照要求和技巧》与大家一起交流探讨。

我司现面向社会推出倾斜摄影、Smart3D建模培训,欢迎各位朋友踊跃报名。

转载于:https://www.cnblogs.com/Wish3D/p/6073905.html

Smart3D系列教程1之《浅谈无人机倾斜摄影建模的原理与方法》相关推荐

  1. Smart3D系列教程7之 《手动配置S3C索引加载全部的瓦片数据》

    一.前言 迄今为止,Wish3D已经出品推出了6篇系列教程,从倾斜摄影的原理方法.采集照片的技巧.Smart3D各模块的功能应用.小物件的照片重建.大区域的地形重建到DSM及正射影像的处理生产,立足于 ...

  2. Smart3D系列教程4之 《案例实战演练1——小物件的照片三维重建》

    一.前言 Wish3D出品的Smart3D系列教程已经推出3讲了,分别是关于倾斜摄影三维建模原理应用.照片采集技巧.Smart3D各个功能模块的作用,它们都是围绕Smart3D建模软件进行的讲解.那么 ...

  3. Smart3D系列教程6之 《案例实战演练3——倾斜数据正射影像及DSM的生产》

    一.前言 Wish3D出品的系列教程中,前面两讲分别讲述说明了小物件的照片三维重建.大区域地形的三维重建,从照片的直接导入至软件到通过Excel表格将区块导入处理,从不同的模型类别.不同的导入方式演示 ...

  4. Smart3D系列教程2之 《为什么三维重建效果这么差?——探探那些被忽略的拍照要求和技巧》...

    一.照片采集的实用概念 根据照片进行三维重建的过程中,有人没怎么遇到坑,有人被坑的不轻.可能是模型的纹理失真,模型的法线错了,模型会生成我们各种也想不到的结果,那么,是什么导致三维重建效果这么差的?是 ...

  5. 【建站系列教程】5、谈一谈网站的静态化

    [建站系列教程]5.谈一谈网站的静态化[进阶] 动态页面?静态页面?伪静态页面? 三个页面有何优缺点? 为什么要让网页静态化 如何网页伪静态化? 写在前面:大家好,我是热爱编程的小泽. [建站系列教程 ...

  6. 浅谈无人机的应用场景

    随着技术的发展,无人机的应用场景不断扩展.我们时常在新闻里能看到无人机在各行各业的应用,就如今年的春晚,据说也采用了无人机的技术来操控.那,无人机还有哪些应用场景呢?下面我们就来详细了解一下无人机的应 ...

  7. 【NXP DN 系列】浅谈 DPAA1 Software Architecture 工作原理

    浅谈 DPAA1 Software Architecture 工作原理 一.介绍 DPAA1 的主要目的是在片上系统( SOC )的 IO 部分内提供智能处理,以进行路由和管 理与流量相关的处理工作, ...

  8. python程序调用写好的代码_扣丁学堂浅谈Python编程中NotImplementedError的使用方法...

    扣丁学堂浅谈Python编程中NotImplementedError的使用方法 2018-07-04 14:08:02 2559浏览 本篇文章扣丁学堂 Python编程中raise可以实现报出错误的功 ...

  9. oracle全表扫过程讲解,CSS_浅谈存取Oracle当中扫描数据的方法,1) 全表扫描(Full Table Scans, FTS) - phpStudy...

    浅谈存取Oracle当中扫描数据的方法 1) 全表扫描(Full Table Scans, FTS) 为实现全表扫描,Oracle读取表中所有的行,并检查每一行是否满足语句的WHERE限制条件一个多块 ...

最新文章

  1. 【Java Web前端开发】Response笔记
  2. Chord算法实现具体
  3. java多线程notify_Java多线程 wait notify
  4. 从易到难,针对复杂问题的无监督式问题分解方法
  5. 一个优秀的Push平台,需要经历怎样的前世今生
  6. ab压力测试工具linux,【Linux】ApacheBench(ab)压力测试工具
  7. python字典副本_如何复制字典并仅在Python中编辑副本?
  8. KafkaAPI实战
  9. 昔日“宅男最爱”、视频播放器之王破产清算:4.5万元商标拍到950万元
  10. application使用@符合问题:‘@‘ that cannot start any token
  11. 浙江大学_包家立计算生物学_神经网络
  12. python装饰器详解 带参数-python中的装饰器详解
  13. IO编程 之 缓冲篇
  14. 简单高效实现导出excel数据表格
  15. 算法学习笔记——数据结构:树状数组BIT
  16. 在寂静的夜中、独自沉沦_悲伤QQ个人签名
  17. 关于windows10在学习爬虫是用到appium配置java的jdk出现了,javac不是内部命令的解决方法(¥57)
  18. R语言survival包的survfit函数拟合生存曲线数据、survminer包的ggsurvplot函数可视化生存曲线、绘制分面生存曲线(facet_grid)
  19. Java发送手机短信
  20. IEEE文献免费下载方法

热门文章

  1. 实时时钟(Real_Time Clock)电路--中微爱芯
  2. 小型电子管通用计算机103机,中国第一台电脑
  3. 用python画篮球场_篮球场地最新标准尺寸
  4. CSS的浮动属性,详细学习指南
  5. twitter要我绑定手机_Twitter我的糖尿病
  6. spring-boot-devtools 快速重启的秘密!
  7. CSS 盒子模型box-sizing
  8. 产品功能留存分析矩阵
  9. Python实现1~100猜数字小游戏
  10. 计算机无法识别3.0u盘启动,USB3.0接口不能识别U盘怎么办