VLN視覺語言導航基礎

0 概述

視覺語言導航模型旨在構建導航決策模型 π π π,在 t t t時刻,模型能夠根據指令 W W W、歷史軌跡 τ = { V 1 , V 2 , . . . , V t ? 1 } \tau=\{V_1,V_2,...,V_{t-1}\} τ={V1?,V2?,...,Vt?1?}和當前觀察 V t = { P t , R t , N ( V t ) } V_t=\{P_t,R_t,N(V_t)\} Vt?={Pt?,Rt?,N(Vt?)}來決定下一步動作 a t a_t at? π ( a t ∣ W , V t , τ ) — > a t π(a_t|W,V_t,\tau)—>a_t π(at?W,Vt?,τ)>at?。模擬器隨后執行智能體的動作并更新環境與智能體的狀態 τ ( s t , a t ) ? > s t + 1 \tau(s_t,a_t)->s_{t+1} τ(st?,at?)?>st+1?

V :節點 V:節點 V:節點
P t :姿態信息 P_t:姿態信息 Pt?:姿態信息
R t :全景 R G B 圖像 R_t:全景RGB圖像 Rt?:全景RGB圖像
N ( V t ) :可導航點 N(V_t):可導航點 N(Vt?):可導航點

任務類型:指令導向(R2R和R4R)、目標導向(REVERIR和SOON)、需求導向(DDN)

  • 指令導向:指令導向的視覺語言導航任務側重于智能體嚴格遵循給定的語言指令進行導航。這種任務要求智能體能夠理解復雜的自然語言指令,并將其轉化為導航動作。
  • 目標導向:目標導向的視覺語言導航任務要求智能體根據給定的目標進行導航。在這種任務中,智能體需要理解目標的語義信息,并在環境中搜索與目標相匹配的物體。
  • 需求導向:需求導向的視覺語言導航任務是一種更高級的形式,它要求智能體根據用戶的抽象需求進行導航。與前兩種任務不同,需求導向導航不依賴于特定的物體或目標,而是需要智能體理解用戶的需求并找到滿足這些需求的物體或位置。

場景類型:室內、室外、空中

  • 室內場景:室內視覺語言導航主要關注于家庭或辦公環境內的導航。智能體需要理解自然語言指令,并在室內環境中找到正確的路徑。室內環境通常較為復雜,包含多個房間和各種家具,因此對智能體的空間理解能力要求較高。例如,Room-to-Room數據集
  • 室外場景:室外視覺語言導航涉及到更開放的環境,如街道、公園等。在這種場景下,智能體不僅需要理解指令,還需要處理更復雜的空間關系和可能的遮擋物。室外環境的動態性,如行人和車輛的移動,也會增加導航的難度
  • 空中:空中視覺語言導航是一個較新的研究領域,主要針對無人機(UAV)的導航任務。與地面導航不同,空中導航需要考慮飛行高度和更復雜的空間關系。例如,AerialVLN是一個針對無人機的視覺語言導航任務,它要求智能體根據自然語言指令在三維空間中進行導航,這涉及到對城市級場景的理解和操作。

1 測試基準

1.1 模擬器與數據集

在這里插入圖片描述

1.2 數據集簡介

VLN數據集提供了自然語言指令 W W W及其相應的真實軌跡 τ \tau τ,使其適合于監督學習和強化學習

R2R

Anderson 等人首次提出了在離散室內環境中遵循指令進行導航的任務,即 R2R (Room-to-Room)。R2R 任務基于 Matterport3D 數據集構建,該數據集包含 90 個房屋的真實照片,共計 10,567 張全景圖。這些環境被表示為一系列通過邊連接的可導航點。在 R2R 任務中,智能體需根據描述路線的語言指令,從指定的初始位置導航至目標位置。智能體必須遵循指令,執行一系列離散動作(如轉彎、前進),以到達目標位置,并在到達后執行“停止”動作以完成任務。

R4R

Jain 等人通過將兩個相鄰的軌跡(尾部到頭部)連接起來,擴展了 R2R 任務,從而生成更長的指令和軌跡。這些路徑更加依賴于指令的描述,因為它們往往不是起點和終點之間的最短路徑。

CVDN

在現實世界的導航中,人們通常使用自然語言進行多輪溝通。Thomason 等人收集了 CVDN 數據集,以模擬真實家庭環境中人與人之間的對話過程,并定義了基于對話歷史進行導航并搜索目標的任務。

