最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

基于文本提示就可自動實現(xiàn)復雜計算機視覺任務?

2023-09-23 19:39 作者:3D視覺工坊  | 我要投稿

作者:PCIPG-HAY ?| 來源:3DCV

在公眾號「3DCV」后臺,回復「原論文」即可獲取論文pdf。

添加微信:dddvisiona,備注:3D點云,拉你入群。文末附行業(yè)細分群。

本文提出了 VISPROG,一種神經符號方法,用于在給定自然語言指令的情況下解決復雜的組合視覺任務。VISPROG 無需進行任何特定任務的訓練。相反,它利用大型語言模型的上下文學習能力來生成類似Python的模塊化程序,然后執(zhí)行這些程序以獲得解決方案和全面且可解釋的基本原理。生成的程序的每一行都可以調用幾個現(xiàn)成的計算機視覺模型、圖像處理子例程或Python函數(shù)之一來產生可由程序的后續(xù)部分使用的中間輸出。我們展示了 VISPROG 在 4 個不同任務上的靈活性 - 組合視覺問答、圖像對的零樣本推理、事實知識對象標記和語言引導圖像編輯。我們相信像 VISPROG 這樣的神經符號方法是一個令人興奮的途徑,可以輕松有效地擴展人工智能系統(tǒng)的范圍,以服務于人們可能希望執(zhí)行的復雜任務的長尾。

