切換語言為:簡體

微軟開源:4.7K Stars! 解鎖跨平臺的純視覺解析新框架

  • 爱糖宝
  • 2024-11-17
  • 2028
  • 0
  • 0

深入解析OmniParser:解鎖GPT-4V跨平臺用戶界面操作潛力的純視覺解析新框架

論文:

arxiv.org/pdf/2408.00…

報告:

www.microsoft.com/en-us/resea…

前言: 隨著大型多模態模型(如GPT-4V)的快速發展,我們已經見證了其在自然語言理解和推理能力上的突破。然而,當這些模型應用於用戶界面(UI)操作時,仍然面臨諸多挑戰。尤其是跨平臺(如Windows、macOS、iOS、Android)和多應用程式(如瀏覽器、辦公軟體、設計工具)中的UI理解和操作問題,當前的解決方案尚無法滿足高效自動化需求。爲了應對這一難題,微軟研究團隊提出了OmniParser,一個專注於純視覺解析的通用UI解析框架。本文將從創新點、方法原理、架構設計、預訓練策略以及功能優勢等方面,對OmniParser進行全面解析。

微軟開源:4.7K Stars! 解鎖跨平臺的純視覺解析新框架

1. OmniParser的創新點解析

OmniParser透過獨特的設計,解決了當前多模態模型在UI解析和操作中的多項瓶頸。其主要創新點包括:

  • 純視覺解析方法

    • 傳統方法往往依賴於HTML的DOM樹結構或檢視層次資訊來解析UI,而OmniParser則完全基於視覺輸入(即UI截圖),無需額外的HTML或應用內層次資訊。這使得OmniParser能夠廣泛適用於各種平臺和應用程式,而無需為每個平臺單獨適配解析邏輯。

    • 這種視覺解析方式透過螢幕截圖即可解析出所有互動元素,並生成相應的操作提示。這種通用性極大地提高了其在真實場景中的適用性。

  • 任務無關的互動區域檢測

    • OmniParser引入了一個經過微調的檢測模型,用於從螢幕截圖中識別所有可互動的圖示、按鈕和文字輸入區域。與傳統的固定座標點選不同,OmniParser採用基於Set-of-Marks(SOM) 的標註策略,透過為每個檢測到的元素分配一個唯一的ID,極大提高了多工操作的準確性。

    • 該檢測模型不僅支援通用的UI元素(如按鈕、覈取方塊、輸入框),還能夠動態適應新式UI設計中的自定義控制元件和圖示。

  • 增強的功能語義理解

    • 在UI操作中,理解每個元素的語義(即按鈕功能)至關重要。OmniParser透過一個專用的語義描述模型,為每個檢測到的圖示生成功能性描述。例如,一個“垃圾桶”圖示會被識別為“刪除”按鈕,而一個“齒輪”圖示則被識別為“設定”選項。這種功能性描述幫助GPT-4V更準確地執行使用者任務。

2. 方法原理:基於多模型協同的UI解析機制

OmniParser採用了多模組協同工作的設計原理,以充分挖掘UI截圖中的資訊。其主要方法包括:

  • 互動區域檢測模組(Interactable Region Detection)

    • 使用YOLOv8模型對UI截圖中的可互動元素進行檢測。團隊基於100,000個熱門網頁抓取了大量截圖,並從這些網頁的DOM樹中提取了互動元素的邊界框,最終構建了一個包含67,000張標註截圖的大規模訓練集。

    • 透過20輪的強化訓練,該檢測模型能夠在多平臺(桌面、移動、網頁)環境中準確識別多達40種不同型別的UI控制元件。訓練過程中採用了Adam最佳化器和餘弦退火學習率排程,進一步提升了模型的魯棒性。

  • 文字識別與OCR模組

    • 除了圖示檢測,OmniParser還整合了一個先進的OCR模組,用於提取UI中的文字資訊。這包括按鈕上的標籤、選單選項以及輸入框中的提示文字等。

    • 透過結合OCR檢測結果與圖示邊界框,可以更全面地理解螢幕中的操作元素。例如,在表單填寫任務中,OmniParser能夠識別出“姓名”、“電子郵件”等欄位,並自動關聯到相應的輸入框位置。

  • 功能描述生成模組(Icon Functional Description)

    • 爲了提升模型對UI元素的理解,研究團隊構建了一個7,000對圖示與功能描述的資料集。這些資料透過GPT-4生成,並用於微調BLIP-2模型,使其能夠對UI圖示提供更準確的功能性描述。

    • 例如,當用戶任務是“開啟設定”時,OmniParser能夠基於圖示描述直接定位到螢幕上的“齒輪”圖示,而無需透過大量上下文分析。

