米飯画像の実寸推定に基づく面積を考慮したカロリー量推定
會下拓実 柳井啓司
電気通信大学大学院 情報理工学研究科 情報学専攻

1

研究背景
カロナビ

Foodlog

量の選択

料理をクロップ, 料理認識
料理の量を手入力選択

栄養士による料理画像からのカロリー量推定

有料サービス

料理画像からのカロリー量推定は未解決の問題
引用：http://app.foodlog.jp ・ https://www.qualia.tokyo/wp-content/static/lp1/ⓒ 2019 UEC Tokyo.

2

研究背景
Deep learningによる画像認識精度の向上ⓒ 2019 UEC Tokyo.

3

研究目的
料理写真からの全自動カロリー量推定
さんまの塩焼き 221kcal

ごはん 168kcal

サラダ 35kcal

味噌汁 60kcal

冷奴 42kcalⓒ 2019 UEC Tokyo.

4

研究概要
米飯画像の実寸に基づく面積を考慮したカロリー量
𝟖𝟏𝒄𝒎𝟐 𝟐𝟖𝟏𝒌𝒄𝒂𝒍
𝟑𝟒𝒄𝒎𝟐 5 kcal

𝟏𝟎𝟕𝒄𝒎𝟐 𝟖 𝒌𝒄𝒂𝒍

𝟏𝟏𝟓𝒄𝒎𝟐 𝟏𝟏𝟔 𝒌𝒄𝒂𝒍
𝟕𝟒𝒄𝒎𝟐 40 kcal

ⓒ 2019 UEC Tokyo.

研究概要
米飯画像の実寸に基づく面積を考慮したカロリー量• 料理領域分割– 大規模食事画像データセットの構築とCNN学習• 米飯画像からの実寸推定– 大きさが一定である米飯粒から実寸を推定• 実面積からのカロリー量推定– カロリー量と面積の回帰曲線 [岡元ら 2016]を使用ⓒ 2019 UEC Tokyo.

6

関連研究：料理領域分割
CNNから得られる顕著性マップに基づく領域分割 [下田ら 2015]– セグメンテーションマスクが不要– 各候補領域から得られる顕著性マップを用いる

W. Shimoda and K. Yanai. CNN-based food image segmentation without pixel-wise annotation.
In Proc. of IAPR International Conference on Image Analysis and Processing, 2015.
ⓒ 2019 UEC Tokyo.

7

関連研究：面積を考慮したカロリー量推定
面積を考慮したカロリー量推定 [岡元ら 2016]– 基準カードと同時に撮影

K. Okamoto and K. Yanai. An Automatic Calorie Estimation Systemof Food Images on a Smartphone, MADiMa, 2016
ⓒ 2019 UEC Tokyo.

8

提案手法概要
料
理と米飯を撮
影料
理
検出料
理
領域分割
料
理
ク
ラス
分
類

料理領域情報米米飯 実 飯 実寸情報
寸画推像
定か
らのⓒ 2019 UEC Tokyo.

料
理の実面積

カロ
リ
ー
量

提案手法概要
3. 実面積からのカロリー量推定

1. 料理領域分割

2. 米飯画像からの実寸推定ⓒ 2019 UEC Tokyo.

10

1. 料理領域分割
1. 料理領域分割ⓒ 2019 UEC Tokyo.

11

1. 料理領域分割：概要• 大規模食事画像データセットの構築– 人手によるバウンディングボックスの付与– GrabCutを用いたセグメンテーションマスクの付与• CNNによる料理検出・領域分割– 料理カテゴリを無視した料理検出・領域分割ⓒ 2019 UEC Tokyo.

12

1. 料理領域分割：データセット構築
UEC Food Segの構築– 既存のUEC Food-100にアノテーションを追加– バウンディングボックス, セグメンテーションマスク
– 本実験ではアノテーション済みの5000枚を学習に使用.

バウンディングボックス

セグメンテーションマスク

UECFood100 : Y. Matsuda, H. Hajime, and K. Yanai. Recognition of multiple-food images bydetecting candidate regions. ICME, 2012. ⓒ 2019 UEC Tokyo.

