食事画像領域分割
データセットの作成とその活用
岡本開夢

Cho Jaehyeong

電気通信大学大学院

會下拓実

情報理工学研究科

柳井啓司
情報学専攻

1

本スライドの流れ

1. 背景
2. 本研究の目的
3. データセットの作成

4. 実験
5. まとめ2

1.背景：CNNによる領域分割

深層学習の発達によりピクセルレベルにおけるカテゴリ推定が可能⇒画像内における各カテゴリごとの領域分割が可能

Long, Jonathan, Evan Shelhamer, and Trevor Darrell. "Fully convolutional networks for semanticsegmentation." In Proc. of the IEEE conference on computer vision and pattern recognition. 2015.

外

外

外

外

猫

猫

外

外

猫

猫

外

外

猫

猫

外

外

3

1.背景：CNNによる領域分割

深層学習の発達によりピクセルレベルにおけるカテゴリ推定が可能⇒画像内における各カテゴリごとの領域分割が可能
外

外

外

外

学習する際に猫猫
外実画像とマスク画像が必要

Long, Jonathan, Evan Shelhamer, and Trevor Darrell. "Fully convolutional networks for semanticsegmentation." In Proc. of the IEEE conference on computer vision and pattern recognition. 2015.

外

猫

猫

外

外

猫

猫

外

外

4

1.背景：CNNによる領域分割

領域分割に用いられる主な学習用のデータセット[1][2]22カテゴリ
約1万枚

80カテゴリ
約33万枚

5

1.背景：CNNによる領域分割

領域分割に用いられる主な学習用のデータセット[1][2]22カテゴリ
約1万枚

80カテゴリ
約33万枚

そのうちの食事カテゴリはわずか10カテゴリ…
(バナナ、サンドウィッチ、ピザなど)

6

1.背景：CNNによる領域分割

領域分割に用いられる主な学習用のデータセット[1][2]22カテゴリ
約1万枚

そのうちの食事カテゴリはわずか10カテゴリ…
(バナナ、サンドウィッチ、ピザなど)

80カテゴリ
約33万枚

食事領域分割モデルの学習には不十分

7

1.背景：CNNによる領域分割

食事画像データセット[10][3]は多数存在
Food101[10]101カテゴリ
約10万枚

UECFood-100[3]100カテゴリ
約1.3万枚

8

1.背景：CNNによる領域分割

食事画像データセット[10][3]は多数存在
そのうちバウンディングボックスがついているのは少数

UECFood-100[3]100カテゴリ
約1.3万枚

9

1.背景：CNNによる領域分割

食事画像データセット[10][3]は多数存在
そのうちバウンディングボックスがついているのは少数[3][11]

UECFood-100[3]100カテゴリ
約1.3万枚

食事領域分割に使うことができる
ような大規模データセットは存在していない
10

1.背景：食事画像を用いた研究

岡元らのカロリー量推定アプリケーション[6]⇒基準物体と食事領域の抽出を行い回帰式をもとにカロリー量推定
Grab-cutによる食事領域抽出[5]K. Okamoto and K. Yanai. An Automatic Calorie Estimation Systemof Food Images on a Smartphone, MADiMa, 2016

基準物体と食事領域のピクセルの対比関係により実面積を求める。
11

1.背景：食事画像を用いた研究

岡元らのカロリー量推定アプリケーション[6]⇒基準面積と食事領域の抽出を行い回帰式をもとにカロリー量推定
Grab-cutによる食事領域抽出[5]K. Okamoto and K. Yanai. An Automatic Calorie Estimation Systemof Food Images on a Smartphone, MADiMa, 2016

カロリー量推定には
食事領域分割は不可欠
12

2.本研究の目的

食事領域分割用の学習用データセットの作成
UECFoodPIX
102カテゴリ 1万枚

UEC-Ramen555
15カテゴリ 555枚

13

2.本研究の目的

作成したデータセットを用いた活用
食事領域分割

食事画像生成14

3.データセットの作成

UECFoodPIX

従来のUECFOOD100の問題点• インスタンスや100カテゴリ以外の食事領域を考慮していない※学習する際にバウンディングボックスがない領域が不明瞭
従来のバウンディングボックス

15

3.データセットの作成

