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

时间:2022-04-09 01:12:51

一、引言

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

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

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

二、倾斜摄影原理概述

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

四、Smart3D的软件概述

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

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

4.1 Smart3D软件的总体流程

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

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

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

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

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

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

4.2 Smart3D软件的系统架构

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

两大模块是ContextCapture Master和ContextCapture Engine。

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

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

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

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

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

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

4.3 Smart3D的工具模块

4.3.1 Acute3D Viewer

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

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

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

4.3.2 Smart3D Settings

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

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

4.3.3 Smart3D Composer

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

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

4.4 Smart3D推荐硬件配置

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

建议使用GTX系列显卡。

4.5 Smart3D 建模对象的适用范围

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

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

在三维数据格式方面,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系列教程1之《浅谈无人机倾斜摄影建模的原理与方法》