SpatialVLM和SpatialRGPT論文解讀

??

目錄

一、SpatialVLM

1、概述

2、方法

3、實驗

二、SpatialRGPT

1、概述

2、方法

3、訓練方法

4、實驗


一、SpatialVLM

1、概述

? ? ? ? SpatialVLM是最早的依賴傳統VLMs實現3D空間推理能力的論文,在24年1月由DeepMind團隊提出,當時對比的還是GPT4v,Gemini-pro,qwen-vl-plus這一組大模型,這些大模型在空間推理上能力較差,究其原因是數據集的問題,缺少含有空間數據的圖文對信息。

? ? ? ? 所以SpatialVLM設計了一個新的數據集,然后在VLM上訓練獲得了強大的空間推理能力。

? ? ? ? 從圖例來看,SpatialVLM也是首次實現在VLM模型上輸出準確的3D空間中具體數值信息的模型,其實這也歸根于數據集中的深度信息和點云信息。

2、方法

Spatial VQA Dataset

? ? ? ??數據集從互聯網圖像中保留場景級照片,并設定一個自動化過程,無需人工標注。

(1)語義過濾:利用CLIP模型對圖像分類,保留室內或室外場景照片,拒絕“單物體”“白色背景商品圖”“GUI”截圖等不適合空間推理的圖像

(2)物體中心信息提取:整合多個專家模型,用開放詞匯檢測模型定位物體邊界框,再用FlexCap生成該區域1-6詞的差異化描述,避免傳統檢測器粗粒度歧義(很妙啊),之后用ShapeMask模型分割物體像素簇,支持后續3D重建

(3)2D->3D轉換:采用ZoeDepth預測metric depth,利用內參轉換到3D點云,并檢測水平面信息,擬合平面方程,進而將點云轉換到世界坐標系。(在appendix中有完整的介紹)

(4)歧義消除:比如同一個蛋糕,指代圖像中的若干個蛋糕,所以計算所有物體描述的CLIP,對物體名字相似的物體加以方位詞,分別這兩個物體,如果沒有解決,直接剔除該圖像。

(5)QA模版生成:包括38類空間問題,定性問題和定量問題各占一半,每類問題含有20+問題模版和10+的答案模版,避免組合重復。對于答案生成,空間關系計算則基于物體3D bbox中心計算距離和方位,另外引入人類對齊處理,也就是準確數據如何轉換為人類的模糊語言,比如數值四舍五入(0.86m->約1m),概率化采樣單位(80%采用公制單位,20%采用英制)

????????Spatial VQA dataset如下:

架構設計

? ? ? ? 沿用PaLM-E(的更小體量PaLM 2-S)架構實現,數據集混合原有的PaLM數據集(95%)和該論文的Spatial VQA dataset(5%),訓練過程完全依賴PaLM的訓練方法,PaLM架構如下,這個PaLM模型是一個具身智能領域的多模態大語言模型,主要是通過給定假設,給定圖像條件,來實現規劃和推理。但是這個模型也是缺乏3D信息的,只是依賴具身智能相關和通用圖像信息來硬訓練的。

? ? ? ? 訓練過程解凍ViT微調,使得視覺編碼器學習幾何特征。

鏈式空間推理

? ? ? ? 將一個復雜的LLM問題拆解為若干個簡單的空間子問題,并利用SpatialVLM發起子問題查詢,最終利用LLM匯總子答案,合成結論。

? ? ? ? 比如下圖,詢問“三個可樂罐是否構成等腰三角形?(最長邊與最短邊差<0.1米)”

? ? ? ??鏈式推理利用SpatialVLM計算每一個邊的距離,最后利用LLM匯總,得到誤差內是一個等腰三角形。

VLA結合?

? ? ? ? 利用SpatialVLM生成獎勵信號,來指導機器人動作優化。

? ? ? ? 比如讓機器臂去抓一個橘色茶杯,那么手與橘色茶杯的距離將作為機械臂強化學習的獎勵,根據實時估計物體距離,生成單調遞增的獎勵曲線。? ?

3、實驗

? ? ? ? 在數據集中其實引入了一部分的高斯噪聲,但是在實驗中發現,引入一部分高斯噪聲σ=0.2訓練,仍能保證模型訓練穩定,這也就證明了如果深度相機存在問題的情況下,仍然可以保證一定的準確性。下表為高斯噪聲在σ=0.2下魯棒性最高。答案在真實值的50%-200%范圍內更高。