目的:對通用人工智能系統(tǒng)的追求導致了強大的端到端可訓練模型的開發(fā),其中許多模型渴望為人工智能提供簡單的自然語言界面使用戶能與模型進行交互。現(xiàn)有方法:構建這些系統(tǒng)的主要方法是大規(guī)模無監(jiān)督預訓練,然后是監(jiān)督多任務訓練。然而,這種方法需要為每個任務提供精心策劃的數(shù)據(jù)集,這使得擴展到我們最終希望這些系統(tǒng)執(zhí)行的復雜任務變得具有挑戰(zhàn)性。此論文工作:在這項工作中,探索使用大型語言模型來解決復雜任務的視覺問題,方法是將自然語言描述的這些任務分解為可以由專門的端到端訓練模型或其他程序處理的更簡單的步驟。圖 1.VISPROG 是一個用于組合視覺推理的模塊化且可解釋的神經符號系統(tǒng) (左為框架圖,右為此系統(tǒng)可實現(xiàn)的四大任務) VISPROG,它輸入視覺數(shù)據(jù)(單個圖像或一組圖像)以及自然語言指令,生成一系列步驟,如果您愿意,還可以生成可視化程序,然后執(zhí)行這些步驟以產生所需的輸出??梢暬绦蛑械拿恳恍卸紩{用系統(tǒng)當前支持的各種模塊之一。模塊可以是現(xiàn)成的計算機視覺模型、語言模型、OpenCV中的圖像處理子例程或算術和邏輯運算符。模塊消耗通過執(zhí)行前面的代碼行產生的輸入,并輸出可被下游消耗的中間結果。在上面的示例中,VISPROG 生成的可視化程序調用人臉檢測器、GPT-3 作為知識檢索系統(tǒng),以及 CLIP作為開放詞匯圖像分類器來生成所需的輸出(參見圖。1)。VISPROG 改進了以前為視覺應用生成和執(zhí)行程序的方法。對于視覺問答(VQA)任務,神經模塊網絡(NMN)[2,9,10,12]由專門的、可微分的神經模塊組成一個特定于問題的、端到端的可訓練網絡。這些方法要么使用脆弱的、現(xiàn)成的語義解析器來確定性地計算模塊的布局,要么通過 REINFORCE [30] 通過弱答案監(jiān)督來學習布局生成器。相比之下,VISPROG 使用強大的語言模型(GPT-3)以及少量上下文示例,無需任何訓練即可創(chuàng)建復雜的程序1。VISPROG 創(chuàng)建的程序還使用比 NMN 更高級別的抽象,并調用經過訓練的最先進模型和非神經 Python 子例程(圖 2)。這些優(yōu)點使 VISPROG 成為易于使用、高性能和模塊化的神經符號系統(tǒng)。VISPROG 也具有高度可解釋性。首先,VISPROG 生成易于理解的程序,用戶可以驗證其邏輯正確性。其次,通過將預測分解為簡單的步驟,VISPROG 允許用戶檢查中間步驟的輸出以診斷錯誤,并在需要時干預推理過程??偠灾?,具有中間步驟結果(例如文本、邊界框、分割掩模、生成的圖像等)的執(zhí)行程序鏈接在一起以描述信息流,作為預測的視覺原理。為了展示其靈活性,我們使用 VISPROG 執(zhí)行 4 個不同的任務,這些任務共享一些通用技能(例如圖像解析),同時還需要一定程度的專業(yè)推理和視覺操作能力。這些任務是 - ?我們強調,語言模型和任何模塊都沒有以任何方式進行微調。讓 VISPROG 適應任何任務非常簡單,只需提供一些由自然語言指令和相應程序組成的上下文示例即可。雖然易于使用,但 VISPROG 在組合 VQA 任務上比基本 VQA 模型提高了 2.7 個點,在 NLVR 上的零樣本準確率高達 62.4%,無需對圖像對進行訓練,并且在知識標記方面取得了令人愉快的定性和定量結果和圖像編輯任務。本文貢獻點:(i) VISPROG - 一個使用語言模型的上下文學習能力從自然語言指令生成視覺程序的系統(tǒng),用于組合視覺任務(第 3 節(jié));(ii) 展示 VISPROG 在復雜視覺任務上的靈活性,例如事實知識對象標記和語言引導圖像編輯,這些任務在單一端到端模型中未能實現(xiàn)或取得有限成功;(iii) 為這些任務提供可視化原理,并展示它們在錯誤分析和用戶驅動指令調整方面的實用性,以顯著提高 VISPROG 的性能。

由于大型語言模型 (LLM) 令人難以置信的理解、生成和上下文學習能力,神經符號方法獲得了新的發(fā)展動力。現(xiàn)在簡單說明下以前的視覺任務程序生成和執(zhí)行方法、最近使用LLMs進行視覺的工作以及語言任務推理方法的進展。視覺任務的程序生成和執(zhí)行的相關工作。神經模塊網絡(NMN開創(chuàng)了視覺問答(VQA)任務的模塊化和組合方法。NMN 將神經模塊組合成端到端的可微網絡。雖然早期的嘗試使用現(xiàn)成的解析器 ,但最近的方法使用 REINFORCE和弱答案監(jiān)督與神經模塊聯(lián)合學習布局生成模型。雖然 VISPROG 與 NMN 的精神相似,但它比 NMN 有幾個優(yōu)勢。首先,VISPROG 生成高級程序,在中間步驟調用經過訓練的最先進的神經模型和其他 Python 函數(shù),而不是生成端到端神經網絡。這使得合并符號化、不可微分的模塊變得很容易。其次,VISPROG 利用LLMs的上下文學習能力,通過使用自然語言指令(或視覺問題或待驗證的陳述)以及一些示例來提示LLM(GPT-3)來生成程序類似的指令及其相應的程序,從而無需為每個任務訓練專門的程序生成器。針對視覺任務的LLMs的相關工作。LLMs和情境學習已應用于視覺任務。PICa使用 LLM 來完成基于知識的 VQA任務。PICa 通過標題、對象和屬性將圖像中的視覺信息表示為文本,并將該文本表示與問題和上下文示例一起提供給 GPT-3,以直接生成答案。蘇格拉底模型(SM),由不同模態(tài)組成預訓練模型,例如語言(BERT、GPT-2)、視覺語言(CLIP)和音頻語言(mSLAM),執(zhí)行許多零樣本任務,包括圖像字幕、視頻到文本檢索和機器人規(guī)劃。然而,在 SM 中,每個任務的組成都是預先確定和固定的。相比之下,VISPROG 通過根據(jù)指令、問題或語句生成程序來確定如何為每個實例構建模型。我們展示了 VISPROG 處理復雜指令的能力,這些指令涉及不同的功能(20 個模塊)和不同的輸入(文本、圖像和圖像對)、中間(文本、圖像、邊界框、分割掩模)和輸出模式(文本和圖像) 。與 VISPROG 類似,ProgPrompt 是一項并行工作,展示了LMM從自然語言指令生成類似 python 的機器人動作計劃的能力。雖然 ProgPrompt 模塊(例如“find”或“grab”)將字符串(通常是對象名稱)作為輸入,但 VISPROG 程序更為通用。在 VISPROG 程序的每個步驟中,模塊可以接受先前步驟生成的多個參數(shù),包括字符串、數(shù)字、算術和邏輯表達式或任意 Python 對象(例如包含邊界框或分段掩碼的 list() 或 dict() 實例) 。

在過去的幾年里,人工智能社區(qū)已經為許多視覺和語言任務(例如對象檢測、分割、VQA、字幕和文本到圖像生成)創(chuàng)建了高性能、特定于任務的模型。雖然這些模型中的每一個都解決了一個定義明確但范圍狹窄的問題,但我們通常想要在現(xiàn)實世界中解決的任務往往更廣泛且定義松散。為了解決此類實際任務,人們必須收集一個新的特定于任務的數(shù)據(jù)集,這可能會很昂貴,或者精心編寫一個調用多個神經模型、圖像處理子例程(例如圖像調整大小、裁剪、過濾和色彩空間轉換)的程序,以及其他計算(例如數(shù)據(jù)庫查找,或算術和邏輯運算)。為我們每天遇到的無限長尾的復雜任務手動創(chuàng)建這些程序不僅需要編程專業(yè)知識,而且速度慢、勞動強度大,最終不足以覆蓋所有任務的空間。如果可以用自然語言描述任務并讓人工智能系統(tǒng)生成并執(zhí)行任務無需任何訓練即可對應視覺程序似乎就可以解決問題?

GPT-3 等大型語言模型在上下文中進行了少量輸入和輸出演示后,已表現(xiàn)出卓越的泛化到新樣本的能力。例如,用兩個英語到法語的翻譯示例和一個新的英語短語來提示 GPT-3產生了法語翻譯“bonsoir”。請注意,我們不必微調 GPT-3 來執(zhí)行第三個短語的翻譯任務。VISPROG 使用 GPT-3 的上下文學習能力來輸出自然語言指令的視覺程序。good morning -> bonjour good day -> bonne journ ?ee good evening -> 與上例中的英語和法語翻譯對類似,我們用指令對和所需的高級程序提示 GPT-3。圖3顯示了這樣一個圖像編輯任務的提示。上下文示例中的程序是手動編寫的,通常可以在沒有隨附圖像的情況下構建。VISPROG 程序的每一行或程序步驟均由模塊名稱、模塊的輸入?yún)?shù)名稱及其值以及輸出變量名稱組成。VISPROG 程序通常使用過去步驟的輸出變量作為未來步驟的輸入。我們使用描述性模塊名稱(例如“Select”、“ColorPop”、“Replace”)、參數(shù)名稱(例如“image”、“object”、“query”)和變量名稱(例如“IMAGE”、“OBJ”)讓GPT-3了解各個模塊的輸入輸出類型以及功能。在執(zhí)行期間,輸出變量可用于存儲任意數(shù)據(jù)類型。例如,“OBJ”是圖像中的對象列表,其中包含與每個對象關聯(lián)的蒙版、邊界框和文本(例如類別名稱)。

