Set-of-Mark Visual Prompting for GPT-4V (SoM)は、視覚データの理解と処理能力を向上させるツールです。
このツールは、食べ物の画像からカロリーの概算を表示したり、物体の画像から壊れた物体を検出したりなどのさまざまな活用事例が考えられます。
この記事では、SoMの仕組みや導入方法などを詳しく解説しています。
SoMをこれから導入していくかどうかの参考にしてください。
- Set-of-Mark Visual Prompting for GPT-4V (SoM)とは
- Set-of-Mark Visual Prompting for GPT-4V (SoM)の仕組み
- Set-of-Mark Visual Prompting for GPT-4V (SoM)を使うとどうなる?
- Set-of-Mark Visual Prompting for GPT-4V (SoM)の利用にかかる費用
- Set-of-Mark Visual Prompting for GPT-4V (SoM)を導入するには
- Set-of-Mark Visual Prompting for GPT-4V (SoM)の活用例を考えてみた
- まとめ:Set-of-Mark Visual Prompting for GPT-4V (SoM)で画像の解析精度アップ
PHPを独学で勉強した後にWeb業界に参入。大手企業でプログラマーとして活躍後、自社サービスの立ち上げ、大手検索エンジンサービスの保守運用作業、ソーシャルゲーム開発などに携わりながら、SE・管理職の道を歩んで現在に至る。現在は、管理職に携わる傍ら、これまでの経験を活かした執筆活動を続けている。
Set-of-Mark Visual Prompting for GPT-4V (SoM)とは

Set-of-Mark Visual Prompting(SoM)とは、GPT-4V(視覚入力対応のGPT-4)に特定の視覚的なマークやキューを付与することで、視覚データの理解と処理能力を向上させるツールです。
詳しい仕組みなどは後述しますが、視覚的なプロンプトを使用することで、複雑な視覚シーンやオブジェクトの関係性をよりよく理解することができます。
SoM自体は無料のオープンソースですが、使うには有料版のChatGPTが必要です。GPT-4Vのプランに応じた料金を支払うことで使用できます。
Set-of-Mark Visual Prompting for GPT-4V (SoM)の仕組み

次に、Set-of-Mark Visual Prompting for GPT-4V (SoM)の仕組みを見ていきましょう。
ここでは、以下の項目に分けて、SoMの仕組みを解説します。
- 画像内の物体をマークする
- マークした画像をGPT-4Vに読み取らせる
- マークに基づいて回答が出る
それぞれの項目をみながら、SoMの仕組みを理解していきましょう。
画像内の物体をマークする

出典:SoM : Set-of-Mark Prompting Unleashes Extraordinary Visual Grounding in GPT-4V
SoMでは、画像内の特定の物体や領域をマークすることで、視覚入力に対する物体の理解と処理能力を向上することができます。
以下は、そのおもなプロセスです。
- 視覚的なマークの設定
- マーク付き画像の描画
- マークに基づくトレーニング
画像内の注目すべき物体や領域に対して、特定のマークを設定します。マークとはボックス・円・矢印・色付きのハイライトなどです。
アップロードされた画像に対して、これらのマークを描画して表示します。GPT-4Vは、これらのマーク付き画像を通じてトレーニングされ、マークが示す領域に対して特に注意を払うよう学習します。
マークした画像をGPT-4Vに読み取らせる
SoMでは、特定の視覚的なマークがつけられた画像をGPT-4Vに読み取らせることで、対象物体の理解を深め、より正確な解析や応答が得られます。
以下は、そのおもな手順です。
- 画像の準備とマークの設定
- マーク付き画像の入力
- 視覚的な特徴の学習
- 推論と応答生成
作成したマーク付き画像を入力して、データセットとして整理します。
画像を領域ごとに分割して、各領域にマークをつけることで、GPT-4Vに対して各オブジェクトの位置関係を認識しやすくします。
マークに基づいて回答が出る
画像内の特定の領域や物体にマークをつけ、それに基づいて回答を生成します。GPT-4V側でプロンプトを入れると、SoMのマーキングに基づいて回答が返ってきます。
以下は、その一例をまとめたものです。
| 分野 | 画像例 | マーク | 質問 | GPT-4Vの回答 |
| 医療画像解析 | レントゲン画像 | 肺の異常部分にバウンディングボックス | 「このレントゲン画像のマークされた部分に異常がありますか?」 | 「マークされた部分には異常が見られます。右肺中葉に影があり、肺炎または腫瘍の可能性があります。追加の検査を推奨します。」 |
| 自動運転 | 自動運転車のカメラ映像 | 歩行者と信号機にハイライト | 「この画像で歩行者と信号機がどこにあるか教えてください。」 | 「歩行者は中央左に位置し、横断歩道を渡っています。信号機は右上に位置し、青信号を示しています。」 |
| セキュリティ監視 | 監視カメラの映像 | 不審人物にバウンディングボックス | 「この画像で不審な人物の動きを解析してください。」 | 「マークされた人物はバックヤードに頻繁に出入りしており、通常の顧客行動ではありません。追加の監視と確認が必要です。」 |
また、以下の記事では、OpenAI APIに関して詳しく説明しています。ぜひ、参考にしてください。
Set-of-Mark Visual Prompting for GPT-4V (SoM)を使うとどうなる?

