ContextCapture中文版教程:帮助文档第三章(ContextCapture介绍)

作者:王跃军 2019-05-22 来源:中科图新

3.ContextCapture介绍

3.1原理综述(Principle)

  ContextCapture需要以一组对静态建模主体从不同的角度拍摄的数码照片作为输入数据源, 加入各种可选的额外辅助数据:摄像头的属性(焦距,传感器尺寸,主点,镜头失真),照片的位置(如GPS),旋转照片(例如,INS),控制点,等等... 无需人工干预,ContextCapture在几分钟/或数小时的计算时间内,根据输入的数据的大小,能输出高分辨率的带有真实纹理的三角网格模型。 生成输出的三维网格模型能够准确精细地表现出建模主体的真实色泽、几何形态及细节构成。

contextcapture输入数据源
适合建模的物体

 

  ContextCapture的高兼容性,能对各种对象各种数据源进行精确无缝建模,从厘米级到公里级,从地面或从空中拍摄。只要输入照片的分辨率和精度足够,生成的三维模型是可以实现无限精细的细节。

  ContextCapture最适合于的复杂几何形态及哑光图案表面的物体,包括但不限于艺术品,服装,人脸,家具,建筑物,地形和植被等。

  没有颜色变化的(如纯色墙壁/地板/天花板),或反射、高光泽,透明或折射材料(如玻璃,金属,塑料,水,以及某些皮肤皮革等)的表面可能会造成生成的3D模型表面存在错误的孔、凹凸或噪音。

  ContextCapture主要应用对象为相对静态的物体。移动物体(人,车辆,动物等),不作为主要建模对象时,偶尔会处理出现在生成的3D模型中。如果要针对这些对象单体进行数据制作,在拍摄过程中,人或动物等对象应保持静止或采用多个同步像机来拍摄。

  译者注:当前流行的人像拍照就是采用矩阵相机,多相机同时曝光。如下图效果。

倾斜摄影建模所采用的多相机

3.1.1近至中距离景物建模(Capturing close range - mid range subjects)

  应用领域覆盖:建筑设计,工程与施工,制造业,娱乐及传媒,电商,科学分析,文物保护,文化遗产等领域。

3.1.2城市大场景及自然景观Mapping large-scale urban or natural environments

  ContextCapture超越了由一些流行的在线地图服务提供的低空鸟瞰图。它可以以完全自动化的方式,将各种图像源(飞机、直升机、无人机、街道级)转换为一致、准确的真实3D模型,涵盖所有尺度,从大规模的浮雕到更精细的人造建筑、物体和自然地标等。大场景主要应用领域:数字城市,城市规划,交通管理,数字公安,消防救护,应急安防,防震减灾,国土资 源,地质勘探,矿产冶金等。

contextcapture应用于数字城市、城市规划

3.2ContextCapture系统架构(Architecture)

  ContextCapture的两大模块是Master与Engine引擎端。它们都遵循主从模式(Master-Worker):

  Master是ContextCapture的主要模块。您可以通过图形用户界面,向软件定义输入数据,设置处理过程、提交过程任务、监控这些任务的处理过程与处理结果可视化等。ContextCapture Master不会执行处理过程,而是将任务分解为基础作业并其提交给作业队列(Job Queue)

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

  译者注:空三(AT)的任务优先级高于Production的生成

  由于采用了主从模式(Master-Worker),ContextCapture支持集群(Grid Computing)。 只需在多台计算机上运行多个ContextCaptureEngine引擎端,并将它们关联到同一个作业队列上, 就会大幅降低处理时间。 ContextCapture的集群主要基于操作系统的本地文件共享机制。它允许ContextCapture透明地操作SAN(存储区域网络)、NAS(网络连接式存储)或者共享的标准HDD(硬盘驱动器),无需配备任何特殊的网格运算集群或架构。

ContextCapture包括以下工具模块:

  Acute3D Viewer:是Acute3D的免费的轻量可视化模块,它对Acute3D原生格式进行了优化,这种格式可以处理多重精细度模型(LOD)、分页(Paging)和网络流(Streaming),因此TB级的三维数据能够在本地或在线环境下进行顺畅地浏览。您可以使用Viewer对观察控制ContextCapture主控台工作流的生产质量,您也可以利用它对最终生产的模型成果进行浏览。

  ContextCapture Settings: 管理软件授权许可证及相关其他软件配置。

  ContextCaptureSceneComposer:为Viewer修改设定各种三维可视化工程文件。

  译者注:Acute3D Viewer几乎支持ContextCapture所有的三维模型数据格式。局限性表现为当数据量大的时候,tile数过多,初始加载过程会很慢。SceneCompose可以对osgb格式的模型编写Acute3D Viewer支持的s3c索引文件。过程较为复杂,新版本当中被隐藏了,可以去安装目录下查找。动代码的建议使用开源的osgviewer,或者免费的locaspaceviewer对于浏览osgb格式的倾斜模型,操作简单,体验效果较好。