REVERIE

在現實環境下,智能體的導航通常是需求驅動的,經常需要到達指定地點并找到相關物體。因此,Qi 等人和 Zhu 等人分別通過 REVERIE 和 SOON 數據集進一步提出了遠程對象定位導航任務。在 REVERIE 數據集中,每個視覺觀察的全景圖都標記有預定義的對象框,智能體必須在導航路徑的終點選擇正確的對象。

SOON

而在實際應用中,人類通常給出高層次的目標導向指令,而非詳盡的逐步指導。基于這一特點,SOON 數據集提出了一種基于視覺的場景定位目標導航方法,智能體被指示在房屋內尋找詳細描述的目標對象。

AerialVLN

為了解決無人機在復雜城市環境中進行導航的問題,AerialVLN 數據集被提出。該數據集包含 10 個城市的 100 個不同的飛行場景,每個場景都由無人機在飛行過程中拍攝的全景圖像組成。這些圖像被標記為包含多個對象,并且每個對象都與一個自然語言描述相關聯。智能體的任務是根據這些描述,在飛行過程中找到并識別相應的對象。

1.3 評估指標

參考文章:視覺語言導航入門必看
(1)路徑長度PL
(2)導航誤差d
(3)導航成功率SR
(4)Oracle Success Rate(OSR) :衡量導航路徑上任意點到目標點的距離是否在預定義的閾值范圍內
(5)基于路徑加權的成功率SPL
S P L = S R ? ∣ R ∣ max ? { ∣ P ∣ , ∣ R ∣ } S P L=S R \cdot \frac{|R|}{\max \{|P|,|R|\}} SPL=SR?max{P,R}R?
(6)長度加權的覆蓋分數CLS:生成路徑和參考路徑的一致性問題
P C ( P , R ) = 1 ∣ R ∣ ∑ r ∈ R exp ? ( ? d ( r , P ) d t h ) \mathrm{PC}(P, R)=\frac{1}{|R|} \sum_{r \in R} \exp \left(-\frac{d(r, P)}{d_{t h}}\right) PC(P,R)=R1?rR?exp(?dth?d(r,P)?)
路徑長度分數則是評價生成路徑和參考路徑的一致性程度,進而來約束生成路徑的長度
L S ( P , R ) = P C ( P , R ) ? P L ( R ) P C ( P , R ) ? P L ( R ) + P C ( P , R ) ? P L ( R ) ? P L ( P ) LS(P,R)=\frac{PC(P,R)*PL(R)}{PC(P,R)*PL(R)+PC(P,R)*PL(R)-PL(P)} LS(P,R)=PC(P,R)?PL(R)+PC(P,R)?PL(R)?PL(P)PC(P,R)?PL(R)?
(7)基于動態時間規整加權成功率nDTW:通過動態時間彎曲評估由成功率加權的預測路徑P和參考路徑R的時空相似性,對偏離參考路徑的行為進行軟性懲罰,并考慮路徑節點的順序
在這里插入圖片描述
(8)遠程定位成功率RGS:智能體定位到與目標語義標簽相對應的實例時,才視為成功

(9)長度加權的遠程定位成功率RGSPL:綜合考慮遠程定位成功的效率與經歷的路徑長度

2 典型模型與開源代碼

(1)傳統Seq2seq方法

使用基于注意力機制的 LSTM 的序列到序列模型, 并結合 “學生自學”的訓練方法, 對于先前的分布采用動作輸出序列預測下一步動作,使用交叉熵損失函數, 學習標注數據的特征信息。

