跳转至

Habitat-GS: A High-Fidelity Navigation Simulator with Dynamic Gaussian Splatting

会议: ECCV2026
论文: ECCV 原文
PDF: 论文全文
项目: Habitat-GS
代码: https://github.com/zju3dv/habitat-gs
领域: 3D 视觉
关键词: 高斯泼溅、具身导航、动态人物、视觉与导航解耦、跨域泛化

一句话总结

Habitat-GS 用零拷贝高斯渲染、离线准备的可驱动人物和动态胶囊障碍扩展 Habitat-Sim,在保留导航接口的同时提高训练环境逼真度;固定预算下,混合 mesh/GS 训练将 GS 测试集成功率从 61.30% 提升至 79.60%,但真实迁移证据仍限于视频开环评估。

研究背景与动机

导航模拟器不仅要告诉机器人哪里能走,还要生成足以训练感知策略的视觉观测。 Habitat 等平台的 mesh 光栅化效率很高,但从真实环境制作精细纹理、完整几何和高质量人物资产需要扫描与人工清理。 如果训练图像缺少真实材质、细节和视角相关效果,机器人可能掌握模拟环境中的几何规律,却不能稳定处理真实相机观测。 另一方面,静态房间也无法让策略学习对行走人物让路,单纯提高背景渲染质量并没有补上这一任务缺口。

3D 高斯泼溅(3D Gaussian Splatting,3DGS)提供了一条从重建资产获得高保真图像的路线,但它不是现成的导航世界模型。 高斯集合没有明确的碰撞表面,高速渲染主要依赖 CUDA,而 Habitat 的传感器管线建立在 OpenGL 上。 即使把一个逼真人物渲染进房间,若导航系统仍认为那个位置可通行,策略就可能直接穿过人物。 因此本文关注的不是单独改进重建算法,而是把高斯外观、人物运动和导航约束放进同一个可训练的模拟循环。

作者选择保留 Habitat 的 NavMesh 和任务生态,用高斯负责“看起来是什么”,用传统导航几何负责“能否经过”。 这种取舍避免为高斯重新实现完整物理引擎,也明确限定了系统的能力范围:重点是导航避障,而不是接触力学或物体操作。 核心 idea:将场景和人物的视觉表示与导航表示解耦,再用同步更新的姿态与胶囊障碍把两者绑定,使逼真人物同时成为可见目标与有效障碍。

方法详解

整体框架

输入包括场景的标准 PLY 高斯资产及 NavMesh,以及每个人物的标准姿态高斯、逐帧关节变换和代理胶囊。 整体流程先做资产与运动预计算,再并行执行场景渲染、人物变形和动态阻挡,最后把合成的 RGB-D 观测交给 Habitat-Lab 策略。 策略输出前进、左右转或停止;动作是否受人物阻挡以及最近人物距离,则通过附加接口用于奖励和指标计算。 下面四个设计对应原文 §3.1–3.4 和图 2;渲染路径与导航路径必须共享同一个仿真时刻,而不是各自播放。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
        A["场景与人物资产"] --> B["资产与运动预计算"]
        B --> C["零拷贝场景渲染"]
        B --> D["可驱动高斯人物"]
        B --> E["动态胶囊阻挡"]
        C --> F["深度合成 RGB-D"]
        D --> F
        F --> G["策略动作与环境步进"]
        E --> G
        G -->|推进仿真时刻| D
        G -->|更新占据与查询| E

关键设计

1. 资产与运动预计算:把昂贵的人物准备移出仿真循环

场景侧准备两个用途不同的资产:PLY 文件描述用于渲染的高斯,NavMesh 描述可通行区域。 高斯可以来自自行重建、公开数据集或生成式管线,但导入视觉资产并不等于已经获得可用的导航几何。 人物侧先从训练好的高斯人物模型导出标准姿态属性,包括位置、球谐系数、不透明度、尺度、旋转和线性混合蒙皮权重。 这些属性决定人物原本的外观,以及各个高斯如何随骨骼变换,而不是每一帧重新运行人物重建网络。 实验使用 AnimatableGaussians 的六个人物身份,其中三个训练、三个留作测试。

为了给这些人物安排可执行的运动,作者在 NavMesh 最短路径上采样路点,并离线运行 GAMMA 生成行走轨迹。 随后通过 SMPL-X 正向运动学把动作转成逐帧关节变换矩阵,同时预计算人物各帧的世界坐标胶囊。 运行时只需按当前仿真时刻插值查表,给渲染和阻挡提供一致的运动状态。 这一步节省的是在线神经推理开销,并不意味着人物能根据机器人的动作临时决定停步、转身或让路。 现有轨迹是预合成的,人物在导航中属于优先级较高的移动障碍,这一假设贯穿后面的安全评价。

