Smart3D系列教程3之《论照片三维重建中Smart3D几个工作模块的功能意义》【摘要】近年来,倾斜摄影测量技术是国际测绘遥感领域近年发展起来的一项高新技术,利用照片进行三维重建成为一项关键性的技术。Smart3D软件,是照片三维重建主流软件之一,本文将就Smart3D建模软件,围绕它的几个模块功能:ContextCaptureMaster、ContextCaptureEngine、ContextCaptureSceneComposer、ContextCaptureSettings、Acute3DViewer,一一说明阐述各自的功能应用以及配合机制。【关键词】Smart3DContextCaptureMasterEngineSceneComposerSettingsViewer【正文】一、ContextCaptureMasterContextCaptureMaster作为Smart3D建模软件的主控台,也是建模的主模块,也就是说整个流程都是在ContextCaptureMaster流水进行的,其他的模块辅助其重建运算。下图是ContextCaptureMaster的图标和主界面:工程一个工程管理着所有与它对应场景相关的处理数据。工程项由区块列表和工程选项组成,分别通过两个选项卡管理:概述选项卡中显示项目当前状态的环境信息,项目信息面板并管理项目区块列表。选项选项卡中包含了对集群网格化运算相关的选项。在计算机集群环境时,工作队列中的目录必须使用网络路径,如下图,且要与Setting中的指定目录一致,才能使各个通过局域网连接的运算节点正确地获取原始影像、读取工程文件以及输出模型到制定的目录。当工程文件路径、影像文件、作业队列目录、生产输出目录是非网络路径的话,在处理的时候会出现警告的提示语。区块工程包含一个或多个区块作为子项,一个区块管理着一系列用于一个或多个三维重建的输入图像与其属性信息,这些属性信息包括传感器尺寸、焦距、主点、透镜畸变以及位置与旋转等姿态信息:简言之,一组无损坏有精度的符合支持格式的且与其他影像有一定连续重叠度的照片就可以组成一个区块。对于一个区块,可以对它有如下操作:导入:从XML文件中导入区块导出:区块可以以KML或XML格式导出拆分:将较大的航飞区块拆分成较小区块提取:从区块中提取部分指定区块加载/卸载:从活动的工程中加载/卸载区块基于影像组的区块选项卡:General这个选项卡下显示的是影像添加的状态,同时提交空三处理的按钮也在这个界面:Photos添加影像,其一直接导入符合要求的一组照片,其二导入含有一系列符合照片的文件夹,其三将含有相片信息的表格导入成新的区块。为获得最佳性能和效果,导入的影像必须被分入一个或多个影响组。同一个相机拍摄的且有完全一样的内部定向(影像尺寸、传感器大小、焦距等)的影像分为一个影像组。如果影像按照拍摄的相机存放在不同的子目录下,Smart3D可以自动确定相关的影像组。前三个按钮是对影像的添加删除,第四个按钮Setdownsampling设置缩减像素采样,可以用于快速生产三维模型草图或在使用较低的硬件配置,这不会改变输入的源影像。第五个按钮Checkimagefiles检查输入影像的完整性,这个工具检查整个区块的影像,查找出丢失的或者损坏的影像文件,为了方便,如果检查出无效的影像文件,一般都是从区块中删除。Controlpoints控制点选项卡可以对区块的控制点进行编辑和浏览。控制点是空中三角测量中辅助性的定位信息,是可选择的,对区块添加控制点能够是模型具有更加准确的空间地理精度,避免长距离的几何失真。有效的控制点集合需要包含3个或者以上的控制点,且每个控制点均需要2张以上的影像刺点。Tiepoints同名点的添加可以手动添加,也可以软件自动生成:3Dview三维预览选项卡可以观察预览影像的视野、位置与旋转角和同名点的三维位置颜色。三维预览只有在区块已经部分获知图像位置信息时才可使用,并且是以点的形式出现:基于空三的区块选项卡基于空三的选项卡和没进行空三处理前的选项卡是差不多的,但是其中影像和控制点的选项将是只读状态,不能再次编辑。基于三维重建的区块选项卡General概要选项卡显示三维重建的完成状态:SpatialFramework这个选项卡可以看到重建范围、所分的瓦片数、纹理大小以及进行生产三维模型计算机所需的最小内存:ReconstructionConstraints重建限制选项卡中可以加入一些限制条件,参与模型平差,生成产品:Reference3Dmodel这里可以进行瓦片导入替换,删除,这些操作具体会在后续的教程中体现,Wish3D微信公众号(文章底部有二维码)会第一时间推送。Processingsettings处理过程中的相关设置,这个选项卡中得以体现,一般是选择默认参数,这个参数配置可以另存下来以备下次使用:基于生成模型的区块选项卡General基于模型的区块概要主要体现生成模型的状态、个瓦片的生成状态,在这里也可以在viewer里打开浏览,打开数据的存储目录:Properties模型的各种基本信息都可以在这个选项卡中查阅,比如模型名称、存放地址、压缩比、坐标等等。二、ContextCaptureEngineEngine是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文件夹删除三、ContextCaptureSceneComposerSceneComposer是Smart3DViewer的项目编辑工具。它可以在程序列表里找到,也可以在Viewer里的菜单栏找到:通过SceneComposer编辑S3C场景的索引文件,可以来重新设置三维场景或者增加相关场景信息。它的主要功能:1、编辑场景中相关的瓦片列表:一个S3C场景由众多瓦片构成。可以从场景中增加或者移除瓦片,如果坐标系是一致的,可以将不同的数据整合到同一个场景中。外部的OBJ也可以导入到场景中,但是较大的OBJ文件可能会导致数据浏览缓慢,这是因为OBJ文件没有LOD。2、添加名称和标志:这里可以设置场景名称和数据版权信息,编辑场景名称之后显示在Viewer界面的右上角。除此之外,还可以编辑场景标志图片,同时显示在Viewer界面的右下角。3、编辑参考坐标系统4、选择默认浏览模式,这里可以重置,针对不同的人群有自定义设置。5、配置网络发布通过SceneComposer可以设置一个访问远程服务器的S3C场景文件,添加网络服务器的根URL。利用并行连接来下载三维场景的每个节点,保证流畅性。可以设置连接的最大并发数。如下图:6、编辑高级选项,场景的设置和编辑也可以通过命令行进行。四、ContextCaptureSettingsContextCaptureSettings是软件的许可认证和系统信息工具,任务队列的路径设置也在这里:Configuration里的作业队列的路径目录需要与Master里的工程选项卡里的路径保持一致,如下图:只有保持一致时,启动引擎时,任务才会正常开始运行。五、Acute3DViewerAcute3DViewer是个免费版、轻量级的可视化软件。它对Acute3D的私有格式文件进行了优化,可以处理LOD,分页缓存和流数据。因此可以显示兆兆量级的本地或者在线三维数据。也可以配合Master在工作流中控制生产质量。注意到的是,Viewer需要被单独安装,这个可以免费下载,安装包有Win64,Win32以及MacOsX64位。(关注Wish3D微信公众号回复“3”即可免费获取)Viewer可以读取这些三维格式:A3D(Smart3D实景建模大师的内部文件),OBJ,PLY,OSGB。浏览模型时有三种方式可选:模型也可以分为点云、网格和赋有纹理的模型来浏览:工具栏里有测量和瓦片选择功能:其中瓦片选择对话框中,可以加载区块、将选中的区块另存下来作为后续的处理: