[DL Hacks]Learning Cross-modal Embeddings for Cooking Recipes and Food Images[CVPR 2017]

>100 Views

April 27, 18

スライド概要

2018/03/26
Deep Learning JP:
http://deeplearning.jp/hacks/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Learning Cross-modal Embeddings for Cooking Recipes and Food Images [CVPR 2017] 東京大学工学部システム創生学科知能社会システムコース B3 近藤 生也

2.

書誌情報 • 論文名 • Learning Cross-modal Embeddings for Cooking Recipes and Food Images • 著者 • MIT Torralba labの方々など • 公開日 • 2017/07/20 • 論文URL • http://im2recipe.csail.mit.edu

3.

背景 • そもそも分類じゃだめなのか • 料理の画像認識は難しい • 同じクラスでも違う • チキンラーメンと千里眼のラーメン • 違うクラスでも似てる • うどんとフォー • 考えられる料理名の数に対して、データ数が少なすぎる → 一般料理で精度が残念

4.

背景 • Food-101(分類)の精度と、 実際に使ってみた結果 ⇒分類には限界がある • 101分類自体は高い精度が出る • しかしそもそも適切なラベルが含まれていなかった...

5.

PV https://youtu.be/qp5yOfcBXq0

6.

概要 • Recipe1M というデータセットの作成 • 画像→レシピの検索(人間超え) • レシピ→画像の検索 • 材料の特定 • 料理の演算

7.

Recipe1M • 20サイトからスクレイピング • タイトル • 材料 • レシピ • 画像 • コースラベル(メイン、スナック、前菜...)

8.

材料のエンコード • あらかじめレシピ データで学習させた word2vecモデルを使 う • あらかじめ材料名は 同じ基準で並べ替え る • bi-directional LSTM でエンコード • 300次元にする https://speakerdeck.com/lunardog/learning-cross-modal-embeddings-for-cooking-recipes-and-food-images

9.

bi-directional LSTM

10.

手順のエンコード • 各文章をskipthoughtで1024次元 にエンコード • エンコードされたす べての文章をLSTM で1024次元にエン コード

11.

skip-thought

12.

画像のエンコード • ResNet+全結合層で 1024次元にエンコー ド • 教師ラベルが特にな いので、ImageNetで 事前学習された重み を使う

13.

Joint embedding • あるレシピとその画像 を入力した際、 画像側の最終層の出力 と、レシピ側(調理手 順と材料)をconcatし て全結合層を追加した ものの出力のcos類似度 が高くなるように、そ れぞれの全結合層を学 習させる ⇒共通のJoint Embedding空間ができる

14.

もうひとつ • Joint Embedding空間 を使ってfood-101の分 類も行い、この空間の 汎化性を高め精度を上 げる

15.

loss • レシピと画像の正しい組み合わせを入力した際の類似度が高く、 かつ間違った組み合わせを入力した際の類似度が低くなるよう に学習を行う

16.

精度 • レシピと画像の正しい組み合わせを選ぶタスクで、一部ヒトよ り高い正解率を出した。

17.

結果(画像からレシピの推定) • 実際には、大量のレシピデータの中からもっともらしい一つを ピックアップしてきている

18.

結果(レシピから画像の推定)

19.

結果 • チーズサラダ - サラダ + ケーキ => チーズケーキ • 等、意味的な演算を可能とした。

20.

本家のPyTorch実装 • https://github.com/torralba-lab/im2recipe-Pytorch • trijoint.pyに材料、手順、画像のエンコードがすべて載ってる