[論文] OmniParser: Screen Parsing tool for Pure Vision Based GUI Agent
ここを↓眺めていたら目についたので読んでまとめてみる(解釈間違えているところあればご指摘ください)。
Blog
プロジェクトページ(タイトル変になってるけど)
Github
デモもあるよ(Huggingface)
Abstract
(NotebookLM 要約)
この論文は、 OmniParser という、ユーザーインタフェース(UI)のスクリーンショットから構造化された要素を抽出する新しい手法を提案している。 OmniParser は、GPT-4V などの大規模なビジョン言語モデルが UI を操作する際に、より正確なアクションを生成することを可能にすることを目的としている。この手法は、UIスクリーンショットからインタラクティブなアイコンを検出するモデルと、検出されたアイコンの機能を説明するモデルを組み合わせることで、GPT-4V の UI 理解能力を大幅に向上させる。これは様々なプラットフォームとアプリケーションで動作する汎用的な GUI エージェントの開発に役立つとされている。
手法
OmniParser の処理フローは以下のとおり。
- アイコン・テキスト領域を検出するフェーズ
- 検出した領域の示す意味情報を抽出するフェーズ
に分かれている。
Interactable Region Detection
UI 画面からインタラクティブな領域を検出する。
GPT-4V に画面上で操作するべき xy 座標値を直接予測させるのではなく、以前の研究に従い Set-of-Marks アプローチを使用して、インタラクティブなアイコンの境界ボックスを UI スクリーンショットの上に重ね、 GPT-4V にアクションを実行する境界ボックス ID を生成する。しかし、ウェブブラウザーの DOM ツリーから取得した ground truth のボタン位置を使用する手法や AITW データセットのラベル付き境界ボックスを使用する手法とは異なり、インタラクティブなアイコン/ボタンを抽出するために検出モデルを微調整する。
具体的には、それぞれ DOM ツリーから派生したインタラクティブなアイコンのバウンディングボックスでラベルづけされた 67k のスクショ画像を含む、アイコンデータセットを収集する。
領域検出とは別に、 OCR モジュールを使ってテキストのバウンディングボックスを抽出する。重複率の高いボックスを削除(しきい値 90%以上)しながら、 OCR モジュールとアイコン検出モジュールからのバウンディングボックスをマージする。
Inocorpoating local semantics of functionality
SoM のようなバウンディングボックスと ID をスクショに重ね合わせた画像を入力すると、GPT-4V に誤解を与える可能性がある。これは、各アイコンの意味情報の識別と、特定のアイコンボックスに対する次のアクションの予測という複合的なタスクを同時に遂行することに限界があるため。このことについては他の研究でいくつか報告されている。
これに対処するため、アイコンの持つ機能に関する説明文(Local Semantics)を生成するファインチューニング済みモデルを使用し、出力結果をプロンプトに組み込む。
アイコンの機能説明を行うためのモデルはないので、GPT-4o を使って 7k 件のアイコンと説明のペアのデータセットを収集し、このデータセットで BLIP-v2 モデルをファインチューニングする。
※ BLIP-v2:画像エンコーダと LLM からなる視覚言語タスク実行用モデル。
fine-tuning を経て、モデルはアイコンの見た目を説明した文ではなく、そのアイコンがどのような意味を持つのかを説明できるようになった。
実験結果
SeeAssign task
GPT-4V では、画面上にバウンディングボックスがたくさんある場合、タスクに対して誤ったバウンディングボックスを指し示すことがよくある。ボックス内のテキストやアイコンの説明文を追加することで、正しいアイコン ID を指し示す能力が 0.705 から 0.938 に改善された。
左:w/o[43]→browse button, w/[36]→正解、 右:w/o 回答不能、 w/[9]→正解。
ScreenSpot
モバイル・デスクトップ・ウェブの 3 つのプラットフォームにおいて、ベースラインを大幅に改善している。
Mind2Web
HTML の情報を使わない場合でも、すべてのサブカテゴリーで HTML を使用する GPT-4V のパフォーマンスを上回っている。また、GPT-4V+SoM の手法よりも優れた性能を示していることがわかった。
GPT-4V+SoM: 画像に SoM を加えるパターン。
GPT-4V+textual choice: 画像へ SoM を加える代わりに、DOM 情報を直接プロンプトに埋め込む。
AITW(Android in the Wild)
モバイルナビゲーションベンチマークに関する評価。3 万件のタスクと 71 万 5 千件の軌跡を含むデータセット。ほとんどのカテゴリーにおいて改善されたパフォーマンスを発揮し、GPT-4V+history に比べ全体で 4.7% 上昇した。
GPT-4V+history: 各ステップの各スクリーンショットに対して、IconNet によって検出された UI 要素を SoM を介して使用する手法。
考察
失敗例がいくつか紹介されていた。
- Repeated Icon/Texts(反復表示されるアイコン・テキスト)
- 似たようなテキストやアイコンが繰り返し複数表示されていると、説明文も重複してしまうため誤ったアイコンをクリックしてしまうケースがある。
- 説明文をさらに洗練させないといけない。↓のケースだと近傍のテキストを組み合わせた説明文にするとか?(例:アラームを有効にするボタン。有効にすると 07:25 にアラームが設定される)。
- 説明文をさらに洗練させないといけない。↓のケースだと近傍のテキストを組み合わせた説明文にするとか?(例:アラームを有効にするボタン。有効にすると 07:25 にアラームが設定される)。
- 似たようなテキストやアイコンが繰り返し複数表示されていると、説明文も重複してしまうため誤ったアイコンをクリックしてしまうケースがある。
- Corase Prediction of Bounding Boxes(バウンディングボックスの粗い予測)。
- 下記画像の MORE の部分。説明文を含めた領域を示すようになっており、LLM が正しく要素を選択したとしてもタップできなくなる可能性がある
- OCR の性能を改善させる(クリック可能なテキストかどうかを加味して学習させる)。
- OCR の性能を改善させる(クリック可能なテキストかどうかを加味して学習させる)。
- 下記画像の MORE の部分。説明文を含めた領域を示すようになっており、LLM が正しく要素を選択したとしてもタップできなくなる可能性がある
- Icon Misinterpretation(アイコンの誤解)。
- アイコンの説明文が誤っているパターン。右上の「…」ボタンをクリックすべきだが、このアイコンに対する説明文は”loading or buffering indicator”(ロード中みたいなやつ?)となっていたため、LLM が正しい機能を理解できなかった。
- 画像全体の文脈を踏まえてで説明文を生成してやる必要がありそう。
- 画像全体の文脈を踏まえてで説明文を生成してやる必要がありそう。
- アイコンの説明文が誤っているパターン。右上の「…」ボタンをクリックすべきだが、このアイコンに対する説明文は”loading or buffering indicator”(ロード中みたいなやつ?)となっていたため、LLM が正しい機能を理解できなかった。
Discussion