? ? ? ? 當然當時沒有那么多的評測benchmark,只能在正確性和穩定性上進行判斷。這里評測的是對于時序問題的情況:

? ? ? ? 二元謂詞情況,可以理解為傳統問題

? ? ? ? 相比于backbone(PaLM)的對比,OKVQA和VQAv2都是通用知識的問題,OK-VQA更加依賴非視覺的外部知識,純推理題,所以有所降低,但是對于VQAv2這種依賴視覺的推理知識可以提升一點。

二、SpatialRGPT

1、概述

? ? ? ? SptialRGPT同樣是24年的論文(NVIDIA),基于SpatialVLM的問題進一步優化。

? ? ? ? 動機:同樣是VLMs在空間推理任務上深度信息缺失的問題,但是擴展到區域級場景,整體上學習了SpatialVLM的很多操作,比如數據合成,空間推理時的物體歧義,鏈式推理,人類標注基準等,但SpatialRGPT相比于SpatialVLM提出了一個新的區域級評估,SpatialRGPT-Bench,覆蓋更廣的環境(包括室內,室外,模擬環境),另外SpatialVLM只是利用深度信息點云信息來構建問答數據集中的文本信息,SpatialRGPT則將深度估計器直接作為一個插件,并列于圖像提取器,用于提取不同的數據信息,保證數據與文本之間的高度統一。

2、方法

SpatialRGPT數據集

? ? ? ? Open Spatial Dataset數據集分為兩步,將單圖生成三維場景圖,再通過LLM生成復雜的VQA對。

? ? ? ??對于數據集的圖像來源主要為OpenImages數據集(1.7M圖像)。

(1)圖像過濾:通過CLIP-based開放詞匯分類模型(這里用的EVA-CLIP)進行圖像分類,方法與Spatial-VLM相同,并且定義正面標簽和負面標簽,過濾掉負面的標簽信息(700K)。正例更專注于自然場景。

(2)開放詞匯檢測與分割:優化了SpatialVLM中的專家模型,這里先利用圖像標注模型Recognize Anything識別所有對象類標簽,確保泛化性,之后采用GroundingDino來實現開放詞匯下檢測,獲取對象邊界框,采用SAM-HQ模型細化邊界框為高精度掩碼,確保對象輪廓準確。

? ? ? ? 這一套流程可以理解為,圖像標注模型獲得整張圖片中有哪些物品,開放詞匯下檢測獲取每一個物體的檢測框,SAM則根據這個檢測框和文字信息,獲得他的準確物體掩碼。

(3)度量深度估計:從單張圖像中預測深度圖,使用Metric3Dv2模型預測深度和表面法線,之后將深度圖投影到3D點云,感覺以往的單圖估計方法應該不太準確。

(4)相機校準:使用WidCamera模型預測4自由度內參,并利用PerspectiveFields獲取每個像素上的向量和緯度值,轉換為相機外參,通過旋轉矩陣將點云從相機坐標系轉換到世界坐標系。這種方法也是后來很常用的方法,沒有采用SpatialVLM中依賴地面分割,得到地面坐標系的方法,因為這種方法可能因為地面沒有正確分割而失敗。

(5)構建3D場景圖:3D場景圖類似于一個集合,比如Graph=(Nodes,Edges),其中節點表示物體實例(如椅子,蘋果),邊表示物體間空間關系(如椅子在蘋果左側)。

? ? ? ? 首先在原有的世界坐標系下的場景點云圖中,通過移除離群點,體素下采樣,DBSCAN剔除噪聲,并通過兩個視角下的點云信息,使用軸對齊邊界框(AABB)擬合可以獲得空間關系,并且提到方向包圍盒OBB雖然更準確,但是缺乏物體姿態估計。

? ? ? ? 對于每個位置的空間關系,定義相對關系和度量關系兩種,最終輸出場景圖。比如下面這種:

{"nodes": [{"id": 0, "label": "apple", "width": 0.2, "height": 0.3},{"id": 1, "label": "table", "width": 1.5, "height": 0.8}],"edges": [{"source": 0, "target": 1, "relation": "on_top", "distance": 0.4},{"source": 0, "target": 1, "relation": "left", "horizontal_dist": 0.3}]
}

