海外からのアクセス:www.kdjingpai.com
Ctrl + D このサイトをブックマークする

SpatialLM是一个专门为处理三维(3D)点云数据而设计的大语言模型。它的核心功能是理解非结构化的3D几何数据,并将其转化为结构化的3D场景表示。这些结构化输出包含了建筑元素(如墙壁、门、窗)以及带方向的物体边界框及其语义类别。与许多需要特定设备采集数据的方法不同,SpatialLM可以处理来自多种数据源的点云,例如单目视频序列、RGBD图像和激光雷达(LiDAR)传感器。该模型有效地连接了3D几何数据和结构化表征,为具身机器人、自动导航和其他需要复杂3D场景分析的应用提供了高层次的语义理解能力。

 

機能一覧

  • 处理3D点云: 能够直接将3D点云作为输入进行分析和理解。
  • 生成结构化场景: 输出结构化的3D场景信息,包括建筑布局和物体位置。
  • 识别建筑元素: 准确检测并建模室内的墙壁、门、窗等基本结构。
  • 3D物体检测: 识别场景中的家具等物体,并生成带有方向、尺寸和语义类别(例如“床”、“椅子”)的边界框。
  • 多源数据兼容: 支持处理来自不同设备(如普通摄像头、深度相机、激光雷达)生成的点云数据。
  • 自定义类别检测: 用户可以指定感兴趣的物体类别,模型将只检测和输出这些特定类别的物体。
  • 複数のモデル・バージョン: 提供基于Llama和Qwen等不同基础模型的多个版本,例如SpatialLM1.1-Llama-1B歌で応えるSpatialLM1.1-Qwen-0.5B.

ヘルプの使用

SpatialLM模型的使用流程主要包括环境安装、数据准备和运行推理。以下是详细的操作步骤。

環境要件

在开始前,请确保你的系统环境满足以下要求:

  • パイソン: 3.11
  • Pytorch: 2.4.1
  • CUDA: 12.4

1.インストールプロセス

首先,克隆代码仓库并进入项目目录,然后使用Conda创建并激活一个独立的Python环境。

# 克隆仓库
git clone https://github.com/manycore-research/SpatialLM.git
# 进入项目目录
cd SpatialLM
# 使用Conda创建名为 "spatiallm" 的环境
conda create -n spatiallm python=3.11
# 激活环境
conda activate spatiallm
# 安装CUDA工具包
conda install -y -c nvidia/label/cuda-12.4.0 cuda-toolkit conda-forge::sparsehash

接下来,使用poetry工具安装项目的依赖库。

# 安装poetry
pip install poetry && poetry config virtualenvs.create false --local
# 安装项目主要依赖
poetry install

根据你使用的SpatialLM版本,还需要安装额外的特定依赖库。

SpatialLM 1.0 版本依赖:

# 该命令会编译torchsparse,可能需要一些时间
poe install-torchsparse

SpatialLM 1.1 版本依赖:

# 该命令会编译flash-attn,可能需要一些时间
poe install-sonata

2. 运行推理

在运行推理之前,需要准备好输入数据。SpatialLM要求输入的点云数据是轴对齐的,即Z轴为垂直向上的方向。

下载示例数据:
项目提供了一个测试数据集,你可以使用huggingface-cli工具下载一个示例点云文件。

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
```- `point_cloud`: 指定输入的点云文件路径。
- `output`: 指定输出的结构化文本文件路径。
- `model_path`: 指定使用的模型,可以从Hugging Face选择不同版本。
### 3. 按指定类别检测物体
SpatialLM 1.1版本支持用户指定想要检测的物体类别。例如,如果你只想在场景中检测“床(bed)”和“床头柜(nightstand)”,可以使用以下命令:
```bash
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
  • detect_type object: 将任务类型设置为仅进行3D物体检测。
  • category bed nightstand: 指定只检测“床”和“床头柜”这两个类别。

4. 结果可视化

为了直观地查看模型输出的效果,你可以使用rerun工具进行可视化。

首先,将模型输出的文本文件转换为Rerun格式:

python visualize.py --point_cloud pcd/scene0000_00.ply --layout scene0000_00.txt --save scene0000_00.rrd
  • layout: 指定推理步骤生成的.txt布局文件。
  • save: 指定输出的.rrd可视化文件路径。

然后,使用rerun查看结果:

rerun scene0000_00.rrd

这个命令会启动一个可视化窗口,展示原始点云以及模型预测出的墙壁、门、窗和物体边界框。

アプリケーションシナリオ

  1. 具身智能与机器人
    机器人可以利用SpatialLM来理解其所处的室内环境。例如,通过分析房间的点云,机器人可以识别出哪里是门、哪里是障碍物、沙发和桌子的具体位置,从而实现更智能的路径规划和交互任务。
  2. 自动导航与建图
    在室内自动导航应用中,例如商场或仓库里的服务机器人,SpatialLM可以帮助从传感器数据中快速构建出结构化的3D地图,这比传统的SLAM方法能提供更丰富的语义信息。
  3. 建筑、工程与施工 (AEC)
    建筑师或工程师可以使用便携式扫描设备快速扫描一个房间,然后通过SpatialLM自动生成该房间的结构化模型,包括墙体、门窗位置等,极大地简化了室内测绘和建模流程。
  4. 增强现实 (AR) 与游戏
    AR应用需要精确地理解现实世界的空间布局,才能将虚拟物体真实地放置在环境中。SpatialLM可以提供这种精确的场景理解能力,让虚拟的家具或游戏角色能够自然地与现实场景互动。

品質保証

  1. SpatialLM是什么?
    SpatialLM是一个3D大语言模型,它能理解3D点云数据,并输出结构化的室内场景描述,包括墙壁、门窗等建筑元素和带标注的物体。
  2. 这个模型能处理哪些类型的输入数据?
    它可以处理来自多种来源的3D点云数据,包括通过单目摄像头视频、RGBD相机(如Kinect)和激光雷达(LiDAR)传感器采集的数据。
  3. 使用SpatialLM需要什么样的硬件配置?
    由于涉及到深度学习模型的计算,建议在配备有NVIDIA GPU的机器上运行,并确保已安装对应版本的CUDA工具包(例如CUDA 12.4)。
  4. SpatialLM与其他3D场景理解方法有何不同?
    它结合了大语言模型的强大能力,可以直接生成结构化的、带有语义标签的输出,而不仅仅是几何信息。此外,它支持用户指定类别进行检测,提供了更高的灵活性。
  5. 模型输出的文件是什么格式?
    模型推理后会生成一个.txt文本文件,其中以结构化的方式描述了场景中每个元素(墙、门、物体等)的位置、尺寸、方向和类别信息。
0ブックマークに登録
0表彰される

AIツールが見つからない?こちらをお試しください!

キーワードを入力する アクセシビリティこのサイトのAIツールセクションは、このサイトにあるすべてのAIツールを素早く簡単に見つける方法です。

トップに戻る

ja日本語