做亚马逊需要的图片外链网站,wordpress输出标签文章,做政协网站软件的公司,wordpress主题 瀑布流HOV-SG 是通过语言指令实现机器人导航的#xff0c;核心特点是分层结构、开放词汇、3D场景图。
来自RSS 2024#xff0c;大规模、多层次的环境构建精确的、开放词汇的3 场景图#xff0c;并使机器人能够通过语言指令在其中有效地导航。
论文地址#xff1a;Hierarchical …HOV-SG 是通过语言指令实现机器人导航的核心特点是分层结构、开放词汇、3D场景图。
来自RSS 2024大规模、多层次的环境构建精确的、开放词汇的3 场景图并使机器人能够通过语言指令在其中有效地导航。
论文地址Hierarchical Open-Vocabulary 3D Scene Graphs for Language-Grounded Robot Navigation
代码地址https://github.com/hovsg/HOV-SG
本文分享HOV-SG复现和模型推理的过程
下面是一个3D场景图的示例 1、创建Conda环境
首先下载HOV-SG代码进行工程目录
git clone https://github.com/hovsg/HOV-SG.git
cd HOV-SG
创建一个Conda环境名字为hovsg参考environment.yaml中的要求进行创建如下所示
name: hovsg
channels:- defaults- pytorch
dependencies:- python3.9- numpy- pytorch::faiss-gpu- pip- pip:- matplotlib3.7.3- scipy1.13.1- open3d0.18.0- opencv-python- githttps://github.com/facebookresearch/segment-anything.git- torchmetrics- ftfy- tqdm- open-clip-torch- transformers- openai1.3.7- plyfile- hydra-core- pyvista- scikit-fmm- pathos- opencv-python-headless4.8.1.78再进行SG_Nav环境上面的两条命令对应为
conda env create -f environment.yaml
conda activate hovsg
安装成功打印信息 2、安装habitat模拟器
我们需要安装habitat-sim 和 habitat-lab
conda install habitat-sim -c conda-forge -c aihabitat
等待安装完成 3、安装依赖库
执行下面命令进行安装
pip install -e .
安装成功打印信息 2025/6/30 补丁1pip install numpy1.24.3
补丁2先卸载 pip uninstall faiss -y再安装 pip install faiss-cpu1.7.4 4、配置OpenCLIP
HOV-SG 使用 Open CLIP 模型从 RGB-D 帧中提取特征。
要下载 Open CLIP 模型权重CLIP-ViT-H-14-laion2B-s32B-b79K请参阅Open CLIP。
执行下面命令进行下载 CLIP模型权重
mkdir checkpoints
wget https://huggingface.co/laion/CLIP-ViT-H-14-laion2B-s32B-b79K/resolve/main/open_clip_pytorch_model.bin?downloadtrue -O checkpoints/temp_open_clip_pytorch_model.bin mv checkpoints/temp_open_clip_pytorch_model.bin checkpoints/laion2b_s32b_b79k.bin
等待下载完成 可选另一个选择是使用 OVSeg 微调的 Open CLIP 模型 执行下面命令进行下载型权重
pip install gdown
gdown --fuzzy https://drive.google.com/file/d/17C9ACGcN7Rk4UT4pYD_7hn3ytTa3pFb5/view -O checkpoints/ovseg_clip.pth 4、配置SAM
HOV-SG 使用SAM为 RGB-D 帧生成与类别无关的分割掩码。
执行下面命令进行下载 SAM模型权重
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth -O checkpoints/sam_vit_h_4b8939.pth
等待下载完成 5、准备HM3D数据集
下载地址https://github.com/matterport/habitat-matterport-3dresearch
选择“Downloading HM3D v0.2”的 val四个文件 下载完成后创建一个data/hm3d/val目录
mkdir -p data/hm3d/val
然后将hm3d-val-glb-v0.2、hm3d-val-habitat-v0.2、hm3d-val-semantic-annots-v0.2目录复制合并在val内 进入val内的某个子文件夹是这样的 最终形成这样的目录结构 ├── hm3d │ ├── hm3d_annotated_basis.scene_dataset_config.json # this file is necessary │ ├── val │ │ └── 00824-Dd4bFSTQ8gi │ │ ├── Dd4bFSTQ8gi.basis.glb │ │ ├── Dd4bFSTQ8gi.basis.navmesh │ │ ├── Dd4bFSTQ8gi.glb │ │ ├── Dd4bFSTQ8gi.semantic.glb │ │ └── Dd4bFSTQ8gi.semantic.txt ... ... ... 其中后面会用到场景ID包括 00824-Dd4bFSTQ8gi00829-QaLdnwvtxbs00843-DYehNKdT76V00861-GLAQ4DNUx5U00862-LT9Jq6dN3Ea00873-bxsVRursffK00877-4ok3usBNeis00890-6s7QHgap2fW 6、姿态转为RGB-D观测值
首先复制hovsg/data/hm3dsem/metadata/poses到 data/hm3dsem_poses中
# 创建data/hm3dsem_poses文件夹
mkdir data/hm3dsem_poses
# 执行复制命令
cp hovsg/data/hm3dsem/metadata/poses/* data/hm3dsem_poses/
复制后是这样的 运行代码
python hovsg/data/hm3dsem/gen_hm3dsem_walks_from_poses.py --dataset_dir data/hm3d/ --save_dir data/hm3dsem_walks/运行打印信息
(hovsg) lgplgp-MS-7E07:~/2025_project/HOV-SG$ python hovsg/data/hm3dsem/gen_hm3dsem_walks_from_poses.py --dataset_dir data/hm3d/ --save_dir data/hm3dsem_walks/
/home/lgp/anaconda3/envs/hovsg/lib/python3.9/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version 1.17.3 and 1.25.0 is required for this version of SciPy (detected version 1.26.4warnings.warn(fA NumPy version {np_minversion} and {np_maxversion}
scene: data/hm3d//val/00824-Dd4bFSTQ8gi/Dd4bFSTQ8gi.glb
-------------
data/hm3d//val/00824-Dd4bFSTQ8gi/Dd4bFSTQ8gi.basis.glb
data/hm3d/hm3d_annotated_basis.scene_dataset_config.json
-------------
{}
agent_state: position [ 1.0737159 0.0688231 -2.2800648] rotation quaternion(1, 0, 0, 0)
saving frame 2252/2254: 100%|█████████████████████████████████████████████████████████████| 2253/2253 [01:1800:00, 28.64it/s]
scene: data/hm3d//val/00829-QaLdnwvtxbs/QaLdnwvtxbs.glb
-------------
data/hm3d//val/00829-QaLdnwvtxbs/QaLdnwvtxbs.basis.glb
data/hm3d/hm3d_annotated_basis.scene_dataset_config.json
-------------
{}
agent_state: position [-3.6943688 0.13573912 -3.9164376 ] rotation quaternion(1, 0, 0, 0)
saving frame 1803/1805: 100%|█████████████████████████████████████████████████████████████| 1804/1804 [01:0700:00, 26.88it/s]
scene: data/hm3d//val/00843-DYehNKdT76V/DYehNKdT76V.glb
-------------
data/hm3d//val/00843-DYehNKdT76V/DYehNKdT76V.basis.glb
data/hm3d/hm3d_annotated_basis.scene_dataset_config.json7、创建场景图
修改create_graph.py代码要不然会报错
FileNotFoundError: [Errno 2] No such file or directory: data/hm3dsem_walks/val/00824-Dd4bFSTQ8gi/val/00824-Dd4bFSTQ8gi/rgb
示例代码
import os
import hydra
from omegaconf import DictConfig
from hovsg.graph.graph import Graph# pylint: disableallhydra.main(version_baseNone, config_path../config, config_namecreate_graph)
def main(params: DictConfig):# create logging directorysave_dir os.path.join(params.main.save_path, params.main.dataset, params.main.scene_id)params.main.save_path save_dir# params.main.dataset_path os.path.join(params.main.dataset_path, params.main.split, params.main.scene_id)print(params.main.split:, params.main.split)print(params.main.scene_id:, params.main.scene_id)print(params.main.dataset_path:, params.main.dataset_path)if not os.path.exists(save_dir):os.makedirs(save_dir, exist_okTrue)# create graphhovsg Graph(params)hovsg.create_feature_map() # create feature map# save full point cloud, features, and masked point clouds (pcd for all objects)hovsg.save_masked_pcds(pathsave_dir, stateboth)hovsg.save_full_pcd(pathsave_dir)hovsg.save_full_pcd_feats(pathsave_dir)# for debugging: load preconstructed map as follows# hovsg.load_full_pcd(pathsave_dir)# hovsg.load_full_pcd_feats(pathsave_dir)# hovsg.load_masked_pcds(pathsave_dir)# create graph, only if dataset is not Replia or ScanNetprint(params.main.dataset)if params.main.dataset ! replica and params.main.dataset ! scannet and params.pipeline.create_graph:hovsg.build_graph(save_pathsave_dir)else:print(Skipping hierarchical scene graph creation for Replica and ScanNet datasets.)if __name__ __main__:main()
执行下面命令
python application/create_graph.py main.datasethm3dsem main.dataset_pathdata/hm3dsem_walks/val/00824-Dd4bFSTQ8gi/ main.save_pathdata/scene_graphs/00824-Dd4bFSTQ8gi
运行信息 (hovsg) lgplgp-MS-7E07:~/2025_project/HOV-SG$ python application/create_graph.py main.datasethm3dsem main.dataset_pathdata/hm3dsem_walks/val/00824-Dd4bFSTQ8gi/ main.save_pathdata/scene_graphs/00824-Dd4bFSTQ8gi params.main.split: val params.main.scene_id: 00824-Dd4bFSTQ8gi params.main.dataset_path: data/hm3dsem_walks/val/00824-Dd4bFSTQ8gi/ [2025-06-29 23:52:13,474][root][INFO] - Loaded ViT-H-14 model config. [2025-06-29 23:52:17,300][root][INFO] - Loading pretrained ViT-H-14 weights (checkpoints/laion2b_s32b_b79k.bin). Creating RGB-D point cloud: 100%|███████████████████████████████████████████████████████████| 226/226 [00:1100:00, 19.32it/s] Extracting features: 46%|██████████████████████████████▎ | 104/226 [06:0907:12, 3.55s/it] 8、可视化场景图
执行下面命令
python application/visualize_graph.py graph_pathdata/scene_graphs/00824-Dd4bFSTQ8gi/hm3dsem/graph
示例效果构建一个 3D场景图层次结构包括 floor、room 和 object 不同视角 构建完3D场景图后用于导航查询 示例效果 分享完成