【機器人】復現 UniGoal 具身導航 | 通用零樣本目標導航 CVPR 2025

UniGoal的提出了一個通用的零樣本目標導航框架,能夠統一處理多種類型的導航任務。

支持?對象類別導航實例圖像目標導航文本目標導航,而無需針對特定任務進行訓練或微調。

本文分享UniGoal復現和模型推理的過程~

查找沙發,模型會根據輸入的實例圖片進行匹配的

目錄

1、創建Conda環境

2、?安裝habitat仿真環境

3、安裝第三方的依賴庫

3.1 安裝LightGlue依賴

3.2?安裝detectron2依賴

3.3?安裝Grounded-Segment-Anything依賴

3.4 安裝其他依賴庫

4、下載模型權重

5、下載HM3D數據集

6、安裝Ollama,配置LLM 和 VLM

7、模型推理


1、創建Conda環境

首先創建一個Conda環境,名字為unigoal,python版本為3.8

進行unigoal環境

conda create -n unigoal python=3.8
conda activate unigoal

然后下載unigoal代碼,并解壓:https://github.com/bagh2178/UniGoal

2、?安裝habitat仿真環境

執行下面命令進行安裝

cd UniGoal
conda install habitat-sim==0.2.3 -c conda-forge -c aihabitat
pip install -e third_party/habitat-lab

安裝過程的打印信息:

安裝成功啦~

3、安裝第三方的依賴庫

3.1 安裝LightGlue依賴

pip install git+https://github.com/cvg/LightGlue.git

正常安裝打印的信息:?

3.2?安裝detectron2依賴

需要cuda>=12.1的,用nvcc --version查詢

(unigoal) lgp@lgp-MS-7E07:~/2025_project/UniGoal$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Mon_Apr__3_17:16:06_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105
Build cuda_12.1.r12.1/compiler.32688072_0

如果是cuda11.x或更底版本的,需要安裝或切換為cuda>=12.1的

將以下內容添加到?~/.bashrc?

# 設置 CUDA 12.1 為默認版本
export CUDA_HOME=/usr/local/cuda-12.1
export PATH=/usr/local/cuda-12.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH

然后執行:

source ~/.bashrc

再安裝detectron2:

pip install git+https://github.com/facebookresearch/detectron2.git

3.3?安裝Grounded-Segment-Anything依賴

執行命令進行安裝,等待安裝完成~

git clone https://github.com/IDEA-Research/Grounded-Segment-Anything.git third_party/Grounded-Segment-Anything
cd third_party/Grounded-Segment-Anything
git checkout 5cb813f
pip install -e segment_anything
pip install --no-build-isolation -e GroundingDINO

3.4 安裝其他依賴庫

先安裝pytorch::faiss-gpu,等待安裝完成~

conda install pytorch::faiss-gpu

再安裝安裝其他依賴庫

pip install -r requirements.txt

2025/5/12 補丁安裝:

pip install openai mkl faiss-gpu

4、下載模型權重

分別下載sam_vit_h_4b8939.pthgroundingdino_swint_ogc.pth權重,放在data/models目錄下

cd ../../
mkdir -p data/models
wget -O data/models/sam_vit_h_4b8939.pth https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
wget -O data/models/groundingdino_swint_ogc.pth https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth

等待下載完成:

5、下載HM3D數據集

從這里下載 HM3D 場景數據集,從這里下載實例-圖像-目標導航事件數據集。

數據集的結構概述如下:

UniGoal/
└── data/
? ? ├── datasets/
? ? │ ? └── instance_imagenav/
? ? │ ? ? ? └── hm3d/
? ? │ ? ? ? ? ? └── v3/
? ? │ ? ? ? ? ? ? ? └── val/
? ? │ ? ? ? ? ? ? ? ? ? ├── content/
? ? │ ? ? ? ? ? ? ? ? ? │ ? ├── 4ok3usBNeis.json.gz
? ? │ ? ? ? ? ? ? ? ? ? │ ? ├── 5cdEh9F2hJL.json.gz
? ? │ ? ? ? ? ? ? ? ? ? │ ? ├── ...
? ? │ ? ? ? ? ? ? ? ? ? │ ? └── zt1RVoi7PcG.json.gz
? ? │ ? ? ? ? ? ? ? ? ? └── val.json.gz
? ? └── scene_datasets/
? ? ? ? └── hm3d_v0.2/
? ? ? ? ? ? └── val/
? ? ? ? ? ? ? ? ├── 00800-TEEsavR23oF/
? ? ? ? ? ? ? ? │ ? ├── TEEsavR23oF.basis.glb
? ? ? ? ? ? ? ? │ ? └── TEEsavR23oF.basis.navmesh
? ? ? ? ? ? ? ? ├── 00801-HaxA7YrQdEC/
? ? ? ? ? ? ? ? ├── ...
? ? ? ? ? ? ? ? └── 00899-58NLZxWBSpk/