2. 零拷贝场景渲染:让 CUDA 输出直接进入 Habitat 传感器

场景高斯通过 CUDA 的分块光栅化产生颜色和深度,但 Habitat 的观测出口使用 OpenGL 纹理。 若每帧把数据先搬到 CPU 再传回 GPU,图像再逼真也很难承担强化学习持续生成观测的负载。 系统因此预注册 OpenGL 纹理,通过 CUDA–OpenGL 互操作执行映射、渲染和解除映射,让数据保持在 GPU 上。 主文明确给出零拷贝设计;更细的 Map–Render–Unmap 实现被放在补充材料,当前缓存未包含这部分细节。 这里不把未见到的缓冲布局或同步实现补写成已知机制。

为了兼容传统资产,同一场景可以同时包含高斯、mesh 和多个人物。 合成器比较不同渲染通道的深度,保留更靠近相机的片段;原文 §3.2 的规则可写为:

\[ (C,D)= \begin{cases} (C_g,D_g), & D_g<D_m,\\ (C_m,D_m), & \text{otherwise}. \end{cases} \]

其中下标 \(g\)\(m\) 分别表示高斯与 mesh 通道,\(C\) 为颜色,\(D\) 为深度。 所有活动人物变形后的高斯共同进入一次人物 CUDA 渲染,再以同类深度规则参与合成。 因此人物不会仅仅像贴纸一样覆盖背景,也能与场景和传统 mesh 形成正确的前后遮挡关系。 这一规则解决的是跨渲染通道的可见性,并不建立高斯表面的物理接触模型。

3. 可驱动高斯人物:用同一套骨骼运动更新逼真外观

人物渲染不是把静态高斯整体平移:身体不同部位必须随 SMPL-X 关节姿态发生相应变形。 运行时,轻量 CUDA 线性混合蒙皮(Linear Blend Skinning,LBS)核读取插值后的关节矩阵,以预存蒙皮权重变形标准姿态高斯。 它把离线获得的外观资产变成当前时刻的可渲染人物,保留高斯所表达的衣物和头发细节。 相较于在线执行完整人物神经网络,这种做法让每帧开销集中在蒙皮与光栅化上。 图 4 展示了外观差异,但外观更逼真不等于本文重新解决了人物重建或动作生成问题。

这一模块与场景渲染各有职责:场景通道处理相对静态的环境,人物通道更新并集中渲染活动人物。 其输出仍然是与 Habitat mesh 渲染器格式一致的 RGB 和深度,原有 PointNav 策略不必为了高斯输入重写接口。 兼容性的重要性在于实验能固定策略架构,考察资产域和人物训练条件的变化,而非同时引入一个全新的导航网络。 不过人物与场景来自不同资产流程,视觉合成成立并不自动证明光照、接触和所有动态细节都物理一致。

4. 动态胶囊阻挡:让看得见的人真正占据可行走空间

高斯没有可靠的闭合碰撞表面,直接把颜色渲染当碰撞几何会让导航逻辑缺少明确边界。 作者从 SMPL-X 骨骼构建代理胶囊,离线保存每帧的位置,在线按照与人物渲染一致的时刻插值。 在每个导航步,所有活动人物的胶囊都被作为动态障碍交给扩展后的路径规划逻辑。 如果候选移动与胶囊相交,系统裁剪该动作,从机制上避免机器人穿过代理人体。 这是一种导航级运动约束,而不是人体与机器人之间的碰撞冲量求解。

Habitat-Lab 还能查询最近胶囊距离与候选步是否受阻,进而定义接近惩罚、碰撞惩罚和相关指标。 “动作被挡住”与“策略已经学会安全绕行”必须分开理解:即便裁剪阻止了穿透,策略仍可能频繁提出会撞人的动作。 因此论文仍然报告非零碰撞步比例,而不能把防穿透机制等同于零碰撞策略。 主文没有给出完整奖励权重或 PSI 的精确聚合公式,本笔记仅保留其明确说明的接口和指标含义。

一个完整示例

以论文动态 PointNav 的三个人物场景为例,机器人需要穿过房间到达目标,人物沿离线轨迹行走。 某一仿真时刻,系统首先从预计算数据获得当前骨骼姿态和胶囊位置,再分别更新人物外观与导航占据。 机器人收到包含背景和人物遮挡的 RGB-D 图像,策略据此决定继续前进还是转向。 若前进步与人物胶囊相交,NavMesh 阻挡逻辑裁剪移动,同时暴露受阻标志和最近人物距离。 下一时刻人物继续沿既定轨迹移动,策略依据新观测重新决策;人物不会因为机器人挡路而重新规划。 这一示例说明,学习信号来自可见人物与实际动作约束的一致性,而不是在渲染图中添加人物就自然获得避障能力。