次に、Set-of-Mark Visual Prompting for GPT-4V (SoM)でどのようなことができるかみていきましょう。
以下の項目に分けて、SoMでできることを解説します。
- 高精度で画像を分析できる
- 画像に含まれる物体の数がわかる
- 物体を分けて認識できる
SoMを活用すれば、高精度な画像分析や物体に分けた認識が可能です。
高精度で画像を分析できる
SoMを活用すれば、高精度での画像の分析が可能です。画像に含まれている物体の名称や概要が高い精度でわかるようになります。
医療分野であれば、高解像度の医療画像から病変を自動的に検出し、診断支援をおこなうことが可能です。また産業分野では、製造ラインにおける製品の外観検査を自動化し、不良品を高精度に検出することができます。
ほかにもセキュリティの分野で、高精度な顔認識技術を使用して、アクセス制御や監視システムの強化にも役立ちます。
SoMを使用することで、高性能なハードウェアと専用のソフトウェアツールを組み合わせて、高精度な画像分析の実現が可能です。
画像に含まれる物体の数がわかる
SoMの仕組みを用いることで、画像に含まれる物体の数を特定することが可能です。設定したマークに基づき、GPT-4Vに物体の数を数えてもらいます。
森の中の鳥といった目視しにくいものでも、SoMでマークアップしておけば、GPT-4Vから鳥の数の回答が得られます。
倉庫内の商品棚の画像から商品の数を数える、といったことも可能です。応用すれば、商品管理や棚卸の業務への活用が期待できます。
SoMを活用することで、GPT-4Vはマークされた物体を正確にカウントし、各種応用分野で有用な情報を提供できます。
物体を分けて認識できる
SoMを利用して、画像に含まれる物体を分けて認識することができます。特定の物体をマークしてGPT-4Vが各物体を個別に認識・解析・分類すると、物体がそれぞれどのようなものであるか判別が可能です。
たとえば、道路上の車の画像を用いれば車の数だけでなく、5台の乗用車と2台のバス、そして1台のトラックが含まれている、といったような認識ができます。
SoMが人の目だけではわかりにくい物体まで認識してくれれば、確認や検証といった分野で活躍するでしょう。
Set-of-Mark Visual Prompting for GPT-4V (SoM)の利用にかかる費用

SoMの利用にかかる費用をみていきましょう。SoM自体は無料のオープンソースですが、GPT-4Vは有料プランとなっているため費用がかかります。
有料プランに登録した上で、トークンあたりの料金が加算されていく仕組みになっています。
以下は、GPT-4Vの料金とおもな機能をまとめた一覧表です。
| 項目 | 内容 |
| 料金 |
|
| おもな機能 |
|
具体的な料金は使用量や契約内容によって異なるため、詳細は公式サイトをご確認ください。
Set-of-Mark Visual Prompting for GPT-4V (SoM)を導入するには

ここからは、SoMを導入する方法をみていきましょう。SoMは、以下の2つの方法で導入することができます。
- コマンドでパソコンにインストールする方法
- Webブラウザから使う方法
自社で利用しやすい方法を選んでみてください。
コマンドでパソコンにインストールする方法
ここでは、コマンドでパソコンにインストールする方法を紹介します。
以下の手順でSoMをインストールします。
- パッケージをインストールする
- SoMのモデルをダウンロードする
- デモを起動する
それぞれ実行コマンドを紹介していますので、参考にしてください。
パッケージをインストールする
SoMパッケージをインストールするためには、Pythonとpipが必要です。ない場合はPythonの公式サイトからダウンロードしてください。
準備ができたら以下のコマンドを実行して、仮想環境を構築します。
# 仮想環境の作成
python -m venv som_env
# 仮想環境の有効化 (Windows)
som_env\Scripts\activate
# 仮想環境の有効化 (Mac/Linux)
source som_env/bin/activate
仮想環境を構築できたら、SoMのために必要なパッケージをインストールしましょう。一般的には、OpenCV、numpy、matplotlibなどのパッケージが必要です。
以下は、これらのパッケージをインストールするコマンドです。
# pipを最新バージョンにアップデート
pip install –upgrade pip
# 必要なパッケージのインストール
pip install opencv-python numpy matplotlib
もし、SoMのための特定のライブラリが提供されている場合、それをインストールします。
以下は、仮のパッケージ名を使用した例です。
# SoM用のライブラリのインストール
pip install som-library
「som-library」は実際のパッケージ名に置き換えてください。
以上で、SoMパッケージのインストールは完了です。
SoMのモデルをダウンロードする
SoMパッケージのインストールが完了したら、SoMモデルをダウンロードします。まず、モデルのリポジトリをクローンします。
# SoMのモデルリポジトリをクローン
git clone https://github.com/username/som-model.git
# リポジトリのディレクトリに移動
cd som-model
次に、必要に応じてモデルの依存関係をインストールします。
# 依存関係のインストール
pip install -r requirements.txt
以上のコマンドを実行すれば、SoMのモデルがダウンロードできます。
デモを起動する
SoMモデルに含まれているデモスクリプトを設定します。以下は、仮想的なデモスクリプトの一例です。
import cv2
import numpy as np
import matplotlib.pyplot as plt
from som_model import SoMModel # モデルのインポート
# モデルのロード
model = SoMModel(‘path/to/your/model’)
# デモ用の画像の読み込み
image = cv2.imread(‘path/to/your/demo_image.jpg’)
# マークの作成(例: バウンディングボックス)
marks = model.create_marks(image, [(“bounding_box”, (50, 50, 100, 100))])
# SoMによる解析
results = model.analyze(image, marks)
# 結果の表示
print(results)
# 画像の表示
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.show()
デモスクリプトを実行して、SoMモデルの動作を確認します。
スクリプトが正常に実行されると、マークされた画像と解析結果が表示されます。
Webブラウザから使う方法
SoMはWebブラウザから使うこともできます。SoMのデモページにアクセスし、画像をアップロードすることでSoMの機能を利用可能です。
以下のリンクからアクセスすることでデモページに遷移できますので、ぜひ試してみてください。
SoM : Set-of-Mark Prompting Unleashes Extraordinary Visual Grounding in GPT-4V
Set-of-Mark Visual Prompting for GPT-4V (SoM)の活用例を考えてみた