(6)生成模版基礎VQA對:提取場景圖節點的信息,使用預定義的模版生成問題,比如下圖的模板對。

(7)依賴LLM生成復雜的VQA對:依賴于Llama3-70B結合(6)中的基礎VQA對,生成更加依賴語言的描述,創建推理性問題。

(8)整合數據集:最終數據集包含8M的模版基礎QA和0.7M的LLM-based QA,并利用人類驗證過濾錯誤標注。

? ? ? ? Open Spatial Dataset數據集如下:

SpatialRGPT模型架構

? ? ? ? SpatialRGPT依賴LLaMA2-7B大語言模型主干,輸入部分采用雙分支提取器,一個視覺編碼器,一個區域特征提取器以及RGB和Depth連接器用于與大語言模型對齊。

? ? ? ? 視覺編碼器采用凍結的CLIP-ViT-L/14提取全局特征信息,分辨率為336x336。

? ? ? ? 深度編碼器權重采用RGB編碼器初始化,同樣采用CLIP-ViT-L/14提取特征,在Visual Backbone中關閉,不作為LLM的輸入,只輸入視覺編碼器的輸出CLIP特征。

? ? ? ? 區域特征提取器依賴用戶給定的框或掩碼,作為定向區域的條件,用于提取局部CLIP特征,具體來說,依賴圖像和深度的CLIP特征作為輸入,經過兩層反卷積上采樣特征圖,在掩碼區域執行MaskPooling,邊界框區域計算RoIAlign,從而生成區域RGB嵌入和區域深度嵌入。

? ? ? ? Connector層通過獨立的線性層來對齊CLIP特征與LLM嵌入語言空間。

3、訓練方法

? ? ? ? 采用三階段訓練,完全凍結CLIP主干,減少訓練成本。

? ? ? ? 先單獨利用CC3M圖像-文本對訓練RGB Connector對齊。

? ? ? ? 在用MMC4+COYO通用VLM數據,進行視覺語言預訓練,訓練多模態信息,此時訓練LLM+Region Feature Extractor。

? ? ? ? 最后引入OSD數據和區域指令數據,和通用VQA數據,強化空間推理能力,訓練深度Connector和Region Feature Extractor。

4、實驗

Spatial-RGPT Bench

? ? ? ??SpatialRGPT-Bench是論文中提出的??首個專為評估視覺語言模型(VLM)3D空間認知能力設計的基準??。

? ? ? ? 解決現有VLM在3D空間理解(如方向、距離、尺寸)上存在顯著缺陷,如SpatialVLM模型依賴2D人工標注產生透視歧義,并且缺乏更多場景的需求。

? ? ? ? 數據來源:包括室內場景SUNRGBD,ARKitScenes,室外場景nuScenes,KITTI,模擬場景Hypersim。

? ? ? ? 數據標注:來自基于Omni3D預處理的3D立方體標注,并帶有語義類別標簽,所有物體在同一個相機坐標系下。

? ? ? ? 問題設計:包括定性問題(方向關系,尺寸關系)與定量問題(距離,尺寸,方向)

? ? ? ? 指標設計:定性問題--準確率,定量問題--成功率(誤差±25%),相對誤差,方向誤差。并利用GPT-4作為裁判,判斷定性問題中是否滿足真值,定量問題上單位的標準性和誤差計算。

? ? ? ? 基線模型:實驗中對比了三類基線包括盲測LLM(如GPT-4,僅文本輸入),普通VLM(如GPT-4V,LLaVA-1.6),區域感知VLM(如KOSMOS-2框輸入,RegionVILA掩碼輸入,GPT-4V+SoM交互標注,這一類都具有支持區域提示輸入的特性)

? ? ? ? 在eval中,定性實驗中方向判斷近乎完美,并且整體上顯著超越基線。定量實驗中由于深度信息的引入,顯著提升度量精度。

? ? ? ? 另外提到的一個SpatialRGPT-VILA模型是直接在預訓練VILA-1.5上微調得到的,更加節省訓練成本,在保留VILA所有語言模型和視覺編碼器的情況下,將深度特征集成到統一框架上。在實驗中測試通用benchmark,并沒有因為微調降低原有的模型學習到的圖像和視頻理解信息。

? ? ? ? 其中SpatialRGPT更適合基礎空間感知(比如機器人獎勵),Spatial-VILA更適合復雜環境實時推理(多跳推理)。

