本项目延续原有的摄影测量 + 3D Gaussian Splatting(3DGS)混合重建管线,进一步完成了面向 Unreal Engine 的产品化落地。真实世界不只被重建成可观看的三维结果,还可以直接进入仿真关卡,与动态对象、传感器和数据采集流程共同运行。
新增的IAGaussianRenderer面向 Unreal Engine 5.8,可直接加载标准 3DGS.ply文件与普通彩色点云。它把原有的高保真重建能力连接到 UE 场景、Blueprint 和 IADataSDG 数据管线,使真实现场能够用于数字孪生、问题回灌、算法训练和闭环评测。
演示效果
原有的高斯场景实时漫游演示继续保留:
3D 高斯重建实时漫游演示
以下展示取自公开标准数据集,左侧为真实照片,右侧为 IAGaussianRenderer 在 UE 5.8 中的渲染结果。上排为最佳视角,下排为中位视角。
Truck 场景:最佳视角24.77 dB,中位视角22.44 dB。
Train 场景:最佳视角27.32 dB,中位视角21.47 dB。
Truck 中位视角的 2× 局部细节对比:
技术核心
1. 混合重建管线
我们没有把 3DGS 当成孤立算法,而是把传统摄影测量的稳定几何基础与可微渲染的视觉表达能力组合成一条完整管线:
- 稀疏点云初始化:利用 COLMAP 执行 SfM(Structure from Motion),解算相机位姿并生成稀疏点云,为后续优化提供可靠的空间坐标与几何先验。
- 3DGS 优化:基于稀疏点云初始化各向异性 3D 高斯,通过可微光栅化迭代优化位置、旋转、尺度、不透明度和球谐系数,使新视角渲染逐步逼近真实照片。
- 几何约束增强:结合深度图与法线图等约束抑制弱纹理区域的漂浮伪影,提升场景结构稳定性。
- 引擎化交付:输出标准 PLY,由 IAGaussianRenderer 直接载入 UE,在统一坐标系中与网格资产、动态对象和传感器组合。
2. 从点云到各向异性高斯
传统点云只记录离散位置和颜色;3DGS 中的每个高斯基元还包含形状、方向、透明度以及视角相关的颜色表达:
- 位置:高斯中心在三维空间中的位置;
- 协方差:描述椭球的尺度、形状和朝向;
- 不透明度:控制该高斯对最终像素的贡献;
- 球谐系数:表达随观察方向变化的颜色与高光。
协方差可由旋转与尺度进行参数化:
这种显式表示既保留了点基元易于并行处理的特点,又能通过各向异性椭球覆盖复杂表面和细节。
3. 可微光栅化
渲染时,3D 高斯被投影为屏幕空间中的二维椭圆,并按深度排序后执行前向 Alpha 混合。一个像素的颜色由可见高斯共同贡献:
与硬性的 0/1 遮挡不同,高斯贡献是连续可微的。真实照片与渲染结果之间的误差可以反向传播到位置、协方差、不透明度和球谐系数,从而完成端到端优化。显式基元与 GPU 并行光栅化也使 3DGS 更适合实时交互场景。
为什么选择 3DGS
| 维度 | 传统摄影测量 Mesh | NeRF | 3DGS 混合方案 |
|---|---|---|---|
| 场景表示 | 三角网格与纹理 | 隐式神经场 | 显式各向异性高斯集合 |
| 复杂外观 | 依赖网格、UV 与材质制作 | 新视角质量高 | 通过透明度与球谐表达视角相关外观 |
| 渲染路径 | 成熟实时管线 | 需要密集网络查询与体渲染 | 面向 GPU 的并行 Splatting |
| 场景编辑 | 几何结构清晰,便于精确交互 | 隐式表示较难直接编辑 | 可变换、裁剪、组合显式高斯资产 |
| 仿真融合 | 适合碰撞和物理计算 | 主要用于视觉合成 | 高斯负责真实外观,网格代理负责物理交互 |
3DGS 并不替代所有 Mesh。我们的方案把两者放在同一空间中:高斯场景承担难以低成本复刻的真实外观,SimReady 网格承担碰撞、关节和动力学,最终同时满足视觉还原与仿真可计算性。
IAGaussianRenderer:把重建结果带入 UE
标准资产直接加载
在关卡中放置Gaussian Splat Actor,设置PlyFilePath、源坐标系和单位比例,即可在编辑器或运行时加载标准 3DGS PLY。插件也支持普通彩色点云,并根据点密度估算 splat 尺寸,使已有点云资源能够进入同一套工作流。
编辑器与 Blueprint 控制
| 能力 | 使用方式 |
|---|---|
| 编辑器即时预览 | Details 面板执行Load Ply / Unload Ply,无需进入 PIE |
| 运行时加载 | LoadPly()或LoadPlyFromPath(Path) |
| 资源卸载 | UnloadPly() |
| 数量查询 | GetNumSplats() |
| 异步完成通知 | OnPlyLoaded |
| 多场景组合 | 同一关卡放置多个独立 Gaussian Splat Actor |
每个 Actor 都可以独立移动、旋转和缩放。CoordSystem负责源数据坐标系转换,UnitScale负责从外部数据单位映射到 UE 厘米,避免重建资产进入引擎时出现轴向、手性和比例错误。
真实外观与 UE 场景融合
- Reference 颜色模式:忠实复现训练照片的 sRGB 颜色口径,适合重建结果核验和固定视角对比。
- 场景融合模式:让 splat 进入 UE 的光照与后处理链,便于和周围网格形成统一画面。
- 深度遮挡:UE 网格可以正确遮挡 splat,使机器人、车辆、设备和高斯背景按照空间深度组合。
- 多实例场景:不同扫描区域可以作为独立 Actor 加载,在关卡内完成拼装和版本替换。
渲染质量验证
渲染质量在公开标准数据集 Tanks and Temples 的Truck与Train场景上验证,预训练模型采用 INRIA 官方发布版本。评测方式是在真实照片分辨率下渲染全部已注册 COLMAP 相机位姿,并与配对照片逐张比对,所有指标取全部视角的均值,不做视角挑选。
| 评测条件 | Truck | Train |
|---|---|---|
| Splat 数量 | 2,541,226 | 1,026,508 |
| 已注册视角 | 251 | 301 |
| 真实照片分辨率 | 979 × 546 | 980 × 545 |
| 相机标定 | COLMAPPINHOLE | COLMAPPINHOLE |
运行环境为NVIDIA GeForce RTX 4060、Direct3D 12、Unreal Engine 5.8,渲染使用 Reference 颜色模式、三阶球谐函数与 GPU 排序。
| 指标 | Truck(251 视角均值) | Train(301 视角均值) | 方向 |
|---|---|---|---|
| PSNR | 22.4547 dB | 21.4530 dB | 越高越好 |
| SSIM | 0.7982 | 0.7946 | 越高越好 |
| LPIPS(AlexNet) | 0.1228 | 0.1770 | 越低越好 |
| LPIPS(VGG) | 0.2066 | 0.2582 | 越低越好 |
| FID | 11.4960 | 18.4031 | 越低越好 |
PSNR、SSIM 与 LPIPS 为逐视角配对指标,可与 3DGS 文献中的同口径结果对照。FID 在此基于固定图像集计算,适合在相同场景、相同分辨率和相同评估流程下衡量渲染分布的一致性。
几何对齐精度
渲染结果与真实照片的对齐残差通过位移场测量:水平方向±0.05%,垂直方向0.36%(Train)/ 0.60%(Truck),整体保持在 1% 以内。垂直方向的残差来自相机标定中fx ≠ fy的非方形像素在 UE 单一 FOV 参数下的表达差异,数值可预先解析计算,因此在需要严格几何对齐的采集任务中可被预测和补偿。
最佳、中位与最差视角
单一最佳视角不能代表完整质量。下面两张图都按 PSNR 排列三个代表视角:从上到下依次为最佳、中位和最差,左侧是真实照片,右侧是 UE 5.8 中的插件渲染结果。
Truck:最佳视角000147为24.77 dB,中位视角000068为22.44 dB,最差视角000061为13.14 dB。
Train:最佳视角00234为27.32 dB,中位视角00241为21.47 dB,最差视角00264为13.03 dB。
低分视角诊断
页面同时公开低分结果,而不是只展示经过挑选的成功视角。下列三联图依次对照真实照片、基准参考渲染与 UE 引擎输出:中位视角整体结构和颜色保持一致;最差视角则暴露出训练视角覆盖不足、强曝光差异和局部几何模糊。
最差视角的差异热图与局部放大用于定位误差集中区域,帮助区分模型本身的覆盖缺口与引擎投影、色彩链或后处理问题。
全视角逐帧视频
两段视频分别覆盖 Truck 的 251 个注册视角与 Train 的 301 个注册视角,并以 25 fps 按视角编号顺序编码。视频使用的正是指标评测帧,不是另行制作的展示运镜;由于 COLMAP 视角编号不等同于连续相机轨迹,画面切换不应被理解为平滑环绕。
Truck 场景 251 个注册视角的逐帧渲染结果
Train 场景 301 个注册视角的逐帧渲染结果
从重建到数据飞轮
IAGaussianRenderer 的价值不止是把模型“显示出来”,而是把 Real-to-Sim 结果接入算法研发:
- 真实采集:用相机、无人机或车载设备采集现场影像。
- 空间重建:通过 SfM 与 3DGS 得到带真实外观的空间表示。
- 仿真组合:在 UE 中叠加车辆、机器人、设备、障碍物和传感器。
- 数据生产:通过 IADataSDG 采集任务所需的 RGB、深度、分割和检测数据。
- 问题回灌:把真机失败现场重建后加入回归测试,形成新的训练与评测样本。
一处真实现场由此可以被多次复用:既用于数字孪生展示,也用于算法训练、故障复现和版本回归,减少重复手工建模与反复现场采集。
适用场景
自动驾驶与机器人仿真
快速重建道路、园区、仓库或作业现场,在真实背景中叠加可控车辆、行人、机械臂和传感器,用于感知算法训练、问题复现和边缘场景回归。
数字孪生与工业巡检
对厂区、站场、设备间和复杂设施进行高保真空间记录。规则设备使用参数化网格,复杂环境外观使用 3DGS,在同一 UE 场景中完成远程查看、方案预演和数据采集。
文旅与文化遗产
保留古建筑、展陈空间和文物表面的复杂视觉细节,用于数字化存档、沉浸式漫游和交互展示。
商品展示与影视内容
通过多视角影像重建具有复杂材质和视角相关外观的商品或实景空间,支持实时浏览、虚拟拍摄和背景资产复用。
客户价值
- 减少重复建模:真实场景经过一次重建即可在展示、仿真、训练和评测环节复用。
- 缩短 Real-to-Sim 链路:标准 PLY 直接进入 UE,减少专用格式转换和引擎二次开发。
- 提高问题复现效率:把真机现场带回仿真环境,围绕同一空间构造新的目标、遮挡和传感器条件。
- 连接视觉与物理:高斯表示负责真实感,SimReady 网格负责碰撞和动力学,避免在单一表示上强求所有能力。
- 沉淀长期场景资产:扫描结果以可管理、可组合、可版本化的资产形式进入数据飞轮。
参考资料与进一步阅读
- 3D Gaussian Splatting for Real-Time Radiance Field Rendering:3DGS 原始论文、代码与标准数据。
- Differentiable Rendering: A Survey(arXiv:2006.12057):可微渲染方法综述。
- Mildenhall 等,NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis,ECCV 2020。
- Schönberger 与 Frahm,Structure-from-Motion Revisited,CVPR 2016。
- Reinforcement Learning with Generalizable Gaussian Splatting(arXiv:2404.07950):3DGS 与强化学习结合的研究路径。
- 摄影测量与高斯可微渲染:重塑现代深度学习与强化学习的 3D 视觉基石:本站完整技术报告与参考文献。
- 3D 高斯:下一代工业级场景重建范式:本站关于 3DGS 原理、性能与行业应用的专项文章。