Set-of-Mark Visual Prompting for GPT-4V (SoM)の機能から考えられる活用例を紹介します。
- 食べ物のカロリーの概算を出す
- 物体の違いを比較する
- 目視でわかりにくい物体の個数を数える
- 機械をパーツごとに読み取る
- 画像に対する正確な説明文を作る
これらの活用例が実現すれば、多くのビジネスにて活躍が期待できます。
食べ物のカロリーの概算を出す
SoMの機能を駆使し、食べ物のカロリーの概算を出す活用方法が考えられます。写真の中の食べ物を読み取り、それぞれどんな材料が使われた料理か認識できれば、おおよそのカロリーを算出可能です。
これから食事をする食べ物の画像をアップロードし、カロリーを推定するようなWebアプリケーションの構築に役立つでしょう。ダイエットや健康管理を支援するアプリへの応用ができるかもしれません。
SoMで食べ物の数と内容を正しく読み取ることで、正確なカロリー算出が可能になれば、効率的なダイエットができるでしょう。
物体の違いを比較する
SoMを活用すれば、物体の違いを比較することができるでしょう。たとえば、正常な物体と壊れた物体を比べて破損箇所を見つける、などの利用方法が考えられます。
たとえば、製品工場での検品に役立つかもしれません。
人の目を介さずに自動で壊れた物体を見つけられれば、コスト削減につながるでしょう。
目視でわかりにくい物体の個数を数える
目視でわかりにくい物体の個数を数えられることで、在庫管理などに活用することが考えられます。リアルタイムに部品の数などを管理することで、在庫管理の精度が向上するでしょう。
コンビニエンスストアでこの技術が応用できれば、在庫の補充に応用できるかもしれません。
商品の在庫を常に画像でチェックし、一定数の商品がなくなったらアラートを飛ばして店員に知らせる、などの機能が考えられます。
機械をパーツごとに読み取る
SoMを利用すれば、機械をパーツごとに読み取ることができるでしょう。
活用例としては、自動車のエンジン検査への活用が考えられます。エンジンの組み立てラインで、各パーツの正確な配置や欠陥の有無チェックに役立てることができます。
エンジン検査を自動でできるようになれば、コスト削減につながるでしょう。
画像に対する正確な説明文を作る
画像に対する正確な説明文を作ることが、SoMを活用して実現できます。
具体的には、オンライン小売業の製品説明画像の生成が考えられます。
製品ページに正確で魅力的な説明文を迅速に追加することで、効果的な製品プロモーションを実現できるでしょう。
まとめ:Set-of-Mark Visual Prompting for GPT-4V (SoM)で画像の解析精度アップ

今回は、Set-of-Mark Visual Prompting for GPT-4V (SoM)に関して、以下のことがわかりました。
- SoMは視覚データの理解と処理能力を向上させる機能である
- 画像内の物体をマークした画像をGPT-4Vに読み取らせることでマークに基づいた回答が得られる
- SoMを活用すれば高精度で画像を分析できたり物体の数を数えたりすることができる
- SoMは無料だがGPT-4Vは有料となる
SoMは、視覚データの理解と処理能力を向上させる機能です。
食べ物のカロリーの概算を表示したり壊れた物体を検出したりなど、さまざまな分野での活用が期待できます。
この記事を読んでSoMに関してさらに詳しく知りたい方は、AI開発に知見のある、株式会社Jiteraにお気軽にご相談ください。
SoMの活用事例を紹介しながら、自社でSoMを活用する際のメリットなどをご提案させていただきます。

