SpatialLM
SpatialLM 是一款专为理解三维室内空间而设计的大语言模型。它能够直接处理来自激光雷达、RGB-D 相机甚至普通单目视频生成的点云数据,并自动将其转化为结构化的建筑信息模型。简单来说,输入一段扫描数据,SpatialLM 就能精准识别并输出墙体、门窗的位置,以及各类家具物体的三维边界框和语义类别。
这一工具主要解决了非专业设备采集的杂乱 3D 数据难以被高效解析和利用的痛点。传统方法往往依赖昂贵的专用硬件或繁琐的人工标注,而 SpatialLM 凭借强大的多模态架构,成功在无序的几何点云与有序的结构化表达之间架起了桥梁,实现了低成本、高精度的场景语义理解。
其技术亮点在于采用了先进的 Sonata 点云编码器,显著提升了细节分辨率,并支持用户自定义检测类别,灵活性极强。目前,SpatialLM 非常适合计算机视觉研究人员、机器人开发者以及建筑科技领域的设计师使用。无论是用于训练新的空间智能算法、开发自主导航机器人,还是辅助快速构建数字孪生模型,它都能提供可靠的技术支持,让复杂的 3D 场景理解变得更加简单直观。
使用场景
某智能家居初创团队正试图利用用户手机拍摄的室内视频,快速构建可用于机器人导航和 AR 家具摆放的结构化 3D 房间模型。
没有 SpatialLM 时
- 数据源受限严重:传统方案依赖昂贵的专业 LiDAR 扫描仪,无法直接处理用户普通的单目手机视频,导致数据采集成本极高且难以规模化。
- 人工标注耗时费力:从原始点云中提取墙壁、门窗等建筑元素需人工逐帧标注或编写复杂的规则脚本,开发周期长达数周。
- 语义理解缺失:生成的模型仅包含几何网格,缺乏“门”、“窗”等语义标签,机器人无法识别可通行区域,AR 应用也无法实现智能遮挡。
- 格式转换困难:非结构化的 3D 几何数据难以直接对接下游任务,团队需额外开发中间件进行格式清洗和对齐。
使用 SpatialLM 后
- 多源数据无缝接入:SpatialLM 直接接受单目视频、RGB-D 图像等多种输入,无需专用设备,瞬间将普通用户视频转化为高质量点云数据。
- 自动化结构生成:模型自动输出包含墙体、门窗及带语义类别物体边界框的结构化描述,将原本数周的建筑建模工作缩短至分钟级。
- 高阶语义赋能:输出的数据天然携带语义信息,机器人可立即识别“门”用于路径规划,AR 引擎能精准判断家具与墙体的空间关系。
- 端到端高效流转:SpatialLM 桥接了非结构化几何与结构化表示,生成的标准数据可直接驱动下游导航与交互算法,大幅简化系统架构。
SpatialLM 通过将杂乱的 3D 视觉数据一键转化为富含语义的结构化场景模型,彻底打破了低成本室内数字化与高级空间智能应用之间的壁垒。
运行环境要求
- Linux
必需 NVIDIA GPU,CUDA 12.4 (测试环境),需支持编译 flash-attn 和 torchsparse
未说明

