【摘要】

近年来,倾斜摄影测量技术是国际测绘遥感领域近年发展起来的一项高新技术,利用照片进行三维重建成为一项关键性的技术。Smart3D软件,是照片三维重建主流软件之一,本文将就Smart3D建模软件,围绕它的几个模块功能:ContextCapture Master、ContextCapture Engine、ContextCapture SceneComposer、ContextCapture Settings、Acute3D Viewer,一一说明阐述各自的功能应用以及配合机制。

【关键词】

Smart3D  ContextCapture  Master  Engine  SceneComposer  Settings  Viewer

【正文】

一、ContextCapture Master

ContextCapture Master作为Smart3D建模软件的主控台,也是建模的主模块,也就是说整个流程都是在ContextCapture Master流水进行的,其他的模块辅助其重建运算。下图是ContextCapture Master的图标和主界面:

  • 工程

一个工程管理着所有与它对应场景相关的处理数据。工程项由区块列表和工程选项组成,分别通过两个选项卡管理:

概述选项卡中显示项目当前状态的环境信息,项目信息面板并管理项目区块列表。

选项选项卡中包含了对集群网格化运算相关的选项。在计算机集群环境时,工作队列中的目录必须使用网络路径,如下图,且要与Setting中的指定目录一致,才能使各个通过局域网连接的运算节点正确地获取原始影像、读取工程文件以及输出模型到制定的目录。当工程文件路径、影像文件、作业队列目录、生产输出目录是非网络路径的话,在处理的时候会出现警告的提示语。

  • 区块

工程包含一个或多个区块作为子项,一个区块管理着一系列用于一个或多个三维重建的输入图像与其属性信息,这些属性信息包括传感器尺寸、焦距、主点、透镜畸变以及位置与旋转等姿态信息:

简言之,一组无损坏有精度的符合支持格式的且与其他影像有一定连续重叠度的照片就可以组成一个区块。对于一个区块,可以对它有如下操作:

导入:从XML文件中导入区块

导出:区块可以以KML或XML格式导出

拆分:将较大的航飞区块拆分成较小区块

提取:从区块中提取部分指定区块

加载/卸载:从活动的工程中加载/卸载区块

基于影像组的区块选项卡:

  • General

这个选项卡下显示的是影像添加的状态,同时提交空三处理的按钮也在这个界面:

  • Photos

添加影像,其一直接导入符合要求的一组照片,其二导入含有一系列符合照片的文件夹,其三将含有相片信息的表格导入成新的区块。为获得最佳性能和效果,导入的影像必须被分入一个或多个影响组。同一个相机拍摄的且有完全一样的内部定向(影像尺寸、传感器大小、焦距等)的影像分为一个影像组。如果影像按照拍摄的相机存放在不同的子目录下,Smart3D可以自动确定相关的影像组。

前三个按钮是对影像的添加删除,第四个按钮Set downsampling设置缩减像素采样,可以用于快速生产三维模型草图或在使用较低的硬件配置,这不会改变输入的源影像。第五个按钮Check image files检查输入影像的完整性,这个工具检查整个区块的影像,查找出丢失的或者损坏的影像文件,为了方便,如果检查出无效的影像文件,一般都是从区块中删除。

  • Control points

控制点选项卡可以对区块的控制点进行编辑和浏览。控制点是空中三角测量中辅助性的定位信息,是可选择的,对区块添加控制点能够是模型具有更加准确的空间地理精度,避免长距离的几何失真。

有效的控制点集合需要包含3个或者以上的控制点,且每个控制点均需要2张以上的影像刺点。

  • Tie points

同名点的添加可以手动添加,也可以软件自动生成:

  • 3D view

三维预览选项卡可以观察预览影像的视野、位置与旋转角和同名点的三维位置颜色。三维预览只有在区块已经部分获知图像位置信息时才可使用,并且是以点的形式出现:

基于空三的区块选项卡

基于空三的选项卡和没进行空三处理前的选项卡是差不多的,但是其中影像和控制点的选项将是只读状态,不能再次编辑。

基于三维重建的区块选项卡

  • General

概要选项卡显示三维重建的完成状态:

  • Spatial Framework

这个选项卡可以看到重建范围、所分的瓦片数、纹理大小以及进行生产三维模型计算机所需的最小内存:

  • Reconstruction Constraints

重建限制选项卡中可以加入一些限制条件,参与模型平差,生成产品:

  • Reference 3D model

这里可以进行瓦片导入替换,删除,这些操作具体会在后续的教程中体现,Wish3D微信公众号(文章底部有二维码)会第一时间推送。

  • Processing settings