圖 3.VISPROG 中的程序生成。這些上下文示例與新的自然語言指令一起被輸入到 GPT-3 中。在不觀察圖像或其內容的情況下,VISPROG 會生成一個程序(圖 3 底部),該程序可以在輸入圖像上執(zhí)行以執(zhí)行所描述的任務。

VISPROG?目前支持?20?個模塊(圖?2),用于實現(xiàn)圖像理解、圖像處理(包括生成)、知識檢索以及執(zhí)行算術和邏輯運算等功能。在?VISPROG?中,每個模塊都實現(xiàn)為一個?Python?類(代碼?1),該類具有以下方法:(i)?解析該行以提取輸入?yún)?shù)名稱和值以及輸出變量名稱;(ii)?執(zhí)行可能涉及經過訓練的神經模型的必要計算,并使用輸出變量名稱和值更新程序狀態(tài);(iii)?使用?html?直觀地總結該步驟的計算(稍后用于創(chuàng)建視覺原理)。向?VISPROG?添加新模塊只需實現(xiàn)并注冊一個模塊類,而使用該模塊的程序的執(zhí)行則由?VISPROG?解釋器自動處理,這將在下面介紹。

圖 2. VISPROG 當前支持的模塊。紅色模塊使用神經模型(OWL-ViT、DSFD、MaskForme、CLIP、ViLT和 Stable Diffusion)。藍色模塊使用圖像處理和其他 python 子例程。這些模塊在由自然語言指令生成的程序中調用。添加新模塊來擴展 VISPROG 的功能非常簡單(代碼 1)。

