openscene
OpenScene 是一款基于 CVPR 2023 研究成果的开源项目,旨在实现利用开放词汇对 3D 场景进行深度理解。传统 3D 分析工具通常只能识别预先定义好的固定类别(如“椅子”、“墙壁”),而 OpenScene 突破了这一限制,解决了无法灵活查询未知物体、材质、属性甚至抽象概念的难题。
用户只需输入任意自然语言描述,无论是具体的稀有物品(如“史努比玩偶”)、物理属性(如“柔软的地方”)、材料质地(如“金属制成”),还是功能场景(如“哪里可以做饭”)乃至抽象氛围(如“节日气氛”),OpenScene 都能实时在 3D 空间中定位并高亮显示对应区域。其核心技术亮点在于采用了零样本(zero-shot)学习方法,结合多视图特征融合技术,无需针对新类别重新训练模型即可泛化到无限多的查询概念中。
这款工具非常适合计算机视觉研究人员探索开放词汇场景理解的前沿算法,也适合开发者将其集成到机器人导航、智能家居交互或虚拟现实应用中。此外,提供无需 GPU 即可运行的实时交互演示,让设计师和普通用户也能直观体验如何用自然语言与 3D 世界“对话”,极大地降低了 3D 语义理解的门槛。
使用场景
某智能家居机器人开发团队正在构建一款能理解复杂指令的家庭服务机器人,需要让机器人在未知的 3D 家庭环境中精准定位用户口语化描述的物品或区域。
没有 openscene 时
- 词汇受限严重:机器人只能识别训练集中预定义的几个固定类别(如“椅子”、“桌子”),一旦用户说“找一下那个史努比玩偶”或“哪里可以做饭”,系统直接无法响应。
- 开发成本高昂:每增加一个新概念(如“金属材质”或“节日装饰”),都需要重新收集大量 3D 标注数据并重新训练模型,迭代周期长达数周。
- 抽象概念盲区:完全无法理解“柔软的地方”或“适合阅读的区域”等涉及属性、功能或抽象语义的查询,导致交互体验生硬且机械。
- 泛化能力差:遇到未见过的物体形状或罕见物品时,系统往往给出错误分类或直接忽略,难以适应真实家庭环境的多样性。
使用 openscene 后
- 开放词汇查询:利用零样本(Zero-shot)能力,机器人能直接理解“史努比”、“金属制”甚至“哪里能烹饪”等任意自然语言短语,并高亮显示对应的 3D 空间区域。
- 无需重新训练:引入新概念时无需采集新数据或微调模型,直接通过文本提示词即可扩展机器人的认知边界,新功能上线缩短至分钟级。
- 深层语义理解:不仅能识别具体物体,还能基于材质、功能和抽象概念(如“喜庆的氛围”)进行推理,精准定位符合描述的复杂场景区域。
- 强大的泛化性:面对从未见过的罕见物体或新颖布局,依然能凭借开放的语义空间做出准确判断,显著提升了在未知环境中的适应性。
openscene 通过将 3D 几何信息与开放词汇语义对齐,彻底打破了传统 3D 感知对固定类别的依赖,让机器人真正具备了像人一样“听懂话、看懂图”的通用场景理解能力。
运行环境要求
- 未说明
- 评估演示无需 GPU
- 但进行模型蒸馏 (Distillation) 或特征融合需 NVIDIA GPU(具体型号和显存未说明,因涉及大型 3D 点云和多视图特征处理,建议高性能显卡)
未说明(注意:提供的预融合特征文件极大,ScanNet 数据集可达 234.8GB,需充足存储空间)

