摘要:CC照片建模原理是通过从图像中提取特征点和特征描述符,然后根据特征点的匹配来计算相机的位姿,从而生成三维点云数据。最后,借助网格重建和纹理映射的方法,将点云转换为带有纹理的三维网格模型。
实验数据:
链接:https://pan.baidu.com/s/1YcRD_TKyyNWN7DEuV87nDA?pwd=h12c
提取码:h12c
CC照片建模原理是通过从图像中提取特征点和特征描述符,然后根据特征点的匹配来计算相机的位姿,从而生成三维点云数据。最后,借助网格重建和纹理映射的方法,将点云转换为带有纹理的三维网格模型。以下是CC照片建模的基本流程以及对应的操作方法:
1.创建工程目录
新建一个任务总文件夹,建议以文件名称英文+日期命名,在总文件夹下建立job文件夹存放任务序列目录,建立照片文件夹存放需要处理的照片,建立工程文件夹存放工程文件(也可更加用户文件管理习惯自行设置)。
2.影像准备
使用相机或手机拍摄一个简单物体,至少从三个不同的视角拍摄物体的每个部分。尽量保证两张相邻照片重叠区域在2/3以上,且相邻照片的拍摄夹角小于15°。
3.新建工程
3.1打开软件
点击桌面左下角开始,展开Bently,单击打开ContextCapture Master主模块。
3.2新建工程
在软件打开界面点击【新工程】。
3.3保存工程
在弹出窗口输入工程名称和工程保存的路径,点击OK完成工程的创建。
3.4工程目录说明
新建工程完成后.ccm格式的工程文件会存放在工程文件夹下,打开工程文件时同级目录下会生成.lock文件,表示该程序已在运行,以防止重复启动或控制并发访问。
4.添加影像
4.1添加影像
点击工程下面的区块,在右侧窗口选择【影像】选项卡,点击【添加影像】下拉框,软件默认提供了3种导入影像的方式,以下介绍前2种影像导入方法。
【方法1】:通过【添加影像选择】添加用户选取的影像。
【方法2】:通过【添加整个目录】添加用户选择目录下的所有影像。
4.2影像分组说明
添加后的影像以照片分组的形式加载完成,若添加的图片全部位于一个文件夹下,则会创建1个照片分组,若加载的图片位于不同的子文件夹下,则会创建和子文件夹数量一致的照片分组。
5.指定Master文件及任务序列路径
点击工程,切换到【选项】选项卡,检查工程文件UNC路径是否为新建的.ccm工程文件的路径(建议采用默认的网络路径),并将任务序列目录指定到job文件夹。
6.指定Setting任务序列路径
6.1打开设置模块
点击左下角开始,单击打开cc设置模块。
6.2设置任务序列目录
在弹出的cc设置窗口切换到【配置】选项卡,将任务序列目录设置到job文件夹所在路径(需要和Master中的任务系列路径一致),点击OK确认。
7.启动Engine
7.1启动引擎
ContextCapture的Engine模块是进行数据处理和计算的核心部分,在设置好Master主模块和Setting模块路径后,点击桌面开始,单击ContextCapture Center Engine启动引擎。
7.2任务序列目录说明
启动引擎后,会在指定的任务序列文件夹下创建子文件夹,用于控制整个工程和操作者提交的任务。
- Archive:保留供用户保存任务;
- Cancelled:包含用户取消的任务;
- Completed:包含已完成的任务;
- Engines:当前连接到任务序列的所有引擎的列表;
- Failed:包含因引擎端出错而失败的任务;
- Pending:包含等待处理的任务。运行监听此任务序列的引擎时将在此文件夹中查找任务。子目录“低/普通/高”对应于各种不同的优先级:
- Running:包含引擎目前正处理的任务。
8.提交空中三角测量计算
8.1提交空中三角测量
【方法一】:可通过选中工程下面的Block_1,在【空中三角测量计算】选项下点击【提交空中三角测量】。
【方法二】:可选中block_1后,点击软件右侧的【提交空中三角测量】进行空三运算。
8.2定义空中三角测量计算参数
本文照片建模全部采用默认参数设置,点击设置选项卡后直接点击提交即可。
8.3查看引擎状态
查看引擎运行状态,若提示Starting Engine on job queue(启动任务序列的引擎),则表示引擎已经开始运行。
8.4查看空中三角测量成果
点击3D视图,可以查看区块1的空中三角测量结果。
8.5查看质量报告
可在空三计算成果中点击【查看质量报告】来查看模型的质量报告,其中模型分辨率范围可在左侧显示,计算成果提示数据完整,则可以进行三维重建。
9.新建重建项目
重建项目可以管理三维重建框架(空间参考系统、兴趣区域、切块、约束、修饰、处理设置)。根据重建项目,可以启动一个或多个生产项目。
9.1新建三维重建
右键Block_1-AT,点击【新建三维重建】。
9.2定义模型空间框架
空间框架用于定义生产模型的空间参考系统、兴趣区域和切块。选择Reconstruction_1,切换到【空间框架】选项,设置模型的切块模式为【规则平面网格】,点击右侧视图的【裁剪盒】,根据需求调整生产模型的范围。
10.生产三维模型
10.1提交新的生产项目
生产项目用于管理三维模型的生成、错误反馈、进度监控和有关基础重建的更新通知,生产项目在Master中定义,但由Engine进行处理。可以通过以下2种方法提交生产项目。
【方法一】:右键点击新建的重建项目,在弹出选项中点击【提交新的生产项目】。
【方法二】:点击重建项目,切换到概要选项卡,点击右下角【提交新的生产项目】下拉框,点击使用引擎处理。
10.2输入产品名称和描述
产品名称推荐使用默认命名,或使用项目英文名称,点击下一步。
10.3选择提交生产项目的目标
此实验我们只进行模型浏览,不在第三方软件进行模型修饰,使用默认设置即可,点击下一步。
10.4选择生产项目的输出格式和选项
使用默认设置,点击下一步。
cc生产项目的输出类型主要包括三维网格、三维点云以及DOM/DSM,3种类型的输出格式列举如下。
①【三维网格】
3MX格式:一种开放格式,建议使用此格式旨在简化ContextCapture数据的分发。
Smart3DCapture S3C:ContextCapture 的旧版格式,可以使用ContextCapture S3C Composer编辑S3C索引文件,以便通过ContextCapture查看器查看模型。
OBJ Wavefront格式:一种便携式三维格式,可通过大多数 CAD 和三维软件加载。
Autodesk FBX:Autodesk应用程序的三维交换格式。
Stereolithography STL:广泛用于三维打印的几何结构格式(不支持纹理)。
ESRI i3s场景数据库:适用于 ArcGIS Scene Service 的 ESRI Indexed 3D Scene 格式。
Cesium 3D Tiles:适合显示在 Cesium 中。
Google Earth KML:分层文件格式,适用于在 Google Earth 中实时以三维方式显示非常大的数据集。
OpenSceneGraph二进制 (OSGB):开源 OpenSceneGraph 库的原生格式,动态细节层次和分页。最适合 SuperMap GIS。
导出LOD树:细节层次树交换格式,基于XML文件和Collada DAE格式的三维模型。
SpacEyes3D Builder层:SpacEyes3D Builder层文件,基于OSGB格式。
②【三维点云】
ASPRS LASer (LAS):用于交换三维点云数据的公共文件格式。
Pointools POD 文件格式:在Bentley Pointools以及任何基于MicroStation的应用程序内使用的点云格式。
③DOM/DSM
KML Super-overlay:分层影像文件格式,适用于在 Google Earth 中实时以三维方式显示非常大的正射影像。
TIFF/GeoTIFF:含地理参考信息的标准光栅格式。
ESRI ASCII光栅/ASC:用于光栅交换的通用 ASCII 格式。
XYZ:基本 ASCII 格式,含 3 列,每行包含 X、Y 和 Z 坐标。
10.5再次定义生产项目的范围
使用默认设置,点击下一步。
10.6提交生产
输出路径使用默认路径,点击提交。
10.7查看任务序列的状态
点击【监视任务序列】,在弹出的任务序列监视器中可查看运行中的任务和排队的任务,以及参与重建的机器数量。
11.结果展示
建模完成后,点击【用ContextCapture Viewer打开】,使用cc默认查看器打开模型查看。