class?VisProgModule():?????def?__init__(self):????????#?load?a?trained?model;?move?to?GPU?????def?html(self,inputs:?List,output:?Any):????????#?return?an?html?string?visualizing?step?I/O?????????????def?parse(self,step:?str):?????????#?parse?step?and?return?list?of?input?values/variable?names?????????#?and?output?variable?name??????????????def?execute(self,step:?str,state:?Dict):????????inputs,input_var_names,output_var_name?=?self.parse(step)????????#?get?values?of?input?variables?from?state?????????for?var_name?in?input_var_names:?????????????inputs.append(state[var_name])?????????????????????#?perform?computation?using?the?loaded?model?????????output?=?some_computation(inputs)?????????????????#?update?state?????????state[output_var_name]?=?output????????????????#?visual?summary?of?the?step?computation?????????step_html?=?self.html(inputs,output)?????????return?output,?step_html

程序的執(zhí)行由解釋器處理。解釋器使用輸入初始化程序狀態(tài)(將變量名稱映射到其值的字典),并逐行執(zhí)行程序,同時使用該行中指定的輸入調用正確的模塊。執(zhí)行每個步驟后,程序狀態(tài)將使用該步驟輸出的名稱和值進行更新。

除了執(zhí)行必要的計算之外,每個模塊類還實現(xiàn)了一個名為 html() 的方法,以直觀地總結 HTML 片段中模塊的輸入和輸出。解釋器只需將所有程序步驟的 HTML 摘要拼接成可視化原理(圖 4),即可用于分析程序的邏輯正確性以及檢查程序的內部結構的中間輸出。視覺原理還使用戶能夠理解失敗的原因,并盡可能地調整自然語言指令以提高性能。

圖 4. VISPROG 生成的視覺原理。這些基本原理直觀地總結了圖像編輯(上)和 NLVR 任務(下)推理期間生成的程序中每個計算步驟的輸入和輸出。

VISPROG 提供了一個靈活的框架,可應用于各種復雜的視覺任務。我們在 4 項任務上評估 VISPROG,這些任務需要空間推理、多圖像推理、知識檢索以及圖像生成和操作等能力。圖 5 總結了用于這些任務的輸入、輸出和模塊。我們現(xiàn)在描述這些任務、它們的評估設置以及上下文示例的選擇。

圖 5.我們在一組不同的任務上評估 VISPROG。這些任務涵蓋各種輸入和輸出,并盡可能重用模塊(Loc、FaceDet、VQA)。

VISPROG 是組合式的,這使得它適合組合式、多步驟的視覺問答任務:GQA。GQA 任務的模塊包括用于開放詞匯本地化的模塊、VQA 模塊、給定邊界框坐標或空間介詞(例如上、左等)的裁剪圖像區(qū)域的函數(shù)、計數(shù)框的模塊以及用于計算框數(shù)量的模塊。評估 Python 表達式。例如,考慮以下問題:“小卡車是在戴頭盔的人的左邊還是右邊?”。VISPROG 首先定位“戴頭盔的人”,裁剪這些人左側(或右側)的區(qū)域,檢查該側是否有“小卡車”,如果有則返回“左”,否則返回“右”。VISPROG 使用基于 VILT 的問答模塊,但 VISPROG 不是簡單地將復雜的原始問題傳遞給 VILT,而是調用它來執(zhí)行更簡單的任務,例如識別部分圖像中的內容。因此,我們生成的 GQA VISPROG 不僅比 VILT 更容易解釋,而且更準確(表 1)?;蛘撸覀兛梢酝耆龑?ViLT 等 QA 模型的需求,并使用 CLIP 和對象檢測器等其他系統(tǒng),但我們將其留待未來研究。評估。為了限制使用 GPT-3 生成程序所花費的資金,我們創(chuàng)建了一個 GQA 子集用于評估。GQA 中的每個問題都標有問題類型。為了評估不同的問題類型集(~ 100 個詳細類型),我們從平衡的 val (k = 5) 和 testdev (k = 20) 集中隨機抽取每個問題類型最多 k 個樣本。提示。我們使用所需的 VISPROG 程序手動注釋平衡訓練集中的 31 個隨機問題。用程序注釋問題很容易,需要寫下回答該特定問題所需的推理鏈。我們向 GPT-3 提供了較小的上下文示例子集,從該列表中隨機采樣,以減少回答每個 GQA 問題的成本。