6、安裝Ollama,配置LLM 和 VLM

分別執行下面命令:

curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.2-vision

成功啦~

7、模型推理

運行main.py,就可以進行模型推理啦

python main.py 

打印信息:

[22:03:27:032178]:[Assets] ResourceManager.cpp(2210)::loadMaterials : Idx 26:Flat.
[22:03:27:032183]:[Assets] ResourceManager.cpp(2210)::loadMaterials : Idx 27:Flat.
[22:03:27:062166]:[Sim] Simulator.cpp(442)::instanceStageForSceneAttributes : Successfully loaded stage named : data/scene_datasets/hm3d_v0.2/val/00877-4ok3usBNeis/4ok3usBNeis.basis.glb
[22:03:27:062184]:[Sim] Simulator.cpp(474)::instanceStageForSceneAttributes : 
---
The active scene does not contain semantic annotations : activeSemanticSceneID_ = 0  
---
[22:03:27:062207]:[Sim] Simulator.cpp(208)::reconfigure : CreateSceneInstance success == true for active scene name : data/scene_datasets/hm3d_v0.2/val/00877-4ok3usBNeis/4ok3usBNeis.basis.glb  with renderer.
[22:03:27:067606]:[Nav] PathFinder.cpp(568)::build : Building navmesh with 222 x 162 cells
[22:03:27:121110]:[Nav] PathFinder.cpp(842)::build : Created navmesh with 340 vertices 163 polygons
[22:03:27:121130]:[Sim] Simulator.cpp(898)::recomputeNavMesh : reconstruct navmesh successful
2025-05-12 22:03:27,122 Initializing task InstanceImageNav-v1
[05/12 22:03:27 detectron2]: Arguments: Namespace(confidence_threshold=0.5, config_file='configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml', input=['input1.jpeg'], opts=['MODEL.WEIGHTS', 'detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl', 'MODEL.DEVICE', 'cuda:0'], output=None, video_input=None, webcam=False)
[05/12 22:03:27 d2.checkpoint.detection_checkpoint]: [DetectionCheckpointer] Loading from detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl ...
[22:03:27:595720]:[Sensor] Sensor.cpp(69)::~Sensor : Deconstructing Sensor
Loading episodes from: data/datasets/instance_imagenav/hm3d/v3/val/content/4ok3usBNeis.json.gz
Changing scene: 0/data/scene_datasets/hm3d_v0.2/val/00877-4ok3usBNeis/4ok3usBNeis.basis.glb
rank:0, episode:1, cat_id:0, cat_name:chair

看一下運行效果,查找椅子:

查找不同的椅子,模型會根據輸入的實例圖片進行匹配的

查找衛生間:

分享完成~

相關文章推薦:

UniGoal 具身導航 | 通用零樣本目標導航 CVPR 2025-CSDN博客

【機器人】復現 ECoT 具身思維鏈推理-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83309.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83309.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83309.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python + flask 做一個圖床

1. 起因, 目的: 對這個網站:https://img.vdoerig.com/ , 我也想實現這種效果。做一個簡單的圖床,后面,可以結合到其他項目中。 2. 先看效果 實際效果。 3. 過程: Grok 聊天: https://img.vdoerig.co…

Java生產環境設限參數教學

哈哈,這個問題問得好!咱們用開餐廳的比喻來理解生產環境的四大必須設限參數,保證你聽完再也不會忘!(搓手手) 1. 堆內存上限:-Xmx(廚房的最大容量) 問題:想象…

電腦出故障驅動裝不上?試試驅動人生的遠程服務支持

在日常工作或學習中,驅動問題時常成為電腦用戶的一大困擾。尤其是在更換硬件、重裝系統、驅動沖突等情況下,許多用戶往往手足無措,不知道從何下手。而“驅動人生”作為國內領先的驅動管理工具,一直以高效、便捷、智能著稱。現在&a…

JS手寫代碼篇---手寫 instanceof 方法

2、手寫 instanceof 方法 instancecof用于檢測一個對象是否是某個構造函數的實例。它通常用于檢查對象的類型,尤其是在處理繼承關系時。 eg: const arr [1,2,3,4,5]console.log(arr instanceof Array); // trueconsole.log(arr instanceof Object); // true那這是…

使用exceljs將excel文件轉化為html預覽最佳實踐(完整源碼)

前言 在企業應用中,我們時常會遇到需要上傳并展示 Excel 文件的需求,以實現文件內容的在線預覽。經過一番探索與嘗試,筆者最終借助 exceljs 這一庫成功實現了該功能。本文將以 Vue 3 為例,演示如何實現該功能,代碼示例…

PMP-第十二章 項目采購管理

項目采購管理核心概念 項目采購管理包括從項目團隊外部采購或獲取所需產品、服務或成果的各個過程項目組織既可以是買方(甲方) ,也可以是賣方(乙 方)項目采購管理過程圍繞協議來進行,協議是買賣雙方之間具…

maven和npm區別是什么