快速开始
OpenScene:基于开放词汇表的3D场景理解
彭松友
·
凯尔·杰诺瓦
·
蒋驰宇(“Max”)
·
安德烈亚·塔利亚萨基
马克·波勒费伊斯
·
托马斯·芬克豪瑟
CVPR 2023
论文 | 视频 | 项目主页
OpenScene 是一种零样本方法,能够使用开放词汇查询执行一系列新颖的3D场景理解任务。
新闻 :triangular_flag_on_post:
- [2023/10/27] 添加了LSeg逐像素特征提取和多视角融合的代码。请查看此仓库。
- [2023/03/31] 代码已发布。
交互式演示
无需GPU!请按照**这篇说明**自行设置并体验实时演示。
在这里,我们展示了一个实时、交互式、开放词汇的场景理解工具。用户可以输入任意查询短语,例如**史努比(稀有物体)、柔软的地方(属性)、由金属制成(材料)、哪里可以做饭?(活动)、喜庆的**(抽象概念)等,相应的区域就会被高亮显示。
安装
请按照installation.md中的说明安装所有必需的软件包,以便后续进行评估和蒸馏。
数据准备
我们为以下数据集提供了预处理过的3D和2D数据以及多视角融合特征:
- ScanNet
- Matterport3D
- nuScenes
- Replica
预处理过的3D和2D数据
您可以自行对数据集进行预处理,具体请参阅数据预处理说明。
或者,我们已经提供了预处理好的数据集。您可以通过运行以下脚本下载预处理数据,并按照命令行提示完成相应数据集的下载:
bash scripts/download_dataset.sh
该脚本会将数据下载并解压到data/文件夹中。您也可以将数据下载到其他位置,但需要通过符号链接将其指向对应的文件夹:
ln -s /PATH/TO/DOWNLOADED/FOLDER data
提供的预处理数据列表(点击展开):
- ScanNet 3D(带有GT语义标签的点云)
- ScanNet 2D(带有相机位姿的RGB-D图像)
- Matterport 3D(带有GT语义标签的点云)
- Matterport 2D(带有相机位姿的RGB-D图像)
- nuScenes 3D(带有GT语义标签的激光雷达点云)
- nuScenes 2D(带有相机位姿的RGB图像)
- Replica 3D(点云)
- Replica 2D(RGB-D图像)
- Matterport 3D(包含前40类NYU标签)
- Matterport 3D(包含前80类NYU标签)
- Matterport 3D(包含前160类NYU标签)
注意:2D预处理数据集(如scannet_2d)仅在您希望自行进行多视角特征融合时才需要。如果是这样,请按照多视角融合说明操作。
多视角融合特征
要评估我们的OpenScene模型或蒸馏一个3D模型,您需要为每个3D点获取多视角融合后的图像特征(详见论文第3.1节的方法)。
您可以直接运行以下命令下载提供的融合特征:
bash scripts/download_fused_features.sh
提供的融合特征列表(点击展开):
- ScanNet - 多视角融合的OpenSeg特征,训练/验证集(234.8G)
- ScanNet - 多视角融合的LSeg特征,训练/验证集(175.8G)
- Matterport - 多视角融合的OpenSeg特征,训练/验证集(198.3G)
- Matterport - 多视角融合的OpenSeg特征,测试集(66.7G)
- Replica - 多视角融合的OpenSeg特征(9.0G)
- Matterport - 多视角融合的LSeg特征(即将提供)
- nuScenes - 多视角融合的OpenSeg特征(即将提供)
- nuScenes - 多视角融合的LSeg特征(即将提供)
或者,您也可以按照说明自行生成多视角特征。
运行
当您完成环境安装,并获得了预处理过的3D数据和多视角融合特征后,就可以运行我们经过蒸馏或集成的OpenScene模型来进行3D语义分割,或者从头开始蒸馏您自己的模型了。
基于预定义标签集的3D语义分割评估
在这里,您可以在具有预定义标签集的不同数据集(ScanNet/Matterport3D/nuScenes/Replica)上评估OpenScene的功能。我们已经在label_constants.py中包含了以下标签集:
- ScanNet 20类(
wall、door、chair等) - Matterport3D 21类(ScanNet 20类 +
floor) - Matterport前40、80、160个NYU类别(包含更多稀有物体类别)
- nuScenes 16类(
road、bicycle、sidewalk等)
运行评估的一般命令如下:
sh run/eval.sh EXP_DIR CONFIG.yaml feature_type
其中,您需要指定实验目录EXP_DIR,并将CONFIG.yaml替换为config/目录下的正确配置文件。feature_type 对应于逐点的OpenScene特征:
fusion:2D多视角融合特征distill:来自3D蒸馏模型的特征ensemble:我们的2D-3D集成特征
要使用distill和ensemble进行评估,最简单的方法是使用预先训练好的3D蒸馏模型。您可以选择带有后缀 _pretrained 的配置文件来实现这一点。
例如,要在Replica数据集上评估语义分割,您可以直接运行:
# 2D-3D集成
sh run/eval.sh out/replica_openseg config/replica/ours_openseg_pretrained.yaml ensemble
# 运行3D蒸馏模型
sh run/eval.sh out/replica_openseg config/replica/ours_openseg_pretrained.yaml distill
# 使用2D融合特征进行评估
sh run/eval.sh out/replica_openseg config/replica/ours_openseg_pretrained.yaml fusion
脚本会自动下载预训练的3D模型,并针对Matterport的21个类别运行评估。所有输出结果都将保存在out/replica_openseg目录中。
有关评估选项,请参阅config/replica/ours_openseg_pretrained.yaml文件中的TEST部分。以下是一些您可能希望修改的重要评估选项:
labelset(默认:无,可选值:scannet、matterport、matterport40、matterport80、matterport160):在label_constants.py中指定的特定预定义标签集上进行评估。若未指定,则默认与您的3D点云文件夹名称相同。eval_iou(默认:True):是否计算mIoU指标。如果没有GT标签,请将其设置为False。save_feature_as_numpy(默认:False):将逐点特征保存为.npy格式。prompt_eng(默认:True):输入类别名X -> “场景中的一个X”。vis_gt(默认:True):可视化带有GT语义标签的点云。vis_pred(默认:True):可视化带有我们预测的语义标签的点云。vis_input(默认:True):可视化输入点云。
如果您想从头开始蒸馏一个新的3D模型,请将model_path指定为相应的检查点文件EXP/model/model_best.pth.tar。
蒸馏
最后,如果您想从零开始蒸馏一个新的3D模型,请执行以下操作:
- 开始蒸馏:
sh run/distill.sh EXP_NAME CONFIG.yaml
- 继续蒸馏:
sh run/resume_distill.sh EXP_NAME CONFIG.yaml
有关可用的蒸馏选项,请查看config/matterport/ours_openseg.yaml文件中的DISTILL部分。
使用您自己的数据集
- 按照数据预处理说明,相应地修改代码以获取处理后的2D和3D数据。
- 按照特征融合说明,修改代码以获得多视角融合特征。
- 您可以自行蒸馏模型,或者使用我们提供的3D蒸馏模型权重(例如,我们为ScanNet或Matterport3D训练的模型),并相应地修改
model_path。 - 如果您想在特定标签集上进行评估,请在配置文件中更改
labelset。
应用
除了零样本3D语义分割之外,我们还可以执行以下任务:
- 开放词汇的3D场景理解与探索:查询3D场景以了解超出固定类别标签的属性,例如材料、活动、可供性、房间类型、抽象概念等。
- 稀有物体搜索:根据名称查询3D场景数据库,查找稀有示例。
- 基于图像的3D目标检测:根据与给定输入图像的相似性,从3D场景数据库中检索示例。
致谢
我们衷心感谢Golnaz Ghiasi在使用OpenSeg模型方面提供的指导。同时,我们也感谢Huizhong Chen、Yin Cui、Tom Duerig、Dan Gnanapragasam、Xiuye Gu、Leonidas Guibas、Nilesh Kulkarni、Abhijit Kundu、Hao-Ning Wu、Louis Yang、Guandao Yang、Xiaoshuai Zhang、Howard Zhou以及Zihan Zhu的有益讨论。此外,我们还感谢Charles R. Qi和Paul-Edouard Sarlin的校对工作。
我们的部分代码是在BPNet仓库的基础上构建的。
待办事项
- 支持任意场景的演示
- 支持在线网站演示
- 支持与LSeg的多视角特征融合
- 为Matterport和nuScenes添加缺失的多视角融合LSeg特征
- 为nuScenes添加缺失的多视角融合OpenSeg特征
- 为nuScenes编写多视角特征融合代码
- 支持最新的PyTorch版本
我们非常欢迎各种形式的项目贡献。
引用
如果您觉得我们的代码或论文有用,请引用以下内容:
@inproceedings{Peng2023OpenScene,
title = {OpenScene: 3D Scene Understanding with Open Vocabularies},
author = {Peng, Songyou and Genova, Kyle and Jiang, Chiyu "Max" and Tagliasacchi, Andrea and Pollefeys, Marc and Funkhouser, Thomas},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year = {2023}
}
常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 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 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。