表 1.GQA 測試開發(fā)結果。我們報告原始 GQA 測試開發(fā)集的一個子集的性能

VQA 模型經過訓練可以回答有關單個圖像的問題。在實踐中,人們可能需要一個系統(tǒng)來回答有關圖像集合的問題。例如,用戶可以要求系統(tǒng)解析他們的假期相冊并回答以下問題:“在我們看到埃菲爾鐵塔的第二天,我們參觀了哪個地標?”。我們展示了 VISPROG 使用單圖像 VQA 系統(tǒng)解決涉及多圖像的任務而無需對多圖像示例進行訓練的能力,而不是采集昂貴的數(shù)據(jù)集并訓練多圖像模型。我們在 NLVRV2基準測試中展示了這種能力,其中涉及驗證有關圖像對的語句。通常,應對 NLVRV2 挑戰(zhàn)需要訓練自定義架構,將圖像對作為 NLVRV2 訓練集的輸入。相反,VISPROG 通過將復雜的語句分解為有關單個圖像的簡單問題和涉及算術和邏輯運算符的 Python 表達式以及圖像級問題的答案來實現(xiàn)此目的。VQA模型VILT-VQA用于獲取圖像級答案,并評估python表達式以驗證該語句。評估。我們通過從 NLVRV2 開發(fā)集中抽取 250 個隨機樣本來創(chuàng)建一個小型驗證集,以指導提示選擇,并在 NLVRV2 的完整公共測試集上測試泛化。提示。我們針對 NLVRV2 訓練集中的 16 個隨機語句對 VISPROG 程序進行采樣和注釋。由于其中一些示例是冗余的(類似的程序結構),我們還通過刪除 4 個冗余示例來創(chuàng)建 12 個示例的精選子集。

我們經常想要識別圖像中我們不知道名字的人和物體。例如,我們可能想要識別名人、政治家、電視節(jié)目中的人物、國家國旗、公司徽標、流行汽車及其制造商、生物物種等等。解決這個任務不僅需要定位人、面孔和物體,還需要在外部知識庫中查找事實知識來構建一組類別進行分類,例如電視節(jié)目中角色的名字。我們將此任務簡稱為事實知識對象標記或知識標記。為了解決知識標簽問題,VISPROG 使用 GPT-3 作為隱式知識庫,可以通過自然語言提示進行查詢,例如“列出電視節(jié)目《生活大爆炸》中的主要角色,用逗號分隔?!比缓?,CLIP 圖像分類模塊可以使用生成的類別列表,該模塊對定位和人臉檢測模塊生成的圖像區(qū)域進行分類。VISPROG 的程序生成器根據(jù)自然語言指令中的上下文自動確定是使用面部檢測器還是開放詞匯定位器。VISPROG 還估計檢索到的類別列表的最大大小。例如,“標記前 5 個德國汽車公司的徽標”會生成一個包含 5 個類別的列表,而“標記德國汽車公司的徽標”則會生成一個由 GPT-3 確定的任意長度的列表,截止值為 20這使得用戶可以通過調整指令輕松控制分類過程中的噪聲。評估。為了評估 VISPROG 在此任務上的表現(xiàn),我們在 46 個圖像中注釋了 100 個標記指令,這些圖像需要外部知識來標記 253 個對象實例,包括流行文化、政治、體育和藝術領域的人物,以及各種對象(例如汽車、旗幟、 水果、電器、家具等)。對于每條指令,我們通過精度(正確預測框的分數(shù))和召回率(正確預測的地面實況對象的分數(shù))來衡量定位和標記性能。標記度量要求預測的邊界框和關聯(lián)的標簽或類標簽都是正確的,而本地化會忽略標簽。為了確定定位的正確性,我們使用 IoU 閾值 0.5。我們通過 F1 分數(shù)(指令間平均精度和召回率的調和平均值)總結定位和標記性能。提示。我們?yōu)榇巳蝿談?chuàng)建了 14 個上下文示例。請注意,這些示例的說明是幻覺的,即沒有圖像與這些示例相關聯(lián)。

