当前位置: 首页 > news >正文

从无人机到实景三维海洋系统

无人机(比如大疆的测量无人机)测量的影像数据一般通过Pix4d处理以后生成OBJ或者FBX格式,在CesiumLab,转成3dtiles,就可以做成实景三维系统。Pix4d的教程在B站有很多,想了解的同学可直接在B站搜索学习,博主也在B站上传了6集Pix4d处理无人机影像的官方视频。Pix4d软件和无人机的示例数据的下载地址如下:

链接:https://pan.baidu.com/s/1UnFurZaB0CgBv3CMS_oYQg?pwd=bnao

提取码:bnao

我们可以直接使用Pix4d自带的示例项目,自动处理以后,生成点云和正射影像。网格(mesh)可以直接导出为FBX或OBJ格式。

点击查看原图

质量报告主要关注三个方面:

1)、光束法区域网平差(bundle block adjustment)

区域网空三误差如下图,Mean reprojection error就是空三中误差,以像素为单位。相机传感器上的像素大小通常为6微米(μm),不同相机可能不一样。换算成物理长度单位就是0.166577*6μm。

点击查看原图

2)、相机自检校误差(Internal Camera Parameters)

上下两个参数不能相差太大(例如Focal length上面33.838mm,下面是20mm,那么肯定是初始相机参数设置有问题),R1、R2、R3三个参数不能大于1,否则可能出现严重扭曲现象。

点击查看原图

3)、控制点误差

ErrorX、ErrorY、ErrorZ为三个方向的误差。

点击查看原图

Pix4d处理后的点云和正射影像可以导出为OBJ或者FBX,FBX和OBJ可以在开源软件Open 3D Model Viewer中打开浏览。OBJ文件是一种3D模型文件,不包含动画、材质特性、贴图路径、动力学、粒子等信息;FBX格式是一种3D通用模型文件,包含动画、材质特性、贴图、骨骼动画、灯光、摄像机等信息。简单地说,FBX带正射纹理,OBJ不带正射纹理。下图是FBX文件在Open 3D Model Viewer打开的效果图。

点击查看原图

CesiumLab最新版3.0.8带坐标系统FBX转3dtiles需要付费,博主咨询了一下同事的同学王老师,他发了一个低版本的CesiumLab。这个版本CesiumLab将FBX转3dtiles没有限制,但是转换后的3dtiles,三维实景系统不能加载。偶然间听说,处理无人机影像的另一款软件ContextCapture可以直接将mesh(格网)转成3dtiles,于是,博主下载了这款软件,经试用,它确实能,但是,有人建议先转成osgb,再用CesiumLab将osgb转成3dtiles,因为这样处理模型质量更好。如此转换的3dtiles,三维实景系统能加载。

点击查看原图

Pix4d能否将三维mesh转成osgb呢?是可以的,但是它转出的osgb不是标准的,标准是这样的(来自于ContextCapture):1)最里层是生成的一堆osgb文件,其中不带LOD分级osgb的文件名为osgb文件的目录名;2)上一级目录名为Data;3)元数据文件metadata.xml与Data目录在同一目录下。

点击查看原图

依据这个标准,我们整理Pix4d生成osgb文件和目录,从ContextCapture中拷贝metadata.xml并修改,其中<SRS>元素的内容来自于Pix4d生成的目录1_initial\params下的xxx_wkt.prj文件,<SRSOrigin>元素的内容来自于目录1_initial\params下的xxx_offset.xyz。

使用CesiumLab2.3.8将osgb格式转成3dtiles,在三维实景系统中加载的效果如下图。

点击查看原图

在三维实景系统中,我们可以进行包括空间测量、图标标记、剖面分析、缓冲区分析、淹没分析、方量分析、飞行漫游。该系统是本地化部署,没有数据安全问题;代码是开源的,功能可随意扩充;系统是网络版的,即使重装操作系统和软件,数据也无需再配置,若部署在局域网服务器,可实现局域网数据共享,局域网内任何客户端通过浏览器就可以访问。

参考文献

【ContextCapture 】建模与 【CesiumLab】OSGB 格式转 3DTiles 格式

Pix4Dmapper系列教程(一):Pix4D模型成果导出OSGB并加载到CASS3D进行三维测图

将OSGB数据转换为3dtiles数据,转换成功

大分辨率(5120*1600)屏幕使用cesium加载高精度倾斜摄影数据浏览器报错崩溃解决方案

http://www.lryc.cn/news/210603.html

相关文章:

  • 第二章前端开发ES6基础
  • 使用Python将PDF转为图片
  • JAVA 同城服务货运搬家小程序系统开发时应注意哪些?
  • uniapp开发小程序 小米手机真机bottom:0无效 底部间隙 设备安全区域处理办法
  • 四十、【进阶】索引失效情况2
  • 敏感词过滤--golang
  • NVIDIA cuda安装时全部失败
  • APScheduler-调度器AsyncIOScheduler
  • 二十三种设计模式全面解析-原型模式(Prototype Pattern)详解:创造对象的奇妙之道
  • el-input 给icon图标绑定点击事件
  • 计算机网络——物理层
  • 常用排序算法
  • MGRE环境下的OSPF
  • 【计算机毕设】微信小程序案例-学生签到系统
  • 【数据分析】上市公司半年报数据分析
  • 【C++初阶】类和对象——操作符重载const成员函数取地址重载日期类的实现
  • JAVA中的垃圾回收器(2)
  • mac 安装homebrew ,golang
  • 李沐——论文阅读——VIT(VIsionTransformer)
  • uniapp表单验证
  • Crawler4j实例爬取爱奇艺热播剧案例
  • uniapp项目APP端安卓ios权限检测教程
  • java多进程间(父进程与子进程)通信
  • 【从0到1设计一个网关】整合Nacos-服务注册与服务订阅的实现
  • 【uniapp】短信验证码输入框
  • 负载均衡的综合部署练习(hproxy+keepalived和lvs-DR+keepalived+nginx+Tomcat)
  • 设计模式——策略模式(Strategy Pattern)+ Spring相关源码
  • ORB-SLAM3算法2之开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹
  • Qt 序列化函数和反序列化函数
  • Linux之线程池