13

1. 料理領域分割：データセット構築
UEC Food-100 (既存)
– バウンディングボックス• 料理100種類のみ, インスタンス無視– セグメンテーションマスクなし

UEC Food Seg (本研究)– バウンディングボックス• すべての料理, インスタンス考慮– セグメンテーションマスク付きⓒ 2019 UEC Tokyo.

14

1. 料理領域分割：CNN学習• モデル：YOLOv2• データセット：UECFood-100 Seg– 学習5000枚, テスト500枚
YOLOv2での検出結果

Mean Average Precision：0.80

YOLOv2 : J. Redmon, A. Farhadi , YOLO9000: Better, Faster, Stronger, CVPR 2017.
ⓒ 2019 UEC Tokyo.

1. 料理領域分割：CNN学習• モデル：U-Net• データセット：UECFood-100 Seg– 学習5000枚, テスト500枚

U-Netでの領域分割結果 Intersection over Union：0.81 (参考値)

U-Net : O. Ronneberger, P. Fischer, and T. Brox. U-net: Convolutional networks for biomedical image
segmentation. Springer, pp.234–241,2015 ⓒ 2019 UEC Tokyo.

2. 米飯画像からの実寸推定

2. 米飯画像からの実寸推定ⓒ 2019 UEC Tokyo.

17

2. 実寸推定：概要• 米飯画像データセットの構築– 実寸情報とセグメンテーションマスクを付与• CNNによる米飯画像からの実寸推定– 大きさが一定である米飯粒を基準とする– 米飯粒が密集する米飯画像から直接推定ⓒ 2019 UEC Tokyo.

18

2. 実寸推定 : データセット構築• 米飯画像360枚• 米飯とカメラ間の距離, 盛り付けを変えて撮影
水量
カメラ

少量
180ml/150g

標準
200ml/150g

COOLPIX AW120
3264x2448

iPhone8 Plus
4032x3024ⓒ 2019 UEC Tokyo.

多量
220ml/150g

2. 実寸推定：データセット構築
実寸情報 と セグメンテーションマスクを付与• 1ピクセルあたりの実寸情報• 背景除去のためのセグメンテーションマスク

ⓒ 2019 UEC Tokyo.

2. 実寸推定：CNN学習
米飯画像からの実寸推定
入力パッチ画像

米飯画像
入力パッチ画像

CNN

3.14 cm

大きさが一定である米飯粒を基準とした実寸推定ⓒ 2019 UEC Tokyo.

3. 実面積からのカロリー量推定
3. 実面積からのカロリー量推定ⓒ 2019 UEC Tokyo.

22

3. カロリー量推定：概要• 各料理の実面積を推定– 料理領域分割結果と実寸情報から算出• 実面積からのカロリー量推定– カロリー量と面積の回帰曲線 [岡元ら 2016]ⓒ 2019 UEC Tokyo.

23

3. カロリー量推定
カロリー量と面積の回帰曲線 [岡元ら 2016] を使用

二次曲線に基づく推定
2
𝑐𝑎𝑙 = 𝑎𝑖 ∗ 𝑠𝑖𝑧𝑒𝑓𝑜𝑜𝑑+ 𝑏𝑖 ∗ 𝑠𝑖𝑧𝑒𝑓𝑜𝑜𝑑 + 𝑐𝑖

料理カテゴリ毎に𝑎𝑖 , 𝑏𝑖 , 𝑐𝑖 を学習
きんぴらごぼう牛丼
24

K. Okamoto and K. Yanai.
An Automatic Calorie Estimation System of Food Images on a Smartphone, MADiMa, 2016
ⓒ 2019 UEC Tokyo.

24

実験
1. 米飯画像からの実寸推定
𝟗𝟖. 𝟎 𝒄𝒎𝟐

2. 米飯画像からの実面積推定

3. 面積を考慮したカロリー量推定ⓒ 2019 UEC Tokyo.

25