UECFoodPIX

従来のUECFOOD100の問題点

インスタンスと100カテゴリ以外の食事領域を考慮• インスタンスや100カテゴリ以外の食事領域を考慮していない
手作業で作成※バウンディングボックスがない部分が食事か非食事かが不明瞭
従来のバウンディングボックス

新たなバウンディングボックス

163.データセットの作成

UECFoodPIX

バウンディングボックスのカテゴリラベル付与• バウンディングボックスが従来の2倍、アノテーションコストが増大⇒食事カテゴリを𝑎𝑜 (重なる領域の比)による自動的に付与
𝑎𝑜 =

𝑎𝑟𝑒𝑎(𝐵𝑢𝑒𝑐𝑓𝑜𝑜𝑑𝑠𝑒𝑔 ∩ 𝐵𝑢𝑒𝑐𝑓𝑜𝑜𝑑100 )min(𝐵𝑢𝑒𝑐𝑓𝑜𝑜𝑑𝑠𝑒𝑔 , 𝐵𝑢𝑒𝑐𝑓𝑜𝑜𝑑100 )𝑎𝑜 ≥ 0.5：元々のカテゴリ
𝑎𝑜 < 0.5：’その他の食事’カテゴリ(101)
別に’飲み物’カテゴリも付与(102)17

3.データセットの作成

UECFoodPIX

バウンディングボックスのカテゴリラベル付与• バウンディングボックスが従来の2倍、アノテーションコストが増大⇒食事カテゴリを𝑎𝑜 (重なる領域の比)による自動的に付与
𝑎𝑜 =

𝑎𝑟𝑒𝑎(𝐵𝑢𝑒𝑐𝑓𝑜𝑜𝑑𝑠𝑒𝑔 ∩ 𝐵𝑢𝑒𝑐𝑓𝑜𝑜𝑑100 )min(𝐵𝑢𝑒𝑐𝑓𝑜𝑜𝑑𝑠𝑒𝑔 , 𝐵𝑢𝑒𝑐𝑓𝑜𝑜𝑑100 )𝑎𝑜 ≥ 0.5：元々のカテゴリ
𝑎𝑜 < 0.5：’その他の食事’カテゴリ(101)
別に’飲み物’カテゴリも付与(102)18

3.データセットの作成

UECFoodPIX

マスク画像の作成⇒新たなバウンディングボックスの領域に対してGrab-cut[5]を適用
バウンディングボックス

19

4.実験：食事領域分割 UECFoodPIX

Grab-cut[5]：グラフカットを繰り返し用いて前景と背景を抽出する手法⇒短径領域を与えるだけで領域分割することが可能
UECFood[3]のバウンディングボックスに対してGrab-cutを適用した例

20

3.データセットの作成

UECFoodPIX

マスク画像の作成⇒新たなバウンディングボックスの領域に対してGrab-cut[5]を適用
バウンディングボックス

Grab-cutによる自動生成213.データセットの作成

UECFoodPIX

マスク画像の作成⇒新たなバウンディングボックスの領域に対してGrab-cut[5]を適用⇒人手で精査することでマスク画像を作成
バウンディングボックス

Grab-cutによる自動生成

マスク画像

22

3.データセットの作成

UEC-Ramen555

食事カテゴリの問題点• 同じ食事カテゴリでも異なる形や色をしているものが存在※同じラーメンの画像でもスープや具材によって全く違く見える

同一のラーメンカテゴリ

23

3.データセットの作成

UEC-Ramen555

食事カテゴリの問題点• 同じ食事カテゴリでも異なる形や色をしているものが存在※同じラーメンの画像でもスープや具材によって全く違く見える

同一のラーメンカテゴリ

材料の違いを考慮した
ラーメンデータセットの作成

24

3.データセットの作成

UEC-Ramen555

ラーメンマスク画像⇒SNS上で収集した555枚のラーメン画像を人手でアノテーション⇒スープの種類や具材を考慮した15クラスで構成
実画像

マスク画像

25

3.データセットの作成

UEC-Ramen555

ラーメンマスク画像⇒SNS上で収集した555枚のラーメン画像を人手でアノテーション⇒スープの種類や具材を考慮した15クラスで構成
実画像

マスク画像