文本到圖像的生成在過去幾年中通過 DALL-E、Parti 和 Stable Diffusion等模型取得了令人印象深刻的進步。然而,這些模型仍然無法處理諸如“用 :p 隱藏 Daniel Craig 的臉部”(去識別化或隱私保護)或“創(chuàng)建 Daniel Craig 的流行顏色并模糊背景”之類的提示(對象突出顯示),盡管使用面部檢測、分割和圖像處理模塊的組合以編程方式實現(xiàn)這些相對簡單。實現(xiàn)復雜的編輯,例如“用戴著墨鏡的巴拉克·奧巴馬替換巴拉克·奧巴馬”(對象替換),首先需要識別感興趣的對象,生成要替換的對象的掩模,然后調用圖像修復模型(我們使用穩(wěn)定擴散) )與原始圖像、指定要替換的像素的掩碼以及要在該位置生成的新像素的描述。當VISPROG配備必要的模塊和示例程序時,可以輕松處理非常復雜的指令。評估。為了測試 VISPROG 的去識別、對象突出顯示和對象替換的圖像編輯指令,我們收集了 65 張圖像中的 107 條指令。我們手動對預測的正確性和報告準確性進行評分。請注意,只要生成的圖像在語義上正確,我們就不會懲罰使用穩(wěn)定擴散的對象替換子任務的視覺偽影。提示。與知識標記類似,我們?yōu)榇巳蝿談?chuàng)建了 10 個沒有關聯(lián)圖像的上下文示例。

我們的實驗評估了提示數(shù)量對 GQA 和 NLVR 性能的影響(第 5.1 節(jié)),比較各種提示策略的 VISPROG 在四個任務上的泛化(第 5.2 節(jié)),分析每個任務的錯誤來源(圖 9),并研究視覺原理在診斷錯誤和通過指令調整提高 VISPROG 性能方面的實用性(第 5.3 節(jié))。

圖 6 顯示,隨著 GQA 和 NLVR 提示中使用的上下文示例數(shù)量的增加,驗證性能逐漸提高。每次運行都會根據(jù)隨機種子隨機選擇帶注釋的上下文示例的子集。我們還發(fā)現(xiàn),對隨機種子進行多數(shù)投票所帶來的性能始終優(yōu)于運行中的平均性能。這與數(shù)學推理問題的思想鏈推理文獻中的發(fā)現(xiàn)是一致的。在 NLVR 上,VISPROG 的性能在提示數(shù)少于 GQA 的情況下達到飽和。我們認為這是因為 NLVRV2 程序比 GQA 需要更少的模塊,因此使用這些模塊的演示也更少。

圖 6. GQA 和 NLVRV2 驗證集上的上下文示例數(shù)量提高了性能。誤差線代表 5 次運行的 95% 置信區(qū)間。來自相同運行的預測用于多數(shù)投票。(第 5.1 節(jié))

GQA。在表1中, 我們在 GQA testdev集上評估不同的提示策略。對于在驗證集上評估的最大提示大?。?4 個上下文中的示例),我們比較了由 VISPROG 在驗證集上的 5 次運行中選擇的最佳提示組成的隨機策略(每次運行從 31 個帶注釋的示例中隨機采樣上下文中的示例) )以及多數(shù)投票策略,該策略在 5 次運行中對每個問題進行最大共識預測。雖然“隨機”提示僅略微優(yōu)于 VILT-VQA,但投票帶來了 2.7 個百分點的顯著收益。這是因為在多次運行中進行投票,每次運行都有一組不同的上下文示例,有效地增加了每個預測看到的上下文示例的總數(shù)。我們還評估了一個手動策劃的提示,其中包含 20 個示例,其中 16 個來自 31 個帶注釋的示例,以及 4 個額外的幻覺示例,旨在更好地覆蓋驗證集中觀察到的失敗案例。精心策劃的提示的性能與投票策略一樣好,同時使用的計算量減少了 5 倍,凸顯了提示工程的前景。NLVR。表2 顯示了 VISPROG 在 NLVRV2 測試集上的性能,并比較了隨機、投票和策劃的提示策略與 GQA 的效果。雖然 VISPROG 在無需對圖像對進行訓練的情況下零樣本執(zhí)行 NLVR 任務,但我們報告了 VILT-NLVR,這是一種在 NLVRV2 上進行微調的 VILT 模型,作為性能上限。雖然落后上限幾個點,但 VISPROG 僅使用單圖像 VQA 模型進行圖像理解和 LLM 進行推理,顯示出強大的零樣本性能。請注意,VISPROG 使用 VILT-VQA 作為其 VQA 模塊,該模塊在 VQAV2 單圖像問答任務上進行訓練,而不是在 NLVRV2 上進行訓練。