损失函数 / 训练策略

本文是模拟系统与导航训练研究,不是提出一种新的高斯重建损失。 PointNav 对照统一使用 DD-PPO、ResNet 视觉编码器和 GRU 策略头,输入分辨率为 \(256\times256\) 的 RGB 与深度。 静态实验每组训练 \(5\times10^7\) 步,只改变 100 个训练场景中的 mesh/GS 配比。 动态实验先做相同预算的静态预训练,再在 20 个 GS 场景上追加 \(5\times10^6\) 步微调,对比有无人物。 后者的追加预算是静态预训练的 10%,不能把它写成从零训练人物避障只需这一预算。 虽然作者用“mesh 先建立基础能力”解释混合训练收益,实验配置给出的是场景配比,并未明确报告分阶段切换的课程学习日程。

实验关键数据

主实验

GS 场景由 InteriorGS 与额外真实重建场景按 4:1 组成,共 120 个,划分为训练 100、测试 20。 mesh 使用 HM3D,同样划分训练 100、测试 20;两种测试集来自不同场景集合,并非同一房间的成对表示。 因此下表反映的是场景域组合的效果,不能单凭它把所有收益归因于渲染器。 SR 是达到目标阈值的回合比例;SPL 同时衡量成功和路径效率;DTG 是结束时距离目标的欧氏距离。

表 1:训练场景配比对照,摘自原文表 3(a)。训练预算均为 \(5\times10^7\) 步;SR/SPL 单位为 %,DTG 单位为米。

训练配置 Mesh SR ↑ Mesh SPL ↑ Mesh DTG ↓ GS SR ↑ GS SPL ↑ GS DTG ↓
A:100 Mesh 59.00 51.23 5.537 61.30 52.09 4.982
B:100 GS 53.00 43.13 6.439 70.70 58.49 3.550
C:80 M + 20 G 60.20 52.06 6.004 73.40 64.32 3.757
D:50 M + 50 G 61.80 51.34 5.938 78.10 67.42 3.008
E:20 M + 80 G 59.60 51.01 5.901 79.60 68.38 2.698

E 相对 A 在 GS 测试上的 SR 增加 18.30 个百分点,SPL 增加 16.29 个百分点,而 Mesh SR 为 59.60% 对 59.00%。 但 E 的 Mesh DTG 为 5.901 米,差于 A 的 5.537 米,不能概括为所有指标均无代价提升。 纯 GS 的 B 在 Mesh 测试上更差,结合训练曲线,支持固定预算下混合域训练比单纯替换全部资产更有效。

原文表 4 进一步使用真实视频做开环验证:自录视频为 5 个场景、38 回合,InCrowd-VI 为 5 个场景、25 回合。 APA±1 衡量策略离散动作与人类下一运动在 ±1 步容差内的一致率,并非实际机器人执行后的到达率。 自录集合上 A 为 55.6%,E 为 61.2%;InCrowd-VI 上 A 为 20.4%,D 为 29.6%。 这提供了真实观测下动作预测改善的证据,但无法替代会累积策略误差的闭环部署测试。

消融实验

下表是“是否使用人物训练”的任务对照,而不是单独关闭零拷贝、LBS 或胶囊阻挡的模块消融。 两组在静态预训练后分别接受无人物或有人物的 GS 微调,测试包含 20 个 mesh 动态场景和 20 个 GS 动态场景。 CR 为碰撞步占比;PSI 衡量进入人物周围 1.0 米个人空间的平均侵入程度,二者越低越好。 主文没有展示 PSI 的精确归一化和跨人物聚合公式,因此不应将其当作米或百分比解读。

表 2:人物训练对照,摘自原文表 5;SR/SPL/CR 单位为 %,PSI 按原文数值报告。

测试域 微调配置 SR ↑ SPL ↑ CR ↓ PSI ↓
Mesh 场景 + 人物 GS,无人物 54.80 46.98 2.521 0.075
Mesh 场景 + 人物 GS + GS 人物 58.00 46.80 2.342 0.068
GS 场景 + 人物 GS,无人物 81.80 71.35 6.713 0.092
GS 场景 + 人物 GS + GS 人物 80.00 65.72 4.746 0.077

