25
MS COCO datasets ののの のの Caption ののののPresenter: Seitaro Shinagawa Augmented Human Communication-lab Graduate School of Information Science Nara Institute of Science and Technology

MS COCO Dataset Introduction

Embed Size (px)

Citation preview

Page 1: MS COCO Dataset Introduction

MS COCO datasets の紹介(主に Caption について)

Presenter: Seitaro ShinagawaAugmented Human Communication-labGraduate School of Information ScienceNara Institute of Science and Technology

Page 2: MS COCO Dataset Introduction

What is MS COCO dataset ?

画像とキャプションのデータセット  1 画像あたり 5 以下のキャプション( 6 以上のもある)

http://arxiv.org/abs/1405.0312 

Page 3: MS COCO Dataset Introduction

How to Use

http://mscoco.orgより色々ダウンロード

便利な API が Github で提供されているhttps://github.com/pdollar/coco : セグメンテーションなど用https://github.com/tylin/coco-caption : キャプション用

(※サイトより引用)

Page 4: MS COCO Dataset Introduction

MS COCO API

フィルター条件を満たすアノテーション ID をゲットフィルター条件を満たすカテゴリ ID をゲットフィルター条件を満たす画像 ID をゲット[ID] のアノテーションをロード[ID] のカテゴリをロード[ID] の画像をロードアルゴリズムの結果をロードし、アクセスする API をつくるアノテーションを表示ポリゴンセグメンテーションをバイナリマスクにコンバートrun-length encoding (RLE) エンコード済みバイナリマスク MをデコードRLE によってバイナリマスク M をエンコード

Page 5: MS COCO Dataset Introduction

Annotation format

Stored with JSON format 2つのアノテーションタイプ “instance” と “ caption”

Page 6: MS COCO Dataset Introduction

Instance Annotations

object がひとつか (0)複数か (1)

ひとつobject はポリゴンの arrayとして格納

複数object は Run Length Encoding (RLE) のバイナリマスクとして格納

Page 7: MS COCO Dataset Introduction

Caption Annotations

キャプションは画像あたり基本的に 5つ以下(いくつかは 6 つ以上あるので注意)

Page 8: MS COCO Dataset Introduction

Results Format Requirements

基本ダウンロードしたデータと合わせる(評価用 API 、サーバを使う場合必須)

最終的に全ての結果は一つの JSON ファイルに格納される( Matlab なら gason, Python なら json.dump を通して格納)Object detection(boundary box) Object detection(segmentation)

Caption generation

Page 9: MS COCO Dataset Introduction

Dataset Details

学習時、キャプションは PTBTorknizer in Stanford CoreNLP によって前処理推奨(評価用サーバ、 API(coco-caption) が評価時にそうしているため)

Collected captions using Amazon Mechanical Turk

訓練データ 82,783 画像 413,915 キャプションバリデーションデータ 40,504 画像 202,520 キャプションテストデータ ( 評価サーバ ) 40,775 画像 379,249 キャプション( c5: 179,189 キャプション)( c40:200,060 キャプション)

参考: https://github.com/tylin/coco-caption/blob/master/pycocoevalcap/tokenizer/ptbtokenizer.py 

Page 10: MS COCO Dataset Introduction

More Detail

記号の削除

PTBTorknizer in Stanford CoreNLP の役割について(前ページ参考コードより)

-LRB-, -RRB- == ( , )-LCB-, -RCB- == { , }

-LSB-, -RSB- == [ , ]は最初からないっぽい?

PUNCTUATIONS = ["''", "'", "``", "`", "-LRB-", "-RRB-", "-LCB-", "-RCB-",            ".", "?", "!", ",", ":", "-", "--", "...", ";"]

小文字への統一  -lowerCase line の削除の例外処理( cutting-edge などの横棒は例外的に削除しな

い) -preserveLines

cmd = ['java', '-cp', STANFORD_CORENLP_3_4_1_JAR, 'edu.stanford.nlp.process.PTBTokenizer', '-preserveLines', '-lowerCase']