3.3工作流(Workflow)

contextcapture工作流

  用户可以通过ContextCapture Master主控台用户界面,定义原始数据和处理过程设置,并向作业队列提交相应的三维重建任务。工作组中空闲的ContextCapture引擎会自动从作业队列中获取三维重建任务并并将结果输出至预先设定的存储路径。通过ContextCapture Master主控台用户面,用户也可以直接监控这些任务的当前状态与处理进度(想要获取更多的信息请参照作业监控)。当所有这些任务处理完成之后,该项目的三维模型就已经生产完成了。

  模型修饰(Retouching)

  在绝大多数情景下, 自动生成的三维模型可以直接使用。但是对于一些特定应用,用户可能需要使用某些第三方软件对自动生成的三维模型的局部几何模型误差进行修饰,并通过ContextCaptureMaster主控台=将这些修饰后的三维模型重新导入,并提交新的三维重建任务使修改后的模型重新通过自动=纹理映射获得正确的贴图以完成三维模型更新。

3.4系统要求(System Requirements)

  ContextCapture支持运行在微软Windows XP/Vista/7/8/10 64位操作系统上。它至少需要8G的内存和拥有1GB显存与512个CUDA核心的NVIDIAGeForce 或 AMD显卡,或者Intel支持opengl3.2以上并且大于1G显存的显卡。该软件对桌面计算机与机架式计算机均支持。该软件甚至可以在多媒体或游戏笔记本上运行,虽然这时的性能会显著降低。

  截至2017年7月,我们建议的运行配置为:主流塔式计算机运行微软Windows 7/8/10 64位专业版并带有至少16GB的内存、至少8线程的CPU与NVIDIA GeForce GTX 1080Ti及以上的显卡。请联系Acute3D当地代理商提供更专业的硬件配置建议(GeForce GTX TITAN, Quadro, bi-Xeon等)

  输入数据、处理数据与输出数据最好被存储在快速存储装置上(如高速HDD、SSD、SAN等等),而对于基于文件共享的集群运行环境,我们建议使用千兆或以上的以太网。

  译者注:根据网友的实测,对于实际数据生产的公司建议64G以上内存,有条件的可以128Gb以上。CPU频率越高越好。显卡还是建议NVIDIA GTX2080及以上系列。对于原始照片、生成结果建议使用磁盘阵列或者固态硬盘。是在不具备条件的可以考虑照片、生成结果分磁盘存放。

3.4.1关于远程桌面(About Remote desktop connection)

  ContextCaptureEngine引擎不能通过Windows自带的远程桌面连接来操作,因为它不支持硬件加速。然而,用户可以利用基于VNC(虚拟网络计算机)的各种远程遥控软件来操作ContextCapture Engine引擎端。

  译者注:很多网友遇到了这个问题,这里建议teamviewer、QQ、或者KVM物理切换器

3.4.2关于Windows会话(About Windows session)

  当ContextCapture引擎运行时软件不支持切换Windows用户,这将会引起运行计算失败。因为硬件加速在当用户未连接时不可用。

  译者注:个别网友遇到了电脑查看显卡正常,ContextCapture无法识别显卡的问题,有驱动问题的,更多的是显示器插在了主板上。显示器一定要插在独立显卡上。

3.4.3 中文路径问题(About paths with non-ASCII characters)

  ContextCapture目前版本还不支持非ASCII字符的路径。因此,所有指定的输入与输出文件的路径必须使用ASCII字符(即暂不支持中文文件名和目录名)。

3.4.4多GPU模式(Multi GPU mode)

  ContextCapture可以利用多个GPU架构。

  检查ContextCapture设置中的“启用Vulkan API和MultiGPU处理”选项。默认情况下,此选项未选中。

  此功能可以使用多个GPU,即使来GPU自不同的供应商(Nvidia、AMD,但不支持Intel)。虽然它有利于几个GPU,但也可以只有一个GPU。我们建议使用最新的显卡卡来启用此功能,特别是Nvidia Pascal一代(GTX 10xx)、AMD、Polaris(RX 4xx)和最新的驱动程序。驱动程序会定期更新,因此我们不会发布兼容的GPU/Driver/OS组合列表。

  截至2017年9月,ContextCapture要求GPU驱动程序至少支持Vulkan API 1.0.37版本。此外,不要启用SLI(用于Nvidia GPU)或CrossFire(用于AMD GPU)。最后,此模式使用密集的GPU资源,在引擎运行时不要打开任何其他3D应用程序或Internet浏览器。多GPU模式是最新推出的,可能不如单GPU模式稳定。如果您在3D制作中遇到问题(此选项勾选了未起作用),请尝试以下步骤:

  1.为您的GPU安装最新的驱动程序。

  2.重新启动计算机。

  3.重新提交失败的作业。

  如果它不能解决您的问题,请通知我们的技术支持,并在解决您的问题前使用单GPU模式。

