1行定義
Image Captioningとは、画像を入力として、その画像に写っている内容を説明する自然な文章を生成するタスクのことです。
くわしく
Image Captioningは、画像を見て、その内容を説明する文章を自動で作るタスクです。たとえば公園の写真から、「芝生の上で犬がボールを追いかけている」という文を生成します。何が写っているかを認識する力と、それを自然な文にする力の両方が必要です。
エンコーダ・デコーダによる生成
2014年にGoogleの研究者が発表したShow and Tellは、機械翻訳のエンコーダ・デコーダの考え方を応用しました。翻訳では、元の文をRNNで読み取ってベクトルにし、別のRNNが訳文を生成します。Show and Tellは、読み取る側をCNNに置き換えました。CNNが画像を特徴ベクトルに変換し、LSTMがその特徴をもとに単語を1つずつ生成します。
2015年のShow, Attend and Tellは、注意機構(Attention)を取り入れました。単語を1つ生成するたびに、画像のどの領域に注目するかを変えます。たとえば「犬」と出力するときは、犬が写った部分に注目します。
評価と活用
生成した文は、人が書いた参照文との単語の一致度を測るBLEUなどの指標で評価します。学習には、1枚の画像に複数の説明文を付けたMS COCOなどのデータセットが使われます。
活用例には、目の不自由な人に向けた画像の代替テキストの作成や、画像検索に使う説明文の付与があります。現在は、FlamingoやUnified-IOのような視覚言語モデルも、ほかのタスクとあわせてImage Captioningをこなします。
似たタスクとの違い
- Text-To-Image:文章から画像を作ります。入力と出力の向きが逆です。
- Visual Question Answering:画像と質問文を受け取り、質問への答えを出します。
- 画像分類:決められたクラスから1つを選びます。文章は作りません。
覚え方
「写真にキャプション(説明書き)を付ける」と覚えます。
G検定での出題
出題のされ方
画像を入力して文章を出力する向きでのText-To-Imageとの違い、質問を受け取らない点でのVisual Question Answeringとの区別、CNNとRNNを組み合わせたエンコーダ・デコーダの構成が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| Image Captioningこのページの用語 | 画像を入力として、その画像に写っている内容を説明する自然な文章を生成するタスク |
| Text-To-Image | 文章で書いた指示(プロンプト)を入力として、その内容に合う画像を生成するタスクや技術 |
| Visual Question Answering | 画像と、その画像についての自然言語の質問を入力として、質問への答えを出力するタスク |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
Show and Tellと呼ばれる初期の代表的なモデルは、CNNで画像を特徴ベクトルに変換し、その特徴をもとにLSTMが単語を1つずつ生成して説明文を作る。
答えを見る
答え ◯ 正しい
機械翻訳のエンコーダ・デコーダの考え方を応用し、文を読み取るRNNの代わりに、CNNで画像を読み取ります。
-
注意機構を取り入れたImage Captioningのモデルでは、単語を1つ生成するたびに、画像のどの領域に注目するかを変えられる。
答えを見る
答え ◯ 正しい
Show, Attend and Tell(2015年)の手法です。単語ごとの注目領域を可視化でき、モデルの振る舞いを確かめる手がかりにもなります。
-
Image Captioningの出力は、あらかじめ決めたクラスの中から1つを選んだラベルであり、文章は生成しない。
答えを見る
答え × 誤り
決めたクラスから1つを選ぶのは画像分類です。Image Captioningは、単語を並べた自由な文章を生成します。