? ? ? ? 同樣的,SpatialRGPT類比SpatialVLM也可以計算獎勵用于機器人的路徑規劃下。

? ? ? ? 多跳推理。

參考論文:

[2401.12168] SpatialVLM: Endowing Vision-Language Models with Spatial Reasoning Capabilities

[2406.01584] SpatialRGPT: Grounded Spatial Reasoning in Vision Language Models

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

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

相關文章

理解GPU架構:基礎與關鍵概念

GPU 基礎概述&#xff1a;從圖形渲染到 AI 與高性能計算的核心 Graphics Processing Units&#xff08;GPU&#xff09;已從專用的圖形渲染硬件演進為 AI、科學計算與高性能任務的中堅力量。本文將介紹 GPU 架構的基礎知識&#xff0c;包括其組成部分、內存層次結構&#xff0c…

訂單狀態定時處理(Spring Task 定時任務)

訂單狀態定時處理 如果最后一秒剛好支付了咋辦?如何補償? 需要將支付狀態和訂單狀態一起考慮,或者直接使用狀態機 Spring Task 是Spring框架提供的任務調度工具,可以按照約定的時間自動執行某個代碼邏輯。 **定位:**定時任務框架 **作用:**定時自動執行某段Java代碼 …

職得AI簡歷-免費AI簡歷生成工具

本文轉載自&#xff1a;職得AI簡歷-免費AI簡歷生成工具 - Hello123工具導航 ** 一、核心功能解析 職得 AI 簡歷是 AI 驅動的智能求職平臺&#xff0c;通過深度學習算法分析百萬優質簡歷數據&#xff0c;提供從簡歷生成到面試準備的全流程服務&#xff0c;顯著提升求職競爭力。…

8.14 機器學習(1)

機器學習基礎一、什么是機器學習定義&#xff1a;讓計算機利用大量數據在特定任務上持續改進性能的過程&#xff0c;可以讓任務完成的更好。機器學習的領域很多。二、機器學習基本術語數據集、樣本、特征&#xff08;屬性&#xff09;、屬性空間、向量表示、訓練集&#xff08;…

給電腦升級內存,自檢太慢,以為出錯

公司電腦是16G內存&#xff0c;用虛擬機時非常吃力。于是跟領導說&#xff0c;買了32G內存和1T SSD。電腦有兩個SATA數據線&#xff0c;SATA電源頭只有一個。于是買了幾個1轉2&#xff0c;順利接上。把原來的16G拔下&#xff0c;換上32G內存。結果開機沒反應。心里就有點嘀咕&a…

Effective C++ 條款43:學習處理模板化基類內的名稱

Effective C 條款43&#xff1a;學習處理模板化基類內的名稱核心思想&#xff1a;模板化基類&#xff08;templatized base classes&#xff09;中的名稱在派生類模板中默認不可見&#xff0c;需要通過this->前綴、using聲明或顯式基類限定來引入。這是因為編譯器在解析模板…

Mybatis簡單練習注解sql和配置文件sql+注解形式加載+配置文件加載

項目結構 d:\test\runjar\data\static\data\mybatis_helloworld\Mybatis\ ├── lib\ │ ├── asm-3.3.1.jar │ ├── c3p0-0.9.1.2.jar │ ├── cglib-2.2.2.jar │ ├── commons-logging-1.1.1.jar │ ├── ehcache-core-2.6.8.jar │ ├── javassi…

抗日勝利80周年 | HTML頁面

飛翔的和平鴿&#xff1b;屹立的人民英雄紀念碑&#xff1b;倒下的日本國旗&#xff1b;旋轉的金色勛章無不代表著我們勝利了&#xff01;&#xff01;&#xff01;HTML源代碼&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta cha…

web仿寫網站

一、完成自己學習的官網&#xff0c;至少三個不同的頁面。1、界面1&#xff08;1&#xff09;代碼<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wid…

基于element-plus和IndexedDB數據庫的基礎表單

本文介紹了基于Vue 3和Element Plus的表單項目配置頁面實現。頁面包含搜索欄、操作按鈕、數據表格和分頁組件&#xff0c;使用IndexedDB進行本地數據存儲。主要功能包括&#xff1a;1) 通過模糊查詢搜索項目&#xff1b;2) 分頁顯示項目數據&#xff1b;3) 添加/編輯/刪除項目操…

paimon實時數據湖教程-主鍵表更新機制