GS 动态测试 CR 从 6.713% 降至 4.746%,减少 1.967 个百分点,同时 PSI 从 0.092 降至 0.077。 代价是 SPL 从 71.35% 降至 65.72%,SR 从 81.80% 降至 80.00%,体现了安全与直接到达效率之间的取舍。 Mesh 动态测试也出现 CR 和 PSI 降低,但这个对照不能单独证明“高斯外观比 mesh 人物训练更有效”,因为基线根本没有人物。

表 3:吞吐量分析,摘自原文表 6(b);单张 RTX 4090、\(256\times256\)、约 2M 场景高斯,改变人物数量。

人物数 FPS ↑ 每帧时间(ms)↓ GPU 内存(GB)↓
0 94.16 10.6 3.917
1 75.14 13.3 4.197
2 57.70 17.3 4.457
5 37.74 26.5 5.513
10 24.67 40.5 7.497

关键发现

  • 逼真度有多路证据:表 2(a) 的 88 位参与者、825 个有效批次产生 7425 次成对比较,GS 获偏好比例为 61.9%,mesh 为 38.1%。这仍是所选资产上的感知研究,不是渲染器单变量实验。
  • 训练域不是越真实越好:在相同步数下,混合配置在 GS 测试中优于纯 GS,说明视觉丰富度与学习效率需要共同考虑。不同测试域的最优配置也不完全相同。
  • 系统实时性依赖场景和人物负载:约 2M 高斯、两个人物时为 57.70 FPS,十个人物时为 24.67 FPS。不能把前者推广成任意人数或任意数据中心 GPU 的实测速度。

亮点与洞察

  • 视觉与导航解耦不是权宜渲染技巧,而是系统的能力边界。它让高斯资产快速进入成熟导航生态,同时把接触物理问题留给独立表示。
  • 同一时刻驱动外观和胶囊,比单独提升图像质量更接近具身训练需求。机器人必须既看到人物,又因人物存在而面对不同的动作后果。
  • 离线预计算把高质量人物模型转成低在线成本资产。代价也十分明确:人物行为不再是根据机器人实时响应的策略。
  • 混合域训练结果提醒人们,高保真资产不是简单的“全面替换”。本文更可复用的经验是固定策略和预算,再研究资产多样性与收敛速度的组合。

局限与展望

  • 作者明确限制于导航级避障:胶囊阻挡不计算接触力或冲量,不能直接支撑抓取、推拉或人与机器人之间的物理交互。扩展到操作任务需要更深入的物理引擎耦合。
  • 人物沿预合成轨迹行动,是高优先级动态障碍而非交互伙伴。加入对机器人动作的实时响应,需要在线推理或其他行为控制机制。
  • 测试域不是相同物理场景的 mesh/GS 配对,视觉表示、场景内容和资产质量可能共同影响结果。更严格的因果分析应使用配对场景并控制采集条件。
  • 真实验证采用开环视频,没有报告实体机器人闭环到达率、碰撞率或失控后的恢复行为。将其称为已验证的真实安全导航会超过证据范围。
  • 人物训练对照没有加入“mesh 人物训练”组,也没有拆分外观质量与动态障碍暴露的贡献。补充这类对照才能明确高斯人物本身的独立价值。
  • 当前主文对奖励系数、PSI 精确定义和底层互操作实现给出的信息有限。复现实验时需要补充材料或代码,不能凭本笔记中的定性描述还原全部细节。

相关工作与启发

  • 与 Habitat / Habitat 3.0 对比:本文复用其 NavMesh、任务接口和训练生态,升级场景与人物视觉资产。贡献是生态内集成,不是重新发明 PointNav 或社会导航任务。
  • 与 3DGS / NeRF 对比:这些方法提供新视角合成表示,Habitat-GS 则处理传感器接口、遮挡合成和导航占据。高质量视图只是可训练环境的一个组成部分。
  • 与 AnimatableGaussians / GAMMA 对比:前者提供人物外观资产,后者提供场景相关运动,本文将两者离线导出并接入在线导航循环。人物模型和运动生成器本身不是本文新提出的算法。
  • 研究启发:可以在相同场景、相同轨迹和相同训练预算下分别改变人物渲染形式与行为响应性,区分“看得真实”和“互动真实”的作用。这是由本文边界引出的后续实验建议,不是已验证结论。

评分

  • 新颖性:4/5。高斯渲染、可驱动人物与动态导航阻挡的系统整合有明确价值,基础表示与运动模型主要来自已有工作。
  • 实验充分度:4/5。覆盖逼真度、跨域导航、人物安全与性能,但缺少配对资产控制、人物表示消融和真实闭环实验。
  • 写作质量:4/5。整体数据流及导航边界清楚,不过部分实现与指标细节依赖补充材料。
  • 价值:4/5。适合作为高保真导航训练基础设施,不宜将其直接视为通用机器人接触仿真器。