Page 11: MS COCO Dataset Introduction

However…

実際に使ってみると色々落ち度がある・・・??

COCO_train2014_000000167126.jpg

ホットドック・・・らしい

例外処理をしておかないと普通に死ぬ

1. PIL で読み込めない画像がある

大部分の原因は読み込む環境依存かもしれないがたまにこんな画像が紛れている

例外処理をしておかないと普通に学習が死ぬ

COCO_val2014_000000200365.jpg

2. 面積ほぼゼロのセグメントアノテーションがある

Page 12: MS COCO Dataset Introduction

キャプションの実例 (validation から )最初が大文字、ピリオド  A woman standing in a kitchen preparing tea.全部小文字(理想的)   a woman wearing a hat holding onto an umbrella全部大文字         A MAN OPENING A DOOR TO AN OVEN IN A

  RESTAURANT KITCHEN最初にスペース A man riding his bike with his dog in the side kick seatどうしようもないケース   a corner of a bathroom shows part of a vanity and the

commode sits of the other side of the wa]]

キャプションを前処理なく使うのは自殺行為

最初が大文字、小文字、ピリオドがあるない、全て大文字、など表記ゆれが結構ひどい最後のは wall が wa]] となっていて笑う

悪いことは言わない、前処理にcoco-caption API の PTBTorknizer in Stanford CoreNLP を使おう

However…

Page 13: MS COCO Dataset Introduction

Another Method

自前でやると 100 枚以上の画像がだめになるので、 CNN 部分の再学習が必要なければ先人のおこぼれを頂戴するのがよいhttps://github.com/ryankiros/visual-semantic-embedding  http://cs.stanford.edu/people/karpathy/deepimagesent/ 

などから coco.zip というファイルをダウンロードできる→VGG による visual feature(4096 次元 ) とキャプション (tokenize 済み ) が手に入る

どーやって画像読み込んだかわからんけど使えるものは使わせても

らおう

Page 14: MS COCO Dataset Introduction

Caption Evaluation

coco-caption API にはBLEU, METEOR, ROUGE-L, CIDEr による自動評価尺度が用意されている

必要なもの・・・生成したキャプションと対応する画像id の組(データセット内の任意の数)を dump した jsonファイル

[{“image_id”: 404464, “caption”: “black and white photo of a man standing in front of a building”}, {“image_id”: 380932, “caption”: “group of people are on the side of a snowy field”}, {“image_id”: 565778, “caption”: “train traveling down a train station”}, … ](coco-caption/results/captions_val2014_fakecap_results.json)

http://arxiv.org/abs/1504.00325 

Page 15: MS COCO Dataset Introduction

Storing Caption Evaluation

evalImgs.json : 画像ごとの評価値 eval.json : テストセット全体の評価値

API を使うことで最終的な評価を json 形式で保存できる

以下、各手法の説明です

Page 16: MS COCO Dataset Introduction

BLEU

仮説 ( 生成した文 ) とリファレンスの N-gram の一致率による評価尺度

N-gram : 局所的な単語の塊、 N は塊あたりの単語数

例: I have a pen .

N N-gram 語彙数1 I have a pen . 5

2 I have a pen . 4

3 I have a pen . 3

4 I have a pen . 2

I, have, a, pen, . の5つI have, have a, a pen, pen . の 4 つ

I have a, have a pen, a pen . の 3 つ

I have a pen, have a pen . の 2 つ

N-gram の一致率が高いほど良い仮説を生成しているだろうという仮定がある

( 高いほど良い )

Page 17: MS COCO Dataset Introduction

BLEU

1. 仮説のある単語 (n-gram の語彙 ) に注目する。その出現回数をとする

2. 仮説に対応する全てのリファレンスそれぞれについて、単語の出現回数を算出、この中で最大のものを選んで値が単語の一致数になる

