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 的规则可写为:
其中下标 \(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。适合作为高保真导航训练基础设施,不宜将其直接视为通用机器人接触仿真器。