3. 架構設計:模組化與擴充套件性兼備

OmniParser採用模組化架構設計,旨在實現高效的跨平臺適應能力:

  • 影象編碼器(Image Encoder)

    • 採用Swin Transformer作為核心視覺特徵提取器。相比傳統摺積神經網路,Swin Transformer具有更強的多尺度特徵捕捉能力,特別適合處理複雜的UI截圖。

    • 輸入影象經過特徵提取後,生成多層次的視覺嵌入,這些嵌入將被傳遞到後續的解碼模組中進行進一步分析。

  • 多工解碼器(Multi-Task Decoder)

    • 解碼器部分由多個子模組組成,包括互動區域解碼器文字區域解碼器功能性描述解碼器。每個模組針對特定任務進行了最佳化,但共享相同的底層架構,從而實現模組間的高效協作。

    • 透過多工學習(Multi-Task Learning),OmniParser能夠同時完成多項解析任務,從而大幅提升整體解析效率。

  • 任務提示機制(Prompting Mechanism)

    • 爲了更好地適應不同任務需求,OmniParser採用了任務提示機制。例如,透過輸入“<DETECT_BUTTON>”提示符,模型將專注於檢測按鈕類元素;而輸入“<EXTRACT_TEXT>”則會引導模型聚焦於文字區域的提取。這種靈活的任務切換機制顯著提高了模型的通用性。

4. 預訓練方法與資料增強策略

OmniParser爲了進一步提升模型的泛化能力和適應性,採用了一系列預訓練方法:

  • 資料增強(Data Augmentation)

    • 爲了提高模型在多種UI設計上的魯棒性,團隊引入了豐富的資料增強策略,包括隨機裁剪、翻轉、亮度調整和影象模糊等。這些增強策略幫助模型更好地適應不同平臺和裝置上的UI變化。

  • 領域自適應預訓練(Domain Adaptation Pre-training)

    • 透過在特定領域(如移動端應用和桌面應用)分別進行微調,OmniParser能夠顯著提升在各自領域的解析精度。例如,在移動端表單填寫任務中,其欄位識別準確率提升了10%以上。

5. 功能與效能評估:基準測試中的卓越表現

OmniParser在多個公開基準測試集上進行了廣泛的評估,並取得了顯著的效能提升:

  • ScreenSpot基準測試

    • 包含600多個來自移動、桌面和網頁的UI截圖。OmniParser在不同平臺上的平均準確率達到93.9%,顯著超越GPT-4V基線模型的70.5%。尤其在複雜佈局和多元素場景中,其識別準確率提升尤為顯著。

微軟開源:4.7K Stars! 解鎖跨平臺的純視覺解析新框架

微軟開源:4.7K Stars! 解鎖跨平臺的純視覺解析新框架

  • Mind2Web基準測試

    • 在跨網站導航任務中,OmniParser展示出卓越的適應性。其跨域任務的操作F1得分比傳統基於HTML的方法提高了5.2%,在元素識別準確率上更是超越了使用完整HTML資訊的GPT-4V模型。

微軟開源:4.7K Stars! 解鎖跨平臺的純視覺解析新框架

  • AITW(Android in the Wild)基準測試

    • 在包含30,000個使用者任務的移動應用測試中,OmniParser以57.7%的整體任務成功率領先於現有最佳模型,展示了其在實際移動裝置任務中的高效性。

微軟開源:4.7K Stars! 解鎖跨平臺的純視覺解析新框架

6. 實驗分析與案例視覺化

  • 區域性語義增強的影響

    • 實驗結果表明,透過為每個UI元素新增區域性功能描述,GPT-4V在選擇正確操作物件時的準確率顯著提升,從70.5%提高至93.8%。這表明語義提示在複雜任務中的關鍵作用。

  • 錯誤案例分析與改進方向

    • 分析顯示,當UI中存在多個相似元素(如多個“提交”按鈕)時,GPT-4V可能會混淆操作物件。未來計劃透過增強語義描述模型

7. 使用例子

首先我們要到clone它們的倉庫或者將它們的檔案下下來。倉庫地址:github.com/microsoft/O…

然後進入資料夾,執行下面命令安裝環境:

conda create -n "omni" python==3.12
conda activate omni
pip install -r requirements.txt

然後下載模型, ckpts檔案在:huggingface.co/microsoft/O… ,並將它們放在 weights/下,預設資料夾結構是:weights/icon_detect,weights/icon_caption_florence,weights/icon_caption_blip2。

最後,將 safetensor 轉換為.pt 檔案。

python gradio_demo.py

執行 Gradio 示例,只需執行:

python gradio_demo.py


0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.