处理过程中的相关设置,这个选项卡中得以体现,一般是选择默认参数,这个参数配置可以另存下来以备下次使用:

基于生成模型的区块选项卡

  • General

基于模型的区块概要主要体现生成模型的状态、个瓦片的生成状态,在这里也可以在viewer里打开浏览,打开数据的存储目录:

  • Properties

模型的各种基本信息都可以在这个选项卡中查阅,比如模型名称、存放地址、压缩比、坐标等等。

二、ContextCapture Engine

Engine是Smart3D的运算模块。在后台运行不需要交互。当没有运算三任务时,该模块会自动抓取并执行等待的任务,抓取顺序取决于任务的优先级。这个任务可能是空三运算,也可能是三维重建任务,引擎端会做大量的计算机密集工作,比如关键点提取、自动连接点匹配、光束平差、稠密影像匹配、鲁棒三维重建、无缝纹理映射、Atlas纹理打包、LOD生成等等。

如下图,点击Engine桌面端即可启动,关闭即可结束。

任何正在运行的任务都会交还给任务序列,任务状态变回等待,优先级也是保持之前的状态,等待任务会保留任务序列,等待下次Smart3D引擎端开启时再被处理。它会监听任务序列,这个任务序列可以通过Settings进行设置。

默认情况下,引擎端可以同时处理空三和重建任务,但是每台电脑只能运行一个引擎。在实际的生产过程中,特别是集群处理时,往往需要执行特定的任务,此时可以只进行空三运算或者只运行重建任务。

任务序列文件夹包含以下的文件夹:

Archive:为用户保留的用来保存任务的文件夹

Cancelled:包含被用户取消的任务

Completed:包含已经完成的任务

Engines:包含与当前任务路径相关联的全部引擎端

Failed:包含处理失败的任务

Pending:包含等待被处理的任务,引擎端会查找文件夹中的任务

Running:包含正在被处理的任务

因此,可以直接通过Windows文件管理器进行任务管理。

取消一个等待的任务:将任务文件从Pending剪切到Cancelled

改变任务的优先级:将任务文件在Pending中的各个LOW/Nomal/High子文件中进行互相调动,切勿放入Pending根目录下

重新开始一个任务:将任务文件从Cancelled或者Failed剪切到Running

清空失败或者取消的任务:将任务文件从Failed或者Cancelled文件夹删除

清空已完成的任务:将任务文件从Completed删除

重置引擎端:将任务文件从Engines文件夹删除

三、ContextCapture SceneComposer

SceneComposer是Smart3D Viewer的项目编辑工具。它可以在程序列表里找到,也可以在Viewer里的菜单栏找到:

通过SceneComposer编辑S3C场景的索引文件,可以来重新设置三维场景或者增加相关场景信息。

它的主要功能:

1、编辑场景中相关的瓦片列表:

一个S3C场景由众多瓦片构成。可以从场景中增加或者移除瓦片,如果坐标系是一致的,可以将不同的数据整合到同一个场景中。外部的OBJ也可以导入到场景中,但是较大的OBJ文件可能会导致数据浏览缓慢,这是因为OBJ文件没有LOD。

2、添加名称和标志:

这里可以设置场景名称和数据版权信息,编辑场景名称之后显示在Viewer界面的右上角。除此之外,还可以编辑场景标志图片,同时显示在Viewer界面的右下角。

3、编辑参考坐标系统

4、选择默认浏览模式,这里可以重置,针对不同的人群有自定义设置。

5、配置网络发布

通过SceneComposer可以设置一个访问远程服务器的S3C场景文件,添加网络服务器的根URL。利用并行连接来下载三维场景的每个节点,保证流畅性。可以设置连接的最大并发数。如下图:

6、编辑高级选项,场景的设置和编辑也可以通过命令行进行。

四、ContextCapture Settings

ContextCapture Settings是软件的许可认证和系统信息工具,任务队列的路径设置也在这里:

Configuration里的作业队列的路径目录需要与Master里的工程选项卡里的路径保持一致,如下图:

只有保持一致时,启动引擎时,任务才会正常开始运行。

五、Acute3D Viewer

Acute3D Viewer是个免费版、轻量级的可视化软件。它对Acute3D的私有格式文件进行了优化,可以处理LOD,分页缓存和流数据。因此可以显示兆兆量级的本地或者在线三维数据。也可以配合Master在工作流中控制生产质量。