3. マッチ数を仮説中の全ての語彙についてマッチ数を加算4. すべての仮説について加算し、最後に仮説全体の単語数で除算

n-gram の一致率の計算方法

各 n-gram の一致率 () の幾何平均を計算する

𝑤𝑛=1𝑁

Page 18: MS COCO Dataset Introduction

BLEU

brevity penalty一致率を高めるために生成される文章は往々にして極端に短くなる傾向がある( recall が低くなりがち)⇒不自然になりやすいのでペナルティをかける

未確認 普通の BLEU スコアの計算では仮説ごとに一番良いリファレン

スを選ぶが、 MS COCO の API の BLEU は数式を見る限り単語ごとに良いリファレンスを選んでいるように見える

brevity penalty も普通の BLEU では仮説より短くかつ一番近い長さのリファレンスが選ばれるが、 MS COCO API ではどう算出しているかまだ確認していない( Arxiv論文を見る限りだと仮説ごとに近い長さのリファレンスを選択している模様)

Page 19: MS COCO Dataset Introduction

ROUGE

要約の評価尺度

この数式は BLEU と違って仮説ごとの算出になっているので注意仮説対応する全てのリファレンスにおける単語の出現回数の最小の共通部分を数える。が高いほど recall が高いといえる

(亜種 ) : based on the Longest Common Subsequence(LCS)

間で一致している部分で最長の部分の単語列の長さ

recall と precision重み付き F 値 (調和平均 ) で評価デフォルトで

N-gram を用いる方法( 高いほど良い )

Page 20: MS COCO Dataset Introduction

ROUGE

(亜種 ) : based on the skip bi-grams

skip bi-gram : 飛び越しありの bi-gram

例: I have a pen . bi-gramI havehave aa penpen .

skip bi-gram で追加される語彙I a, I pen, I .have pen, have .a .I との組み合わせ

語彙数(文中の単語数を W とする)bi-gram : W-1skip bi-gram : あとは recall と precision から算出

(ただし、計算量が増えるので API では飛び越しは3つまでに制限されている)

Page 21: MS COCO Dataset Introduction

METEOR

仮説 ( 生成した文 ) とリファレンスの単語の一致率による評価尺度

BLEU の問題点 recall が低い 文法的に問題があっても検出できない 高い n の n-gram が0だと 1 文全体のスコアが幾何平均で 0 になってし

まう これらの問題を単語レベルの一致率で解決しようという評価尺度

m は単語の一致数(アラインメントの数)

precision, recall を計算

( 高いほど良い )

Page 22: MS COCO Dataset Introduction

METEOR

precision と recall から求められる調和平均によって算出(論文では F 値と呼称)

ペナルティ(チャンクの数が多い )= ( アライメントの塊がばらばら ) ほど高いペナルティ

API のハイパーパラメータの値は未確認

Page 23: MS COCO Dataset Introduction

CIDEr

𝑔𝑘 (𝑠𝑖𝑗 )=h𝑘 (𝑠𝑖𝑗 )

∑𝑤𝑙∈Ω

h 𝑙(𝑠𝑖𝑗)log ¿¿

image-captioning の評価尺度として提案された。 n-gram の出現の TF-IDF重み付き評価尺度 ( j : リファレンス番号  i : 画像番号 )

Term Frequency Inverse Document Frequency

First Termリファレンスの中で出現回数の多い n-gram に大きい重みを付ける

Second Term全画像を通して全てのセンテンスの中で出現回数の多い n-gram に小さな重みを付ける

( 高いほど良い )

Page 24: MS COCO Dataset Introduction

CIDEr

𝑗と対応する全てのリファレンスについてコサイン類似度とり、対応する全リファレンスの平均をとる

n は n-gram の n に対応している。は uni-gram から n-gram までを正規化する項で、 API では BLEU と同様を使っている

N の値も、 API では BLEU同様 N=4 を用いている

Page 25: MS COCO Dataset Introduction

CIDEr-D

CIDEr の亜種

n-gram ごと