Grounding
グラウンディングは、言葉とその指示対象を結び付けます。ビジョンでは画像領域、言語モデルでは情報源や事実が対象です。ビジュアルグラウンディングのタスク、モデル、コードについて解説します。
グラウンディングとは、言葉やその他の記号を、それらが指す対象に結び付けるプロセスです。これにより、AIシステムの言語を、根拠として示せる情報に結び付けます。コンピュータービジョンにおけるビジュアルグラウンディングは、語句が表す画像や動画内の領域を特定することです。たとえば、「ベージュのコートを着た男性」に対して、グラウンディングモデルはその男性を囲むバウンディングボックスまたはマスクを返します。大規模言語モデル (LLMs)では、生成テキストを取得した文書、検索結果、またはツールの出力に結び付けることを意味し、主張の出典を追跡可能にします。どちらの意味も、認知科学者Stevan Harnadが1990年に提起した記号接地問題に通じています。すなわち、システムが操作する記号が、それを読む人だけでなく、システム自身にとっても意味を持つにはどうすればよいかという問題です。
ビジュアルグラウンディングのタスク#
- フレーズグラウンディング: キャプション内の「女性」と「彼女の犬」のように、文中で言及されたすべての物体を特定します。
- 参照表現理解: 「左から2番目の車」のように、表現が特定する単一の物体を見つけます。RefCOCO、RefCOCO+、RefCOCOgのベンチマークには、COCO画像に対するこのような表現が収集されています。RefCOCO+では「左」など位置を示す語が禁止されており、外見を描写する必要があります。
- オープンボキャブラリー検出: クローズドセットの物体検出モデルが持つ固定クラス一覧にとらわれず、推論時にテキストで指定されたカテゴリのすべてのインスタンスを見つけます。
- グラウンディング付きキャプションと回答: ビジョン言語モデル (VLM)が説明や回答を生成し、言及した各物体にボックスを付けます。
- 時間・3Dグラウンディング: 文が説明する動画内の時点、または部屋の3Dスキャン内の物体を見つけます。
グラウンディングモデルの仕組み#
グラウンディングモデルはテキストと画像をエンコードし、画像内の各候補領域と各フレーズを照合してスコアを付け、しきい値を超える領域を残します。学習では、多くの場合、画像とテキストのペアを使った対照学習により、2つの埋め込み空間を対応付けます。これにより、「青いバックパック」の埋め込みは青いバックパックの特徴に近づきます。より高性能なモデルは、クロスアテンションによって早い段階でモダリティを融合し、単語に応じてネットワークが計算する視覚特徴を変化させます。
GLIPは物体検出をフレーズグラウンディングとして再定義し、検出データとグラウンディングデータを1つのモデルの学習に使えるようにしました。Ultralytics Platformが自動アノテーション用にホストするGrounding DINOは、カテゴリ名や指示表現を受け付け、COCOの学習データを一切使用せずにCOCOで52.5 APを達成しました。2025年11月に公開され、PlatformでSAM 3 TextとしてホストされているMetaのSAM 3は、「黄色いスクールバス」などの短い名詞句に該当するすべてのインスタンスを、画像や動画全体でセグメント化し、追跡します。生成VLMは、回答に添えてボックス座標をテキストまたは特殊な位置トークンとして出力することでグラウンディングを行います。VLM Leaderboardでは、オープンボキャブラリー検出器と生成VLMが、実世界の検出データセットのクラス名をどれだけ正確にグラウンディングできるかを比較します。
YOLOEは清華大学の研究者が発表し、YOLO26アーキテクチャに基づくYOLOE-26としてUltralyticsパッケージで利用できます。カテゴリ名や短いフレーズをリアルタイムでグラウンディングします。テキストエンコーダーが各フレーズを埋め込みに変換し、検出ヘッドが画像内のすべての領域と照合します。
from ultralytics import YOLOE
# オープンボキャブラリー対応のYOLOE-26検出・セグメンテーションモデルを読み込みます
model = YOLOE("yoloe-26s-seg.pt")
# 各フレーズはテキストエンコーダーによって1回だけ埋め込まれ、モデルが検出できるクラスになります
model.set_classes(["bus", "person", "sunglasses", "traffic sign"])
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# グラウンディングされた各フレーズをピクセル単位のボックス (x1, y1, x2, y2) とともに出力
for cls, box in zip(result.boxes.cls.tolist(), result.boxes.xyxy.tolist()):
print(result.names[int(cls)], [round(v) for v in box])出力された各行には、フレーズの1つと、YOLOEがグラウンディングした領域が対応付けられます。画像内に一致する対象がないフレーズは出力されません。
用途#
- ロボティクス: 「ノートパソコンの横にある赤いマグカップを取って」と指示されたロボットは、把持動作を計画する前に、そのフレーズを1つの物体とその3D位置に対応付ける必要があります。
- データアノテーション: オープンボキャブラリー検出器は、名前のリストから新しいクラスのボックスやマスクの下書きを作成します。注釈担当者は一から描画する代わりに、それを修正できます。Ultralytics Platformはこの方法で検出データセットを自動アノテーションし、修正済みのラベルでYOLO26モデルを学習します。
- 動画検索: 時間的グラウンディングを使うと、何時間もの映像から「交差点で自転車の人が左折する」クリップを検索できます。
- アクセシビリティ: 支援アプリは「出口の標識はどこですか」という問いに対し、物体の名前を答えるだけでなく、物体の位置を特定して回答します。
グラウンディングと関連用語の比較#
- 画像キャプション生成: 画像をテキストに変換します。グラウンディングは逆方向に働き、テキストから、そのテキストが説明する画像領域を特定します。
- 視覚的質問応答 (VQA): 画像に関する質問に言葉で答えます。グラウンディングされたVQAでは、回答の根拠も示します。
- ゼロショット学習: 学習例がないクラスを認識します。オープンボキャブラリー・グラウンディングは、これを実現する方法の1つです。言葉で説明されたクラスには、ラベル付き画像が不要だからです。
- マルチモーダルAI: 複数のデータ型を組み合わせるモデルを扱う幅広い分野です。グラウンディングとは、特定の言葉を別のモダリティの特定の部分に対応付けることです。
言語モデルにおけるグラウンディング#
記憶だけを頼りに回答するLLMは、出典のない流暢な主張を生成することがあり、これはハルシネーションの原因の1つです。グラウンディングされた生成では、検索拡張生成 (RAG)、Web検索、データベースクエリ、ツール呼び出しなどを通じて推論時に根拠を与え、その根拠に基づいて回答し、引用するようモデルに求めます。グラウンディングされた回答は、出典と照合して主張ごとに検証できます。また、グラウンディングされたシステムの評価では、検索されたテキストが正しいかどうかとは別に、各記述が検索テキストによって裏付けられているかという忠実性を測定します。










