# 生成三维模型、正射影像
- 飞行设备
大疆RTK/P4R无人机,大约1万多,需要注意的问题
# 飞行高度
# 照片重叠度
# 电池供电
# 时间天气
# 水面采样
- 新建项目
# 先启动ContextCapture Engine,双击运行ContextCapture Master
# 单击新建项目。输入项目名称,项目名称需要使用英文。左侧点击项目名称可以设置存储路径等信息
# 新建项目后,选择影像选项卡,添加要建模的无人机照片,导入视频也可以进行解算的(视频是截取视频中的视频帧,不含有pos信息)
# 添加影像后,可以更改POS的高程信息(RTK/P4R直接获取的POS为大地高)
# 设置降低采样:降低生成模型的密度
# 检查影像文件,排除有问题的相片
# 导入位置:一些组装相机拍摄的相片(市场上大部分五镜头)中不含有Pos信息,可以在此处添加POS信息。相片名、坐标系等要一一对应
# 点云:添加点云数据
# 测量:添加连接点和控制点
# 3D视图:可以查看空间参考系统、经纬度、高度等信息
- 控制点
相控点(Control Point)和链接点(Tie Point)
# 连接点是为了让照片成果参与到空三,为最终的网格结构更加完善。是人工辅助网格构建的过程
# 相控点是让最终的网格结构拥有正确的地理位置信息(比例信息),避免畸变
手动添加相控点,RTK可以导出控制点数据(精确的经纬度数据)。如果只是做三维模型不需要相控点
# 选择Common formats 添加控制点文件(.csv .txt .xml)文件指定坐标系
# 选择Custom text format(wizard)添加控制点文件(设置起始行、分隔符、选择坐标系、指定与导入数据对应的列)
- 刺点
# 选中相控点,选择"Potential Matches",拖动红色点到正确位置后点"Accept/Update position"
# 选择3D视图查看是否正确(不要是红色)
- 提交空中三角测量
# 点击概要—提交空中三角测量,输入区块名称
# 定位模式:没有相控点选择第五项,有相控点选择使用相控点进行平差/使用相控点进行严格匹配
# 空三计算设置:采用默认设置
- 模型生产(重建项目)
# 空间框架:设置坐标系、调解边界范围(或点击右上角编辑兴趣区域、也可以导入KML进行范围选取)、切块方式不要超过做大机器内存
# 处理设置:孔洞填充(只填充小洞),无纹理区域表示(图像修复完成)
# 生产目的:三维网络、三维点云、正射影像、三维模型
- Auto3D查看
# 按F12打开控制台,按K键添加关键帧,按下A键自动把关键帧连接起来,动画展示时比较流畅
# 可以进行长度、面积等的测量
# 水面约束(水面破洞修复)
对于水面而言,由于特征点较少,软件在计算时很难匹配正确,导致输出模型的水面通常是支离破碎的。软件针对这种情况提供了一个约束工具,用户手动的为水面添加平面约束后,输出的水面模型就会非常平整。
# 调整方法
首先,完成空三后,先进行一次常规建模,然后在Acute 3D viewer中打开,用测量工具测量一下水面的高度。 再次提交一次建模,然后选择Reconstruction constraints选项,这里提供两种加限制的方式。
# 第一种是谷歌地图的KML格式,对ContextCapture中已导入照片的block点击右键,输出为kml格式
# 则谷歌地图会根据照片中的GPS数据自动匹配到照相的位置,然后如截图所示
# 通过在谷歌地图中绘制polygon选定水面区域,注意这里的高度一定要设置对
# 可以参考第一次建模后测量出的高度。(如果高度不匹配则kml文件无法导入进ContextCapture。)
# 然后保存这个polygon后,会在谷歌地图左侧列表中出现,点击鼠标右键将其保存为KML文件
# 然后导入到ContextCapture中。再次进行建模即可。
# 另一种方式是导入obj格式文件,如果模型是有地理坐标系的,那么obj文件也要定义相同的坐标系和中心点
# 高度也要正确。如果对OBJ文件的设置不太熟悉,建议使用谷歌地图的KML文件方式
# 最后进行建模时,软件会针对手动添加的约束对指定区域进行平面化处理
# 集群设置经验分享
简单来说,集群是让多台计算机同时进行三维建模。
# 多台计算机配置需要相同,不然拉后腿反而没效率
# 案例:A主机平台是I7 8700K 64GB 2080Ti,B主机是i3 8350k 8GB GTX960
# 集群对网络I/O性能要求很高,意味着你需要准备超千兆或万兆的路由器或交换机
# 六类或以上能够支撑千/万兆的网线,数据存储在高速固态中,而非慢速的机械硬盘
# 具体步骤
- 检查SMB 1.0是否启用
# 这个选项必选,为后面的网络共享能够互相发现做铺垫
# 路径:控制面板-程序-启用或关闭Windows功能-找到"SMB 1.0/CIFS文件共享支持",打钩,确定,重启电脑
- 设置网络共享
# 控制面板-所有控制面板项-网络和共享中心-高级共享设置,根据下图设置,保存更改即可
- 设置磁盘共享
# 以两台Windows 10电脑举例,下面用A和B表示。A主机和B主机,都要设置上面的步骤SMB 1.0和网络共享设置
# 打开A电脑,选择你要共享的磁盘(就是当前你CC项目的盘符),我这边举例V盘。
# 选择V盘,右键-属性-共享-高级共享设置-权限-添加everyone用户,并打钩所有权限,最后应用-确定
# 注意记得添加everone用户
- 检查共享状态
# 在地址栏里输入网络,回车或者点击"访问"按钮,然后你会发现你自己,说明共享正常,且被网络发现
- 打开CC开始集群设置
# A主机集群设置,设置UNC和序列目录
# 在A主机中打开CC,新建工程,输入工程名称(不允许设置中文名称),选择工程目录,通过网络共享选择设置目录,这步是关键,如下图所示
# 也就是通过共享路径去设置UNC路径,任务序列目录也必须是共享路径(任务序列目录默认C盘,需要手动在共享路径设置一个jobs文件夹),一定确保两个路径是网络路径,非本地路径
- CC中心设置
# A、B主机都打开ContextCapture Center Settings,分别进行设置:填入在A主机设置的“任务序列目录”网络地址,如下图所示,点确定完成
- 提交空三
# 在A主机上选择影像和需要的设置后,点击提交空三。打开A、B主机的引擎
- 检查集群状态
# 检查A/B主机的引擎状态
- 查看监视任务序列
# 提交空三后,点击“监视任务序列”,现实2个运算引擎端,即设置集群成功
# 报错和解决方法
# 问题1:Error: failed to unlock
# Error: failed to unlock "…\Jobs\Engines\desktop.xml"
# Error: failed to create Engine information
# 分析:unlock 锁住;无法创建引擎信息
# 解决方法:磁盘共享权限没有设置为读/写,检查共享权限,用户权限的读写要勾选上
# 问题2:Ignoring job …
# Ignoring job …,"//test.ccm" not found 忽略任务,.ccm工程找不到
# 分析:工程选项里的网络地址没设置正确;ContextCapture Center Settings里的地址没有设置正确,或是CCCS没有生效,需要手动启用引擎;引擎还是以前或其他地址,打开引擎看地址是不是现在工程的网络地址
# 解决方法:检查工程选项网络路径、检查CCCS网络路径是否对应、检查引擎里的网络引擎是否对应
# 
# 目前暂不清楚为什么CCCS不会立即生效,CC引擎没有同步,还需要时间去琢磨。如果设置后仍然提示Ignoring job …,“//test.ccm” not found,只能手动运行引擎了
# 措施1:手动执行CC引擎
# 进入cmd界面后
# 输入cd E:\Program Files\Bentley\ContextCapture Center\bin然后回车(要知道自己CC安装的目录)
# 然后输入e:回车键(这里是让命令在CC安装目录的bin文件夹里执行,因为引擎在bin文件夹里)
# 输入CCEngine.exe回车键(这个命令是在CC引擎里执行)
# 输入Starting Engine on job queue FILE:\Lyq0729a\v\project\jobs(这个命令是设置引擎的路径,也就是序列目录的网络地址)
# 此时打开CC,提交空三,回到cmd创建,再输入CCEngine.exe回车键,现在引擎会正常,空三显示测量中
# 倾斜摄影模型转为3DTiles格式
- 无人机倾斜摄影后的数据结构为 osgb
- 选择倾斜模型切片,选择osgb数据文件夹中的根目录osgb文件
- 存储类型:选择"散列",选择输出路径
- 提交处理后,处理成功生成数据文件
# 建模软件DP-Modeler
DP-Modeler是天际航自主研发的一款集精细化单体建模及Mesh网格模型修饰于一体的新型软件。通过特有的摄影测量算法,支持航测摄影、无人机影像、地面影像、车载影像、激光点云等多数据源集成,实现空地一体化作业模式,有效的提高三维建模的精度及质量。可对实景三维模型进行踏平、桥接、补洞、纹理修改等操作,实现模型整体修饰。解决自动化成果几何变形,纹理拉花,模型浮空、部件丢失等问题。