Habitat-GS:基于动态高斯泼溅的高保真导航仿真器 Habitat-GS: A High-Fidelity Navigation Simulator with Dynamic Gaussian Splatting
将3DGS与可驱动高斯化身集成进Habitat-Sim,缩小Sim-to-Real鸿沟并支持人本导航
前置知识
3D Gaussian Splatting (3DGS)
3DGS 是一种将场景表示为各向异性 3D 高斯椭球的显式神经渲染方法。不同于 NeRF 的隐式体渲染,3DGS 用一组带颜色(球谐系数)、不透明度、协方差矩阵的椭球作为基本图元,再通过基于 CUDA 的 tile-based 差异化光栅化合成新视角,兼顾了真实感与实时帧率。
本文的视觉渲染核心就是 3DGS。理解它显式、可编辑、可形变的特性,才能明白为何可以将其与高斯化身(avatars)的 LBS 形变机制结合,并直接接入到 Habitat 这类基于 OpenGL 的传统渲染管线中。
Habitat 仿真平台
Habitat 是具身 AI 主流开源仿真器,由 Habitat-Sim(C++ 渲染物理后端) 与 Habitat-Lab(Python 任务 API)组成。传感器管线基于 OpenGL 光栅化, 导航依赖 NavMesh,支持 PointNav、ObjectNav 等任务与 DD-PPO 训练。
本文是 Habitat-Sim 的功能扩展,目标是替换其 mesh 渲染为 3DGS,同时保留 Habitat-Lab 的所有训练 API 兼容性。理解这套生态才能看懂 3.4 节 API 设计的意义——传感器输出与原版完全一致。
SMPL-X 与 Linear Blend Skinning (LBS)
SMPL-X 是带手部表情的参数化人体统计模型,可用低维 shape/pose 参数生成完整 mesh。LBS 是一种传统但高效的骨骼蒙皮方法,通过每个顶点的皮肤权重在骨骼变换下加权平均完成形变,无需任何神经网络推理。
本文高斯化身形变的基础。预烤的 canonical gaussians 携带 LBS 权重,在 CUDA 端以 Linear Blend Skinning 实时驱向任意 SMPL-X 姿态,这是避免运行时神经推理、保证实时帧率的关键设计。
NavMesh 与 Sim-to-Real 鸿沟
NavMesh 是导航网格,把可行走区域表示为多边形网格,适合做路径规划但无法表达细致物理接触。Sim-to-Real 鸿沟指仿真到真实部署时,因渲染、动力学、物理细节差异导致的策略性能损失,通常用 SR、SPL 这类任务指标衡量。
本文显式提出 visual-navigation decoupling:3DGS 只负责视觉,NavMesh 继续负责碰撞,这一设计既绕开 3DGS 缺乏显式表面的难题,又把工作聚焦在导航类 Sim-to-Real 改善上。
研究动机
现有的主流具身 AI 仿真器(Habitat-Sim、iGibson、AI2-THOR、ThreeDWorld、SAPIEN)普遍采用基于 mesh 的光栅化进行视觉渲染,导致两个突出问题。第一,mesh 缺乏高频表面细节和视角相关外观(高光、亚表面散射),与真实图像之间存在明显的 Sim-to-Real 鸿沟,使在仿真中训练的点目标导航(PointNav)策略迁移到物理平台时性能显著下降。第二,这些平台对人体的支持要么完全缺失,要么只提供低视觉保真度的 mesh 化身(URDF、Replicants 等),无法训练出真正具备人本避障能力的智能体。工业级方案如 NVIDIA Isaac Sim 虽然引入了 3DGS,但其闭源渲染后端不便于研究定制,且依赖 RTX 系列独有的 RT Core,在 A100/H100 这类数据中心级加速卡上难以运行。
本文的目标是本文的具体目标是在 Habitat-Sim 这一最成熟的开源具身 AI 仿真器之上,构建一个以 3D Gaussian Splatting(3DGS)为视觉骨干、以动态高斯化身(drivable gaussian avatars)为人本交互骨干的导航专用仿真平台 Habitat-GS。该平台需要在三方面达成:(1)在 Habitat 传感器管线内实现实时的 3DGS 真实感渲染,大幅缩小 Sim-to-Real 视觉鸿沟;(2)支持从自重建、公开数据集、Marble 等生成式管线等多种来源可扩展地导入 3DGS 资产;(3)为高斯化身提供基于 SMPL-X 姿态的实时驱动与基于 NavMesh 阻塞的碰撞避让,让智能体能够学习人本导航行为,且完整保持 Habitat-Lab 训练 API 兼容性。
与已有工作不同的是,本文的独特切入角度是 visual-navigation decoupling:把视觉渲染(交给 3DGS)与导航/碰撞逻辑(继续由 NavMesh 负责)严格解耦。这一设计既避开了 3DGS 缺乏显式表面几何、难以直接做物理碰撞的天然缺陷,又避开了闭源引擎难以改造的局限。同时,这是首个同时满足以下四个条件的平台:开源、3DGS 渲染、可驱动高斯化身、对标准数据中心 GPU 无特殊硬件要求(Isaac Sim 因依赖 RT Core 而被排除)。在训练范式上,论文还首次系统比较了 mesh-only、3DGS-only 与混合训练,定量证明混合域训练是提升 PointNav 跨域泛化的最优策略。
核心方法
Habitat-GS 的整体方法可以概括为「在 Habitat-Sim 内部并行运行两套 GPU 渲染通道」。对于静态场景,把 3DGS PLY 资产喂入自实现的 CUDA 3DGS 光栅器,通过 CUDA-OpenGL 零拷贝互操作把 color/depth 直接写进 Habitat 传感器管线使用的 OpenGL 纹理,再经一个全屏合成 pass 与 mesh 物体的深度做正确遮挡。对于动态人体,采用离线预烤策略:在训练好的 AnimatableGaussians 上导出 canonical gaussians 及其 LBS 权重,同时用 GAMMA 模型离线合成沿 NavMesh 最短路径行走的 SMPL-X 姿态序列和胶囊代理;运行时,CUDA LBS 内核把 canonical gaussians 形变到当前姿态后,与场景高斯一起光栅化,与此同时把胶囊作为动态障碍注入 NavMesh,使 agent 走不过人体。整套架构通过 zero-copy 与 CUDA LBS 避免了 CPU-GPU 数据搬运与神经推理,保持实时帧率。
与已有方法相比,本文有四个本质区别。第一个是「CUDA-OpenGL 零拷贝互操作」:现有 3DGS 工作基本以独立查看器存在,要嵌入 OpenGL 管线必须靠回读再上传,本文通过预注册 OpenGL 纹理并借助 GPU 内部 DMA 实现颜色和深度直接复用,极大降低延迟。第二个是「canonical gaussians + CUDA LBS」:现有 AnimatableGaussians、GaussianAvatar 等都只关注独立重建与渲染,没有耦合到仿真传感器管线,也没有 NavMesh 集成;本文首次将 LBS 形变与胶囊代理碰撞结合到统一框架。第三个是「视觉-导航解耦的混合资产深度合成」:同一帧里场景高斯、化身高斯、mesh 物体、NavMesh 阻塞同时存在,本文实现了一个 depth compositing pass 保证四者遮挡关系正确。第四个是「混合域训练」:在训练阶段系统比较 5 种 mesh/3DGS 场景比例组合,定量证明 D(50M+50G)和 E(20M+80G)为最优。
方法步骤详情
方法分离线资产准备与运行时仿真。离线:场景侧把 InteriorGS 与自重建 3DGS 按 4:1 转 .ply 配 NavMesh;化身侧从 6 个 AnimatableGaussians 导出 canonical gaussians 与 LBS 权重,用 GAMMA 沿 NavMesh 合成 SMPL-X 关节序列并预生成胶囊代理,全部预烤存档。运行时每帧:1)CUDA 3DGS 光栅器对场景高斯 splatting 出 RGB/depth;2)CUDA LBS 内核对所有激活化身的 canonical gaussians 做线性蒙皮后用独立光栅器渲染;3)CUDA-OpenGL 互操作把 color/depth 写进预注册 OpenGL 纹理;4)depth compositing 合成两种 depth 保证遮挡;5)导航模块取胶囊注入扩展 NavMesh,对 agent capsule 做相交裁剪;6)输出与 mesh 格式一致的 RGB-D,新增 distance-to-nearest-avatar 与 step-blocked 两个 API 供奖励整形与指标计算。
技术新颖性
技术新颖性体现在三个层面。系统层面,首次实现 3DGS 渲染与 Habitat 生态的零拷贝对接,使同一平台既支持 mesh 又支持 3DGS 资产,无需修改任何 Habitat-Lab 任务代码,这是 Habitat-Sim 自 2021 年以来最重要的视觉骨干升级。化身层面,首次把 canonical-gaussians + CUDA LBS + 胶囊代理 + NavMesh 动态阻塞整合成闭环,实现「既是高保真视觉,又是有效导航障碍」的一体化身;GAMMA 离线轨迹 + 在线插值的策略既保证运动自然又避免运行时神经推理,适合大规模 RL 训练。资产层面,通过统一 PLY 格式支持自重建、InteriorGS 等公开数据集、Marble 等生成式管线作为输入源,显著降低了高保真场景的获取成本。实验层面,首次对混合域 PointNav 训练策略做了系统消融,明确给出 mesh 与 3DGS 互补性的实证证据,这是该领域之前缺失的。
实验结果
VLM 评估(Fig. 5)用 Gemini 3.0 Pro 盲评 240 张图,3DGS 在渲染质量、真实感、场景多样性上显著优于 mesh。PointNav(Table 2a)在 $5\times 10^7$ 步下比 5 种配比:Config A(100M)mesh test SR=59.00%,GS test 61.30%;Config B(100G)GS test SR=70.70% 但 mesh test 降至 53.00%;Config D(50M+50G)mesh test 61.80%,Config E(20M+80G)GS test 最佳 SR=79.60%、SPL=68.38%、DTG=2.698m,证明混合训练最优。人本导航(Table 3)加 GS avatar 后 GS test CR 由 6.713% 降至 4.746%,能迁移到 mesh 测试集(CR 2.342% vs 2.521%)。性能(Table 4)RTX 4090、256×256 下场景高斯 300K→7M 时 FPS 由 159.2 降至 44.52,显存 3.299→4.425 GB。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| PointNav (20 GS test, 混合域训练 Config E) | Success Rate (%) | 79.60 | 61.30 (Config A, 100M) | +18.30 个百分点 (相对 100M 纯 mesh 训练) |
| PointNav (20 mesh test, 混合域训练 Config D) | Success Rate (%) | 61.80 | 59.00 (Config A, 100M) | +2.80 个百分点,且 DTG 由 5.537m 降至 5.938m 量级,跨域泛化明显 |
| Avatar-aware PointNav (GS test, GS Scene + GS Avatar) | Collision Rate (%) ↓ | 4.746 | 6.713 (GS Baseline, no avatar) | CR 相对下降 29.3%,PSI 由 0.092 降至 0.077 |
| Avatar-aware PointNav (Mesh test, 跨域迁移) | Personal Space Intrusion ↓ | 0.068 | 0.075 (GS Baseline) | PSI 降低 9.3%,CR 由 2.521% 降至 2.342%,从高斯化身学到的避障能力可迁移到 mesh 环境 |
| VLM 场景质量评估 (3DGS vs Mesh, 240 张图) | 渲染质量 / 真实感 / 多样性 (10 分制) | 全部显著高于 mesh,详细数值见图 5 | mesh 场景基线 | Gemini 3.0 Pro 在三个维度上一致偏好 3DGS 场景,验证视觉优势 |
| 渲染吞吐 (RTX 4090, 256×256, 5M 高斯) | FPS (实时) ↑ | 51.46 | 163.8 (mesh 渲染参考) | 实时性满足 RL 训练,显存仅 4.091 GB,远低于 RTX 4090 的 24 GB 上限 |
局限与改进
作者在文末明确承认一个核心局限:visual-navigation decoupling 决定了 3DGS 只负责视觉,NavMesh 继续负责导航,这导致 Habitat-GS 只能支持导航级别的避障,无法处理力/冲量级别的物理交互;由于 3DGS 是一组各向异性高斯、没有刚体属性、缺乏拓扑连接,任何需要对 GS 表示物体做抓取、推压等精细操作的任务目前都超出系统能力范围。性能层面,场景高斯达到 7M 时 FPS 已降至 44.52,化身数增至 10 个时显存占用翻倍到 7.497 GB,大规模场景或密集人群的可扩展性需要进一步工程优化。化身能力受限于 AnimatableGaussians 的预训练身份,只有 6 个,新身份需离线重建,系统本身不提供在线化身生成。我的额外观察是:实验只在 256×256 分辨率下测性能,真实部署到导航机器人时通常需要更高分辨率,会进一步压缩 FPS;另外 E(20M+80G) 是单一最佳配比,论文没有给出「在更小 mesh 子集下是否仍能保持 SR」的边界分析,实际项目中数据量配比还需重新标定。
独立分析的弱点
本文存在以下可改进点。第一,渲染后端锁定 NVIDIA:整套 CUDA-OpenGL 互操作依赖 NVIDIA 驱动,AMD/Intel GPU 上无法直接运行,可考虑改用 Vulkan 互操作或 WebGPU 抽象以提升可移植性。第二,化身身份库过小,只 有 6 个 AnimatableGaussians,远不能覆盖真实人群多样性,可引入外观随机化或文本驱动的化身生成以增强 泛化。第三,缺乏多化身之间轨迹冲突检测,NavMesh 阻塞依赖离线胶囊,两个化身轨迹交叉时胶囊可能产生非物理穿透,可考虑在初始化阶段加入轨迹间冲突校验。第四,任务评测偏窄,只在 PointNav 一个任务上验证,Habitat-Lab 还有 ObjectNav、社交任务等可拓展,论文标题虽写「navigation simulator」但支撑度有限。第五,缺少对 CUDA-OpenGL 零拷贝、CUDA LBS、proxy capsule 三个模块的消融实验,读者难以判断具体哪个组件是性能与跨域泛化的关键。
未来方向
作者明确点出两个延伸方向。其一是把 3DGS 推进到操作任务,这需要把 3DGS 资产与物理引擎做更深的耦合,例如为高斯物体绑定刚体属性或为可形变物体引入基于物理的 LBS 扩展,本文提出的 visual-navigation decoupling 思路可以推广为 visual-physics-decoupling。其二是继续扩大化身身份库与运动多样性,可以通过文本或单图驱动自动生成高斯化身。结合成果可延伸的方向还包括:把 Habitat-GS 接到视觉语言模型(VLM)闭环,让 LLM 规划器在高保真仿真里完成具身推理与安全验证;把 mesh+3DGS 混合渲染扩展到视频生成式世界模型,作为合成数据生成器;以及把本文的 zero-copy 思想用到 4DGS 动态场景,让仿真器支持训练有可动家具的真实室内。基于 PSI 与 CR 指标的人本奖励,还可以进一步探索拥挤空间中的 social navigation 与多智能体协同导航。
复现评估
复现评估整体偏积极。第一,作者在项目页(https://zju3dv.github.io/habitat-gs/2026)承诺完全开源,代码、场景、化身、训练配置都会公开,在具身 AI 仿真领域属较高水平。第二,数据细节具体:3DGS 场景 120 个(InteriorGS+自重建 4:1,100 训 20 测),mesh 场景 HM3D 100 训 20 测,「GS test 与 mesh test 取自不相交场景」保证跨域评测严谨;化身用 6 个 AnimatableGaussians(3 训 3 测),由 GAMMA 生成运动轨迹,离线预烤 LBS 权重、关节矩阵与胶囊。第三,训练超参明确:DD-PPO 配 ResNet+GRU,$5\times 10^7$ 步预算,256×256 RGB+Depth,化身微调 $5\times 10^6$ 步;基准在 RTX 4090 单卡完成。第四,门槛主要在工程侧:零拷贝互操作需熟悉 NVIDIA 驱动与 Habitat 源码,CUDA LBS kernel 需基于 AnimatableGaussians 适配,适合有图形学背景的研究组。
论文图表
图 1 由左右两幅对比图组成:左半边标注为「Unrealistic Mesh Avatar」,展示传统 mesh 仿真器中因纹理缺失导致的几何伪影和扁平外观;右半边为「Drivable Gaussian Avatar」,展示基于 3DGS 的高保真渲染结果,人物带有高频衣物细节和视角相关外观,下方标注「Robust Agent」,暗示视觉保真度提升带来策略鲁棒性提升。
作为 teaser 图,它在一页内同时建立了「mesh 视觉差」「3DGS 视觉好」「高斯化身可驱动」三个核心论点,是动机章节最直观的视觉证据。
图 3 横向排列同一视角下的两张室内渲染图:左图为 Habitat-Sim 的 mesh 渲染,墙面与家具表面显得相对平坦、缺乏高频纹理;右图为 Habitat-GS 的 3DGS 渲染,保留了墙纸花纹、沙发织物光泽等高保真细节。
与 Fig. 1 配合,通过具体场景对比把「mesh 缺乏高频细节」这个抽象论断落到视觉证据上,是动机章节最直观的 Sim-to-Real 鸿沟展示。
图 4 展示两组人物化身渲染:左侧「Habitat-Sim (Mesh Avatar)」中人物表面光滑、缺乏衣物褶皱和发丝等细节;右侧「Ours (Dynamic Gaussian Avatar)」中人物保留衣服褶皱、头发纹理和真实感光照,显著提升视觉保真度。
把化身模块的视觉优势单独可视化,直接支撑 4.3 节中「从高斯化身学到的避障表征优于 mesh 化身」的论断,是动机+方法衔接处的关键证据。