【Set-of-Mark Visual Prompting】GPT-4Vの画像認識能力を高めるプロンプト技術
3つの要点
✔️ GPT-4Vの画像認識能力を高めるプロンプト技術
✔️ あらかじめ入力画像をセグメンテーション&マーキングするだけ
✔️ 画像中のオブジェクト間の関係性を捉えられる
Set-of-Mark Prompting Unleashes Extraordinary Visual Grounding in GPT-4V
written by Jianwei Yang, Hao Zhang, Feng Li, Xueyan Zou, Chunyuan Li, Jianfeng Gao
(Submitted on 17 Oct 2023 (v1), last revised 6 Nov 2023 (this version, v2)])
Comments: Published on arxiv.
Subjects: Computer Vision and Pattern Recognition (cs.CV); Artificial Intelligence (cs.AI); Computation and Language (cs.CL); Human-Computer Interaction (cs.HC)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
研究概要
最近、ChatGPTの有料版にGPT-4Vが搭載され、画像も扱えるようになりました。そのため、ChatGPTユーザーは、プロンプトとして画像を入力し、その画像に関する質問をChatGPTに投げかけることが可能になっています。
しかし、従来のGPT-4Vだと、画像中のオブジェクト間の関係性を上手く捉えられないという課題がありました。
そこで、そのようなオブジェクト間の関係性を捉える能力を高めるために、Set-of-Mark Visual Prompting(SoM)が、Microsoftの研究チームらによって開発されました。例えば、以下の右図が、本研究のSoMによるGPT-4Vの出力結果で、左図が何も工夫していない出力結果です。
右図を見ると、オブジェクトをセグメンテーションで区切り、それぞれにマーキングされているのが分かります。さらに、GPT-4VのConversation結果を見ても、SoMを施している方は正解し、施していない方は、不正解なのが分かります。
どのようにしてSoMを実現しているのか、次のセクションで見ていきましょう。
Set-of-Mark Visual Promptingの概要
SoMの仕組みは至ってシンプルで、以下の手順で処理を行います。
- SoMという物体検出モデルで、画像内のオブジェクトをセグメンテーション
- SoMにより各セグメントにマークを付ける
- SoMによって処理された画像をGPT-4Vに入力
- GPT-4V側で通常通りプロンプト文を入力
要するに、セマンティックセグメンテーションで画像を領域分割し、各領域にマークを付けることで、「GPT-4Vに、各オブジェクトの位置関係を認識しやすくしている」、ということをしているだけです。
この時、プロンプトに用いる文章は、特に何も工夫しません。GPT-4Vに入力する画像を少しいじるだけで、GPT-4Vの画像認識能力が上がるという点が、本研究の肝なのです。
SoMの概略は、以下の図の通りです。
この図の概略は、以下の図の通りです。
- プロンプト文:中央下のQuestion「Can you count hou many fruits and what are the categories in the basket?」
- 入力画像:中央あたりのリンゴの画像
- 普通のGPT-4Vの出力:右端の出力図
- SoMによるGPT-4Vの出力:左端の出力図
ここで、SoMを適用する場合でも適用しない場合でも、同じプロンプト文を用います。
この時、「複数のリンゴが映る画像」が直接GPT-4Vに入力された場合、図の右側のように、GPT-4Vは間違った答えを出力します。
一方で、この画像をSoMに通してセグメンテーション&マーキングし、そうしてオブジェクトにマークが付いた画像をGPT-4Vに入力した場合は、図の左側のように、GPT-4Vは正解した答えを出力します。
SoMの概略を掴んだところで、次に、SoMによる画像のセグメンテーション手法を見ていきましょう。
画像のセグメンテーション方法
SoMプロンプトを適切に用いるためには、入力画像を意味のある領域に分割する必要があります。そのために、本研究では以下のようなモデルが利用されています。
- MaskDINO
- SEEM
- SAM
- Semantic-SAM
上図のように、セグメンテーションモデルによって、分割される領域が変わってくるので、比較検討が必要です。
マーキング方法
画像が分割され、意味のある領域に分けられた後、各領域の上にマークが生成されます。ここで、以下の2点を考慮する必要があります。
- マークの種類
- マークの位置
アルファベット、数字、ボックス、マスクの境界など、さまざまな形式のマークが考慮されます。これらのマークは、当然GPT-4Vによって認識されやすいものである必要があります。
また、各領域にマークを、どのように配置するかも重要です。マークを各領域の中心に配置することが基本的な方法ですが、これにより領域が重なる可能性があります。
このような重なりを避けるために、以下のようなマーク配置のアルゴリズムが提案されています。
このアルゴリズムは、マスクの面積を計算し、それらを昇順に並べ替えることから始まります。その後、各領域に対して最適なマークの位置を決定します。
ここで、Find_Center関数は与えられた領域rの中心を見つけるために使用されます。DT(r)は、領域rに対して距離変換(distance transform)を実行し、各ピクセルが領域の境界からどれだけ離れているかを計算します。そして、arg max(D)は、距離変換で得られた距離マップDから最大値の位置を見つけ出します。これが領域の中心cになります。
この操作を、重複が無いように各領域に対して行い、各領域の中心を割り出して、その中心にマークを付けているのです。
このように画像を前処理することで、以下のようにGPT-4Vと対話できます。
実験
実験内容
本研究の比較実験では、以下のベンチマークが使用されました。
また、デフォルトのGPT-4Vベースラインと比較することで、提案されたSet-of-Mark(SoM)プロンプトのメリットを検証しています。
さらに、最先端のオープンソースのLMMであるLLaVa-1.5を定量的に評価し、MiniGPT-v2との比較を定性的に行っています。これらのモデルは、目標とする視覚タスクからの大量のデータを用いて訓練されています。視覚ベンチマークにおいて、クローズドソースとオープンソースのLMMを比較するのはこの研究が初めてです。
加えて、各セグメンテーションタスクには、MaskDINOやOpenSeeDなど、様々なモデルとGPT-4Vを比較しています。
結果
定量的評価の結果は、以下の通りです。
結果より、本研究の「SoMをGPT-4Vに適用する戦略」が、最も性能が高いことが分かります。
まとめ
Set-of-Mark(SoM)をGPT-4Vに適用し、画像の特定の領域に記号的なマークを重ねることで、GPT-4Vの画像認識能力を引き出すことができるが、本研究で示唆されました。
SoMは将来のLMMにおけるマルチモーダルプロンプトの研究を促進し、マルチモーダル汎用人工知能(AGI)への道を開くことが期待されます。
この記事に関するカテゴリー