Image Captioning
画像キャプション生成がビジョン・言語モデルを使用して画像の説明を生成する仕組みを学び、実際の応用例を探求し、Ultralytics YOLO26でキャプションをグラウンディングする方法を確認します。
画像キャプション生成は、画像に対する自然言語の説明文を自動生成するAIタスクです。例えば、街頭の写真が与えられた場合、システムは「交差点で歩行者の傍らを走るシティバス」のような説明文を生成することがあります。このタスクは視覚的知覚と言語生成を組み合わせるため、モデルは重要なコンテンツを識別し、オブジェクト間の関係を理解し、その情報を明確に表現する必要があります。
キャプション生成は、一般的にvision-language modelによって実行され、視覚データとテキストデータの両方を処理します。手動で記述された写真のキャプションとは異なり、AIが生成したキャプションは、画像とテキストのペアから学習したパターンに基づく予測です。
画像キャプション生成の仕組み#
画像キャプション生成システムには通常、接続された2つの段階があります。
- ビジョンエンコーダーは、オブジェクト、テクスチャ、位置、およびより広いシーン情報を記述する特徴表現にピクセルを変換します。
- 言語デコーダーは、それらの視覚的特徴を単語のシーケンスに変換します。
多くのシステムでは、transformerデコーダーを使用しています。これは、開始トークンで始まり、次のトークンを予測し、それをシーケンスに追加し、終了トークンが生成されるか長さ制限に達するまで繰り返します。Google Machine Learning Glossaryでは、このトークン単位のプロセスを自己回帰生成と表現しています。
attention mechanismは、デコーダーが各単語を選択する際に、関連する画像領域に焦点を当てるのに役立ちます。「バス」を生成する際は車両を強調し、「ストリート」を生成する際は周囲の道路に注目することがあります。TensorFlow image captioning tutorialでは、画像の特徴、トークン化、クロスアテンション、テキストデコーダーがどのように連携するかを示しています。
トレーニングには一般的に、1つ以上の人間が書いたキャプションとペアになった画像が必要です。「子供が犬と遊んでいる」や「若い人がペットのためにボールを投げる」など、同じ画像をさまざまな方法で正しく説明できるため、複数のキャプションが役立ちます。
関連するビジョンタスクとの違い#
画像キャプション生成はいくつかのAIタスクと重複しますが、明確な出力を生成します。
- 画像分類は、「ビーチ」など、画像全体に1つ以上のラベルを割り当てます。キャプション生成は、オブジェクト、アクション、属性、コンテキストを記述する文を生成します。
- **Object detection**は、境界ボックスを使用して事前に定義されたオブジェクトを識別し、ローカライズします。キャプション生成は、それらのオブジェクトに言及するだけでなく、「車の脇を走る2人のサイクリスト」などのようにそれらの関係を記述します。
- **Optical character recognition**は、看板、文書、またはパッケージから目に見える文字を抽出します。キャプションは、すべてのテキストを書き起こすのではなく、シーンを要約します。
- **Visual question answering**は、画像に関する特定の質問に答えます。キャプション生成は、質問を必要とせずに一般的な説明を作成します。
- 代替テキストは、特定のコンテキストにおける画像の目的を伝えます。自動生成されたキャプションを下書きとして提供することはできますが、装飾的、機能的、複雑な画像ではW3C Images Tutorialの下で異なる処理が必要になるため、そのまま適切な代替テキストになるとは限りません。
実社会での応用#
-
Accessible Web Content: パブリッシングプラットフォームは、新しくアップロードされた写真の下書きの説明を生成できます。ニュース画像の場合、エディターが正確性と関連性を確認する前に、キャプションで主な人物、設定、アクションを特定することができます。複雑な図表では、一般的な視覚的要約ではなく、依然として構造化された詳細な説明が必要です。
-
Searchable Media Libraries: 小売業者やメディア企業は、大量の画像コレクションにキャプションを付け、生成されたテキストをインデックス化できます。ユーザーは、ファイルに手動でタグが付けられていなかった場合でも、「テントの脇にある赤いバックパック」などのフレーズで検索できます。キャプションは視覚的埋め込みやメタデータを補完し、大規模なカタログ全体での発見性を向上させることができます。
Ultralytics YOLOによる実践的なグランディング#
キャプションジェネレーターは、特に混雑したシーンや見慣れないシーンにおいて、サポートされていない詳細を発明してしまうことがあります。実用的な設計の1つは、Ultralytics YOLO26からの構造化された観測結果を使用して生成をグラウンドすることです。以下の文書化されたYOLO prediction workflowは、下流の言語コンポーネントが視覚的コンテキストとして使用できる検出されたオブジェクト名を抽出します。
from ultralytics import YOLO
# Detect objects that can ground a downstream caption generator
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Convert detections into compact textual context
detections = result.summary()
object_names = sorted({item["name"] for item in detections})
visual_context = ", ".join(object_names)
print(visual_context)このワークフローは最終的なキャプションを生成しません。代わりに、言語モデルを制約できる検証可能なオブジェクトラベルを提供します。カスタムドメイン向けに、Ultralytics Platformは、キャプション生成パイプラインの知覚コンポーネントのためのクラウドデータセットアノテーション、トレーニング、デプロイ、およびモニタリングをサポートしています。
制限事項と評価#
キャプションは、重要なオブジェクトの省略、関係の混同、データセットのバイアスの再現、または表示されていない詳細のハルシネーションを引き起こす可能性があります。Azure image description APIに示されているように、信頼度スコアは候補の説明のランク付けに役立ちますが、流暢な文が必ずしも事実に基づいているとは限りません。
したがって、評価では、オブジェクトのカバレッジ、事実に基づくグランディング、読みやすさ、バイアス、および対象読者に対する有用性を検証する必要があります。複数のキャプションが同様に正しい場合があるため、チームはgenerative AI evaluationやより広範なNIST AI Risk Management Frameworkなどのプラクティスに従い、自動測定と人間のレビューを組み合わせる必要があります。人間の承認は、アクセシビリティ、医療、安全性に不可欠な、または公共向けのコンテンツにおいて特に重要であり続けます。