表 2. NLVRV2 測試結果。VISPROG 執(zhí)行 NLVR 零樣本,即無需在圖像對上訓練任何模塊。VILT-NLVR 是在 NLVRV2 上微調的 VILT 模型,用作上限。Knowledge Tagging。表3 顯示了知識標記任務的本地化和標記性能。此任務的所有指令不僅需要開放詞匯本地化,還需要查詢知識庫以獲取類別來標記本地化對象。這使得僅靠物體檢測器來說這是一項不可能完成的任務。使用原始指令,VISPROG 在標記方面取得了令人印象深刻的 63.7% F1 分數(shù),其中涉及正確本地化和命名對象,僅在本地化方面就取得了 80.6% F1 分數(shù)。VISPROG 中的視覺原理允許通過修改指令進一步提高性能。
表 3. 知識標記結果。該表顯示了原始指令的性能以及在檢查視覺原理以了解特定于實例的錯誤來源后創(chuàng)建的修改指令的性能。Image Editing。表4 顯示了語言引導圖像編輯任務的性能。圖 7 顯示了 VISPROG 中當前模塊集可能進行的廣泛操作,包括面部操作、通過顏色彈出和背景模糊等風格效果突出顯示圖像中的一個或多個對象,以及通過替換關鍵元素來更改場景上下文 在場景中(例如沙漠)。
表 4. 圖像編輯結果。我們手動評估每個預測的語義正確性。
圖 7. 圖像編輯(頂部)和知識標記任務(底部)的定性結果。

誤差分析。

VISPROG 的可視化原理可以對故障模式進行徹底分析。在圖 9 中,我們檢查每個任務約 100 個樣本的基本原理,以分解錯誤來源。此類分析為提高 VISPROG 在各種任務上的性能提供了明確的途徑。例如,由于不正確的程序是 GQA 錯誤的主要來源,影響了 16% 的樣本,因此可以通過提供更多類似于失敗問題的上下文示例來提高 GQA 的性能。通過將用于實現(xiàn)高錯誤模塊的模型升級為性能更高的模塊,也可以提高性能。例如,用更好的 NLVR VQA 模型替換 VILT-VQA 模型可以將性能提高高達 24%(圖 9)。同樣,改進用于實現(xiàn)“列表”和“選擇”模塊(知識標記和圖像編輯任務的主要錯誤來源)的模型可以顯著減少錯誤。

圖 9. VISPROG 中的誤差源。

指令調整。?

為了有用,視覺原理最終必須允許用戶提高系統(tǒng)在其任務中的性能。對于知識標記和圖像編輯任務,我們研究視覺原理是否可以幫助用戶修改或調整指令以實現(xiàn)更好的性能。圖 8 顯示了通過視覺原理揭示的本地化錯誤如何使用戶能夠修改指令,以便更好地查詢本地化模塊。修改指令的其他方式包括為知識檢索提供更好的查詢或為選擇模塊提供類別名稱以將搜索限制到屬于該類別的分段區(qū)域。表 3 和表 4 顯示,指令調整可為知識標記和圖像編輯任務帶來顯著收益。

圖 8. 使用視覺原理調整指令。通過揭示失敗的原因,VISPROG 允許用戶修改原始指令以提高性能。

VISPROG 提出可視化編程作為一種簡單而有效的方式,將LMMs的推理能力用于復雜的視覺任務。VISPROG 展示了強大的性能,同時生成高度可解釋的視覺原理。我們相信,研究整合用戶反饋以提高 VISPROG 等神經符號系統(tǒng)性能的新方法是構建下一代通用視覺系統(tǒng)的一個令人興奮的方向。


基于文本提示就可自動實現(xiàn)復雜計算機視覺任務?的評論 (共 條)

分享到微博請遵守國家法律
孟津县| 乌审旗| 微博| 百色市| 大关县| 如东县| 汕尾市| 琼海市| 越西县| 宁明县| 团风县| 龙山县| 建瓯市| 巫山县| 临湘市| 江西省| 南阳市| 抚顺县| 宜都市| 樟树市| 齐河县| 海门市| 靖江市| 南靖县| 仙居县| 鸡东县| 开化县| 吕梁市| 泊头市| 新疆| 牙克石市| 阳谷县| 贡山| 衡南县| 车险| 汽车| 尼勒克县| 定南县| 图们市| 乌拉特前旗| 漯河市|