Following High-level Navigation Instructions on a Simulated Quadcopter with Imitation Learning (https://github.com/lil-lab/drif)

(2)基于數據增強方法

專業人員標注的指令不僅成本高, 且數量十分有限。因此, 數據稀缺是視覺語言導航中的先天問題,不僅使得學習跨模態匹配更加困難, 還在很大程度上限制了模型的性能。當前很多領域的研究已經證明了數據增強的有效性, 特別是提升模型的性能有很大幫助。

Speaker-Follower Models for Vision-and-Language Navigation (http://ronghanghu.com/speaker_follower)

(3)基于輔助目標方法

輔助推理任務對于提高視覺語言導航任務中智能體的泛化能力和魯棒性至關重要,它們通過提供額外的訓練信號來增強模型對環境的理解,使其能夠更好地利用語義信息進行決策,從而提升導航準確性和效率。

Self-Monitoring Navigation Agent via Auxiliary Progress Estimation (https://github.com/chihyaoma/selfmonitoring-agent)

(4)基于拓撲圖方法

拓撲圖在視覺語言導航中至關重要,它支持全局路徑規劃,提高探索效率,增強環境記憶,并促進自然語言指令與視覺場景的有效對接,使智能體能在復雜環境中準確導航至目標位置。

Think Global, Act Local: Dual-scale Graph Transformer for Vision-and-Language Navigation (https://cshizhe.github.io/projects/vln_duet.html)

(5)基于大模型方法

大模型能處理多模態輸入,執行零樣本學習,展現高級規劃和推理能力。這些模型通過理解復雜的導航指令和環境,提供強大的決策支持,增強任務的泛化性,并能生成高質量的導航指令,從而提升導航性能和可解釋性。

NavGPT: Explicit Reasoning in Vision-and-Language Navigation with Large Language Models (https://github.com/GengzeZhou/NavGPT)

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

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

相關文章

AI協助探索AI新構型的自動化創新概念

訓練AI自生成輸出模塊化代碼,生成元代碼級別的AI功能單元代碼,然后再由AI組織為另一個AI,實現AI開發AI的能力;用AI協助探索迭代新構型AI將會出現,并成為一種新的技術路線潮流。 有限結點,無限的連接形式&a…

Flux的三步煉丹爐——fluxgym(三):矩陣測試

前面兩篇文章給大家介紹了如何準備素材和怎么煉丹,現在我們拿到訓練完成后的多個Lora怎么才能確定哪個才是我們需要的、效果最好的呢?答案就是使用xyz圖表測試,也稱為矩陣測試,通過控制控制變量的方法對Lora模型批量生圖&#xff…

利用Muduo庫實現簡單且健壯的Echo服務器

一、muduo網絡庫主要提供了兩個類: TcpServer:用于編寫服務器程序 TcpClient:用于編寫客戶端程序 二、三個重要的鏈接庫: libmuduo_net、libmuduo_base、libpthread 三、muduo庫底層就是epoll線程池,其好處是…

文件讀寫操作

寫入文本文件 #include <iostream> #include <fstream>//ofstream類需要包含的頭文件 using namespace std;void test01() {//1、包含頭文件 fstream//2、創建流對象ofstream fout;/*3、指定打開方式&#xff1a;1.ios::out、ios::trunc 清除文件內容后打開2.ios:…

C++編程語言:抽象機制:模板(Bjarne Stroustrup)

目錄 23.1 引言和概觀(Introduction and Overview) 23.2 一個簡單的字符串模板(A Simple String Template) 23.2.1 模板的定義(Defining a Template) 23.2.2 模板實例化(Template Instantiation) 23.3 類型檢查(Type Checking) 23.3.1 類型等價(Type Equivalence) …

定制Centos鏡像(二)

本章是對上篇文章的擴展&#xff1a; https://blog.csdn.net/qq_50247813/article/details/145286244 上篇文章學習了如何自定義鏡像安裝。這篇介紹如何在定制鏡像的時候安裝其他軟件&#xff1b; &#xff08;源文件參考上篇文章&#xff09; 根據上篇文章的步驟&#xff0c;…

【機器學習理論】樸素貝葉斯網絡

基礎知識&#xff1a; 先驗概率&#xff1a;對某個事件發生的概率的估計。可以是基于歷史數據的估計&#xff0c;可以由專家知識得出等等。一般是單獨事件概率。 后驗概率&#xff1a;指某件事已經發生&#xff0c;計算事情發生是由某個因素引起的概率。一般是一個條件概率。 …

Flutter 新春第一彈,Dart 宏功能推進暫停,后續專注定制數據處理支持

在去年春節&#xff0c;Flutter 官方發布了宏&#xff08;Macros&#xff09;編程的原型支持&#xff0c; 同年的 5 月份在 Google I/O 發布的 Dart 3.4 宣布了宏的實驗性支持&#xff0c;但是對于 Dart 內部來說&#xff0c;從啟動宏編程實驗開始已經過去了幾年&#xff0c;但…

計算機組成原理——存儲系統(一)

在人生的道路上&#xff0c;成功與失敗交織成一幅豐富多彩的畫卷。不論我們是面對勝利的喜悅&#xff0c;還是遭遇失敗的痛苦&#xff0c;都不能放棄對夢想的追求。正是在這種追求中&#xff0c;我們不斷地超越自我&#xff0c;不斷地突破自己的極限。只有勇往直前&#xff0c;…

前端知識速記:節流與防抖

前端知識速記&#xff1a;節流與防抖 什么是防抖&#xff1f; 防抖是一種控制事件觸發頻率的方法&#xff0c;通常用于處理用戶頻繁觸發事件的場景。防抖的核心思想是將多個連續觸發事件合并為一個事件&#xff0c;以減少執行次數。它在以下場景中特別有效&#xff1a; 輸入…

無人機圖傳模塊 wfb-ng openipc-fpv,4G

openipc 的定位是為各種模塊提供底層的驅動和linux最小系統&#xff0c;openipc 是采用buildroot系統編譯而成&#xff0c;因此二次開發能力有點麻煩。為啥openipc 會用于無人機圖傳呢&#xff1f;因為openipc可以將現有的網絡攝像頭ip-camera模塊直接利用起來&#xff0c;從而…

藍橋杯例題一

不管遇到多大的困難&#xff0c;我們都要堅持下去。每一次挫折都是我們成長的機會&#xff0c;每一次失敗都是我們前進的動力。路漫漫其修遠兮&#xff0c;吾將上下而求索。只有不斷努力奮斗&#xff0c;才能追逐到自己的夢想。不要害怕失敗&#xff0c;害怕的是不敢去嘗試。只…

【JavaEE進階】圖書管理系統 - 壹

目錄 &#x1f332;序言 &#x1f334;前端代碼的引入 &#x1f38b;約定前后端交互接口 &#x1f6a9;接口定義 &#x1f343;后端服務器代碼實現 &#x1f6a9;登錄接口 &#x1f6a9;圖書列表接口 &#x1f384;前端代碼實現 &#x1f6a9;登錄頁面 &#x1f6a9;…

【算法設計與分析】實驗8:分支限界—TSP問題

目錄 一、實驗目的 二、實驗環境 三、實驗內容 四、核心代碼 五、記錄與處理 六、思考與總結 七、完整報告和成果文件提取鏈接 一、實驗目的 掌握分支界限求解問題的思想&#xff1b;針對不同的問題&#xff0c;能夠利用分支界限法進行問題拆分和求解以及時間復雜度分析…

【3】阿里面試題整理

[1]. ES架構&#xff0c;如何進行路由以及選主 路由&#xff1a;在Elasticsearch&#xff08;ES&#xff09;中&#xff0c;默認的路由算法是基于文檔的_id。具體來說&#xff0c;Elasticsearch會對文檔的_id進行哈希計算&#xff0c;然后對分片數量取模&#xff0c;以確定該文…

【Linux】opencv在arm64上提示找不到libjasper-dev

解決opencv在arm64上提示找不到libjasper-dev的問題。 本文首發于?慕雪的寒舍 問題說明 最近我在嘗試編譯opencv&#xff0c;安裝依賴項libjasper1和libjasper-dev的時候就遇到了這個問題。在amd64平臺上&#xff0c;我們可以通過下面的命令安裝&#xff08;ubuntu18.04&…

【數據結構】_時間復雜度相關OJ(力扣版)

目錄 1. 示例1&#xff1a;消失的數字 思路1&#xff1a;等差求和 思路2&#xff1a;異或運算 思路3&#xff1a;排序&#xff0b;二分查找 2. 示例2&#xff1a;輪轉數組 思路1&#xff1a;逐次輪轉 思路2&#xff1a;三段逆置&#xff08;經典解法&#xff09; 思路3…

基于微信小程序的電子商城購物系統設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…

【linux】Linux 常見目錄特性、權限和功能

目錄特性默認權限主要功能/用途/根目錄&#xff0c;所有目錄的起點755文件系統的頂層目錄&#xff0c;包含所有其他子目錄和文件/bin基礎二進制命令目錄&#xff08;系統啟動和修復必需的命令&#xff09;755存放所有用戶可用的基本命令&#xff08;如 ls, cp, bash 等&#xf…

docker直接運行arm下的docker

運行環境是樹莓派A 處理器是 arm32v6 安裝了docker&#xff0c;運行lamp 編譯安裝php的時候發現要按天來算&#xff0c;于是用電腦vm下的Ubuntu系統運行arm的docker 然后打包到a直接導入運行就可以了 第一種方法 sudo apt install qemu-user-static 導入直接運行就可以了…