スープや具材を考慮した
ラーメンマスク画像
26

4.実験：食事領域分割 UECFoodPIX

UECFoodPIXを用いた食事領域分割を行う⇒DeeplabV3+[13]による食事領域分割
学習画像：1)自動生成[5]9000枚

2)自動生成[5]7000枚＋マスク画像2000枚

評価画像：マスク画像1000枚
各クラスのAccuracyの平均とmIoUによる評価

1)の学習画像

自動生成

自動生成

2)の学習画像

自動生成

マスク画像

27

4.実験：食事領域分割 UECFoodPIX

実験結果
1)と2)の領域分割の各数値• 2)のほうがどちらとも高い数値
学習画像
1)自動生成9000枚
2)自動生成7000枚＋マスク画像2000枚

Acc
0.560
0.597

mIoU
0.416
0.436

28

4.実験：食事領域分割 UECFoodPIX

実験結果2)による領域分割結果(左：入力画像、中：正解画像、右：推定画像)29

4.実験：食事領域分割 UECFoodPIX

実験結果2)による領域分割結果(左：入力画像、中：正解画像、右：推定画像)

単品品目の食事領域分割
はおおよそ可能30

4.実験：食事領域分割 UECFoodPIX

実験結果2)による領域分割結果(左：入力画像、中：正解画像、右：推定画像)

複数品目の分割において誤ったカテゴリ分類(キャベツやレモン)

31

4.実験：食事領域分割 UECFoodPIX

実験結果2)による領域分割結果(左：入力画像、中：正解画像、右：推定画像)
原因：自動生成とマスク画像の違い
複数品目の分割において誤ったカテゴリ分類(キャベツやレモン)
自動生成

マスク画像

32

4.実験：食事領域分割 UECFoodPIX

実験結果2)による領域分割結果(左：入力画像、中：正解画像、右：推定画像)

複数品目の推定において誤ったカテゴリ分類(キャベツやレモン)

マスク画像（人手で精査）の枚数を増やすことで精度の向上が期待

33

4.実験：画像生成 UEC-Ramen555

UEC-Ramen555を用いた画像生成を行う⇒ DeeplabV3+[13]による食事領域分割

34

4.実験：画像生成 UEC-Ramen555

UEC-Ramen555を用いた画像生成を行う⇒ DeeplabV3+[13]による食事領域分割⇒領域抽出したマスク画像を用いてpix2pix[14]による画像生成

画像生成に用いたネットワーク図

35

4.実験：画像生成 UEC-Ramen555

UEC-Ramen555を用いた画像生成を行う⇒ DeeplabV3+[13]による食事領域分割⇒領域抽出したマスク画像を用いてpix2pix[14]による画像生成
学習画像：500枚 評価画像：55枚

学習したモデルを用いてユーザーが画像を修正できるwebベースシステムである“RamenAsYouLike” [17]を実装

36

4.実験：画像生成 UEC-Ramen555

実験結果
画像生成結果(左：入力画像、中：領域分割結果、右：生成画像)37

4.実験：画像生成 UEC-Ramen555

実験結果
画像生成結果(左：入力画像、中：領域分割結果、右：生成画像)
抽出した領域と同じ位置にスープや具材が生成

38

4.実験：画像生成 UEC-Ramen555

実験結果
画像生成結果(左：入力画像、中：領域分割結果、右：生成画像)
抽出した領域と同じ位置にスープや具材が生成

どんぶりやレンゲのスタイルが保持されていない

39

4.実験：画像生成 UEC-Ramen555

ユーザーが画像を修正できるwebベースシステム“RamenAsYouLike” [17]404.実験：画像生成 UEC-Ramen555

ユーザーが画像を修正できるwebベースシステム“RamenAsYouLike” [17]実験結果
各作業(追加、除去、変更)の結果

41

5.まとめ

本研究の貢献• 食事領域分割用データセットUECFoodPIXとUEC-Ramen555の作成
http://foodcam.mobi/dataset/にて公開予定• 活用例として領域分割と画像生成を行った
今後の課題• 食事量やカロリー量推定のベンチマークとなる「量」を考慮したデータセットの整備• 画像生成においてはスタイルを維持するようなスタイル抽出とスタイルを考慮した画像生成
42