在上一章&#xff0c;我們學習了 Paimon 如何保證每一次寫入的原子性和一致性。但數據倉庫的核心需求不僅是寫入&#xff0c;更重要的是更新。想象一個場景&#xff1a;我們需要實時更新用戶的最新信息&#xff0c;或者實時累加計算用戶的消費總額。傳統的 Hive 數據湖對此無能…

第十六屆藍橋杯青少組C++省賽[2025.8.9]第二部分編程題(4、矩陣圈層交錯旋轉)

參考程序&#xff1a;#include <bits/stdc.h> using namespace std;const int MAXN 105; int a[MAXN][MAXN];int main() {int n;if (!(cin >> n)) return 0;for (int i 0; i < n; i)for (int j 0; j < n; j)cin >> a[i][j];int layers n / 2; // 每…

【FastGTP?】[01] 使用 FastGPT 搭建簡易 AI 應用

簡易應用&#xff1a;英語單詞解釋 例句 1. 前言 FastGPT 是一個低代碼 AI 應用構建平臺&#xff0c;可以通過簡單配置快速創建自己的 AI 應用。 本文將帶你用 FastGPT 搭建一個 英語單詞解釋 例句 的 AI 工具&#xff0c;輸入英文單詞后&#xff0c;輸出&#xff1a; 單詞…

【Mysql語句練習】

MysqlMysql語句練習一、建庫建表二、插入數據三、查詢Mysql語句練習 一、建庫建表 1、創建數據庫mydb11_stu&#xff0c;并使用數據庫 # 創建數據庫mydb11_stu mysql> create database mydb11_stu; Query OK, 1 row affected (0.00 sec) # 使用數據庫 mysql> use mydb1…

用Python Scrapy征服網絡爬蟲(反爬技術深入剖析)

目錄 第1章:Scrapy是個啥?為什么它是你爬蟲路上的最佳拍檔? 1.1 Scrapy的核心亮點 1.2 啥時候用Scrapy? 1.3 安裝Scrapy 第2章:動手寫你的第一個Scrapy爬蟲 2.1 創建Scrapy項目 2.2 定義數據結構(Items) 2.3 編寫爬蟲邏輯 2.4 運行爬蟲 2.5 小技巧:調試爬蟲 …

解決Electron透明窗口點擊不影響其他應用

遇到的問題&#xff1a;在electron透明窗口點擊&#xff0c;影響窗口下的應用接受不到點擊事件解決方案&#xff1a;CSSIgnoreMouseEvents實現原理&#xff1a;主進程默認設置禁用目標窗口鼠標事件&#xff08;禁用之后能檢測到mousemove&#xff09;&#xff0c;UI進程檢測頁面…

C# 泛型(Generics)詳解

泛型是 C# 2.0 引入的核心特性&#xff0c;它允許在定義類、接口、方法、委托等時使用未指定的類型參數&#xff0c;在使用時再指定具體類型。這種機制可以顯著提高代碼的復用性、類型安全性和性能。一、泛型的核心概念類型參數化泛型允許將類型作為 "參數" 傳遞給類…

Spring中存在兩個相同的Bean是否會報錯?

第一種情況&#xff1a;使用XML的方式設置Bean&#xff0c;這種情況在Spring啟動時就會報錯&#xff0c;因為ID在Spring中是Bean的唯一標識&#xff0c;Spring容器在啟動時會校驗唯一性&#xff0c;一旦發現重復就會報錯。但是如果是在兩個不同的XML文件中定義兩個相同的Bean&a…

【新手入門】Android基礎知識(一):系統架構

目 錄 Android 系統架構圖 1. 應用 2. JAVA API 框架 3. 原生 C/C 庫 4. Android 運行時&#xff08;Android Runtime&#xff09; 5. 硬件抽象層 (HAL) 6. Linux 內核 參考資料 Android 系統架構圖 Android底層內核空間以Linux Kernel作為基石&#xff0c;上層用戶空…

晶振電路的負載電容、電阻參數設計

系列文章目錄 文章目錄系列文章目錄前言一、晶振主要參數二、有源與無源區別三、無源晶振四、有源晶振總結前言 在硬件電路的設計中&#xff0c;晶振電路是必不可少的&#xff0c;它充當了整個電路心臟的作用。在這個晶振電路的設計中負載電容、電阻參數的選型是很重要的&…