DualMap?是一個在線的開放詞匯語義映射系統,使得機器人能夠通過自然語言查詢在動態變化的環境中理解和導航
雙地圖導航,結合全局抽象地圖進行高層次候選選擇,以及局部具體地圖進行精確目標定位,有效管理和更新環境中的動態變化。
論文地址:DualMap: Online Open-Vocabulary Semantic Mapping for Natural Language Navigation in Dynamic Changing Scenes
代碼地址:https://github.com/Eku127/DualMap
?
一、框架思路流程
?DualMap的框架思路流程,如下圖所示:
通過“具體地圖”和“抽象地圖”的雙地圖,進行目標導航:
- 輸入需要查詢物體的描述,例如“去找紅色水杯”
- 在抽象地圖中,對每個錨的語義列表中進行查詢匹配,選出最可能包含目標的位置
- 導航到可能位置后,在局部的具體地圖中進一步搜索目標
- 若找到,即完成導航
- 若未找到,則觸發抽象地圖更新,
- 將局部具體地圖中新的觀測進行更新
- 多次嘗試,用新地圖重新做候選檢索,進入第?2?步,直到找到目標或超過最大嘗試次數
?
1.1 Concrete Map (具體地圖) 構建流程
- 輸入RGB-D數據、機器人的Pose信息
- 使用YOLO + FastSAM,進行物體對象檢測
- 生成一組帶有類別標簽 、語義特征 和點云的觀測物體對象
- 將新觀測的物體與地圖中已有的對象集進行匹配對比(特征相似度+點云重疊匹配);如果匹配成功更新該對象的點云與 CLIP 特征,如果匹配失敗則插入為新對象
- 生成當前最新的細粒度 3D語義地圖,也就是具體地圖;包含場景中所有靜態/動態物體的點云與語義信息
1.2 Abstract Map (抽象地圖)構建流程:
- 在具體地圖的基礎上,來生成抽象地圖
- 檢測出靜態物體,用 CLIP將各對象特征與“靜態家具”模板匹配,高于閾值的標為“錨”(桌子、柜子、沙發等)
- 關聯易動物體,將體積小、可移動物體的特征與附近錨的平面位置做幾何/高度判斷,掛到相應靜態錨的語義列表上
- 將全局場景點云 投影到鳥瞰網格,生成二值 Occupancy Map(墻、柱等固定障礙)
- 生成抽象地圖,僅保留靜態錨的位置+語義+其上易動物體特征,以及全局占據格
二、DualMap的創新點
2.1 雙圖結構:精細感知 × 高效導航
Concrete Map 具體地圖(三維):
-
在線增量構建,記錄“長得什么樣、在哪兒、語義是誰”的全套信息:每個物體的 3D點云、類別標簽、以及 CLIP文本+圖像混合特征(0.7 圖像 + 0.3 文本加權)。
-
通過“匹配–累積–檢查”循環,既能吸納新出現的物體,也能剔除偶發誤檢物體。
Abstract Map 抽象地圖(二維):
-
只挑“不會輕易挪動”的家具當錨(Anchor),丟掉其余幾何細節,僅保留它們的位置和語義;
-
將小物件的語義特征“掛到”相應家具下(比如杯子→桌子),但不存它們的點云;
-
把全局場景點云在鳥瞰平面做網格分桶,生成離散的占據格(occupancy grid),支持快速全局路徑規劃。
2.2?混合開集分割模型:兼顧速度與覆蓋
-
閉集檢測(YOLOv8):快速定位預定義類別的物體邊框;
-
開放集分割(FastSAM/MobileSAM):補充 YOLO 看不到的“新類別”或未包含在訓練集里的物體;
-
融合策略:保留所有 YOLO 框里的分割結果,同時加入 FastSAM 在 “框外” 發現的物體,用色彩直方圖判斷哪塊先貼,避免重復或遺漏。
作用:既能保證速度(YOLO 30 FPS),也能“開箱即用”地識別千奇百怪的新物體。
2.3?動態抽象圖更新:閉環導航
-
初次導航:在 Abstract Map 上,根據用戶語言(“找紅色水杯”)在每個錨的語義列表里打分,選出最可能放杯子的家具(比如餐桌)。
-
局部搜索:機器人邊走邊用 Concrete Map 精細感知,到了目標家具附近再仔細找;
-
若沒找到,就把局部新觀測到的物體(例如之前遺漏的一堆杯子)抽象到 Abstract Map,對哪個家具下掛了哪些物件進行補充,然后再選下一個最優家具做第二次嘗試。
2.4?輕量級的對象狀態檢查
傳統開放詞匯建圖系統(如 HOV-SG)依賴 3D 物體合并操作處理分割碎片,需消耗大量計算資源(Replica 場景中每幀處理耗時 42 秒)?
優化維度 | 傳統方法(HOV-SG) | DualMap 狀態檢查 |
---|---|---|
空間操作 | 3D 點云體素級合并(耗時 42 秒 / 幀) | 2D 類別分布統計(0.16 秒 / 幀) |
數據依賴 | 全局地圖幾何信息 | 局部對象觀測列表 |
并行性 | 串行 3D 處理 | 可并行對象級檢查 |
DualMap 提出的輕量級對象狀態檢查通過兩大創新突破效率瓶頸:
- 計算范式轉變:將全局 3D 幾何操作(如體素級合并)轉化為局部語義分析(如類別分布統計)
- 錯誤修正前置:在觀測階段實時過濾噪聲,避免錯誤累積導致的地圖退化
- 動態適應性:針對動態環境中物體狀態變化(如部分遮擋、位置移動)設計增量更新機制
通過兩種主要機制實現:穩定性和分裂檢測
穩定性檢查?目的是過濾掉那些觀察不足或可能由噪聲引起的對象,從而提高地圖的可靠性。
-
示例:會議室場景中,誤檢為 "椅子" 的陰影區域若在 15 幀內未被重新觀測,且 "椅子" 類別占比僅 30%,則被刪除
-
觸發條件:當對象超過T幀(默認 15 幀)未更新時,啟動穩定性評估
-
檢查標準:對象需要滿足兩個條件才能通過穩定性檢查:
-
累積的觀測數量超過一個設定的閾值。
-
在對象的觀測列表中,最頻繁出現的類別ID至少占總觀測數的三分之二。
-
-
結果處理:如果對象未通過穩定性檢查,它將被視為不穩定對象并從地圖中移除。
分裂檢測?解決欠分割問題,即多個相鄰對象被錯誤地合并為一個對象的情況。
- 欠分割典型案例:茶幾上的遙控器與雜志被錯誤合并為單一對象
- 觸發條件:當在連續幀的相同時間戳上出現具有不同類別ID的觀測時,系統會觸發分裂檢測。
- 檢測過程:系統會分析對象觀測列表中的類別ID分布。如果發現不同類別ID的觀測在多個幀中持續共存,就會認為發生了欠分割。
- 分裂操作:將對象的觀測列表按類別ID進行分割,并為每個類別創建新的對象。這有助于保留小對象并提高場景的保真度。
三、實驗驗證與效果
實驗在一臺配備NVIDIA RTX 4090 GPU和Intel i7-12700KF CPU的機器上進行。
檢測器的選擇:
-
閉環檢測采用YOLOv8l world模型 ,能夠快速準確地檢測預定義類別的對象。
-
為了支持開放詞匯分割,使用了FastSAM 模型。
-
FastSAM能夠檢測YOLO模型未涵蓋的對象類別,從而實現全面的對象檢測。
特征嵌入模型:
-
論文中使用MobileCLIP-S2 進行特征嵌入。
-
MobileCLIP是一個輕量級的圖像-文本嵌入模型,適用于移動設備和機器人應用。選擇該模型可以確保在嵌入特征時保持較高的計算效率。
在HM3D數據集中,目標導航的成功率對比:
-
在HM3D數據集的靜態場景中,DualMap的導航成功率最高,平均成功率達到70.5%。
-
在動態場景中,DualMap在錨點內重定位和跨錨點重定位的成功率分別為64.8%和60.3%。
在真實世界中DualMap目標導航的成功率
在ScanNet scene001100上,語義分割結果的定性比較:
紅色箭頭突出顯示語義上不準確的預測,而藍色箭頭表示無意義的分割,表明預測存在噪聲。
目標導航示例效果:
?導航示例,如下圖所示:?
分享完成~
??相關文章推薦:
UniGoal 具身導航 | 通用零樣本目標導航 CVPR 2025-CSDN博客
【機器人】具身導航 VLN 最新論文匯總 | Vision-and-Language Navigation-CSDN博客
【機器人】復現 UniGoal 具身導航 | 通用零樣本目標導航 CVPR 2025-CSDN博客
【機器人】復現 WMNav 具身導航 | 將VLM集成到世界模型中-CSDN博客
【機器人】復現 ECoT 具身思維鏈推理-CSDN博客
【機器人】復現 SG-Nav 具身導航 | 零樣本對象導航的 在線3D場景圖提示-CSDN博客
?【機器人】復現 3D-Mem 具身探索和推理 | 3D場景記憶 CVPR 2025 -CSDN博客
【機器人】復現 Embodied-Reasoner 具身推理 | 具身任務 深度推理模型 多模態場景 長遠決策 多輪互動_embodied reasoner-CSDN博客