注意到的是,Viewer需要被单独安装,这个可以免费下载,安装包有Win64,Win32以及Mac OsX64位。(关注Wish3D微信公众号回复“3”即可免费获取

Viewer可以读取这些三维格式:A3D(Smart3D实景建模大师的内部文件),OBJ,PLY,OSGB。

浏览模型时有三种方式可选:

模型也可以分为点云、网格和赋有纹理的模型来浏览:

工具栏里有测量和瓦片选择功能:

其中瓦片选择对话框中,可以加载区块、将选中的区块另存下来作为后续的处理:

【结语】

综上所述,就是关于Smart3D建模软件里的各个桌面端功能,它们之间一个连着一个,紧密联系配合运算三维重建过程。那么,在实际的照片三维重建过程中,这些模块又有哪些注意事项?如何能够通过这些模块成功重建出三维模型?接下来,我会在下周同一时间(每周三下午)在Wish3D微信公众号推出Smart3D系列教程4之《案例实战演练1——小物件的照片三维重建》,欢迎大家一起探讨交流!

Wish3D出品:

【参考】

Smart3D实景建模大师学习手册

Smart3D系列教程3之 《论照片三维重建中Smart3D几个工作模块的功能意义》的更多相关文章

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

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

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

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

  3. Smart3D系列教程5之 《案例实战演练2——大区域的地形三维重建》

    一.前言 Wish3D出品的Smart3D系列教程中,前面一讲说明了小物件的照片三维重建,相信大家对建模的流程有了一定的了解.这次讲解中,我们将演示说明以一组无人机倾斜摄影照片为原始数据,通过Smar ...

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

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

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

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

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

    一.引言 倾斜摄影测量技术是国际测绘遥感领域近年发展起来的一项高新技术,以大范围.高精度.高清晰的方式全面感知复杂场景,通过高效的数据采集设备及专业的数据处理流程生成的数据成果直观反映地物的外观.位置 ...

  7. Smart3D系列教程8之 《模型合并——相邻地区多次建模结果合并》

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

  8. Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节

    声明:   本博客文章翻译类别的均为个人翻译,版权全部.出处: http://blog.csdn.net/ml3947,个人博客:http://www.wjfxgame.com. 译者说明:这是一个系 ...

  9. Spring Boot2 系列教程(三)理解 Spring Boot 项目中的 parent

    前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent> <groupId ...

随机推荐

  1. Android 通用流行框架

    原文出处: http://android.jobbole.com/83028/ 1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Andro ...

  2. DateUtil(SimpleDateFormat)

    import java.util.Calendar; import java.util.Date; import java.text.SimpleDateFormat; public class Da ...

  3. SQL 表连接查询出现重复列,由此理清LEFT JOIN、INNER JOIN的区别

    1.先创建两个临时表,并插入数据 CREATE TABLE #TEMP1( ID INT IDENTITY(1,1) PRIMARY KEY, name NVARCHAR(50)) CREATE TA ...

  4. Css样式表【边界边框】【列表方块】

    一.如何给div加边框?[边界边框] 我们先做一个整个边框,并附加成绿色的边框. ①使用属性border进行设置. →→ ②也可以单独更改某个边的边框线的颜色,利用border属性更改. 如果将div ...

  5. AngularJS 路由

    AngularJS 路由允许我们通过不同的 URL 访问不同的内容. 通过 AngularJS 可以实现多视图的单页Web应用(single page web application,SPA). 通常 ...

  6. Android学习杂记

    Jni接口学习资料: http://www.cnblogs.com/lsnproj/archive/2012/01/09/2317519.html classLoader和插件化: http://bl ...

  7. opencv2.4更换为opencv3.1后,mxnet编译错误(libpng16.so.16)

    编译显示错误为: /usr/bin/ld: warning: libpng16.so.16, needed by /usr/local/lib/libopencv_imgcodecs.so, not ...

  8. webview页面缩放 & 自适应

    0.webview页面自适应: // 1.LayoutAlgorithm.NARROW_COLUMNS : 适应内容大小// 2.LayoutAlgorithm.SINGLE_COLUMN:适应屏幕, ...

  9. [Spring] Spring配置文件中特殊字符的规定

    今天查找一个错误,发现在xml里面不能包含特殊字符:&,特来总结一下: XML中共有5个特殊的字符,分别是:&<>“’.如果配置文件中的注入值包括这些特殊字符,就需要进行特 ...

  10. 一些linux命令

    1. more 慢慢查看文件2. mkdir -p 递归的创建目录3. tree 4. ls -lh 人性化显示