快速开始
SpatialLM
✨ 最新消息
- [2025年9月] SpatialLM-Dataset 现已在 Hugging Face 上发布。
- [2025年9月] SpatialLM 被 NeurIPS 2025 接受。
- [2025年6月] 在 FINETUNE.md 中添加了微调说明。
- [2025年6月] 欢迎体验我们的新模型:SpatialLM1.1-Llama-1B 和 SpatialLM1.1-Qwen-0.5B,现已在 Hugging Face 上发布。SpatialLM1.1 将点云分辨率提升一倍,引入了更强大的点云编码器 Sonata,并支持用户自定义类别的检测任务。
- [2025年6月] SpatialLM 的 技术报告 已在 arXiv 上发布。
- [2025年3月] 我们很高兴在 Hugging Face 上发布了 SpatialLM-Llama-1B 和 SpatialLM-Qwen-0.5B。
- [2025年3月] SpatialLM 首次正式发布!
简介
SpatialLM 是一种用于处理 3D 点云数据并生成结构化 3D 场景理解输出的 3D 大型语言模型。其输出包括墙体、门、窗等建筑元素,以及带有语义类别信息的定向物体边界框。与以往需要专用设备采集数据的方法不同,SpatialLM 可以处理来自单目视频序列、RGBD 图像和 LiDAR 传感器等多种来源的点云数据。这种多模态架构有效地弥合了非结构化 3D 几何数据与结构化 3D 表示之间的鸿沟,提供高层次的语义理解能力。它能够增强具身机器人、自主导航以及其他复杂 3D 场景分析任务中的空间推理能力。
SpatialLM 利用 MASt3R-SLAM 从单目 RGB 视频中重建 3D 布局。结果与视频对齐,并使用 GT 相机进行可视化。
SpatialLM 模型
| 模型 | 下载 |
|---|---|
| SpatialLM1.1-Llama-1B | 🤗 HuggingFace |
| SpatialLM1.1-Qwen-0.5B | 🤗 HuggingFace |
| SpatialLM1.0-Llama-1B | 🤗 HuggingFace |
| SpatialLM1.0-Qwen-0.5B | 🤗 HuggingFace |
使用方法
安装
已在以下环境中测试通过:
- Python 3.11
- PyTorch 2.4.1
- CUDA 版本 12.4
# 克隆仓库
git clone https://github.com/manycore-research/SpatialLM.git
cd SpatialLM
# 创建包含 CUDA 12.4 的 conda 环境
conda create -n spatiallm python=3.11
conda activate spatiallm
conda install -y -c nvidia/label/cuda-12.4.0 cuda-toolkit conda-forge::sparsehash
# 使用 poetry 安装依赖
pip install poetry && poetry config virtualenvs.create false --local
poetry install
# SpatialLM1.0 的依赖
poe install-torchsparse # 构建 torchsparse 的 wheel 文件可能需要一些时间
# SpatialLM1.1 的依赖
poe install-sonata # 构建 flash-attn 的 wheel 文件也可能需要较长时间
推理
在当前版本的 SpatialLM 中,输入的点云被视为轴对齐的,其中 z 轴为垂直向上方向。这种方向对于在不同数据集和应用之间保持空间理解和场景解释的一致性至关重要。 经过预处理的点云示例,由 MASt3R-SLAM 从 RGB 视频中重建而来,可在 SpatialLM-Testset 中找到。
下载一个示例点云:
huggingface-cli download manycore-research/SpatialLM-Testset pcd/scene0000_00.ply --repo-type dataset --local-dir .
运行推理:
python inference.py --point_cloud pcd/scene0000_00.ply --output scene0000_00.txt --model_path manycore-research/SpatialLM1.1-Qwen-0.5B
基于用户指定类别的检测
SpatialLM1.1 利用大语言模型的灵活性,支持基于用户指定类别的物体检测。
SpatialLM1.1 提供三种结构化室内建模任务变体:
- 结构化重建:检测墙壁、门、窗户、盒子。
- 布局估计:检测墙壁、门、窗户。
- 3D 物体检测:检测盒子。
对于包含物体边界框估计的任务,您可以指定 59 种家具类别中的子集,模型将仅预测这些指定类别内的物体。例如:
python inference.py --point_cloud pcd/scene0000_00.ply --output scene0000_00.txt --model_path manycore-research/SpatialLM1.1-Qwen-0.5B --detect_type object --category bed nightstand
可视化
使用 rerun 可视化点云和预测的结构化 3D 布局输出:
# 将预测的布局转换为 Rerun 格式
python visualize.py --point_cloud pcd/scene0000_00.ply --layout scene0000_00.txt --save scene0000_00.rrd
# 可视化点云和预测的布局
rerun scene0000_00.rrd
评估
为了评估 SpatialLM 的性能,我们提供了 eval.py 脚本,该脚本在下文 Benchmark Results 部分的表格中报告了 SpatialLM-Testset 上的基准测试结果。
下载测试集:
huggingface-cli download manycore-research/SpatialLM-Testset --repo-type dataset --local-dir SpatialLM-Testset
运行评估:
# 使用 SpatialLM1.1-Qwen-0.5B 模型对 SpatialLM-Testset/pcd 文件夹中的 PLY 点云进行推理
python inference.py --point_cloud SpatialLM-Testset/pcd --output SpatialLM-Testset/pred --model_path manycore-research/SpatialLM1.1-Qwen-0.5B
# 评估预测的布局
python eval.py --metadata SpatialLM-Testset/test.csv --gt_dir SpatialLM-Testset/layout --pred_dir SpatialLM-Testset/pred --label_mapping SpatialLM-Testset/benchmark_categories.tsv
使用自定义视频的示例
我们在 EXAMPLE.md 中提供了一个示例,说明如何使用我们的模型从 RGB 视频开始估计场景布局,该视频使用新发布的 SLAM3R 生成。这些步骤同样适用于 MASt3R-SLAM 以及其他重建方法。
在自定义数据上微调
有关在您自己的数据上微调 SpatialLM 的说明,请参阅 FINETUNE.md。我们提供了一个使用 ARKitScenes 数据集的示例。
SpatialLM 数据集
SpatialLM 数据集是由专业 3D 设计师设计的大规模高质量合成数据集,已用于实际生产。它包含来自 12,328 个多样化室内场景的点云,共计 54,778 间房间,每间房间都配有丰富的 3D 真实标注。SpatialLM 数据集为推进室内场景理解、3D 感知及相关应用的研究提供了宝贵的资源。
如需访问用于生成 SpatialLM 点云的逼真 RGB/深度/法线/语义/实例全景渲染图以及相机轨迹,请参阅 SpatialGen 项目,以获取更多详细信息。
| 数据集 | 下载 |
|---|---|
| SpatialLM-Dataset | 🤗 Datasets |
SpatialLM 测试集
我们提供了一个包含 107 个预处理点云的测试集,这些点云是使用 MASt3R-SLAM 从 RGB 视频重建的。与以往的干净 RGBD 扫描数据集相比,由于单目 RGB 视频重建的点云中存在噪声和遮挡,SpatialLM-Testset 的难度要高得多。
| 数据集 | 下载 |
|---|---|
| SpatialLM-Testset | 🤗 Datasets |
基准测试结果
布局估计
布局估计专注于预测室内场景中的建筑元素,即墙壁、门和窗户。我们在此任务上使用了 Structured3D 数据集进行评估。对于 RoomFormer,我们直接下载了模型检查点。SceneScript 和 SpatialLM 先在我们的数据集上进行了训练,随后又在 Structured3D 上进行了进一步微调。
我们感谢 @chinmay0301ucsd 发现并修复了评估脚本中的一个错误 #88,该错误影响了门和窗户的指标。因此,本次得分比之前报告的更高。
| 方法 | RoomFormer | SceneScript(微调后) | SpatialLM1.1-Qwen-0.5B(微调后) |
|---|---|---|---|
| F1 @.25 IoU | 83.4 | 90.4 | 94.3 |
| F1 @.5 IoU | 81.4 | 89.2 | 93.5 |
3D 物体检测
我们使用带有 18 类物体标注的 ScanNet 数据集对 3D 物体检测任务进行了评估。对于 V-DETR,我们直接下载了模型检查点。SceneScript 和 SpatialLM 先在我们的数据集上进行了训练,随后又在 ScanNet 上进行了微调。
| 方法 | V-DETR | SceneScript(微调后) | SpatialLM1.1-Qwen-0.5B(微调后) |
|---|---|---|---|
| F1 @.25 IoU | 65.1 | 49.1 | 65.6 |
| F1 @.5 IoU | 56.8 | 36.8 | 52.6 |
视频中的零样本检测
在具有挑战性的 SpatialLM 测试集上的零样本检测结果如下表所示:
| 方法 | SpatialLM1.1-Llama-1B | SpatialLM1.1-Qwen-0.5B |
|---|---|---|
| 布局 | F1 @.25 IoU (2D) | F1 @.25 IoU (2D) |
| 墙 | 68.9 | 68.2 |
| 门 | 49.1 | 47.4 |
| 窗户 | 47.0 | 51.4 |
| 物体 | F1 @.25 IoU (3D) | F1 @.25 IoU (2D) |
| 窗帘 | 34.9 | 37.0 |
| 床头柜 | 62.8 | 67.0 |
| 吊灯 | 53.5 | 36.8 |
| 衣柜 | 29.4 | 39.6 |
| 床 | 96.8 | 95.2 |
| 沙发 | 66.9 | 69.1 |
| 椅子 | 20.8 | 32.3 |
| 橱柜 | 15.2 | 11.2 |
| 餐桌 | 40.7 | 24.2 |
| 植物 | 29.5 | 26.3 |
| 电视柜 | 34.4 | 27.3 |
| 茶几 | 56.4 | 64.9 |
| 边桌 | 14.6 | 9.7 |
| 空调 | 16.7 | 24.0 |
| 化妆台 | 46.7 | 46.7 |
| 凳子 | 17.6 | 30.8 |
| 冰箱 | 0.0 | 16.7 |
| 绘画 | 34.9 | 38.2 |
| 地毯 | 40.3 | 24.1 |
| 电视 | 16.0 | 18.0 |
结果可视化
| 布局估计 | 物体检测 | 零样本重建 |
|---|---|---|
![]() |
![]() |
![]() |
| Structured3D 结果 | ScanNet 结果 | Zeroshot 结果 |
许可证
SpatialLM-Llama-1B 是基于 Llama3.2-1B-Instruct 构建的,该模型受 Llama3.2 许可证的约束。SpatialLM-Qwen-0.5B 则基于 Qwen-2.5 系列构建,最初受 Apache 2.0 许可证的保护。
SpatialLM1.0 是基于 SceneScript 点云编码器构建的,该编码器受 CC-BY-NC-4.0 许可证的保护。本项目中使用的 TorchSparse 受 MIT 许可证的保护。
SpatialLM1.1 是基于 Sonata 点云编码器构建的,其模型权重受 CC-BY-NC-4.0 许可证的保护。而基于 Pointcept 构建的代码则受 Apache 2.0 许可证的保护。
引用
如果您认为这项工作对您有所帮助,请考虑引用以下内容:
@inproceedings{SpatialLM,
title = {SpatialLM: Training Large Language Models for Structured Indoor Modeling},
author = {Mao, Yongsen and Zhong, Junhao and Fang, Chuan and Zheng, Jia and Tang, Rui and Zhu, Hao and Tan, Ping and Zhou, Zihan},
booktitle = {Advances in Neural Information Processing Systems},
year = {2025}
}
致谢
我们衷心感谢以下项目为本研究提供了支持:
Llama3.2 | Qwen2.5 | Transformers | SceneScript | TorchSparse | Sonata | Pointcept
版本历史
v0.1.12025/06/10v0.1.02025/06/10常见问题
相似工具推荐
AutoGPT
AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台,核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点,让用户只需设定目标,AI 即可自主规划步骤、调用工具并持续运行直至完成任务。 无论是开发者、研究人员,还是希望提升工作效率的普通用户,都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体;研究人员能基于开源架构探索多智能体协作机制;而非技术背景用户也可直接选用预置的智能体模板,立即投入实际工作场景。 AutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑,每个块负责单一动作,灵活且易于调试。同时,平台支持本地自托管与云端部署两种模式,兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本,即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛,让人人都能成为 AI 的创造者与受益者。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
llama.cpp
llama.cpp 是一个用纯 C/C++ 编写的大语言模型(LLM)推理引擎,旨在让任何人都能在本地轻松运行强大的 AI 模型。它主要解决了大模型对硬件要求高、部署复杂的问题,让用户无需依赖庞大的 Python 环境或昂贵的云端服务器,即可在个人电脑甚至树莓派上高效运行模型。 无论是希望保护数据隐私的开发者、需要离线测试算法的研究人员,还是想在自己设备上体验 AI 的普通用户,都能从中受益。llama.cpp 对苹果 Silicon 芯片进行了深度优化,同时广泛支持 x86、RISC-V 架构以及 NVIDIA、AMD 等主流显卡。其核心亮点在于先进的量化技术,能将模型压缩至 2-bit 到 8-bit 等多种精度,在大幅降低内存占用的同时保持出色的推理速度。此外,它还提供了兼容 OpenAI 格式的 API 服务和简洁的 Web 界面,方便集成与调用。如果你想在本地以最低的资源消耗获得顶级的模型运行体验,llama.cpp 是极佳的选择。
DeepSeek-V3
DeepSeek-V3 是一款由深度求索推出的开源混合专家(MoE)大语言模型,旨在以极高的效率提供媲美顶尖闭源模型的智能服务。它拥有 6710 亿总参数,但在处理每个 token 时仅激活 370 亿参数,这种设计巧妙解决了大规模模型推理成本高、速度慢的难题,让高性能 AI 更易于部署和应用。 这款模型特别适合开发者、研究人员以及需要构建复杂 AI 应用的企业团队使用。无论是进行代码生成、逻辑推理还是多轮对话开发,DeepSeek-V3 都能提供强大的支持。其独特之处在于采用了无辅助损失的负载均衡策略和多令牌预测训练目标,前者在提升计算效率的同时避免了性能损耗,后者则显著增强了模型表现并加速了推理过程。此外,模型在 14.8 万亿高质量令牌上完成预训练,且整个训练过程异常稳定,未出现不可恢复的损失尖峰。凭借仅需 278.8 万 H800 GPU 小时即可完成训练的高效特性,DeepSeek-V3 为开源社区树立了一个兼顾性能与成本效益的新标杆。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
spec-kit
Spec Kit 是一款专为提升软件开发效率而设计的开源工具包,旨在帮助团队快速落地“规格驱动开发”(Spec-Driven Development)模式。传统开发中,需求文档往往与代码实现脱节,导致沟通成本高且结果不可控;而 Spec Kit 通过将规格说明书转化为可执行的指令,让 AI 直接依据明确的业务场景生成高质量代码,从而减少从零开始的随意编码,确保产出结果的可预测性。 该工具特别适合希望利用 AI 辅助编程的开发者、技术负责人及初创团队。无论是启动全新项目还是在现有工程中引入规范化流程,用户只需通过简单的命令行操作,即可初始化项目并集成主流的 AI 编程助手。其核心技术亮点在于“规格即代码”的理念,支持社区扩展与预设模板,允许用户根据特定技术栈定制开发流程。此外,Spec Kit 强调官方维护的安全性,提供稳定的版本管理,帮助开发者在享受 AI 红利的同时,依然牢牢掌握架构设计的主动权,真正实现从“凭感觉写代码”到“按规格建系统”的转变。