单GPU模式的smart3d

  多GPU模式下的性能说明:

  •2 gpu:比1 gpu快15%

  •3 gpu:比1 gpu快20%

  •4 gpu:比1 gpu快24%

  译者注:未使用过多GPU模式,从该指标看来,2GPU性价比可能更高一些。但上文提到的硬盘问题可能比这个能提速更多,从显卡价钱来看可以优先考虑硬盘问题。

高级选项(Advanced Option)

  当您启用“vulkanapi和multippu处理”时,默认情况下,上下文捕获引擎将使用您的所有gpu进行处理。使用该选项,您可以通过命令行中ccengine的选项“-gpu”为vulkan选择GPU的一个子集。

  请注意,ContextCapture始终使用OpenGL,因此它始终需要一个专门用于OpenGL的GPU。使用选项“-gpu”选择vulkan gpu不会更改将选择哪个gpu contextcapture进行OpenGL处理。

  语法:ccengine--gpu k

  如果我们以2的k次方来描述,那么这个基中的每个数字1对应于vulkan激活的GPU。例如,您有3个GPU,您希望使用第一个和第三个GPU进行vulkan处理,然后k=20+22=5。命令是:ccengine--gpu 5

  其他例子:

  ccengine--gpu 1:使用第一个gpu

  ccengine--gpu 2:使用第二个gpu

  ccengine--gpu 3:使用第一个和第二个gpu(因为:3=20+21)

  如果没有指定“-gpu”选项,那么程序将使用vulkan处理的所有gpu作为默认值。

3.4.5性能(Performance)

  ContextCapture开发了基于图像处理单元的通用计算(GPGPU)能力,使得在这些操作(图像插值、光栅化与Z缓存)上处理速度快50倍。它也利用多核超线程计算来对算法的CPU密集部分进行加速。

  一个ContextCapture Engine引擎端平均一天可以处理10-20千兆(gigapixels)像素的输入数据以产生具有额外精度的纹理3D网格,这取决于硬件配置。对于输入的点云数据,一个ContextCapture Engine引擎端每天可以处理大约2.5亿个点。

  使用集群可以显著减少网格计算的处理时间。

  举个例子:空中5角度拍摄的地面10~15厘米分辨率的倾斜原片, 4个ContextCapture Engine组成的引擎集群平均生产速度30—50平方公里每天。

3.4.6软件版本(Software Editions )

  ContextCapture软件系列的两个版本分别是ContextCapture Basic和ContextCapture Center。ContextCapture自动重建对象、建筑物、人造或自然地标,可以处理高达300千兆像素的图像数据集,或高达5亿点的点云,具备通过作业队列的批处理能力。最适合但不限于无人机/无人机/无人机操作员,该版本允许制作高分辨率3D模型,以及生成数字表面模型(DSM)和真实正射影像。

  ContextCapture Center致力于大比例尺的三维测绘。它可以处理无限数量的照片而不受尺寸限制,并且允许在一组三维重建引擎上并行计算。它可以导入复杂的定位数据(例如,惯性导航系统数据)、第三方航空三角测量结果和表面约束。因此,它可以适应大规模的3D内容制作,就像整个3D城市级别的数据处理。

  版本对比表

3.4.8互操作性(Interoperability)

  ContextCapture通过专用格式或通用格式与二维/三维GIS软件以及CAD解决方案完全互操作。ContextCapture还可以以各种交换格式导出准确的相机属性、位置和方向。