這是一個很容易搞糊涂新手的問題,反正我剛開始從課堂的知識轉向項目網站開發時,被這些問題弄得暈頭轉向,摸不著頭腦,學的糊里糊涂,所以,寫了這么久代碼,也總結一下,為后來者傳授下經…

Leetcode76覆蓋最小子串

覆蓋最小子串 代碼來自b站左程云 class Solution {public String minWindow(String str, String tar) {char[] s str.toCharArray();char[] t tar.toCharArray();int[] cnt new int[256];for (char cha : t) { cnt[cha]--;}int len Integer.MAX_VALUE;int debt t.length…

Linux du 命令終極指南:從基礎到精通

文章目錄 Linux du 命令終極指南:從基礎到精通du 命令簡介常用參數詳解常見用法示例查看當前目錄總大小查看當前目錄及其子目錄占用空間只顯示當前目錄總占用空間查看目錄下每個文件和子目錄的大小查看某目錄深度為 1 的大小分布查看某目錄并排除日志文件查看多個目…

sychronized原理(嚼碎了喂版)

先說一下心得吧,我們知道硬軟不分家,在學習底層原理的時候我們不需要死扣到底,沒必要把硬件方面全吃透,點到為止,學到能夠幫助理解代碼即可,我們的目標是寫出高性能的代碼,而不是創造出硬軟一體…

Ngrok 配置:實現 Uniapp 前后端項目內網穿透

文章目錄 一、下載并安裝 ngrok二、配置 ngrok Authtoken三、啟動本地 uniapp 項目四、使用 ngrok 暴露本地服務五、通過公網 URL 訪問項目六、后端API項目的穿透問題排查 (uni-app 后端 API 示例)交互流程圖示 七、ngrok Web 界面 (本地監控)八、停止 ngrok總結 ngrok 是一款…

k8s灰度發布

基于 Traefik 的加權灰度發布-騰訊云開發者社區-騰訊云 Traefik | Traefik | v1.7 Releases traefik/traefik GitHub 從上面連接下載后上傳到harbor虛擬機 vagrant upload /C/Users/HP280/Downloads/traefik 下載配置文件 wget -c http://raw.githubusercontent.com/conta…

win10-django項目與mysql的基本增刪改查

以下都是在win10系統下,django項目的orm框架對本地mysql的表的操作 models.py----->即表對應的類所在的位置 在表里新增數據 1.引入表對應的在models.py中的類class 2.在views.py中使用函數:類名.objects.create(字段名值,字段名"值"。。。…

`ParameterizedType` 和 `TypeVariable` 的區別

在 Java 的泛型系統中,ParameterizedType 和 TypeVariable 是兩個不同的類型表示,它們都屬于 java.lang.reflect.Type 接口的子接口。兩者都在反射(Reflection)中用于描述泛型信息,但用途和含義不同。 🌟 一…

PR-2021

推薦深藍學院的《深度神經網絡加速:cuDNN 與 TensorRT》,課程面向就業,細致講解CUDA運算的理論支撐與實踐,學完可以系統化掌握CUDA基礎編程知識以及TensorRT實戰,并且能夠利用GPU開發高性能、高并發的軟件系統&#xf…

unity使用ZXing.Net生成二維碼

下載鏈接 https://github.com/micjahn/ZXing.Net 放到Plugins下即可使用

Ubuntu 編譯SRS和ZLMediaKit用于視頻推拉流

SRS實現視頻的rtmp webrtc推流 ZLMediaKit編譯生成MediaServer實現rtsp推流 SRS指定某個固定網卡,修改程序后重新編譯 打開SRS-4.0.0/trunk/src/app/srs_app_rtc_server.cpp,在 232 行后面添加: ZLMediaKit編譯后文件存放在ZLMediakit/rele…

如何備考GRE?

1.引言 GRE和雅思不太相同,首先GRE是美國人的考試,思維方式和很多細節和英系雅思不一樣。所以底層邏輯上我覺得有點區別。 難度方面,我感覺GRE不容易考低分,但考高分較難。雅思就不一樣了不僅上限難突破,下限還容易6…

uniapp|商品列表加入購物車實現拋物線動畫效果、上下左右拋入、多端兼容(H5、APP、微信小程序)

以uniapp框架為基礎,詳細解析商品列表加入購物車拋物線動畫的實現方案。通過動態獲取商品點擊位置與購物車坐標,結合CSS過渡動畫模擬拋物線軌跡,實現從商品圖到購物車圖標的動態效果。 目錄 核心實現原理坐標動態計算拋物線軌跡模擬?動畫元素控制代碼實現詳解模板層設計腳本…

React中使用openLayer畫地圖

OpenLayers(簡稱ol)是一個?開源的WebGIS前端開發庫?,基于JavaScript實現,主要用于在網頁中嵌入動態二維地圖。 官方網站: https://openlayers.org 中文官網: https://openlayers.vip 大家可以去參考學習…