【高斯泼溅】如何将“歪头”的3DGS模型精准“钉”在地图上,杜绝后续误差?

"拍"一个GS模型只要几分钟,建一个GS模型可选的工具也很多,但是模型放进网页里难以旋转,永远卡不到你想看的那个角度,应该怎么办?

更进一步,如果我想把模型放到地图上的实际位置,对模型和周围地理环境有更深入的联动,这时候又该怎么办?

相信看完这篇文章,你不仅能轻松拿捏小模型的各个角度大范围的高斯模型配准到地图也是能手到擒来。

为什么小熊的角度奇奇怪怪的?

了解两个坐标系,轻松旋转查看模型

想要能自如的旋转模型,只需要了解两个坐标系

以后不管是高斯模型、点云或OBJ等各类数据 ,在各式查看器中的自如观看都不在话下。

现在解密一下这两个坐标系:

  • **物体坐标系:**即模型自身有个XYZ三轴
  • **世界坐标系:**即查看器预先定义好的XYZ三轴

是不是看懵了,说啥呢。别急,让我以下面的小熊模型来详细讲解一下。

首先我们一般可以看到,查看器右上角有个很明显的XYZ轴。我们刚进入查看器后什么都别动XYZ这个初始的方向就是世界坐标系的指向 ,我们只需要关心指向上方的是哪根轴就行 。这个场景中就是Y轴

下面就是关键了,我们要将模型的Y轴对齐世界坐标系的Y轴

有人可能要问了:小熊又没有这些红红绿绿的轴,我又不知道哪个是Y轴,还对齐呢?

我们可以想象一下,Y是向上的,那这个小熊模型是不是也应该向上,那什么应该是向上的呢?

很明显吧,我们只需要把小熊的红帽子旋转向上,那小熊肯定就自然和世界坐标系对齐了

大模型叠加地图

这小熊模型我随便转转看看,没啥精度要求,难度太低。要是想把东方之门、阳澄湖那么大区域的高斯模型对齐到地图,融入到GIS的测量、分析、决策与运维流程该怎么办呢?

我们首先要做的工作是配准,将模型配准到地图上。

进行配准需要了解坐标系:

众所周知,地球是个三维椭球 ,而我们平时看的地图都是二维平面 ,这里涉及到两个坐标系了;再加上模型的坐标系,就是三个坐标系了。

平常无人机图像自带的经纬度就是三维椭球的坐标系,一般来说常用的为WGS84坐标系 ;平面地图的坐标系一般来说常用的是墨卡托投影坐标系 。在国际标准下,这两者常用的代码是EPSG:4326EPSG:3857

而配准一般步骤如下:

01地图选点

从地图上选取一些特征点,地图上获取的点如果是经纬度,需要将其转换到EPSG:3857坐标系下的平面坐标。

平面地图选点

02模型选点

模型侧则首先要将colmap结果点云导入进CloudCompare之类的点云处理工具,然后选取与地图上选择的相同的点,记录其坐标,即模型坐标系下坐标。

CloudCompare工具选取模型点

03变换矩阵计算

之后我们可以使用最小二乘等算法,计算两组坐标间最佳的旋转变换矩阵(上一步选取的点越多,最终配准结果越准确)。

04变换模型

最终我们还要对高斯模型的位置、旋转等相关属性应用这个矩阵才能完成配准,将模型放上地图。

模型叠加地图

如何一步完成叠加

把模型"摆"到地图上,传统做法得先闯三关坐标系 、再踩四步配准坑;来一个新模型就全套重来,人工量直接拉满。

Mapmost 高斯泼溅建模平台,让这套苦差事变成"无人区":

照片带 GPS?

平台自动读取,建完模型一秒缩放+旋转,稳稳落到真实地理位置;

照片没 GPS?

空三后的随机坐标系也能被扳正,再也不怕像"小熊"弯头转向的。

无人机拍完→上传→自动配准,整条链路零手工、零代码,真正的"一键到地"。

申请试用,请至Mapmost官网联系客服

Mapmost 3DGS Builder在线体验版已上线~

欢迎体验: studio.mapmost.com/3dgs

相关推荐
花归去8 分钟前
echarts 柱状图曲线图
开发语言·前端·javascript
喝拿铁写前端8 分钟前
当 AI 会写代码之后,我们应该怎么“管”它?
前端·人工智能
老前端的功夫12 分钟前
TypeScript 类型魔术:模板字面量类型的深层解密与工程实践
前端·javascript·ubuntu·架构·typescript·前端框架
Nan_Shu_61435 分钟前
学习: Threejs (2)
前端·javascript·学习
G_G#43 分钟前
纯前端js插件实现同一浏览器控制只允许打开一个标签,处理session变更问题
前端·javascript·浏览器标签页通信·只允许一个标签页
@大迁世界1 小时前
TypeScript 的本质并非类型,而是信任
开发语言·前端·javascript·typescript·ecmascript
GIS之路1 小时前
GDAL 实现矢量裁剪
前端·python·信息可视化
是一个Bug1 小时前
后端开发者视角的前端开发面试题清单(50道)
前端
Amumu121381 小时前
React面向组件编程
开发语言·前端·javascript
持续升级打怪中2 小时前
Vue3 中虚拟滚动与分页加载的实现原理与实践
前端·性能优化