另请参见导出块和输出格式。

  CAD/3D软件交换(CAD/3D Software)

  支持标准Wavefront OBJ、collada dae和FBX格式的导出,ContextCapture生成的3D模型可以导出到绝大多数CAD和3DGIS软件,包括Bentleymrostation、Autodesk 3DS Max、Autodesk AutoCAD、Rhinoceros 3d、Autodesk玛雅、Autodesk Mudbox、Autodesk MeshMixer、Meshlab。

  ContextCapture可以生成具有多个详细级别(LOD)的3D网格,以便于将数据集成到支持lod显示优化的3维GIS软件中。

  对于非常大的三维模型(如城市),即使使用LOD技术,Tb级的大数据流畅展示也有难度。在这种情况下,可以使用3mx格式将模型导出到Bentley MicroStation。

  译者注:开源的osg框架对于osgb格式的lod数据展示效果很不错,另外LSV在加载TB级的倾斜模型数据上独有优势,同时绿色,免费。对于web展示可以考虑Wish3D平台,该平台支持根节点合并。

  二维、三维GIS软件(2D/3D GIS software)

  地理参考三维模型支持任何坐标系统(ContextCapture包括4000多个空间参考系统,可以使用用户定义的系统进行扩展)和自定义GIS应用程序的瓦片分割方式。

  ContextCapture可以生成带LOD的3D网格模型,可与几种领先的3D GIS软件相兼容:TerraExplorer(Skyline)、SpaceYes3D Builder、CityPlanner(Agency9)、VirtualGeo(Diginest)、Blaze Terra(Etherix)、Supermap GIS、Google Earth、Cesium等。

  译者注:这里还是要补上LSV、wish3D平台,该平台专门针对Smart3D生成的带lod的osgb数据格式进行了显示优化。

  ContextCapture可以生成真正的正射影像和DSM,兼容的所有标准地理信息系统工具。ContextCapture可以将密集点云导出为ASPRS Laser(LAS)和Pointoolspod格式,每个点上都有颜色信息,可用于大多数点云分析和分类软件。

3.4.9三维可视化(3D Visualization)

  ContextCapture内置Acute3DViewer,这是一个在Windows下本地或联机工作的免费可下载的轻量级3dVisualization应用程序。

  三维可视化

  Acute3D Viewer针对ContextCapture的3mx格式进行了优化,它可以处理细节级别、分页和流式传输,从而以平滑的帧速率显示万亿字节的3D数据。

  Acute3D查看器集成了3D测量工具(可配置空间参考系统中的3dPosition、3D距离和高度差、表面和体积计算)和瓦片选择工具。

  您可以将Acute3D查看器与ContextCapture Master结合使用,以控制整个工作流中的生产质量。您还可以使用它生成飞行动画。

  Acute3d Viewer可在http://www.bentley.com上免费下载,为ContextCapture 3MX和S3C格式发布3D模型提供了即时解决方案。

3.4.10网络发布(Web publishing)

  ContextCapture用户有多种形式可以在Internet上发布其原始3D内容。

  使用Acute3D Web Viewer发布3mx产品

  使用我们的免费Acute3dWebViewer,3mx产品可以在任何网站上在线可视化。我们的Web Viewer是一个跨平台的WebGL3dViewer,适用于台式机、平板电脑和智能手机,可轻松嵌入任何网页。它可以在任何支持WebGL的浏览器中工作,而不需要使用插件。只需将您的3mx产品上传到您的Web服务器(或在线文件存储Web服务/内容交付网络,如azureblob/cdn或amazons3/cloudfront),即可在您的网站上发布或嵌入您的3D模型。

  发布到Cesiumor ContextCapture Web Viewer 2.0

  ContextCapture可以生成Cesium 3Dtile格式的3D模型,适用于在Cesium或ContextCapture Web Viewer 2.0中的显示。Cesium是一个开放源代码的JavaScript库,用于3D地图显示。关于Cesium的更多信息。

  了解如何将三维模型发布到CesiumWeb应用程序。

  ContextCapture Web Viewer 2.0是一款基于Cesium的定制Web应用程序,具有定制的用户界面和适合真实数据显示的功能。

  了解如何将3DModels发布到ContextCapture Web Viewer 2.0应用程序。

  在线分享您的S3C产品

  ContextCapture用户可以在标准Web服务器上托管S3C格式的3D模型,以便使用我们的免费Acute3D查看器(Windows和Mac OSX的桌面应用程序)进行远程可视化。

  只需将您的S3C产品上传到您的Web服务器(或上传到在线文件存储Web服务/内容交付网络,如azureblob/cdn或AmazonS3/CloudFront),并在ContextCapture S3C Composer中设置访问参数,使您的模型可以在Acute3dViewer中在线查看。

  了解如何在Web上发布您的S3C内容。

  发布到SketchFab

  SketchFab是一个集发布、共享和嵌入3DModels的平台,您可以在SketchFab.com上免费注册。ContextCapture允许直接将生成的三维模型发布到SketchFab。

  了解如何将内容发布到SketchFab

  译者注:如果生成的模型是osgb格式的,可以到wish3d平台发布,一个国产,并自带合并根节点功能的,集全景、图片、文字标注于一体的倾斜模型web发布平台,支持影像、地形、矢量的数据总和展示。www.wish3d.com

 

相关阅读:

ContextCapture中文版教程:帮助文档第一章(开始)

ContextCapture中文版教程:帮助文档第二章(影像数据)

ContextCapture中文版教程:帮助文档第二章2.2-2.3(影像文件格式和位置)

ContextCapture中文版教程:帮助文档第三章(ContextCapture介绍)

ContextCapture中文版教程:帮助文档第四章4.1(工程/Project介绍)