1. 米飯画像からの実寸推定
1. 米飯画像からの実寸推定
𝟗𝟖. 𝟎 𝒄𝒎𝟐

2. 米飯画像からの実面積推定

3. 面積を考慮したカロリー量推定ⓒ 2019 UEC Tokyo.

26

1. 米飯画像からの実寸推定
データセット：米飯画像360枚

評価用

学習用

– データセットを６個に分割し,１個を評価, 残り５個を学習に使用(学習画像300枚, 評価画像60枚)

学習モデル：VGG16– ImageNetの学習済みモデル– 損失関数：L2– 学習率：10−5– 最適化手法：MomentumSGD– バッチサイズ：8ⓒ 2019 UEC Tokyo.

VGG1627

1. 米飯画像からの実寸推定
学習時 (ランダムクロップ)
入力パッチ

224 x 224

CNN

実寸情報
(cm/224 pixel)

テスト時 (グリッドサンプリング)

CNNⓒ 2019 UEC Tokyo.

平均実寸情報(cm/224 pixel)

28

1. 米飯画像からの実寸推定
実験結果
平均絶対誤差：0.145 cm
平均相対誤差：5.548 %
相関係数：0.946

推定値

224ピクセルあたりの実寸

𝑹 = 𝟎. 𝟗𝟒𝟔

正解値
推定値

正解値

推定値と正解値の相関係数が0.9以上ⓒ 2019 UEC Tokyo.

29

2. 米飯画像からの実面積推定
1. 米飯画像からの実寸推定
𝟗𝟖. 𝟎 𝒄𝒎𝟐

2. 米飯画像からの実面積推定

3. 面積を考慮したカロリー量推定ⓒ 2019 UEC Tokyo.

30

2. 米飯画像からの実面積推定

入力画像

料理検出

料理領域分割

実寸情報

各料理の実面積米領域画像ⓒ 2019 UEC Tokyo.

2. 米飯画像からの実面積推定
データセット：米飯画像360枚

評価用

学習用

– データセットを６個に分割し,１個を評価, 残り５個を学習に使用(学習画像300枚, 評価画像60枚)

料理検出：YOLOv2
領域分割：U-Net
クラス分類モデル : DenseNet161
実寸推定：実験１と同様ⓒ 2019 UEC Tokyo.

32

2. 米飯画像からの実面積推定
実面積推定結果
平均絶対誤差 (cm2)
平均相対誤差 (%)
推定値と正解値の相関係数

GrabCut

U-Net

14.2
15.0
0.469

13.3
13.9
0.474

ⓒ 2019 UEC Tokyo.

33

3. 面積を考慮したカロリー量推定
1. 米飯画像からの実寸推定
𝟗𝟖. 𝟎 𝒄𝒎𝟐

2. 米飯画像からの実面積推定

3. 面積を考慮したカロリー量推定ⓒ 2019 UEC Tokyo.

34

3. 面積を考慮したカロリー量推定

入力画像

料理検出

料理領域分割

𝟖𝟏𝒄𝒎𝟐 𝟐𝟖𝟏𝒌𝒄𝒂𝒍
𝟑𝟒𝒄𝒎𝟐

𝟏𝟎𝟕𝒄𝒎𝟐 𝟖𝒌𝒄𝒂𝒍

実寸情報

𝟏𝟏𝟓𝒄𝒎𝟐 𝟏𝟏𝟔𝒌𝒄𝒂𝒍
𝟕𝟒𝒄𝒎𝟐

各料理のカロリー量

各料理の実面積ⓒ 2019 UEC Tokyo.

米領域画像

3. 面積を考慮したカロリー量推定
実行結果

評価データは現在作成中であり,完成次第, 評価を行う予定である.
ⓒ 2019 UEC Tokyo.

今後の課題「量」を考慮した料理画像からのカロリー量推定• カードなどの基準物体やAR技術との組み合わせ.
• 食事画像データセットの拡張と新規作成.
実寸推定手法

料理領域・形状推定手法ⓒ 2019 UEC Tokyo.

37

38